wineater-bot 4.12.0 → 4.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wineater-chatbot.mjs +3253 -3203
- package/dist/wineater-chatbot.umd.js +25 -24
- package/package.json +1 -1
- package/src/App.svelte +16 -4
- package/src/components/WineTile.svelte +3 -2
- package/src/services/ui-config/projects-config.ts +1 -1
- package/src/services/ui-config/projects-config 2.ts +0 -72
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
(function(re,oe){typeof exports=="object"&&typeof module<"u"?module.exports=oe():typeof define=="function"&&define.amd?define(oe):(re=typeof globalThis<"u"?globalThis:re||self,re.WineaterChatbot=oe())})(this,function(){"use strict";var Tp=Object.defineProperty;var ml=re=>{throw TypeError(re)};var xp=(re,oe,Se)=>oe in re?Tp(re,oe,{enumerable:!0,configurable:!0,writable:!0,value:Se}):re[oe]=Se;var wt=(re,oe,Se)=>xp(re,typeof oe!="symbol"?oe+"":oe,Se),Cr=(re,oe,Se)=>oe.has(re)||ml("Cannot "+Se);var b=(re,oe,Se)=>(Cr(re,oe,"read from private field"),Se?Se.call(re):oe.get(re)),Y=(re,oe,Se)=>oe.has(re)?ml("Cannot add the same private member more than once"):oe instanceof WeakSet?oe.add(re):oe.set(re,Se),z=(re,oe,Se,ms)=>(Cr(re,oe,"write to private field"),ms?ms.call(re,Se):oe.set(re,Se),Se),fe=(re,oe,Se)=>(Cr(re,oe,"access private method"),Se);var ll,Fn,Wn,ln,cn,ls,zn,jn,ke,Nr,gn,Rr,vl,bl,$e,et,Tr,gt,un,mt,tt,ze,vt,Dt,Vt,hn,Gt,dn,Kt,ii,Te,Ep,Ip,Dr,hi,di,Ar,ot,bt,Ge,fn,cs,us,ri,Xt,At,Un,cl,ul;const re="5";typeof window<"u"&&((ll=window.__svelte??(window.__svelte={})).v??(ll.v=new Set)).add(re);const oe=1,Se=2,ms=16,wl=1,yl=2,_l=4,Sl=8,kl=16,Tl=1,xl=2,Ce=Symbol(),El="http://www.w3.org/1999/xhtml",fi=!1;var pi=Array.isArray,Il=Array.prototype.indexOf,gi=Array.from,Cl=Object.defineProperty,mn=Object.getOwnPropertyDescriptor,Nl=Object.getOwnPropertyDescriptors,Rl=Object.prototype,Dl=Array.prototype,Mr=Object.getPrototypeOf,Or=Object.isExtensible;function Al(t){for(var e=0;e<t.length;e++)t[e]()}function Pr(){var t,e,n=new Promise((s,i)=>{t=s,e=i});return{promise:n,resolve:t,reject:e}}const xe=2,mi=4,vi=8,yt=16,_t=32,Yt=64,vs=128,nt=512,Ne=1024,Pe=2048,St=4096,je=8192,kt=16384,bi=32768,Jt=65536,Lr=1<<17,Br=1<<18,vn=1<<19,Ml=1<<20,Qt=32768,wi=1<<21,yi=1<<22,Pt=1<<23,Zt=Symbol("$state"),Ol=Symbol("legacy props"),Pl=Symbol(""),bn=new class extends Error{constructor(){super(...arguments);wt(this,"name","StaleReactionError");wt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Ll(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Bl(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Fl(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Wl(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function zl(t){throw new Error("https://svelte.dev/e/effect_orphan")}function jl(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ul(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function Hl(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function ql(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Vl(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Gl(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Kl(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Xl(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Fr(t){return t===this.v}function Yl(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Wr(t){return!Yl(t,this.v)}let wn=!1,Jl=!1;function Ql(){wn=!0}let be=null;function yn(t){be=t}function Lt(t,e=!1,n){be={p:be,i:!1,c:null,e:null,s:t,x:null,l:wn&&!e?{s:null,u:null,$:[]}:null}}function Bt(t){var e=be,n=e.e;if(n!==null){e.e=null;for(var s of n)io(s)}return t!==void 0&&(e.x=t),e.i=!0,be=e.p,t??{}}function Hn(){return!wn||be!==null&&be.l===null}let $t=[];function zr(){var t=$t;$t=[],Al(t)}function qn(t){if($t.length===0&&!Vn){var e=$t;queueMicrotask(()=>{e===$t&&zr()})}$t.push(t)}function Zl(){for(;$t.length>0;)zr()}function jr(t){var e=ie;if(e===null)return J.f|=Pt,t;if(e.f&bi)_n(t,e);else{if(!(e.f&vs))throw t;e.b.error(t)}}function _n(t,e){for(;e!==null;){if(e.f&vs)try{e.b.error(t);return}catch(n){t=n}e=e.parent}throw t}const bs=new Set;let ne=null,ws=null,we=null,Xe=[],ys=null,_i=!1,Vn=!1;const si=class si{constructor(){Y(this,ke);wt(this,"committed",!1);wt(this,"current",new Map);wt(this,"previous",new Map);Y(this,Fn,new Set);Y(this,Wn,new Set);Y(this,ln,0);Y(this,cn,0);Y(this,ls,null);Y(this,zn,[]);Y(this,jn,[]);wt(this,"skipped_effects",new Set);wt(this,"is_fork",!1)}is_deferred(){return this.is_fork||b(this,cn)>0}process(e){var s;Xe=[],ws=null,this.apply();var n={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const i of e)fe(this,ke,Nr).call(this,i,n);this.is_fork||fe(this,ke,vl).call(this),this.is_deferred()?(fe(this,ke,gn).call(this,n.effects),fe(this,ke,gn).call(this,n.render_effects),fe(this,ke,gn).call(this,n.block_effects)):(ws=this,ne=null,Hr(n.render_effects),Hr(n.effects),ws=null,(s=b(this,ls))==null||s.resolve()),we=null}capture(e,n){this.previous.has(e)||this.previous.set(e,n),e.f&Pt||(this.current.set(e,e.v),we==null||we.set(e,e.v))}activate(){ne=this,this.apply()}deactivate(){ne===this&&(ne=null,we=null)}flush(){if(this.activate(),Xe.length>0){if(Ur(),ne!==null&&ne!==this)return}else b(this,ln)===0&&this.process([]);this.deactivate()}discard(){for(const e of b(this,Wn))e(this);b(this,Wn).clear()}increment(e){z(this,ln,b(this,ln)+1),e&&z(this,cn,b(this,cn)+1)}decrement(e){z(this,ln,b(this,ln)-1),e&&z(this,cn,b(this,cn)-1),this.revive()}revive(){for(const e of b(this,zn))Re(e,Pe),en(e);for(const e of b(this,jn))Re(e,St),en(e);z(this,zn,[]),z(this,jn,[]),this.flush()}oncommit(e){b(this,Fn).add(e)}ondiscard(e){b(this,Wn).add(e)}settled(){return(b(this,ls)??z(this,ls,Pr())).promise}static ensure(){if(ne===null){const e=ne=new si;bs.add(ne),Vn||si.enqueue(()=>{ne===e&&e.flush()})}return ne}static enqueue(e){qn(e)}apply(){}};Fn=new WeakMap,Wn=new WeakMap,ln=new WeakMap,cn=new WeakMap,ls=new WeakMap,zn=new WeakMap,jn=new WeakMap,ke=new WeakSet,Nr=function(e,n){var l;e.f^=Ne;for(var s=e.first;s!==null;){var i=s.f,r=(i&(_t|Yt))!==0,o=r&&(i&Ne)!==0,a=o||(i&je)!==0||this.skipped_effects.has(s);if(s.f&vs&&((l=s.b)!=null&&l.is_pending())&&(n={parent:n,effect:s,effects:[],render_effects:[],block_effects:[]}),!a&&s.fn!==null){r?s.f^=Ne:i&mi?n.effects.push(s):Qn(s)&&(s.f&yt&&n.block_effects.push(s),Zn(s));var c=s.first;if(c!==null){s=c;continue}}var u=s.parent;for(s=s.next;s===null&&u!==null;)u===n.effect&&(fe(this,ke,gn).call(this,n.effects),fe(this,ke,gn).call(this,n.render_effects),fe(this,ke,gn).call(this,n.block_effects),n=n.parent),s=u.next,u=u.parent}},gn=function(e){for(const n of e)(n.f&Pe?b(this,zn):b(this,jn)).push(n),fe(this,ke,Rr).call(this,n.deps),Re(n,Ne)},Rr=function(e){if(e!==null)for(const n of e)!(n.f&xe)||!(n.f&Qt)||(n.f^=Qt,fe(this,ke,Rr).call(this,n.deps))},vl=function(){if(b(this,cn)===0){for(const e of b(this,Fn))e();b(this,Fn).clear()}b(this,ln)===0&&fe(this,ke,bl).call(this)},bl=function(){var r;if(bs.size>1){this.previous.clear();var e=we,n=!0,s={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const o of bs){if(o===this){n=!1;continue}const a=[];for(const[u,l]of this.current){if(o.current.has(u))if(n&&l!==o.current.get(u))o.current.set(u,l);else continue;a.push(u)}if(a.length===0)continue;const c=[...o.current.keys()].filter(u=>!this.current.has(u));if(c.length>0){var i=Xe;Xe=[];const u=new Set,l=new Map;for(const h of a)qr(h,c,u,l);if(Xe.length>0){ne=o,o.apply();for(const h of Xe)fe(r=o,ke,Nr).call(r,h,s);o.deactivate()}Xe=i}}ne=null,we=e}this.committed=!0,bs.delete(this)};let Tt=si;function $l(t){var e=Vn;Vn=!0;try{for(var n;;){if(Zl(),Xe.length===0&&(ne==null||ne.flush(),Xe.length===0))return ys=null,n;Ur()}}finally{Vn=e}}function Ur(){var t=Wt;_i=!0;var e=null;try{var n=0;for(Es(!0);Xe.length>0;){var s=Tt.ensure();if(n++>1e3){var i,r;ec()}s.process(Xe),Ft.clear()}}finally{_i=!1,Es(t),ys=null}}function ec(){try{jl()}catch(t){_n(t,ys)}}let st=null;function Hr(t){var e=t.length;if(e!==0){for(var n=0;n<e;){var s=t[n++];if(!(s.f&(kt|je))&&Qn(s)&&(st=new Set,Zn(s),s.deps===null&&s.first===null&&s.nodes_start===null&&(s.teardown===null&&s.ac===null?lo(s):s.fn=null),(st==null?void 0:st.size)>0)){Ft.clear();for(const i of st){if(i.f&(kt|je))continue;const r=[i];let o=i.parent;for(;o!==null;)st.has(o)&&(st.delete(o),r.push(o)),o=o.parent;for(let a=r.length-1;a>=0;a--){const c=r[a];c.f&(kt|je)||Zn(c)}}st.clear()}}st=null}}function qr(t,e,n,s){if(!n.has(t)&&(n.add(t),t.reactions!==null))for(const i of t.reactions){const r=i.f;r&xe?qr(i,e,n,s):r&(yi|yt)&&!(r&Pe)&&Vr(i,e,s)&&(Re(i,Pe),en(i))}}function Vr(t,e,n){const s=n.get(t);if(s!==void 0)return s;if(t.deps!==null)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&xe&&Vr(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function en(t){for(var e=ys=t;e.parent!==null;){e=e.parent;var n=e.f;if(_i&&e===ie&&n&yt&&!(n&Br))return;if(n&(Yt|_t)){if(!(n&Ne))return;e.f^=Ne}}Xe.push(e)}function tc(t){let e=0,n=tn(0),s;return()=>{Ts()&&(m(n),Ii(()=>(e===0&&(s=$n(()=>t(()=>Kn(n)))),e+=1,()=>{qn(()=>{e-=1,e===0&&(s==null||s(),s=void 0,Kn(n))})})))}}var nc=Jt|vn|vs;function sc(t,e,n){new ic(t,e,n)}class ic{constructor(e,n,s){Y(this,Te);wt(this,"parent");Y(this,$e,!1);Y(this,et);Y(this,Tr,null);Y(this,gt);Y(this,un);Y(this,mt);Y(this,tt,null);Y(this,ze,null);Y(this,vt,null);Y(this,Dt,null);Y(this,Vt,null);Y(this,hn,0);Y(this,Gt,0);Y(this,dn,!1);Y(this,Kt,null);Y(this,ii,tc(()=>(z(this,Kt,tn(b(this,hn))),()=>{z(this,Kt,null)})));z(this,et,e),z(this,gt,n),z(this,un,s),this.parent=ie.b,z(this,$e,!!b(this,gt).pending),z(this,mt,xs(()=>{ie.b=this;{var i=fe(this,Te,Dr).call(this);try{z(this,tt,Ye(()=>s(i)))}catch(r){this.error(r)}b(this,Gt)>0?fe(this,Te,di).call(this):z(this,$e,!1)}return()=>{var r;(r=b(this,Vt))==null||r.remove()}},nc))}is_pending(){return b(this,$e)||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!b(this,gt).pending}update_pending_count(e){fe(this,Te,Ar).call(this,e),z(this,hn,b(this,hn)+e),b(this,Kt)&&Gn(b(this,Kt),b(this,hn))}get_effect_pending(){return b(this,ii).call(this),m(b(this,Kt))}error(e){var n=b(this,gt).onerror;let s=b(this,gt).failed;if(b(this,dn)||!n&&!s)throw e;b(this,tt)&&(Be(b(this,tt)),z(this,tt,null)),b(this,ze)&&(Be(b(this,ze)),z(this,ze,null)),b(this,vt)&&(Be(b(this,vt)),z(this,vt,null));var i=!1,r=!1;const o=()=>{if(i){Xl();return}i=!0,r&&Gl(),Tt.ensure(),z(this,hn,0),b(this,vt)!==null&&xn(b(this,vt),()=>{z(this,vt,null)}),z(this,$e,this.has_pending_snippet()),z(this,tt,fe(this,Te,hi).call(this,()=>(z(this,dn,!1),Ye(()=>b(this,un).call(this,b(this,et)))))),b(this,Gt)>0?fe(this,Te,di).call(this):z(this,$e,!1)};var a=J;try{Fe(null),r=!0,n==null||n(e,o),r=!1}catch(c){_n(c,b(this,mt)&&b(this,mt).parent)}finally{Fe(a)}s&&qn(()=>{z(this,vt,fe(this,Te,hi).call(this,()=>{Tt.ensure(),z(this,dn,!0);try{return Ye(()=>{s(b(this,et),()=>e,()=>o)})}catch(c){return _n(c,b(this,mt).parent),null}finally{z(this,dn,!1)}}))})}}$e=new WeakMap,et=new WeakMap,Tr=new WeakMap,gt=new WeakMap,un=new WeakMap,mt=new WeakMap,tt=new WeakMap,ze=new WeakMap,vt=new WeakMap,Dt=new WeakMap,Vt=new WeakMap,hn=new WeakMap,Gt=new WeakMap,dn=new WeakMap,Kt=new WeakMap,ii=new WeakMap,Te=new WeakSet,Ep=function(){try{z(this,tt,Ye(()=>b(this,un).call(this,b(this,et))))}catch(e){this.error(e)}z(this,$e,!1)},Ip=function(){const e=b(this,gt).pending;e&&(z(this,ze,Ye(()=>e(b(this,et)))),Tt.enqueue(()=>{var n=fe(this,Te,Dr).call(this);z(this,tt,fe(this,Te,hi).call(this,()=>(Tt.ensure(),Ye(()=>b(this,un).call(this,n))))),b(this,Gt)>0?fe(this,Te,di).call(this):(xn(b(this,ze),()=>{z(this,ze,null)}),z(this,$e,!1))}))},Dr=function(){var e=b(this,et);return b(this,$e)&&(z(this,Vt,xt()),b(this,et).before(b(this,Vt)),e=b(this,Vt)),e},hi=function(e){var n=ie,s=J,i=be;ut(b(this,mt)),Fe(b(this,mt)),yn(b(this,mt).ctx);try{return e()}catch(r){return jr(r),null}finally{ut(n),Fe(s),yn(i)}},di=function(){const e=b(this,gt).pending;b(this,tt)!==null&&(z(this,Dt,document.createDocumentFragment()),b(this,Dt).append(b(this,Vt)),ho(b(this,tt),b(this,Dt))),b(this,ze)===null&&z(this,ze,Ye(()=>e(b(this,et))))},Ar=function(e){var n;if(!this.has_pending_snippet()){this.parent&&fe(n=this.parent,Te,Ar).call(n,e);return}z(this,Gt,b(this,Gt)+e),b(this,Gt)===0&&(z(this,$e,!1),b(this,ze)&&xn(b(this,ze),()=>{z(this,ze,null)}),b(this,Dt)&&(b(this,et).before(b(this,Dt)),z(this,Dt,null)))};function Sn(t,e){return e}function rc(t,e,n){for(var s=[],i=e.length,r=0;r<i;r++)Ci(e[r].e,s,!0);co(s,()=>{var o=s.length===0&&n!==null;if(o){var a=n,c=a.parentNode;mc(c),c.append(a),t.items.clear(),lt(t,e[0].prev,e[i-1].next)}for(var u=0;u<i;u++){var l=e[u];o||(t.items.delete(l.k),lt(t,l.prev,l.next)),Be(l.e,!o)}t.first===e[0]&&(t.first=e[0].prev)})}function kn(t,e,n,s,i,r=null){var o=t,a=new Map,c=null;{var u=t;o=u.appendChild(xt())}var l=null,h=ki(()=>{var T=n();return pi(T)?T:T==null?[]:gi(T)}),d,f=!0;function p(){oc(E,d,o,e,s),l!==null&&(d.length===0?(l.fragment?(o.before(l.fragment),l.fragment=null):Ni(l.effect),v.first=l.effect):xn(l.effect,()=>{l=null}))}var v=xs(()=>{d=m(h);for(var T=d.length,x=new Set,I=ne,g=null,y=no(),k=0;k<T;k+=1){var S=d[k],_=s(S,k),w=f?null:a.get(_);w?(Gn(w.v,S),w.i=k,y&&I.skipped_effects.delete(w.e)):(w=ac(f?o:null,g,S,_,k,i,e,n),f&&(w.o=!0,g===null?c=w:g.next=w,g=w),a.set(_,w)),x.add(_)}if(T===0&&r&&!l)if(f)l={fragment:null,effect:Ye(()=>r(o))};else{var A=document.createDocumentFragment(),L=xt();A.append(L),l={fragment:A,effect:Ye(()=>r(L))}}if(!f)if(y){for(const[B,U]of a)x.has(B)||I.skipped_effects.add(U.e);I.oncommit(p),I.ondiscard(()=>{})}else p();m(h)}),E={effect:v,items:a,first:c};f=!1}function oc(t,e,n,s,i){var r=e.length,o=t.items,a=t.first,c,u=null,l=[],h=[],d,f,p,v;for(v=0;v<r;v+=1){if(d=e[v],f=i(d,v),p=o.get(f),t.first??(t.first=p),!p.o){p.o=!0;var E=u?u.next:a;lt(t,u,p),lt(t,p,E),Si(p,E,n),u=p,l=[],h=[],a=u.next;continue}if(p.e.f&je&&Ni(p.e),p!==a){if(c!==void 0&&c.has(p)){if(l.length<h.length){var T=h[0],x;u=T.prev;var I=l[0],g=l[l.length-1];for(x=0;x<l.length;x+=1)Si(l[x],T,n);for(x=0;x<h.length;x+=1)c.delete(h[x]);lt(t,I.prev,g.next),lt(t,u,I),lt(t,g,T),a=T,u=g,v-=1,l=[],h=[]}else c.delete(p),Si(p,a,n),lt(t,p.prev,p.next),lt(t,p,u===null?t.first:u.next),lt(t,u,p),u=p;continue}for(l=[],h=[];a!==null&&a.k!==f;)a.e.f&je||(c??(c=new Set)).add(a),h.push(a),a=a.next;if(a===null)continue;p=a}l.push(p),u=p,a=p.next}if(a!==null||c!==void 0){for(var y=c===void 0?[]:gi(c);a!==null;)a.e.f&je||y.push(a),a=a.next;var k=y.length;if(k>0){var S=r===0?n:null;rc(t,y,S)}}}function ac(t,e,n,s,i,r,o,a){var c=(o&oe)!==0,u=(o&ms)===0,l=c?u?dc(n,!1,!1):tn(n):n,h=o&Se?tn(i):i,d={i:h,v:l,k:s,a:null,e:null,o:!1,prev:e,next:null};try{if(t===null){var f=document.createDocumentFragment();f.append(t=xt())}return d.e=Ye(()=>r(t,l,h,a)),e!==null&&(e.next=d),d}finally{}}function Si(t,e,n){for(var s=t.next?t.next.e.nodes_start:n,i=e?e.e.nodes_start:n,r=t.e.nodes_start;r!==null&&r!==s;){var o=Xn(r);i.before(r),r=o}}function lt(t,e,n){e===null?(t.first=n,t.effect.first=n&&n.e):(e.e.next&&(e.e.next.prev=null),e.next=n,e.e.next=n&&n.e),n===null?t.effect.last=e&&e.e:(n.e.prev&&(n.e.prev.next=null),n.prev=e,n.e.prev=e&&e.e)}function lc(t,e,n,s){const i=Hn()?Ss:ki;if(n.length===0&&t.length===0){s(e.map(i));return}var r=ne,o=ie,a=cc();function c(){Promise.all(n.map(u=>uc(u))).then(u=>{a();try{s([...e.map(i),...u])}catch(l){o.f&kt||_n(l,o)}r==null||r.deactivate(),_s()}).catch(u=>{_n(u,o)})}t.length>0?Promise.all(t).then(()=>{a();try{return c()}finally{r==null||r.deactivate(),_s()}}):c()}function cc(){var t=ie,e=J,n=be,s=ne;return function(r=!0){ut(t),Fe(e),yn(n),r&&(s==null||s.activate())}}function _s(){ut(null),Fe(null),yn(null)}function Ss(t){var e=xe|Pe,n=J!==null&&J.f&xe?J:null;return ie!==null&&(ie.f|=vn),{ctx:be,deps:null,effects:null,equals:Fr,f:e,fn:t,reactions:null,rv:0,v:Ce,wv:0,parent:n??ie,ac:null}}function uc(t,e){let n=ie;n===null&&Bl();var s=n.b,i=void 0,r=tn(Ce),o=!J,a=new Map;return Sc(()=>{var d;var c=Pr();i=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).then(()=>{u===ne&&u.committed&&u.deactivate(),_s()})}catch(f){c.reject(f),_s()}var u=ne;if(o){var l=!s.is_pending();s.update_pending_count(1),u.increment(l),(d=a.get(u))==null||d.reject(bn),a.delete(u),a.set(u,c)}const h=(f,p=void 0)=>{if(u.activate(),p)p!==bn&&(r.f|=Pt,Gn(r,p));else{r.f&Pt&&(r.f^=Pt),Gn(r,f);for(const[v,E]of a){if(a.delete(v),v===u)break;E.reject(bn)}}o&&(s.update_pending_count(-1),u.decrement(l))};c.promise.then(h,f=>h(null,f||"unknown"))}),Ei(()=>{for(const c of a.values())c.reject(bn)}),new Promise(c=>{function u(l){function h(){l===i?c(r):u(i)}l.then(h,h)}u(i)})}function he(t){const e=Ss(t);return po(e),e}function ki(t){const e=Ss(t);return e.equals=Wr,e}function Gr(t){var e=t.effects;if(e!==null){t.effects=null;for(var n=0;n<e.length;n+=1)Be(e[n])}}function hc(t){for(var e=t.parent;e!==null;){if(!(e.f&xe))return e.f&kt?null:e;e=e.parent}return null}function Ti(t){var e,n=ie;ut(hc(t));try{t.f&=~Qt,Gr(t),e=wo(t)}finally{ut(n)}return e}function Kr(t){var e=Ti(t);if(t.equals(e)||(ne!=null&&ne.is_fork||(t.v=e),t.wv=vo()),!nn)if(we!==null)Ts()&&we.set(t,e);else{var n=t.f&nt?Ne:St;Re(t,n)}}let xi=new Set;const Ft=new Map;let Xr=!1;function tn(t,e){var n={f:0,v:t,reactions:null,equals:Fr,rv:0,wv:0};return n}function ae(t,e){const n=tn(t);return po(n),n}function dc(t,e=!1,n=!0){var i;const s=tn(t);return e||(s.equals=Wr),wn&&n&&be!==null&&be.l!==null&&((i=be.l).s??(i.s=[])).push(s),s}function C(t,e,n=!1){J!==null&&(!ct||J.f&Lr)&&Hn()&&J.f&(xe|yt|yi|Lr)&&!(Ae!=null&&Ae.includes(t))&&Vl();let s=n?it(e):e;return Gn(t,s)}function Gn(t,e){if(!t.equals(e)){var n=t.v;nn?Ft.set(t,e):Ft.set(t,n),t.v=e;var s=Tt.ensure();s.capture(t,n),t.f&xe&&(t.f&Pe&&Ti(t),Re(t,t.f&nt?Ne:St)),t.wv=vo(),Jr(t,Pe),Hn()&&ie!==null&&ie.f&Ne&&!(ie.f&(_t|Yt))&&(Je===null?xc([t]):Je.push(t)),!s.is_fork&&xi.size>0&&!Xr&&fc()}return e}function fc(){Xr=!1;var t=Wt;Es(!0);const e=Array.from(xi);try{for(const n of e)n.f&Ne&&Re(n,St),Qn(n)&&Zn(n)}finally{Es(t)}xi.clear()}function Yr(t,e=1){var n=m(t),s=e===1?n++:n--;return C(t,n),s}function Kn(t){C(t,t.v+1)}function Jr(t,e){var n=t.reactions;if(n!==null)for(var s=Hn(),i=n.length,r=0;r<i;r++){var o=n[r],a=o.f;if(!(!s&&o===ie)){var c=(a&Pe)===0;if(c&&Re(o,e),a&xe){var u=o;we==null||we.delete(u),a&Qt||(a&nt&&(o.f|=Qt),Jr(u,St))}else c&&(a&yt&&st!==null&&st.add(o),en(o))}}}function it(t){if(typeof t!="object"||t===null||Zt in t)return t;const e=Mr(t);if(e!==Rl&&e!==Dl)return t;var n=new Map,s=pi(t),i=ae(0),r=sn,o=a=>{if(sn===r)return a();var c=J,u=sn;Fe(null),mo(r);var l=a();return Fe(c),mo(u),l};return s&&n.set("length",ae(t.length)),new Proxy(t,{defineProperty(a,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Hl();var l=n.get(c);return l===void 0?l=o(()=>{var h=ae(u.value);return n.set(c,h),h}):C(l,u.value,!0),!0},deleteProperty(a,c){var u=n.get(c);if(u===void 0){if(c in a){const l=o(()=>ae(Ce));n.set(c,l),Kn(i)}}else C(u,Ce),Kn(i);return!0},get(a,c,u){var f;if(c===Zt)return t;var l=n.get(c),h=c in a;if(l===void 0&&(!h||(f=mn(a,c))!=null&&f.writable)&&(l=o(()=>{var p=it(h?a[c]:Ce),v=ae(p);return v}),n.set(c,l)),l!==void 0){var d=m(l);return d===Ce?void 0:d}return Reflect.get(a,c,u)},getOwnPropertyDescriptor(a,c){var u=Reflect.getOwnPropertyDescriptor(a,c);if(u&&"value"in u){var l=n.get(c);l&&(u.value=m(l))}else if(u===void 0){var h=n.get(c),d=h==null?void 0:h.v;if(h!==void 0&&d!==Ce)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(a,c){var d;if(c===Zt)return!0;var u=n.get(c),l=u!==void 0&&u.v!==Ce||Reflect.has(a,c);if(u!==void 0||ie!==null&&(!l||(d=mn(a,c))!=null&&d.writable)){u===void 0&&(u=o(()=>{var f=l?it(a[c]):Ce,p=ae(f);return p}),n.set(c,u));var h=m(u);if(h===Ce)return!1}return l},set(a,c,u,l){var I;var h=n.get(c),d=c in a;if(s&&c==="length")for(var f=u;f<h.v;f+=1){var p=n.get(f+"");p!==void 0?C(p,Ce):f in a&&(p=o(()=>ae(Ce)),n.set(f+"",p))}if(h===void 0)(!d||(I=mn(a,c))!=null&&I.writable)&&(h=o(()=>ae(void 0)),C(h,it(u)),n.set(c,h));else{d=h.v!==Ce;var v=o(()=>it(u));C(h,v)}var E=Reflect.getOwnPropertyDescriptor(a,c);if(E!=null&&E.set&&E.set.call(l,u),!d){if(s&&typeof c=="string"){var T=n.get("length"),x=Number(c);Number.isInteger(x)&&x>=T.v&&C(T,x+1)}Kn(i)}return!0},ownKeys(a){m(i);var c=Reflect.ownKeys(a).filter(h=>{var d=n.get(h);return d===void 0||d.v!==Ce});for(var[u,l]of n)l.v!==Ce&&!(u in a)&&c.push(u);return c},setPrototypeOf(){ql()}})}function Qr(t){try{if(t!==null&&typeof t=="object"&&Zt in t)return t[Zt]}catch{}return t}function pc(t,e){return Object.is(Qr(t),Qr(e))}var Zr,$r,eo,to;function gc(){if(Zr===void 0){Zr=window,$r=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;eo=mn(e,"firstChild").get,to=mn(e,"nextSibling").get,Or(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Or(n)&&(n.__t=void 0)}}function xt(t=""){return document.createTextNode(t)}function Tn(t){return eo.call(t)}function Xn(t){return to.call(t)}function P(t,e){return Tn(t)}function Le(t,e=!1){{var n=Tn(t);return n instanceof Comment&&n.data===""?Xn(n):n}}function j(t,e=1,n=!1){let s=t;for(;e--;)s=Xn(s);return s}function mc(t){t.textContent=""}function no(){return!1}let so=!1;function vc(){so||(so=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(const n of t.target.elements)(e=n.__on_r)==null||e.call(n)})},{capture:!0}))}function ks(t){var e=J,n=ie;Fe(null),ut(null);try{return t()}finally{Fe(e),ut(n)}}function bc(t,e,n,s=n){t.addEventListener(e,()=>ks(n));const i=t.__on_r;i?t.__on_r=()=>{i(),s(!0)}:t.__on_r=()=>s(!0),vc()}function wc(t){ie===null&&(J===null&&zl(),Wl()),nn&&Fl()}function yc(t,e){var n=e.last;n===null?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}function Et(t,e,n){var s=ie;s!==null&&s.f&je&&(t|=je);var i={ctx:be,deps:null,nodes_start:null,nodes_end:null,f:t|Pe|nt,first:null,fn:e,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{Zn(i),i.f|=bi}catch(a){throw Be(i),a}else e!==null&&en(i);var r=i;if(n&&r.deps===null&&r.teardown===null&&r.nodes_start===null&&r.first===r.last&&!(r.f&vn)&&(r=r.first,t&yt&&t&Jt&&r!==null&&(r.f|=Jt)),r!==null&&(r.parent=s,s!==null&&yc(r,s),J!==null&&J.f&xe&&!(t&Yt))){var o=J;(o.effects??(o.effects=[])).push(r)}return i}function Ts(){return J!==null&&!ct}function Ei(t){const e=Et(vi,null,!1);return Re(e,Ne),e.teardown=t,e}function Yn(t){wc();var e=ie.f,n=!J&&(e&_t)!==0&&(e&bi)===0;if(n){var s=be;(s.e??(s.e=[])).push(t)}else return io(t)}function io(t){return Et(mi|Ml,t,!1)}function _c(t){Tt.ensure();const e=Et(Yt|vn,t,!0);return(n={})=>new Promise(s=>{n.outro?xn(e,()=>{Be(e),s(void 0)}):(Be(e),s(void 0))})}function ro(t){return Et(mi,t,!1)}function Sc(t){return Et(yi|vn,t,!0)}function Ii(t,e=0){return Et(vi|e,t,!0)}function H(t,e=[],n=[],s=[]){lc(s,e,n,i=>{Et(vi,()=>t(...i.map(m)),!0)})}function xs(t,e=0){var n=Et(yt|e,t,!0);return n}function Ye(t){return Et(_t|vn,t,!0)}function oo(t){var e=t.teardown;if(e!==null){const n=nn,s=J;fo(!0),Fe(null);try{e.call(null)}finally{fo(n),Fe(s)}}}function ao(t,e=!1){var n=t.first;for(t.first=t.last=null;n!==null;){const i=n.ac;i!==null&&ks(()=>{i.abort(bn)});var s=n.next;n.f&Yt?n.parent=null:Be(n,e),n=s}}function kc(t){for(var e=t.first;e!==null;){var n=e.next;e.f&_t||Be(e),e=n}}function Be(t,e=!0){var n=!1;(e||t.f&Br)&&t.nodes_start!==null&&t.nodes_end!==null&&(Tc(t.nodes_start,t.nodes_end),n=!0),ao(t,e&&!n),Is(t,0),Re(t,kt);var s=t.transitions;if(s!==null)for(const r of s)r.stop();oo(t);var i=t.parent;i!==null&&i.first!==null&&lo(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function Tc(t,e){for(;t!==null;){var n=t===e?null:Xn(t);t.remove(),t=n}}function lo(t){var e=t.parent,n=t.prev,s=t.next;n!==null&&(n.next=s),s!==null&&(s.prev=n),e!==null&&(e.first===t&&(e.first=s),e.last===t&&(e.last=n))}function xn(t,e,n=!0){var s=[];Ci(t,s,!0),co(s,()=>{n&&Be(t),e&&e()})}function co(t,e){var n=t.length;if(n>0){var s=()=>--n||e();for(var i of t)i.out(s)}else e()}function Ci(t,e,n){if(!(t.f&je)){if(t.f^=je,t.transitions!==null)for(const o of t.transitions)(o.is_global||n)&&e.push(o);for(var s=t.first;s!==null;){var i=s.next,r=(s.f&Jt)!==0||(s.f&_t)!==0&&(t.f&yt)!==0;Ci(s,e,r?n:!1),s=i}}}function Ni(t){uo(t,!0)}function uo(t,e){if(t.f&je){t.f^=je,t.f&Ne||(Re(t,Pe),en(t));for(var n=t.first;n!==null;){var s=n.next,i=(n.f&Jt)!==0||(n.f&_t)!==0;uo(n,i?e:!1),n=s}if(t.transitions!==null)for(const r of t.transitions)(r.is_global||e)&&r.in()}}function ho(t,e){for(var n=t.nodes_start,s=t.nodes_end;n!==null;){var i=n===s?null:Xn(n);e.append(n),n=i}}let Wt=!1;function Es(t){Wt=t}let nn=!1;function fo(t){nn=t}let J=null,ct=!1;function Fe(t){J=t}let ie=null;function ut(t){ie=t}let Ae=null;function po(t){J!==null&&(Ae===null?Ae=[t]:Ae.push(t))}let Me=null,Ue=0,Je=null;function xc(t){Je=t}let go=1,Jn=0,sn=Jn;function mo(t){sn=t}function vo(){return++go}function Qn(t){var e=t.f;if(e&Pe)return!0;if(e&xe&&(t.f&=~Qt),e&St){var n=t.deps;if(n!==null)for(var s=n.length,i=0;i<s;i++){var r=n[i];if(Qn(r)&&Kr(r),r.wv>t.wv)return!0}e&nt&&we===null&&Re(t,Ne)}return!1}function bo(t,e,n=!0){var s=t.reactions;if(s!==null&&!(Ae!=null&&Ae.includes(t)))for(var i=0;i<s.length;i++){var r=s[i];r.f&xe?bo(r,e,!1):e===r&&(n?Re(r,Pe):r.f&Ne&&Re(r,St),en(r))}}function wo(t){var p;var e=Me,n=Ue,s=Je,i=J,r=Ae,o=be,a=ct,c=sn,u=t.f;Me=null,Ue=0,Je=null,J=u&(_t|Yt)?null:t,Ae=null,yn(t.ctx),ct=!1,sn=++Jn,t.ac!==null&&(ks(()=>{t.ac.abort(bn)}),t.ac=null);try{t.f|=wi;var l=t.fn,h=l(),d=t.deps;if(Me!==null){var f;if(Is(t,Ue),d!==null&&Ue>0)for(d.length=Ue+Me.length,f=0;f<Me.length;f++)d[Ue+f]=Me[f];else t.deps=d=Me;if(Wt&&Ts()&&t.f&nt)for(f=Ue;f<d.length;f++)((p=d[f]).reactions??(p.reactions=[])).push(t)}else d!==null&&Ue<d.length&&(Is(t,Ue),d.length=Ue);if(Hn()&&Je!==null&&!ct&&d!==null&&!(t.f&(xe|St|Pe)))for(f=0;f<Je.length;f++)bo(Je[f],t);return i!==null&&i!==t&&(Jn++,Je!==null&&(s===null?s=Je:s.push(...Je))),t.f&Pt&&(t.f^=Pt),h}catch(v){return jr(v)}finally{t.f^=wi,Me=e,Ue=n,Je=s,J=i,Ae=r,yn(o),ct=a,sn=c}}function Ec(t,e){let n=e.reactions;if(n!==null){var s=Il.call(n,t);if(s!==-1){var i=n.length-1;i===0?n=e.reactions=null:(n[s]=n[i],n.pop())}}n===null&&e.f&xe&&(Me===null||!Me.includes(e))&&(Re(e,St),e.f&nt&&(e.f^=nt,e.f&=~Qt),Gr(e),Is(e,0))}function Is(t,e){var n=t.deps;if(n!==null)for(var s=e;s<n.length;s++)Ec(t,n[s])}function Zn(t){var e=t.f;if(!(e&kt)){Re(t,Ne);var n=ie,s=Wt;ie=t,Wt=!0;try{e&yt?kc(t):ao(t),oo(t);var i=wo(t);t.teardown=typeof i=="function"?i:null,t.wv=go;var r;fi&&Jl&&t.f&Pe&&t.deps}finally{Wt=s,ie=n}}}async function Ic(){await Promise.resolve(),$l()}function m(t){var e=t.f,n=(e&xe)!==0;if(J!==null&&!ct){var s=ie!==null&&(ie.f&kt)!==0;if(!s&&!(Ae!=null&&Ae.includes(t))){var i=J.deps;if(J.f&wi)t.rv<Jn&&(t.rv=Jn,Me===null&&i!==null&&i[Ue]===t?Ue++:Me===null?Me=[t]:Me.includes(t)||Me.push(t));else{(J.deps??(J.deps=[])).push(t);var r=t.reactions;r===null?t.reactions=[J]:r.includes(J)||r.push(J)}}}if(nn){if(Ft.has(t))return Ft.get(t);if(n){var o=t,a=o.v;return(!(o.f&Ne)&&o.reactions!==null||_o(o))&&(a=Ti(o)),Ft.set(o,a),a}}else n&&!(we!=null&&we.has(t))&&(o=t,Qn(o)&&Kr(o),Wt&&Ts()&&!(o.f&nt)&&yo(o));if(we!=null&&we.has(t))return we.get(t);if(t.f&Pt)throw t.v;return t.v}function yo(t){if(t.deps!==null){t.f^=nt;for(const e of t.deps)(e.reactions??(e.reactions=[])).push(t),e.f&xe&&!(e.f&nt)&&yo(e)}}function _o(t){if(t.v===Ce)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(Ft.has(e)||e.f&xe&&_o(e))return!0;return!1}function $n(t){var e=ct;try{return ct=!0,t()}finally{ct=e}}const Cc=-7169;function Re(t,e){t.f=t.f&Cc|e}const So=new Set,Ri=new Set;function Nc(t,e,n,s={}){function i(r){if(s.capture||es.call(e,r),!r.cancelBubble)return ks(()=>n==null?void 0:n.call(this,r))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?qn(()=>{e.addEventListener(t,i,s)}):e.addEventListener(t,i,s),i}function It(t,e,n,s,i){var r={capture:s,passive:i},o=Nc(t,e,n,r);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ei(()=>{e.removeEventListener(t,o,r)})}function Cs(t){for(var e=0;e<t.length;e++)So.add(t[e]);for(var n of Ri)n(t)}let ko=null;function es(t){var E;var e=this,n=e.ownerDocument,s=t.type,i=((E=t.composedPath)==null?void 0:E.call(t))||[],r=i[0]||t.target;ko=t;var o=0,a=ko===t&&t.__root;if(a){var c=i.indexOf(a);if(c!==-1&&(e===document||e===window)){t.__root=e;return}var u=i.indexOf(e);if(u===-1)return;c<=u&&(o=c)}if(r=i[o]||t.target,r!==e){Cl(t,"currentTarget",{configurable:!0,get(){return r||n}});var l=J,h=ie;Fe(null),ut(null);try{for(var d,f=[];r!==null;){var p=r.assignedSlot||r.parentNode||r.host||null;try{var v=r["__"+s];v!=null&&(!r.disabled||t.target===r)&&v.call(r,t)}catch(T){d?f.push(T):d=T}if(t.cancelBubble||p===e||p===null)break;r=p}if(d){for(let T of f)queueMicrotask(()=>{throw T});throw d}}finally{t.__root=e,delete t.currentTarget,Fe(l),ut(h)}}}function To(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("<!>","<!---->"),e.content}function ts(t,e){var n=ie;n.nodes_start===null&&(n.nodes_start=t,n.nodes_end=e)}function q(t,e){var n=(e&Tl)!==0,s=(e&xl)!==0,i,r=!t.startsWith("<!>");return()=>{i===void 0&&(i=To(r?t:"<!>"+t),n||(i=Tn(i)));var o=s||$r?document.importNode(i,!0):i.cloneNode(!0);if(n){var a=Tn(o),c=o.lastChild;ts(a,c)}else ts(o,o);return o}}function Rc(t,e,n="svg"){var s=!t.startsWith("<!>"),i=`<${n}>${s?t:"<!>"+t}</${n}>`,r;return()=>{if(!r){var o=To(i),a=Tn(o);r=Tn(a)}var c=r.cloneNode(!0);return ts(c,c),c}}function Ns(t,e){return Rc(t,e,"svg")}function En(t=""){{var e=xt(t+"");return ts(e,e),e}}function Ct(){var t=document.createDocumentFragment(),e=document.createComment(""),n=xt();return t.append(e,n),ts(e,n),t}function M(t,e){t!==null&&t.before(e)}const Dc=["touchstart","touchmove"];function Ac(t){return Dc.includes(t)}function Q(t,e){var n=e==null?"":typeof e=="object"?e+"":e;n!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=n,t.nodeValue=n+"")}function Mc(t,e){return Oc(t,e)}const In=new Map;function Oc(t,{target:e,anchor:n,props:s={},events:i,context:r,intro:o=!0}){gc();var a=new Set,c=h=>{for(var d=0;d<h.length;d++){var f=h[d];if(!a.has(f)){a.add(f);var p=Ac(f);e.addEventListener(f,es,{passive:p});var v=In.get(f);v===void 0?(document.addEventListener(f,es,{passive:p}),In.set(f,1)):In.set(f,v+1)}}};c(gi(So)),Ri.add(c);var u=void 0,l=_c(()=>{var h=n??e.appendChild(xt());return sc(h,{pending:()=>{}},d=>{if(r){Lt({});var f=be;f.c=r}i&&(s.$$events=i),u=t(d,s)||{},r&&Bt()}),()=>{var p;for(var d of a){e.removeEventListener(d,es);var f=In.get(d);--f===0?(document.removeEventListener(d,es),In.delete(d)):In.set(d,f)}Ri.delete(c),h!==n&&((p=h.parentNode)==null||p.removeChild(h))}});return Pc.set(u,l),u}let Pc=new WeakMap;class xo{constructor(e,n=!0){wt(this,"anchor");Y(this,ot,new Map);Y(this,bt,new Map);Y(this,Ge,new Map);Y(this,fn,new Set);Y(this,cs,!0);Y(this,us,()=>{var e=ne;if(b(this,ot).has(e)){var n=b(this,ot).get(e),s=b(this,bt).get(n);if(s)Ni(s),b(this,fn).delete(n);else{var i=b(this,Ge).get(n);i&&(b(this,bt).set(n,i.effect),b(this,Ge).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),s=i.effect)}for(const[r,o]of b(this,ot)){if(b(this,ot).delete(r),r===e)break;const a=b(this,Ge).get(o);a&&(Be(a.effect),b(this,Ge).delete(o))}for(const[r,o]of b(this,bt)){if(r===n||b(this,fn).has(r))continue;const a=()=>{if(Array.from(b(this,ot).values()).includes(r)){var u=document.createDocumentFragment();ho(o,u),u.append(xt()),b(this,Ge).set(r,{effect:o,fragment:u})}else Be(o);b(this,fn).delete(r),b(this,bt).delete(r)};b(this,cs)||!s?(b(this,fn).add(r),xn(o,a,!1)):a()}}});Y(this,ri,e=>{b(this,ot).delete(e);const n=Array.from(b(this,ot).values());for(const[s,i]of b(this,Ge))n.includes(s)||(Be(i.effect),b(this,Ge).delete(s))});this.anchor=e,z(this,cs,n)}ensure(e,n){var s=ne,i=no();if(n&&!b(this,bt).has(e)&&!b(this,Ge).has(e))if(i){var r=document.createDocumentFragment(),o=xt();r.append(o),b(this,Ge).set(e,{effect:Ye(()=>n(o)),fragment:r})}else b(this,bt).set(e,Ye(()=>n(this.anchor)));if(b(this,ot).set(s,e),i){for(const[a,c]of b(this,bt))a===e?s.skipped_effects.delete(c):s.skipped_effects.add(c);for(const[a,c]of b(this,Ge))a===e?s.skipped_effects.delete(c.effect):s.skipped_effects.add(c.effect);s.oncommit(b(this,us)),s.ondiscard(b(this,ri))}else b(this,us).call(this)}}ot=new WeakMap,bt=new WeakMap,Ge=new WeakMap,fn=new WeakMap,cs=new WeakMap,us=new WeakMap,ri=new WeakMap;function Di(t){be===null&&Ll(),wn&&be.l!==null?Lc(be).m.push(t):Yn(()=>{const e=$n(t);if(typeof e=="function")return e})}function Lc(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}function $(t,e,n=!1){var s=new xo(t),i=n?Jt:0;function r(o,a){s.ensure(o,a)}xs(()=>{var o=!1;e((a,c=!0)=>{o=!0,r(c,a)}),o||r(!1,null)},i)}function Eo(t,e,n,s,i){var a;var r=(a=e.$$slots)==null?void 0:a[n],o=!1;r===!0&&(r=e.children,o=!0),r===void 0||r(t,o?()=>s:s)}function Io(t,e,n){var s=new xo(t);xs(()=>{var i=e()??null;s.ensure(i,i&&(r=>n(r,i)))},Jt)}function zt(t,e){ro(()=>{var n=t.getRootNode(),s=n.host?n:n.head??n.ownerDocument.head;if(!s.querySelector("#"+e.hash)){const i=document.createElement("style");i.id=e.hash,i.textContent=e.code,s.appendChild(i)}})}function Co(t){var e,n,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=Co(t[e]))&&(s&&(s+=" "),s+=n)}else for(n in t)t[n]&&(s&&(s+=" "),s+=n);return s}function Bc(){for(var t,e,n=0,s="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=Co(t))&&(s&&(s+=" "),s+=e);return s}function Cn(t){return typeof t=="object"?Bc(t):t??""}function Fc(t,e,n){var s=t==null?"":""+t;return e&&(s=s?s+" "+e:e),s===""?null:s}function jt(t,e,n,s,i,r){var o=t.__className;if(o!==n||o===void 0){var a=Fc(n,s);a==null?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a),t.__className=n}return r}function No(t,e,n=!1){if(t.multiple){if(e==null)return;if(!pi(e))return Kl();for(var s of t.options)s.selected=e.includes(Ro(s));return}for(s of t.options){var i=Ro(s);if(pc(i,e)){s.selected=!0;return}}(!n||e!==void 0)&&(t.selectedIndex=-1)}function Wc(t){var e=new MutationObserver(()=>{No(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ei(()=>{e.disconnect()})}function Ro(t){return"__value"in t?t.__value:t.value}const zc=Symbol("is custom element"),jc=Symbol("is html");function Uc(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Ee(t,e,n,s){var i=Hc(t);i[e]!==(i[e]=n)&&(e==="loading"&&(t[Pl]=n),n==null?t.removeAttribute(e):typeof n!="string"&&qc(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function Hc(t){return t.__attributes??(t.__attributes={[zc]:t.nodeName.includes("-"),[jc]:t.namespaceURI===El})}var Do=new Map;function qc(t){var e=t.getAttribute("is")||t.nodeName,n=Do.get(e);if(n)return n;Do.set(e,n=[]);for(var s,i=t,r=Element.prototype;r!==i;){s=Nl(i);for(var o in s)s[o].set&&n.push(o);i=Mr(i)}return n}function Vc(t,e,n=e){var s=new WeakSet;bc(t,"input",async i=>{var r=i?t.defaultValue:t.value;if(r=Ai(t)?Mi(r):r,n(r),ne!==null&&s.add(ne),await Ic(),r!==(r=e())){var o=t.selectionStart,a=t.selectionEnd,c=t.value.length;if(t.value=r??"",a!==null){var u=t.value.length;o===a&&a===c&&u>c?(t.selectionStart=u,t.selectionEnd=u):(t.selectionStart=o,t.selectionEnd=Math.min(a,u))}}}),$n(e)==null&&t.value&&(n(Ai(t)?Mi(t.value):t.value),ne!==null&&s.add(ne)),Ii(()=>{var i=e();if(t===document.activeElement){var r=ws??ne;if(s.has(r))return}Ai(t)&&i===Mi(t.value)||t.type==="date"&&!i&&!t.value||i!==t.value&&(t.value=i??"")})}function Ai(t){var e=t.type;return e==="number"||e==="range"}function Mi(t){return t===""?null:+t}function Ao(t,e){return t===e||(t==null?void 0:t[Zt])===e}function Gc(t={},e,n,s){return ro(()=>{var i,r;return Ii(()=>{i=r,r=[],$n(()=>{t!==n(...r)&&(e(t,...r),i&&Ao(n(...i),t)&&e(null,...i))})}),()=>{qn(()=>{r&&Ao(n(...r),t)&&e(null,...r)})}}),t}let Rs=!1;function Kc(t){var e=Rs;try{return Rs=!1,[t(),Rs]}finally{Rs=e}}function He(t,e,n,s){var I;var i=!wn||(n&yl)!==0,r=(n&Sl)!==0,o=(n&kl)!==0,a=s,c=!0,u=()=>(c&&(c=!1,a=o?$n(s):s),a),l;if(r){var h=Zt in t||Ol in t;l=((I=mn(t,e))==null?void 0:I.set)??(h&&e in t?g=>t[e]=g:void 0)}var d,f=!1;r?[d,f]=Kc(()=>t[e]):d=t[e],d===void 0&&s!==void 0&&(d=u(),l&&(i&&Ul(),l(d)));var p;if(i?p=()=>{var g=t[e];return g===void 0?u():(c=!0,g)}:p=()=>{var g=t[e];return g!==void 0&&(a=void 0),g===void 0?a:g},i&&!(n&_l))return p;if(l){var v=t.$$legacy;return function(g,y){return arguments.length>0?((!i||!y||v||f)&&l(y?p():g),g):p()}}var E=!1,T=(n&wl?Ss:ki)(()=>(E=!1,p()));r&&m(T);var x=ie;return function(g,y){if(arguments.length>0){const k=y?m(T):i&&r?it(g):g;return C(T,k),E=!0,a!==void 0&&(a=k),g}return nn&&E||x.f&kt?T.v:m(T)}}function Mo(){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 Oi(t,e,n){let s="";if(n){const i=new Date;i.setTime(i.getTime()+n*24*60*60*1e3),s="; expires="+i.toUTCString()}document.cookie=t+"="+(e||"")+s+"; path=/; secure; samesite=strict"}function Pi(t){const e=t+"=",n=document.cookie.split(";");for(let s=0;s<n.length;s++){let i=n[s];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 Oo(){const t="uniqueUserID";let e=Pi(t);return e||(e=Mo(),Oi(t,e,365)),e}function qe(t,e,n={},s={}){const i="https://admin-api.wineater.com/api/widget-events";let r=Pi("uniqueUserID");r||(r=Oo());const o={user_agent:navigator.userAgent,screen_width:window.screen.width,screen_height:window.screen.height,language:navigator.language,platform:navigator.platform},a=new Date().toISOString();let c=Pi("sessionID");c||(c=Mo(),Oi("sessionID",c,1));const u={event_type:t,store_id:e,session_id:c,event_time:a,data:n,meta:{...s,user_id:r},device_info:o,region:navigator.language.split("-")[1]||null,language:navigator.language.split("-")[0]||"en"};return fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)}).then(l=>l.ok?l.json():l.json().then(h=>{throw new Error(h.message||"Failed to track widget event")})).catch(l=>{throw console.error("Widget event tracking error:",l),l})}var Po={},Xc=function(t,e,n,s,i){var r=new Worker(Po[e]||(Po[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 a=o.data,c=a.$e$;if(c){var u=new Error(c[0]);u.code=c[1],u.stack=c[2],i(u,null)}else i(null,a)},r.postMessage(n,s),r},Qe=Uint8Array,We=Uint16Array,Ds=Int32Array,As=new Qe([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]),Ms=new Qe([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]),Li=new Qe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Lo=function(t,e){for(var n=new We(31),s=0;s<31;++s)n[s]=e+=1<<t[s-1];for(var i=new Ds(n[30]),s=1;s<30;++s)for(var r=n[s];r<n[s+1];++r)i[r]=r-n[s]<<5|s;return{b:n,r:i}},Bo=Lo(As,2),Yc=Bo.b,Os=Bo.r;Yc[28]=258,Os[258]=28;for(var Jc=Lo(Ms,0),Bi=Jc.r,Ps=new We(32768),ce=0;ce<32768;++ce){var Ut=(ce&43690)>>1|(ce&21845)<<1;Ut=(Ut&52428)>>2|(Ut&13107)<<2,Ut=(Ut&61680)>>4|(Ut&3855)<<4,Ps[ce]=((Ut&65280)>>8|(Ut&255)<<8)>>1}for(var Nn=function(t,e,n){for(var s=t.length,i=0,r=new We(e);i<s;++i)t[i]&&++r[t[i]-1];var o=new We(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var a;if(n){a=new We(1<<e);var c=15-e;for(i=0;i<s;++i)if(t[i])for(var u=i<<4|t[i],l=e-t[i],h=o[t[i]-1]++<<l,d=h|(1<<l)-1;h<=d;++h)a[Ps[h]>>c]=u}else for(a=new We(s),i=0;i<s;++i)t[i]&&(a[i]=Ps[o[t[i]-1]++]>>15-t[i]);return a},Ht=new Qe(288),ce=0;ce<144;++ce)Ht[ce]=8;for(var ce=144;ce<256;++ce)Ht[ce]=9;for(var ce=256;ce<280;++ce)Ht[ce]=7;for(var ce=280;ce<288;++ce)Ht[ce]=8;for(var ns=new Qe(32),ce=0;ce<32;++ce)ns[ce]=5;var Fo=Nn(Ht,9,0),Wo=Nn(ns,5,0),Fi=function(t){return(t+7)/8|0},zo=function(t,e,n){return(e==null||e<0)&&(e=0),(n==null||n>t.length)&&(n=t.length),new Qe(t.subarray(e,n))},Qc=["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"],jo=function(t,e,n){var s=new Error(e||Qc[t]);if(s.code=t,Error.captureStackTrace&&Error.captureStackTrace(s,jo),!n)throw s;return s},ht=function(t,e,n){n<<=e&7;var s=e/8|0;t[s]|=n,t[s+1]|=n>>8},Rn=function(t,e,n){n<<=e&7;var s=e/8|0;t[s]|=n,t[s+1]|=n>>8,t[s+2]|=n>>16},Ls=function(t,e){for(var n=[],s=0;s<t.length;++s)t[s]&&n.push({s,f:t[s]});var i=n.length,r=n.slice();if(!i)return{t:Ui,l:0};if(i==1){var o=new Qe(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(y,k){return y.f-k.f}),n.push({s:-1,f:25001});var a=n[0],c=n[1],u=0,l=1,h=2;for(n[0]={s:-1,f:a.f+c.f,l:a,r:c};l!=i-1;)a=n[n[u].f<n[h].f?u++:h++],c=n[u!=l&&n[u].f<n[h].f?u++:h++],n[l++]={s:-1,f:a.f+c.f,l:a,r:c};for(var d=r[0].s,s=1;s<i;++s)r[s].s>d&&(d=r[s].s);var f=new We(d+1),p=Bs(n[l-1],f,0);if(p>e){var s=0,v=0,E=p-e,T=1<<E;for(r.sort(function(k,S){return f[S.s]-f[k.s]||k.f-S.f});s<i;++s){var x=r[s].s;if(f[x]>e)v+=T-(1<<p-f[x]),f[x]=e;else break}for(v>>=E;v>0;){var I=r[s].s;f[I]<e?v-=1<<e-f[I]++-1:++s}for(;s>=0&&v;--s){var g=r[s].s;f[g]==e&&(--f[g],++v)}p=e}return{t:new Qe(f),l:p}},Bs=function(t,e,n){return t.s==-1?Math.max(Bs(t.l,e,n+1),Bs(t.r,e,n+1)):e[t.s]=n},Wi=function(t){for(var e=t.length;e&&!t[--e];);for(var n=new We(++e),s=0,i=t[0],r=1,o=function(c){n[s++]=c},a=1;a<=e;++a)if(t[a]==i&&a!=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[a]}return{c:n.subarray(0,s),n:e}},Dn=function(t,e){for(var n=0,s=0;s<e.length;++s)n+=t[s]*e[s];return n},zi=function(t,e,n){var s=n.length,i=Fi(e+2);t[i]=s&255,t[i+1]=s>>8,t[i+2]=t[i]^255,t[i+3]=t[i+1]^255;for(var r=0;r<s;++r)t[i+r+4]=n[r];return(i+4+s)*8},ji=function(t,e,n,s,i,r,o,a,c,u,l){ht(e,l++,n),++i[256];for(var h=Ls(i,15),d=h.t,f=h.l,p=Ls(r,15),v=p.t,E=p.l,T=Wi(d),x=T.c,I=T.n,g=Wi(v),y=g.c,k=g.n,S=new We(19),_=0;_<x.length;++_)++S[x[_]&31];for(var _=0;_<y.length;++_)++S[y[_]&31];for(var w=Ls(S,7),A=w.t,L=w.l,B=19;B>4&&!A[Li[B-1]];--B);var U=u+5<<3,F=Dn(i,Ht)+Dn(r,ns)+o,W=Dn(i,d)+Dn(r,v)+o+14+3*B+Dn(S,A)+2*S[16]+3*S[17]+7*S[18];if(c>=0&&U<=F&&U<=W)return zi(e,l,t.subarray(c,c+u));var K,Z,D,ee;if(ht(e,l,1+(W<F)),l+=2,W<F){K=Nn(d,f,0),Z=d,D=Nn(v,E,0),ee=v;var N=Nn(A,L,0);ht(e,l,I-257),ht(e,l+5,k-1),ht(e,l+10,B-4),l+=14;for(var _=0;_<B;++_)ht(e,l+3*_,A[Li[_]]);l+=3*B;for(var O=[x,y],te=0;te<2;++te)for(var se=O[te],_=0;_<se.length;++_){var le=se[_]&31;ht(e,l,N[le]),l+=A[le],le>15&&(ht(e,l,se[_]>>5&127),l+=se[_]>>12)}}else K=Fo,Z=Ht,D=Wo,ee=ns;for(var _=0;_<a;++_){var V=s[_];if(V>255){var le=V>>18&31;Rn(e,l,K[le+257]),l+=Z[le+257],le>7&&(ht(e,l,V>>23&31),l+=As[le]);var Ie=V&31;Rn(e,l,D[Ie]),l+=ee[Ie],Ie>3&&(Rn(e,l,V>>5&8191),l+=Ms[Ie])}else Rn(e,l,K[V]),l+=Z[V]}return Rn(e,l,K[256]),l+Z[256]},Uo=new Ds([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ui=new Qe(0),Ho=function(t,e,n,s,i,r){var o=r.z||t.length,a=new Qe(s+o+5*(1+Math.ceil(o/7e3))+i),c=a.subarray(s,a.length-i),u=r.l,l=(r.r||0)&7;if(e){l&&(c[0]=r.r>>3);for(var h=Uo[e-1],d=h>>13,f=h&8191,p=(1<<n)-1,v=r.p||new We(32768),E=r.h||new We(p+1),T=Math.ceil(n/3),x=2*T,I=function(ue){return(t[ue]^t[ue+1]<<T^t[ue+2]<<x)&p},g=new Ds(25e3),y=new We(288),k=new We(32),S=0,_=0,w=r.i||0,A=0,L=r.w||0,B=0;w+2<o;++w){var U=I(w),F=w&32767,W=E[U];if(v[F]=W,E[U]=F,L<=w){var K=o-w;if((S>7e3||A>24576)&&(K>423||!u)){l=ji(t,c,0,g,y,k,_,A,B,w-B,l),A=S=_=0,B=w;for(var Z=0;Z<286;++Z)y[Z]=0;for(var Z=0;Z<30;++Z)k[Z]=0}var D=2,ee=0,N=f,O=F-W&32767;if(K>2&&U==I(w-O))for(var te=Math.min(d,K)-1,se=Math.min(32767,w),le=Math.min(258,K);O<=se&&--N&&F!=W;){if(t[w+D]==t[w+D-O]){for(var V=0;V<le&&t[w+V]==t[w+V-O];++V);if(V>D){if(D=V,ee=O,V>te)break;for(var Ie=Math.min(O,V-2),De=0,Z=0;Z<Ie;++Z){var Oe=w-O+Z&32767,Mt=v[Oe],at=Oe-Mt&32767;at>De&&(De=at,W=Oe)}}}F=W,W=v[F],O+=F-W&32767}if(ee){g[A++]=268435456|Os[D]<<18|Bi[ee];var pn=Os[D]&31,R=Bi[ee]&31;_+=As[pn]+Ms[R],++y[257+pn],++k[R],L=w+D,++S}else g[A++]=t[w],++y[t[w]]}}for(w=Math.max(w,L);w<o;++w)g[A++]=t[w],++y[t[w]];l=ji(t,c,u,g,y,k,_,A,B,w-B,l),u||(r.r=l&7|c[l/8|0]<<3,l-=7,r.h=E,r.p=v,r.i=w,r.w=L)}else{for(var w=r.w||0;w<o+u;w+=65535){var G=w+65535;G>=o&&(c[l/8|0]=u,G=o),l=zi(c,l+1,t.subarray(w,G))}r.i=o}return zo(a,0,s+Fi(l)+i)},qo=function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var n=e,s=9;--s;)n=(n&1&&-306674912)^n>>>1;t[e]=n}return t}(),Vo=function(){var t=-1;return{p:function(e){for(var n=t,s=0;s<e.length;++s)n=qo[n&255^e[s]]^n>>>8;t=n},d:function(){return~t}}},Hi=function(t,e,n,s,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new Qe(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return Ho(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,n,s,i)},Zc=function(t,e){var n={};for(var s in t)n[s]=t[s];for(var s in e)n[s]=e[s];return n},Go=function(t,e,n){for(var s=t(),i=t.toString(),r=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<s.length;++o){var a=s[o],c=r[o];if(typeof a=="function"){e+=";"+c+"=";var u=a.toString();if(a.prototype)if(u.indexOf("[native code]")!=-1){var l=u.indexOf(" ",8)+1;e+=u.slice(l,u.indexOf("(",l))}else{e+=u;for(var h in a.prototype)e+=";"+c+".prototype."+h+"="+a.prototype[h].toString()}else e+=u}else n[c]=a}return e},Fs=[],$c=function(t){var e=[];for(var n in t)t[n].buffer&&e.push((t[n]=new t[n].constructor(t[n])).buffer);return e},eu=function(t,e,n,s){if(!Fs[n]){for(var i="",r={},o=t.length-1,a=0;a<o;++a)i=Go(t[a],i,r);Fs[n]={c:Go(t[o],i,r),e:r}}var c=Zc({},Fs[n].e);return Xc(Fs[n].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",n,c,$c(c),s)},tu=function(){return[Qe,We,Ds,As,Ms,Li,Os,Bi,Fo,Ht,Wo,ns,Ps,Uo,Ui,Nn,ht,Rn,Ls,Bs,Wi,Dn,zi,ji,Fi,zo,Ho,Hi,iu,Ko]},nu=function(){return[Xo,Yo,Ws,Vo,qo]},Ko=function(t){return postMessage(t,[t.buffer])},su=function(t,e,n,s,i,r){var o=eu(n,s,i,function(a,c){o.terminate(),r(a,c)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},Ws=function(t,e,n){for(;n;++e)t[e]=n,n>>>=8},Xo=function(t,e){var n=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&&Ws(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),n){t[3]=8;for(var s=0;s<=n.length;++s)t[s+10]=n.charCodeAt(s)}},Yo=function(t){return 10+(t.filename?t.filename.length+1:0)};function iu(t,e){return Hi(t,e||{},0,0)}function ru(t,e,n){return n||(n=e,e={}),typeof n!="function"&&jo(7),su(t,e,[tu,nu,function(){return[Jo]}],function(s){return Ko(Jo(s.data[0],s.data[1]))},2,n)}function Jo(t,e){e||(e={});var n=Vo(),s=t.length;n.p(t);var i=Hi(t,e,Yo(e),8),r=i.length;return Xo(i,e),Ws(i,r-8,n.d()),Ws(i,r-4,s),i}var ou=typeof TextDecoder<"u"&&new TextDecoder,au=0;try{ou.decode(Ui,{stream:!0}),au=1}catch{}class Qo{constructor(){this.idx=1,this.backDict={}}getKey(e){let n=!1;return this.backDict[e]||(n=!0,this.backDict[e]=this.idx++),[this.backDict[e],n]}}class lu{constructor(e){this.dict=new Qo,this.app=e.app,this.isDictDisabled=e.isDictDisabled}sendSetAttribute(e,n,s){if(this.isDictDisabled){const i=[12,e,n,s];return this.app.send(i)}else{const i=[51,e,this.applyDict(n),this.applyDict(s)];return this.app.send(i)}}applyDict(e){const[n,s]=this.dict.getKey(e);return s&&this.app.send([50,n,e]),n}clear(){this.dict=new Qo}}class cu{constructor(e,n){this.app=e,this.startParams=n,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=s=>{if(s.value.length){const i=uu(s);if(i.type)return i}},this.durationInt=null}setConditions(e){this.conditions=e}async fetchConditions(e,n){try{const s=await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${e}`,{method:"GET",headers:{Authorization:`Bearer ${n}`}}),{conditions:i}=await s.json(),r=[];i.forEach(o=>{o.filters.forEach(c=>{let u;c.type==="fetch"?(u={type:"network_request",subConditions:[],name:o.name},c.filters.forEach(l=>{const h=this.createConditionFromFilter(l);h&&u.subConditions.push(h)})):u=this.createConditionFromFilter(c),u&&(u.type==="session_duration"&&this.processDuration(u.value[0],o.name),r.push({...u,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(n){this.app.debug.error(n)}}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 n=this.conditions.filter(s=>s.type==="feature_flag");n.length&&n.forEach(s=>{const i=An[s.operator];i&&e.find(r=>i(r.key,s.value))&&this.trigger(s.name)})}processDuration(e,n){this.durationInt=setInterval(()=>{performance.now()>e&&this.trigger(n)},1e3),this.app.attachStopCallback(()=>{this.durationInt&&clearInterval(this.durationInt)})}networkRequest(e){const n=this.conditions.filter(s=>s.type==="network_request");n.length&&n.forEach(s=>{const i=s.subConditions.filter(r=>r.operator!=="isAny");i.length?i.every(o=>{let a;switch(o.key){case"url":a=e[3];break;case"status":a=e[6];break;case"method":a=e[2];break;case"duration":a=e[8];break}const c=An[o.operator];if(c&&c(a,o.value))return!0})&&this.trigger(s.name):i.length===0&&s.subConditions.length&&this.trigger(s.name)})}customEvent(e){const n=this.conditions.filter(s=>s.type==="custom_event");n.length&&n.forEach(s=>{const i=An[s.operator];i&&(i(e[1],s.value)||i(e[2],s.value))&&this.trigger(s.name)})}clickEvent(e){const n=this.conditions.filter(s=>s.type==="click");n.length&&n.forEach(s=>{const i=An[s.operator];i&&(i(e[3],s.value)||i(e[4],s.value))&&this.trigger(s.name)})}pageLocationEvent(e){const n=this.conditions.filter(s=>s.type==="visited_url");n&&n.forEach(s=>{const i=An[s.operator];i&&i(e[1],s.value)&&this.trigger(s.name)})}jsExceptionEvent(e){const n=[e[1],e[2],e[3]],s=this.conditions.filter(i=>i.type==="exception");s&&s.forEach(i=>{const r=An[i.operator];r&&n.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const An={is:(t,e)=>e.some(n=>t.includes(n)),isAny:()=>!0,isNot:(t,e)=>!e.some(n=>t.includes(n)),contains:(t,e)=>e.some(n=>t.includes(n)),notContains:(t,e)=>!e.some(n=>t.includes(n)),startsWith:(t,e)=>e.some(n=>t.startsWith(n)),endsWith:(t,e)=>e.some(n=>t.endsWith(n)),greaterThan:(t,e)=>t>e,greaterOrEqual:(t,e)=>t>=e,lessOrEqual:(t,e)=>t<=e,lessThan:(t,e)=>t<e},uu=t=>{const e={on:"is",notOn:"isNot",">":"greaterThan","<":"lessThan","=":"is","<=":"lessOrEqual",">=":"greaterOrEqual"},n=i=>{if(Object.keys(e).includes(i))return e[i]};let s={type:"",operator:"",value:t.value,key:""};switch(t.type){case"click":s={type:"click",operator:n(t.operator),value:t.value,key:""};break;case"location":s={type:"visited_url",operator:t.operator,value:t.value,key:""};break;case"custom":s={type:"custom_event",operator:t.operator,value:t.value,key:""};break;case"metadata":s={type:t.source==="featureFlag"?"feature_flag":t.type,operator:t.operator,value:t.value,key:""};break;case"error":s={type:"exception",operator:t.operator,value:t.value,key:""};break;case"duration":s={type:"session_duration",value:t.value[0],key:""};break;case"fetchUrl":s={type:"network_request",key:"url",operator:t.operator,value:t.value};break;case"fetchStatusCode":s={type:"network_request",key:"status",operator:n(t.operator),value:t.value};break;case"fetchMethod":s={type:"network_request",key:"method",operator:n(t.operator),value:t.value};break;case"fetchDuration":s={type:"network_request",key:"duration",operator:n(t.operator),value:t.value};break}return s};class hu{constructor(e){this.app=e,this.flags=[],this.storageKey="__openreplay_flags";const n=this.app.sessionStorage.getItem(this.storageKey);if(n){const s=n.split(";").filter(Boolean);this.flags=s.map(i=>JSON.parse(i))}}getFeatureFlag(e){return this.flags.find(n=>n.key===e)}isFlagEnabled(e){return this.flags.findIndex(n=>n.key===e)!==-1}onFlagsLoad(e){this.onFlagsCb=e}async reloadFlags(e){const n=this.app.sessionStorage.getItem(this.storageKey),s={};n&&n.split(";").filter(Boolean).forEach(l=>{const h=JSON.parse(l);s[h.key]={key:h.key,value:h.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:s},a=e??this.app.session.getSessionToken(),c=await fetch(this.app.options.ingestPoint+"/v1/web/feature-flags",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(o)});if(c.status===200){const u=await c.json();return this.handleFlags(u.flags)}}handleFlags(e){var r;const n=[];e.forEach(o=>{o.is_persist&&n.push(o)});let s="";return this.diffPersist(n).forEach(o=>{s+=`${JSON.stringify(o)};`}),this.app.sessionStorage.setItem(this.storageKey,s),this.flags=e,(r=this.onFlagsCb)==null?void 0:r.call(this,e)}clearPersistFlags(){this.app.sessionStorage.removeItem(this.storageKey)}diffPersist(e){const n=this.app.sessionStorage.getItem(this.storageKey);if(!n)return e;const i=n.split(";").filter(Boolean).map(r=>JSON.parse(r));return e.filter(r=>i.findIndex(o=>o.key===r.key)===-1)}}const Zo={htmlmasked:"hidden",masked:"obscured"},dt=!(typeof window>"u"),du=dt&&navigator.userAgent.match(/firefox|fxios/i),fu=1e5;let qi=dt?Date.now()-performance.now():0;function Vi(){qi=Date.now()-performance.now()}function Mn(){return qi}const rt=dt&&performance.now?()=>Math.round(performance.now()+qi):()=>Date.now(),Gi="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function $o(t){return t.trim().replace(/\s+/g," ")}function ea(t){return t.startsWith("https://")||t.startsWith("http://")}const zs="https://docs.openreplay.com",ta={};function qt(t,e,n="/"){ta[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${zs}${n} for more information.`),ta[t]=!0)}function Ki(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&qt('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function rn(t,e){const n=`data-openreplay-${e}`;return t.hasAttribute(n)?(Zo[e]&&qt(`"${n}" attribute`,`"${Zo[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function pu(t){try{return!!t.contentDocument}catch{return!1}}function na(t){try{return t instanceof HTMLIFrameElement?t.contentDocument:t instanceof Window?t.document:t instanceof Document?t.defaultView:"nodeType"in t?t.nodeType:"addEventListener"in t&&t.addEventListener,!0}catch(e){if(e instanceof DOMException&&e.name==="SecurityError")return!1}return!0}function sa(t){return t.toString(16).padStart(2,"0")}function gu(t){const e=new Uint8Array(t/2),n=window.crypto||window.msCrypto;return n?(n.getRandomValues(e),Array.from(e,sa).join("")):Array.from({length:t},()=>sa(Math.floor(Math.random()*16))).join("")}function ia(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function Xi(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function ra(t,e){if(e)return new MutationObserver(t);{const n=Xi("MutationObserver");return new window[n](t)}}function oa(t,e,n,s,i){if(!na(t))return;let r="addEventListener";i||(r=Xi("addEventListener"));try{t[r]?t[r](e,n,s):t.addEventListener(e,n,s)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}function aa(t,e,n,s,i){if(!na(t))return;let r="removeEventListener";i||(r=Xi("removeEventListener"));try{t[r]?t[r](e,n,s):t.removeEventListener(e,n,s)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}class mu{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 n=this.taskQueue.shift();Promise.resolve(n()).then(()=>{requestAnimationFrame(()=>e())})};e()}}const vu=new mu;function bu(t){vu.addTask(t)}function la(t,e){const n={...t};for(const s in e)if(e.hasOwnProperty(s)){const i=e[s],r=t[s];typeof i=="object"&&!Array.isArray(i)&&i!==null?n[s]=la(r||{},i):n[s]=i}return n}function on(t){return[0,t]}function wu(t,e){return[5,t,e]}function yu(t,e){return[6,t,e]}function _u(){return[7]}function Su(t,e,n,s,i){return[8,t,e,n,s,i]}function ku(t,e,n){return[9,t,e,n]}function Tu(t,e,n){return[10,t,e,n]}function xu(t){return[11,t]}function ca(t,e){return[13,t,e]}function Eu(t,e){return[14,t,e]}function Iu(t,e,n){return[16,t,e,n]}function Cu(t,e,n){return[18,t,e,n]}function Nu(t,e){return[19,t,e]}function Ru(t,e){return[20,t,e]}function Du(t,e){return[22,t,e]}function Au(t,e,n,s,i,r,o,a,c){return[23,t,e,n,s,i,r,o,a,c]}function Mu(t,e,n){return[24,t,e,n]}function Ou(t,e){return[27,t,e]}function Pu(t){return[28,t]}function Lu(t){return[29,t]}function ua(t,e){return[30,t,e]}function Bu(t,e,n,s){return[49,t,e,n,s]}function Fu(t,e){return[54,t,e]}function Wu(t){return[55,t]}function ha(t,e,n,s){return[57,t,e,n,s]}function da(t){return[58,t]}function Yi(t,e,n,s){return[60,t,e,n,s]}function zu(t,e,n){return[61,t,e,n]}function ju(t,e){return[63,t,e]}function Uu(t,e){return[64,t,e]}function Hu(t,e,n,s,i,r){return[68,t,e,n,s,i,r]}function Ji(t,e){return[70,t,e]}function fa(t,e,n){return[71,t,e,n]}function Qi(t,e,n,s){return[73,t,e,n,s]}function pa(t,e){return[75,t,e]}function ga(t,e){return[76,t,e]}function qu(t,e){return[77,t,e]}function Zi(t,e,n,s){return[78,t,e,n,s]}function js(t,e,n,s,i,r,o,a,c){return[83,t,e,n,s,i,r,o,a,c]}function Vu(t,e,n,s,i,r){return[84,t,e,n,s,i,r]}function Gu(t,e,n,s,i,r){return[112,t,e,n,s,i,r]}function ma(t,e,n){return[113,t,e,n]}function Ku(t){return[114,t]}function va(t){return[115,t]}function ba(t,e,n,s,i,r,o,a,c,u){return[116,t,e,n,s,i,r,o,a,c,u]}function Us(t){return[117,t]}function an(t){return[118,t]}function Xu(t,e){return[119,t,e]}function Yu(t){return[120,t]}function Ju(t,e,n,s){return[122,t,e,n,s]}const $i=dt&&"performance"in window&&"memory"in performance?performance:{memory:{}},er=dt?(navigator.deviceMemory||0)*1024:0,tr=$i.memory.jsHeapSizeLimit||0;function Qu(t,e){if(!Object.assign({capturePerformance:!0},e).capturePerformance)return;let s,i;const r=()=>{s===void 0||s===-1||(s++,requestAnimationFrame(r))};t.ticker.attach(()=>{i===void 0||i===-1||i++},0,!1);const o=()=>{s===void 0||i===void 0||(t.send(Bu(s,i,$i.memory.totalJSHeapSize||0,$i.memory.usedJSHeapSize||0)),i=s=document.hidden?-1:0)};t.attachStartCallback(()=>{i=s=-1,o(),r()}),t.attachStopCallback(()=>{i=s=void 0}),t.ticker.attach(o,40,!1),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",o,!1,!1)}const wa="__or__watched_tags__";class Zu{constructor(e){this.intervals={},this.tags=[],this.sessionStorage=e.sessionStorage,this.errLog=e.errLog,this.onTag=e.onTag;const n=JSON.parse(e.sessionStorage.getItem(wa)??"[]");this.setTags(n),this.observer=new IntersectionObserver(s=>{s.forEach(i=>{if(i.isIntersecting&&i.target){const r=i.target.__or_watcher_tagname;r&&this.onTagRendered(r),this.observer.unobserve(i.target)}})})}async fetchTags(e,n){return fetch(`${e}/v1/web/tags`,{method:"GET",headers:{Authorization:`Bearer ${n}`}}).then(s=>s.json()).then(({tags:s})=>{if(s&&s.length){this.setTags(s);const i=JSON.stringify(s);this.sessionStorage.setItem(wa,i||"")}}).catch(s=>this.errLog(s))}setTags(e){this.tags=e,this.intervals={},e.forEach(n=>{this.intervals[n.id]=setInterval(()=>{const s=document.querySelectorAll(n.selector);if(s.length>0){const i=s[0];i.__or_watcher_tagname=n.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 $u={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"'},eh={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},Hs={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"},th={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},nh={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"},sh={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"},ya={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},On={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},ih={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"},Pn={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"},rh={...Pn,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},_a={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},Sa={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"},ka={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},oh={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},Ta={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},ah={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"},xa={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"},Ea={fontWeight:"bold"},lh={fontSize:"13px",lineHeight:"auto"},Ia={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},ch={...Ia,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},uh={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},hh={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},Ca={Standard:{width:1280,height:720}};class dh{constructor(e){this.app=e,this.mediaRecorder=null,this.recordedChunks=[],this.stream=null,this.recStartTs=null}async startRecording(e,n,s,i){this.recStartTs=this.app.timestamp();const r=n;try{this.stream=await navigator.mediaDevices.getUserMedia({video:i?{...r,frameRate:{ideal:e}}:!1,audio:s}),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 n=new Blob(this.recordedChunks,{type:"video/webm"});e(n)},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(n=>{if(n.ok)return n.json();throw new Error("Failed to get upload url")}).then(({url:n})=>fetch(n,{method:"PUT",headers:{"Content-Type":"video/webm"},body:e})).catch(console.error).finally(()=>{this.discard()})}async saveToFile(e="recorded-video.webm"){const n=await this.stopRecording(),s=URL.createObjectURL(n),i=document.createElement("a");i.style.display="none",i.href=s,i.download=e,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(s),document.body.removeChild(i)}discard(){var e,n;(e=this.mediaRecorder)==null||e.stop(),(n=this.stream)==null||n.getTracks().forEach(s=>s.stop())}}function fh(t,e){e.onmousedown=function(n){const s=t.getBoundingClientRect(),i=n.clientX-s.left,r=n.clientY-s.top;t.style.position="fixed",t.style.zIndex=99999999999999,o(n.pageX,n.pageY);function o(u,l){let h=u-i,d=l-r;h<=5&&(h=5),d<=5&&(d=5),h>=window.innerWidth-s.width&&(h=window.innerWidth-s.width),d>=window.innerHeight-s.height&&(d=window.innerHeight-s.height),t.style.left=`${h}px`,t.style.top=`${d}px`}function a(u){o(u.pageX,u.pageY)}document.addEventListener("mousemove",a);const c=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c)},e.ondragstart=function(){return!1}}function ph(){const t=document.createElement("div");t.className="grid";for(let e=0;e<16;e++){const n=document.createElement("div");Object.assign(n.style,{width:"2px",height:"2px",borderRadius:"10px",background:"white"}),n.className="cell",t.appendChild(n)}return Object.assign(t.style,{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gridTemplateRows:"repeat(4, 1fr)",gap:"2px",cursor:"grab"}),t}function gh(){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 mh(){const t=document.createElement("style");t.type="text/css",t.innerText=`@keyframes spin {
|
|
1
|
+
(function(se,ie){typeof exports=="object"&&typeof module<"u"?module.exports=ie():typeof define=="function"&&define.amd?define(ie):(se=typeof globalThis<"u"?globalThis:se||self,se.WineaterChatbot=ie())})(this,function(){"use strict";var zp=Object.defineProperty;var Nl=se=>{throw TypeError(se)};var jp=(se,ie,ye)=>ie in se?zp(se,ie,{enumerable:!0,configurable:!0,writable:!0,value:ye}):se[ie]=ye;var St=(se,ie,ye)=>jp(se,typeof ie!="symbol"?ie+"":ie,ye),Pr=(se,ie,ye)=>ie.has(se)||Nl("Cannot "+ye);var w=(se,ie,ye)=>(Pr(se,ie,"read from private field"),ye?ye.call(se):ie.get(se)),G=(se,ie,ye)=>ie.has(se)?Nl("Cannot add the same private member more than once"):ie instanceof WeakSet?ie.add(se):ie.set(se,ye),j=(se,ie,ye,_s)=>(Pr(se,ie,"write to private field"),_s?_s.call(se,ye):ie.set(se,ye),ye),xe=(se,ie,ye)=>(Pr(se,ie,"access private method"),ye);var _l,Un,Hn,vn,qn,ms,Vn,Qt,mt,Gn,He,Lr,Br,Fr,Rl,tt,Ar,vt,wn,Be,wt,qe,ct,Rt,bn,Zt,Kn,Xn,Yn,Dt,li,Se,Up,Hp,qp,Wr,gi,mi,zr,kl,ut,bt,Ve,yn,vs,ws,ci,$t,At,Jn,Tl,xl;const se="5";typeof window<"u"&&((_l=window.__svelte??(window.__svelte={})).v??(_l.v=new Set)).add(se);const ie=1,ye=2,_s=16,Dl=1,Al=2,Ml=4,Ol=8,Pl=16,Ll=1,Bl=2,Ee=Symbol(),jr="http://www.w3.org/1999/xhtml",vi=!1;var wi=Array.isArray,Fl=Array.prototype.indexOf,Sn=Array.prototype.includes,ks=Array.from,Wl=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,zl=Object.getOwnPropertyDescriptors,jl=Object.prototype,Ul=Array.prototype,Ur=Object.getPrototypeOf,Hr=Object.isExtensible;const Hl=()=>{};function ql(t){for(var e=0;e<t.length;e++)t[e]()}function qr(){var t,e,n=new Promise((s,i)=>{t=s,e=i});return{promise:n,resolve:t,reject:e}}const Ie=2,Zn=4,Ts=8,Vr=1<<24,_t=16,nt=32,en=64,bi=128,Xe=512,Te=1024,Ce=2048,st=4096,Fe=8192,kt=16384,tn=32768,nn=65536,Gr=1<<17,Kr=1<<18,kn=1<<19,Vl=1<<20,Lt=1<<25,sn=65536,yi=1<<21,Si=1<<22,Bt=1<<23,rn=Symbol("$state"),Gl=Symbol("legacy props"),Kl=Symbol(""),on=new class extends Error{constructor(){super(...arguments);St(this,"name","StaleReactionError");St(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Xl(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Yl(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Jl(t,e,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ql(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Zl(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function $l(t){throw new Error("https://svelte.dev/e/effect_orphan")}function ec(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function tc(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function nc(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function sc(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ic(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function rc(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function oc(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ac(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Xr(t){return t===this.v}function lc(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Yr(t){return!lc(t,this.v)}let Tn=!1,cc=!1;function uc(){Tn=!0}let ve=null;function xn(t){ve=t}function Ft(t,e=!1,n){ve={p:ve,i:!1,c:null,e:null,s:t,x:null,l:Tn&&!e?{s:null,u:null,$:[]}:null}}function Wt(t){var e=ve,n=e.e;if(n!==null){e.e=null;for(var s of n)bo(s)}return t!==void 0&&(e.x=t),e.i=!0,ve=e.p,t??{}}function $n(){return!Tn||ve!==null&&ve.l===null}let an=[];function Jr(){var t=an;an=[],ql(t)}function zt(t){if(an.length===0&&!es){var e=an;queueMicrotask(()=>{e===an&&Jr()})}an.push(t)}function hc(){for(;an.length>0;)Jr()}function Qr(t){var e=$;if(e===null)return K.f|=Bt,t;if(!(e.f&tn)&&!(e.f&Zn))throw t;jt(t,e)}function jt(t,e){for(;e!==null;){if(e.f&bi){if(!(e.f&tn))throw t;try{e.b.error(t);return}catch(n){t=n}}e=e.parent}throw t}const dc=-7169;function fe(t,e){t.f=t.f&dc|e}function _i(t){t.f&Xe||t.deps===null?fe(t,Te):fe(t,st)}function Zr(t){if(t!==null)for(const e of t)!(e.f&Ie)||!(e.f&sn)||(e.f^=sn,Zr(e.deps))}function $r(t,e,n){t.f&Ce?e.add(t):t.f&st&&n.add(t),Zr(t.deps),fe(t,Te)}const xs=new Set;let U=null,ki=null,Ne=null,Me=[],Es=null,Ti=!1,es=!1;const Dr=class Dr{constructor(){G(this,He);St(this,"current",new Map);St(this,"previous",new Map);G(this,Un,new Set);G(this,Hn,new Set);G(this,vn,0);G(this,qn,0);G(this,ms,null);G(this,Vn,new Set);G(this,Qt,new Set);G(this,mt,new Map);St(this,"is_fork",!1);G(this,Gn,!1)}skip_effect(e){w(this,mt).has(e)||w(this,mt).set(e,{d:[],m:[]})}unskip_effect(e){var n=w(this,mt).get(e);if(n){w(this,mt).delete(e);for(var s of n.d)fe(s,Ce),rt(s);for(s of n.m)fe(s,st),rt(s)}}process(e){var i;Me=[],this.apply();var n=[],s=[];for(const r of e)xe(this,He,Br).call(this,r,n,s);if(xe(this,He,Lr).call(this)){xe(this,He,Fr).call(this,s),xe(this,He,Fr).call(this,n);for(const[r,o]of w(this,mt))io(r,o)}else{for(const r of w(this,Un))r();w(this,Un).clear(),w(this,vn)===0&&xe(this,He,Rl).call(this),ki=this,U=null,to(s),to(n),w(this,Vn).clear(),w(this,Qt).clear(),ki=null,(i=w(this,ms))==null||i.resolve()}Ne=null}capture(e,n){n!==Ee&&!this.previous.has(e)&&this.previous.set(e,n),e.f&Bt||(this.current.set(e,e.v),Ne==null||Ne.set(e,e.v))}activate(){U=this,this.apply()}deactivate(){U===this&&(U=null,Ne=null)}flush(){if(this.activate(),Me.length>0){if(eo(),U!==null&&U!==this)return}else w(this,vn)===0&&this.process([]);this.deactivate()}discard(){for(const e of w(this,Hn))e(this);w(this,Hn).clear()}increment(e){j(this,vn,w(this,vn)+1),e&&j(this,qn,w(this,qn)+1)}decrement(e){j(this,vn,w(this,vn)-1),e&&j(this,qn,w(this,qn)-1),!w(this,Gn)&&(j(this,Gn,!0),zt(()=>{j(this,Gn,!1),xe(this,He,Lr).call(this)?Me.length>0&&this.flush():this.revive()}))}revive(){for(const e of w(this,Vn))w(this,Qt).delete(e),fe(e,Ce),rt(e);for(const e of w(this,Qt))fe(e,st),rt(e);this.flush()}oncommit(e){w(this,Un).add(e)}ondiscard(e){w(this,Hn).add(e)}settled(){return(w(this,ms)??j(this,ms,qr())).promise}static ensure(){if(U===null){const e=U=new Dr;xs.add(U),es||zt(()=>{U===e&&e.flush()})}return U}apply(){}};Un=new WeakMap,Hn=new WeakMap,vn=new WeakMap,qn=new WeakMap,ms=new WeakMap,Vn=new WeakMap,Qt=new WeakMap,mt=new WeakMap,Gn=new WeakMap,He=new WeakSet,Lr=function(){return this.is_fork||w(this,qn)>0},Br=function(e,n,s){e.f^=Te;for(var i=e.first;i!==null;){var r=i.f,o=(r&(nt|en))!==0,a=o&&(r&Te)!==0,c=a||(r&Fe)!==0||w(this,mt).has(i);if(!c&&i.fn!==null){o?i.f^=Te:r&Zn?n.push(i):is(i)&&(r&_t&&w(this,Qt).add(i),Cn(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var l=i.next;if(l!==null){i=l;break}i=i.parent}}},Fr=function(e){for(var n=0;n<e.length;n+=1)$r(e[n],w(this,Vn),w(this,Qt))},Rl=function(){var i;if(xs.size>1){this.previous.clear();var e=Ne,n=!0;for(const r of xs){if(r===this){n=!1;continue}const o=[];for(const[c,u]of this.current){if(r.current.has(c))if(n&&u!==r.current.get(c))r.current.set(c,u);else continue;o.push(c)}if(o.length===0)continue;const a=[...r.current.keys()].filter(c=>!this.current.has(c));if(a.length>0){var s=Me;Me=[];const c=new Set,u=new Map;for(const l of o)no(l,a,c,u);if(Me.length>0){U=r,r.apply();for(const l of Me)xe(i=r,He,Br).call(i,l,[],[]);r.deactivate()}Me=s}}U=null,Ne=e}w(this,mt).clear(),xs.delete(this)};let Ut=Dr;function fc(t){var e=es;es=!0;try{for(var n;;){if(hc(),Me.length===0&&(U==null||U.flush(),Me.length===0))return Es=null,n;eo()}}finally{es=e}}function eo(){Ti=!0;var t=null;try{for(var e=0;Me.length>0;){var n=Ut.ensure();if(e++>1e3){var s,i;pc()}n.process(Me),Ht.clear()}}finally{Me=[],Ti=!1,Es=null}}function pc(){try{ec()}catch(t){jt(t,Es)}}let it=null;function to(t){var e=t.length;if(e!==0){for(var n=0;n<e;){var s=t[n++];if(!(s.f&(kt|Fe))&&is(s)&&(it=new Set,Cn(s),s.deps===null&&s.first===null&&s.nodes===null&&s.teardown===null&&s.ac===null&&_o(s),(it==null?void 0:it.size)>0)){Ht.clear();for(const i of it){if(i.f&(kt|Fe))continue;const r=[i];let o=i.parent;for(;o!==null;)it.has(o)&&(it.delete(o),r.push(o)),o=o.parent;for(let a=r.length-1;a>=0;a--){const c=r[a];c.f&(kt|Fe)||Cn(c)}}it.clear()}}it=null}}function no(t,e,n,s){if(!n.has(t)&&(n.add(t),t.reactions!==null))for(const i of t.reactions){const r=i.f;r&Ie?no(i,e,n,s):r&(Si|_t)&&!(r&Ce)&&so(i,e,s)&&(fe(i,Ce),rt(i))}}function so(t,e,n){const s=n.get(t);if(s!==void 0)return s;if(t.deps!==null)for(const i of t.deps){if(Sn.call(e,i))return!0;if(i.f&Ie&&so(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function rt(t){var e=Es=t,n=e.b;if(n!=null&&n.is_pending&&t.f&(Zn|Ts|Vr)&&!(t.f&tn)){n.defer_effect(t);return}for(;e.parent!==null;){e=e.parent;var s=e.f;if(Ti&&e===$&&s&_t&&!(s&Kr)&&s&tn)return;if(s&(en|nt)){if(!(s&Te))return;e.f^=Te}}Me.push(e)}function io(t,e){if(!(t.f&nt&&t.f&Te)){t.f&Ce?e.d.push(t):t.f&st&&e.m.push(t),fe(t,Te);for(var n=t.first;n!==null;)io(n,e),n=n.next}}function gc(t){let e=0,n=ln(0),s;return()=>{Ni()&&(v(n),Di(()=>(e===0&&(s=os(()=>t(()=>ts(n)))),e+=1,()=>{zt(()=>{e-=1,e===0&&(s==null||s(),s=void 0,ts(n))})})))}}var mc=nn|kn;function vc(t,e,n,s){new wc(t,e,n,s)}class wc{constructor(e,n,s,i){G(this,Se);St(this,"parent");St(this,"is_pending",!1);St(this,"transform_error");G(this,tt);G(this,Ar,null);G(this,vt);G(this,wn);G(this,Be);G(this,wt,null);G(this,qe,null);G(this,ct,null);G(this,Rt,null);G(this,bn,0);G(this,Zt,0);G(this,Kn,!1);G(this,Xn,new Set);G(this,Yn,new Set);G(this,Dt,null);G(this,li,gc(()=>(j(this,Dt,ln(w(this,bn))),()=>{j(this,Dt,null)})));var r;j(this,tt,e),j(this,vt,n),j(this,wn,o=>{var a=$;a.b=this,a.f|=bi,s(o)}),this.parent=$.b,this.transform_error=i??((r=this.parent)==null?void 0:r.transform_error)??(o=>o),j(this,Be,Ns(()=>{xe(this,Se,Wr).call(this)},mc))}defer_effect(e){$r(e,w(this,Xn),w(this,Yn))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!w(this,vt).pending}update_pending_count(e){xe(this,Se,zr).call(this,e),j(this,bn,w(this,bn)+e),!(!w(this,Dt)||w(this,Kn))&&(j(this,Kn,!0),zt(()=>{j(this,Kn,!1),w(this,Dt)&&En(w(this,Dt),w(this,bn))}))}get_effect_pending(){return w(this,li).call(this),v(w(this,Dt))}error(e){var n=w(this,vt).onerror;let s=w(this,vt).failed;if(!n&&!s)throw e;w(this,wt)&&(Oe(w(this,wt)),j(this,wt,null)),w(this,qe)&&(Oe(w(this,qe)),j(this,qe,null)),w(this,ct)&&(Oe(w(this,ct)),j(this,ct,null));var i=!1,r=!1;const o=()=>{if(i){ac();return}i=!0,r&&rc(),w(this,ct)!==null&&cn(w(this,ct),()=>{j(this,ct,null)}),xe(this,Se,mi).call(this,()=>{Ut.ensure(),xe(this,Se,Wr).call(this)})},a=c=>{try{r=!0,n==null||n(c,o),r=!1}catch(u){jt(u,w(this,Be)&&w(this,Be).parent)}s&&j(this,ct,xe(this,Se,mi).call(this,()=>{Ut.ensure();try{return Ye(()=>{var u=$;u.b=this,u.f|=bi,s(w(this,tt),()=>c,()=>o)})}catch(u){return jt(u,w(this,Be).parent),null}}))};zt(()=>{var c;try{c=this.transform_error(e)}catch(u){jt(u,w(this,Be)&&w(this,Be).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(a,u=>jt(u,w(this,Be)&&w(this,Be).parent)):a(c)})}}tt=new WeakMap,Ar=new WeakMap,vt=new WeakMap,wn=new WeakMap,Be=new WeakMap,wt=new WeakMap,qe=new WeakMap,ct=new WeakMap,Rt=new WeakMap,bn=new WeakMap,Zt=new WeakMap,Kn=new WeakMap,Xn=new WeakMap,Yn=new WeakMap,Dt=new WeakMap,li=new WeakMap,Se=new WeakSet,Up=function(){try{j(this,wt,Ye(()=>w(this,wn).call(this,w(this,tt))))}catch(e){this.error(e)}},Hp=function(e){const n=w(this,vt).failed;n&&j(this,ct,Ye(()=>{n(w(this,tt),()=>e,()=>()=>{})}))},qp=function(){const e=w(this,vt).pending;e&&(this.is_pending=!0,j(this,qe,Ye(()=>e(w(this,tt)))),zt(()=>{var n=j(this,Rt,document.createDocumentFragment()),s=Tt();n.append(s),j(this,wt,xe(this,Se,mi).call(this,()=>(Ut.ensure(),Ye(()=>w(this,wn).call(this,s))))),w(this,Zt)===0&&(w(this,tt).before(n),j(this,Rt,null),cn(w(this,qe),()=>{j(this,qe,null)}),xe(this,Se,gi).call(this))}))},Wr=function(){try{if(this.is_pending=this.has_pending_snippet(),j(this,Zt,0),j(this,bn,0),j(this,wt,Ye(()=>{w(this,wn).call(this,w(this,tt))})),w(this,Zt)>0){var e=j(this,Rt,document.createDocumentFragment());xo(w(this,wt),e);const n=w(this,vt).pending;j(this,qe,Ye(()=>n(w(this,tt))))}else xe(this,Se,gi).call(this)}catch(n){this.error(n)}},gi=function(){this.is_pending=!1;for(const e of w(this,Xn))fe(e,Ce),rt(e);for(const e of w(this,Yn))fe(e,st),rt(e);w(this,Xn).clear(),w(this,Yn).clear()},mi=function(e){var n=$,s=K,i=ve;ht(w(this,Be)),Je(w(this,Be)),xn(w(this,Be).ctx);try{return e()}catch(r){return Qr(r),null}finally{ht(n),Je(s),xn(i)}},zr=function(e){var n;if(!this.has_pending_snippet()){this.parent&&xe(n=this.parent,Se,zr).call(n,e);return}j(this,Zt,w(this,Zt)+e),w(this,Zt)===0&&(xe(this,Se,gi).call(this),w(this,qe)&&cn(w(this,qe),()=>{j(this,qe,null)}),w(this,Rt)&&(w(this,tt).before(w(this,Rt)),j(this,Rt,null)))};function bc(t,e,n,s){const i=$n()?Is:Ei;var r=t.filter(h=>!h.settled);if(n.length===0&&r.length===0){s(e.map(i));return}var o=$,a=yc(),c=r.length===1?r[0].promise:r.length>1?Promise.all(r.map(h=>h.promise)):null;function u(h){a();try{s(h)}catch(d){o.f&kt||jt(d,o)}xi()}if(n.length===0){c.then(()=>u(e.map(i)));return}function l(){a(),Promise.all(n.map(h=>_c(h))).then(h=>u([...e.map(i),...h])).catch(h=>jt(h,o))}c?c.then(l):l()}function yc(){var t=$,e=K,n=ve,s=U;return function(r=!0){ht(t),Je(e),xn(n),r&&(s==null||s.activate())}}function xi(t=!0){ht(null),Je(null),xn(null),t&&(U==null||U.deactivate())}function Sc(){var t=$.b,e=U,n=t.is_rendered();return t.update_pending_count(1),e.increment(n),()=>{t.update_pending_count(-1),e.decrement(n)}}function Is(t){var e=Ie|Ce,n=K!==null&&K.f&Ie?K:null;return $!==null&&($.f|=kn),{ctx:ve,deps:null,effects:null,equals:Xr,f:e,fn:t,reactions:null,rv:0,v:Ee,wv:0,parent:n??$,ac:null}}function _c(t,e,n){$===null&&Yl();var i=void 0,r=ln(Ee),o=!K,a=new Map;return Lc(()=>{var d;var c=qr();i=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).finally(xi)}catch(p){c.reject(p),xi()}var u=U;if(o){var l=Sc();(d=a.get(u))==null||d.reject(on),a.delete(u),a.set(u,c)}const h=(p,f=void 0)=>{if(u.activate(),f)f!==on&&(r.f|=Bt,En(r,f));else{r.f&Bt&&(r.f^=Bt),En(r,p);for(const[m,S]of a){if(a.delete(m),m===u)break;S.reject(on)}}l&&l()};c.promise.then(h,p=>h(null,p||"unknown"))}),Ri(()=>{for(const c of a.values())c.reject(on)}),new Promise(c=>{function u(l){function h(){l===i?c(r):u(i)}l.then(h,h)}u(i)})}function oe(t){const e=Is(t);return Io(e),e}function Ei(t){const e=Is(t);return e.equals=Yr,e}function kc(t){var e=t.effects;if(e!==null){t.effects=null;for(var n=0;n<e.length;n+=1)Oe(e[n])}}function Tc(t){for(var e=t.parent;e!==null;){if(!(e.f&Ie))return e.f&kt?null:e;e=e.parent}return null}function Ii(t){var e,n=$;ht(Tc(t));try{t.f&=~sn,kc(t),e=Ao(t)}finally{ht(n)}return e}function ro(t){var e=Ii(t);if(!t.equals(e)&&(t.wv=Ro(),(!(U!=null&&U.is_fork)||t.deps===null)&&(t.v=e,t.deps===null))){fe(t,Te);return}qt||(Ne!==null?(Ni()||U!=null&&U.is_fork)&&Ne.set(t,e):_i(t))}function xc(t){var e,n;if(t.effects!==null)for(const s of t.effects)(s.teardown||s.ac)&&((e=s.teardown)==null||e.call(s),(n=s.ac)==null||n.abort(on),s.teardown=Hl,s.ac=null,rs(s,0),Ai(s))}function oo(t){if(t.effects!==null)for(const e of t.effects)e.teardown&&Cn(e)}let Ci=new Set;const Ht=new Map;let ao=!1;function ln(t,e){var n={f:0,v:t,reactions:null,equals:Xr,rv:0,wv:0};return n}function re(t,e){const n=ln(t);return Io(n),n}function Ec(t,e=!1,n=!0){var i;const s=ln(t);return e||(s.equals=Yr),Tn&&n&&ve!==null&&ve.l!==null&&((i=ve.l).s??(i.s=[])).push(s),s}function C(t,e,n=!1){K!==null&&(!at||K.f&Gr)&&$n()&&K.f&(Ie|_t|Si|Gr)&&(Qe===null||!Sn.call(Qe,t))&&ic();let s=n?ot(e):e;return En(t,s)}function En(t,e){if(!t.equals(e)){var n=t.v;qt?Ht.set(t,e):Ht.set(t,n),t.v=e;var s=Ut.ensure();if(s.capture(t,n),t.f&Ie){const i=t;t.f&Ce&&Ii(i),_i(i)}t.wv=Ro(),co(t,Ce),$n()&&$!==null&&$.f&Te&&!($.f&(nt|en))&&(Ze===null?Wc([t]):Ze.push(t)),!s.is_fork&&Ci.size>0&&!ao&&Ic()}return e}function Ic(){ao=!1;for(const t of Ci)t.f&Te&&fe(t,st),is(t)&&Cn(t);Ci.clear()}function lo(t,e=1){var n=v(t),s=e===1?n++:n--;return C(t,n),s}function ts(t){C(t,t.v+1)}function co(t,e){var n=t.reactions;if(n!==null)for(var s=$n(),i=n.length,r=0;r<i;r++){var o=n[r],a=o.f;if(!(!s&&o===$)){var c=(a&Ce)===0;if(c&&fe(o,e),a&Ie){var u=o;Ne==null||Ne.delete(u),a&sn||(a&Xe&&(o.f|=sn),co(u,st))}else c&&(a&_t&&it!==null&&it.add(o),rt(o))}}}function ot(t){if(typeof t!="object"||t===null||rn in t)return t;const e=Ur(t);if(e!==jl&&e!==Ul)return t;var n=new Map,s=wi(t),i=re(0),r=hn,o=a=>{if(hn===r)return a();var c=K,u=hn;Je(null),No(r);var l=a();return Je(c),No(u),l};return s&&n.set("length",re(t.length)),new Proxy(t,{defineProperty(a,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&nc();var l=n.get(c);return l===void 0?o(()=>{var h=re(u.value);return n.set(c,h),h}):C(l,u.value,!0),!0},deleteProperty(a,c){var u=n.get(c);if(u===void 0){if(c in a){const l=o(()=>re(Ee));n.set(c,l),ts(i)}}else C(u,Ee),ts(i);return!0},get(a,c,u){var p;if(c===rn)return t;var l=n.get(c),h=c in a;if(l===void 0&&(!h||(p=_n(a,c))!=null&&p.writable)&&(l=o(()=>{var f=ot(h?a[c]:Ee),m=re(f);return m}),n.set(c,l)),l!==void 0){var d=v(l);return d===Ee?void 0:d}return Reflect.get(a,c,u)},getOwnPropertyDescriptor(a,c){var u=Reflect.getOwnPropertyDescriptor(a,c);if(u&&"value"in u){var l=n.get(c);l&&(u.value=v(l))}else if(u===void 0){var h=n.get(c),d=h==null?void 0:h.v;if(h!==void 0&&d!==Ee)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(a,c){var d;if(c===rn)return!0;var u=n.get(c),l=u!==void 0&&u.v!==Ee||Reflect.has(a,c);if(u!==void 0||$!==null&&(!l||(d=_n(a,c))!=null&&d.writable)){u===void 0&&(u=o(()=>{var p=l?ot(a[c]):Ee,f=re(p);return f}),n.set(c,u));var h=v(u);if(h===Ee)return!1}return l},set(a,c,u,l){var I;var h=n.get(c),d=c in a;if(s&&c==="length")for(var p=u;p<h.v;p+=1){var f=n.get(p+"");f!==void 0?C(f,Ee):p in a&&(f=o(()=>re(Ee)),n.set(p+"",f))}if(h===void 0)(!d||(I=_n(a,c))!=null&&I.writable)&&(h=o(()=>re(void 0)),C(h,ot(u)),n.set(c,h));else{d=h.v!==Ee;var m=o(()=>ot(u));C(h,m)}var S=Reflect.getOwnPropertyDescriptor(a,c);if(S!=null&&S.set&&S.set.call(l,u),!d){if(s&&typeof c=="string"){var x=n.get("length"),T=Number(c);Number.isInteger(T)&&T>=x.v&&C(x,T+1)}ts(i)}return!0},ownKeys(a){v(i);var c=Reflect.ownKeys(a).filter(h=>{var d=n.get(h);return d===void 0||d.v!==Ee});for(var[u,l]of n)l.v!==Ee&&!(u in a)&&c.push(u);return c},setPrototypeOf(){sc()}})}function uo(t){try{if(t!==null&&typeof t=="object"&&rn in t)return t[rn]}catch{}return t}function Cc(t,e){return Object.is(uo(t),uo(e))}var ho,fo,po,go;function Nc(){if(ho===void 0){ho=window,fo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;po=_n(e,"firstChild").get,go=_n(e,"nextSibling").get,Hr(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Hr(n)&&(n.__t=void 0)}}function Tt(t=""){return document.createTextNode(t)}function In(t){return po.call(t)}function ns(t){return go.call(t)}function O(t,e){return In(t)}function xt(t,e=!1){{var n=In(t);return n instanceof Comment&&n.data===""?ns(n):n}}function W(t,e=1,n=!1){let s=t;for(;e--;)s=ns(s);return s}function Rc(t){t.textContent=""}function mo(){return!1}function vo(t,e,n){return document.createElementNS(jr,t,void 0)}let wo=!1;function Dc(){wo||(wo=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(const n of t.target.elements)(e=n.__on_r)==null||e.call(n)})},{capture:!0}))}function Cs(t){var e=K,n=$;Je(null),ht(null);try{return t()}finally{Je(e),ht(n)}}function Ac(t,e,n,s=n){t.addEventListener(e,()=>Cs(n));const i=t.__on_r;i?t.__on_r=()=>{i(),s(!0)}:t.__on_r=()=>s(!0),Dc()}function Mc(t){$===null&&(K===null&&$l(),Zl()),qt&&Ql()}function Oc(t,e){var n=e.last;n===null?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}function Et(t,e,n){var s=$;s!==null&&s.f&Fe&&(t|=Fe);var i={ctx:ve,deps:null,nodes:null,f:t|Ce|Xe,first:null,fn:e,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{Cn(i)}catch(a){throw Oe(i),a}else e!==null&&rt(i);var r=i;if(n&&r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&!(r.f&kn)&&(r=r.first,t&_t&&t&nn&&r!==null&&(r.f|=nn)),r!==null&&(r.parent=s,s!==null&&Oc(r,s),K!==null&&K.f&Ie&&!(t&en))){var o=K;(o.effects??(o.effects=[])).push(r)}return i}function Ni(){return K!==null&&!at}function Ri(t){const e=Et(Ts,null,!1);return fe(e,Te),e.teardown=t,e}function ss(t){Mc();var e=$.f,n=!K&&(e&nt)!==0&&(e&tn)===0;if(n){var s=ve;(s.e??(s.e=[])).push(t)}else return bo(t)}function bo(t){return Et(Zn|Vl,t,!1)}function Pc(t){Ut.ensure();const e=Et(en|kn,t,!0);return(n={})=>new Promise(s=>{n.outro?cn(e,()=>{Oe(e),s(void 0)}):(Oe(e),s(void 0))})}function yo(t){return Et(Zn,t,!1)}function Lc(t){return Et(Si|kn,t,!0)}function Di(t,e=0){return Et(Ts|e,t,!0)}function H(t,e=[],n=[],s=[]){bc(s,e,n,i=>{Et(Ts,()=>t(...i.map(v)),!0)})}function Ns(t,e=0){var n=Et(_t|e,t,!0);return n}function Ye(t){return Et(nt|kn,t,!0)}function So(t){var e=t.teardown;if(e!==null){const n=qt,s=K;Eo(!0),Je(null);try{e.call(null)}finally{Eo(n),Je(s)}}}function Ai(t,e=!1){var n=t.first;for(t.first=t.last=null;n!==null;){const i=n.ac;i!==null&&Cs(()=>{i.abort(on)});var s=n.next;n.f&en?n.parent=null:Oe(n,e),n=s}}function Bc(t){for(var e=t.first;e!==null;){var n=e.next;e.f&nt||Oe(e),e=n}}function Oe(t,e=!0){var n=!1;(e||t.f&Kr)&&t.nodes!==null&&t.nodes.end!==null&&(Fc(t.nodes.start,t.nodes.end),n=!0),Ai(t,e&&!n),rs(t,0),fe(t,kt);var s=t.nodes&&t.nodes.t;if(s!==null)for(const r of s)r.stop();So(t);var i=t.parent;i!==null&&i.first!==null&&_o(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function Fc(t,e){for(;t!==null;){var n=t===e?null:ns(t);t.remove(),t=n}}function _o(t){var e=t.parent,n=t.prev,s=t.next;n!==null&&(n.next=s),s!==null&&(s.prev=n),e!==null&&(e.first===t&&(e.first=s),e.last===t&&(e.last=n))}function cn(t,e,n=!0){var s=[];ko(t,s,!0);var i=()=>{n&&Oe(t),e&&e()},r=s.length;if(r>0){var o=()=>--r||i();for(var a of s)a.out(o)}else i()}function ko(t,e,n){if(!(t.f&Fe)){t.f^=Fe;var s=t.nodes&&t.nodes.t;if(s!==null)for(const a of s)(a.is_global||n)&&e.push(a);for(var i=t.first;i!==null;){var r=i.next,o=(i.f&nn)!==0||(i.f&nt)!==0&&(t.f&_t)!==0;ko(i,e,o?n:!1),i=r}}}function Mi(t){To(t,!0)}function To(t,e){if(t.f&Fe){t.f^=Fe,t.f&Te||(fe(t,Ce),rt(t));for(var n=t.first;n!==null;){var s=n.next,i=(n.f&nn)!==0||(n.f&nt)!==0;To(n,i?e:!1),n=s}var r=t.nodes&&t.nodes.t;if(r!==null)for(const o of r)(o.is_global||e)&&o.in()}}function xo(t,e){if(t.nodes)for(var n=t.nodes.start,s=t.nodes.end;n!==null;){var i=n===s?null:ns(n);e.append(n),n=i}}let Rs=!1,qt=!1;function Eo(t){qt=t}let K=null,at=!1;function Je(t){K=t}let $=null;function ht(t){$=t}let Qe=null;function Io(t){K!==null&&(Qe===null?Qe=[t]:Qe.push(t))}let Pe=null,We=0,Ze=null;function Wc(t){Ze=t}let Co=1,un=0,hn=un;function No(t){hn=t}function Ro(){return++Co}function is(t){var e=t.f;if(e&Ce)return!0;if(e&Ie&&(t.f&=~sn),e&st){for(var n=t.deps,s=n.length,i=0;i<s;i++){var r=n[i];if(is(r)&&ro(r),r.wv>t.wv)return!0}e&Xe&&Ne===null&&fe(t,Te)}return!1}function Do(t,e,n=!0){var s=t.reactions;if(s!==null&&!(Qe!==null&&Sn.call(Qe,t)))for(var i=0;i<s.length;i++){var r=s[i];r.f&Ie?Do(r,e,!1):e===r&&(n?fe(r,Ce):r.f&Te&&fe(r,st),rt(r))}}function Ao(t){var m;var e=Pe,n=We,s=Ze,i=K,r=Qe,o=ve,a=at,c=hn,u=t.f;Pe=null,We=0,Ze=null,K=u&(nt|en)?null:t,Qe=null,xn(t.ctx),at=!1,hn=++un,t.ac!==null&&(Cs(()=>{t.ac.abort(on)}),t.ac=null);try{t.f|=yi;var l=t.fn,h=l();t.f|=tn;var d=t.deps,p=U==null?void 0:U.is_fork;if(Pe!==null){var f;if(p||rs(t,We),d!==null&&We>0)for(d.length=We+Pe.length,f=0;f<Pe.length;f++)d[We+f]=Pe[f];else t.deps=d=Pe;if(Ni()&&t.f&Xe)for(f=We;f<d.length;f++)((m=d[f]).reactions??(m.reactions=[])).push(t)}else!p&&d!==null&&We<d.length&&(rs(t,We),d.length=We);if($n()&&Ze!==null&&!at&&d!==null&&!(t.f&(Ie|st|Ce)))for(f=0;f<Ze.length;f++)Do(Ze[f],t);if(i!==null&&i!==t){if(un++,i.deps!==null)for(let S=0;S<n;S+=1)i.deps[S].rv=un;if(e!==null)for(const S of e)S.rv=un;Ze!==null&&(s===null?s=Ze:s.push(...Ze))}return t.f&Bt&&(t.f^=Bt),h}catch(S){return Qr(S)}finally{t.f^=yi,Pe=e,We=n,Ze=s,K=i,Qe=r,xn(o),at=a,hn=c}}function zc(t,e){let n=e.reactions;if(n!==null){var s=Fl.call(n,t);if(s!==-1){var i=n.length-1;i===0?n=e.reactions=null:(n[s]=n[i],n.pop())}}if(n===null&&e.f&Ie&&(Pe===null||!Sn.call(Pe,e))){var r=e;r.f&Xe&&(r.f^=Xe,r.f&=~sn),_i(r),xc(r),rs(r,0)}}function rs(t,e){var n=t.deps;if(n!==null)for(var s=e;s<n.length;s++)zc(t,n[s])}function Cn(t){var e=t.f;if(!(e&kt)){fe(t,Te);var n=$,s=Rs;$=t,Rs=!0;try{e&(_t|Vr)?Bc(t):Ai(t),So(t);var i=Ao(t);t.teardown=typeof i=="function"?i:null,t.wv=Co;var r;vi&&cc&&t.f&Ce&&t.deps}finally{Rs=s,$=n}}}async function jc(){await Promise.resolve(),fc()}function v(t){var e=t.f,n=(e&Ie)!==0;if(K!==null&&!at){var s=$!==null&&($.f&kt)!==0;if(!s&&(Qe===null||!Sn.call(Qe,t))){var i=K.deps;if(K.f&yi)t.rv<un&&(t.rv=un,Pe===null&&i!==null&&i[We]===t?We++:Pe===null?Pe=[t]:Pe.push(t));else{(K.deps??(K.deps=[])).push(t);var r=t.reactions;r===null?t.reactions=[K]:Sn.call(r,K)||r.push(K)}}}if(qt&&Ht.has(t))return Ht.get(t);if(n){var o=t;if(qt){var a=o.v;return(!(o.f&Te)&&o.reactions!==null||Oo(o))&&(a=Ii(o)),Ht.set(o,a),a}var c=(o.f&Xe)===0&&!at&&K!==null&&(Rs||(K.f&Xe)!==0),u=(o.f&tn)===0;is(o)&&(c&&(o.f|=Xe),ro(o)),c&&!u&&(oo(o),Mo(o))}if(Ne!=null&&Ne.has(t))return Ne.get(t);if(t.f&Bt)throw t.v;return t.v}function Mo(t){if(t.f|=Xe,t.deps!==null)for(const e of t.deps)(e.reactions??(e.reactions=[])).push(t),e.f&Ie&&!(e.f&Xe)&&(oo(e),Mo(e))}function Oo(t){if(t.v===Ee)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(Ht.has(e)||e.f&Ie&&Oo(e))return!0;return!1}function os(t){var e=at;try{return at=!0,t()}finally{at=e}}const dn=Symbol("events"),Po=new Set,Oi=new Set;function Uc(t,e,n,s={}){function i(r){if(s.capture||Pi.call(e,r),!r.cancelBubble)return Cs(()=>n==null?void 0:n.call(this,r))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?zt(()=>{e.addEventListener(t,i,s)}):e.addEventListener(t,i,s),i}function It(t,e,n,s,i){var r={capture:s,passive:i},o=Uc(t,e,n,r);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ri(()=>{e.removeEventListener(t,o,r)})}function fn(t,e,n){(e[dn]??(e[dn]={}))[t]=n}function Ds(t){for(var e=0;e<t.length;e++)Po.add(t[e]);for(var n of Oi)n(t)}let Lo=null;function Pi(t){var S,x;var e=this,n=e.ownerDocument,s=t.type,i=((S=t.composedPath)==null?void 0:S.call(t))||[],r=i[0]||t.target;Lo=t;var o=0,a=Lo===t&&t[dn];if(a){var c=i.indexOf(a);if(c!==-1&&(e===document||e===window)){t[dn]=e;return}var u=i.indexOf(e);if(u===-1)return;c<=u&&(o=c)}if(r=i[o]||t.target,r!==e){Wl(t,"currentTarget",{configurable:!0,get(){return r||n}});var l=K,h=$;Je(null),ht(null);try{for(var d,p=[];r!==null;){var f=r.assignedSlot||r.parentNode||r.host||null;try{var m=(x=r[dn])==null?void 0:x[s];m!=null&&(!r.disabled||t.target===r)&&m.call(r,t)}catch(T){d?p.push(T):d=T}if(t.cancelBubble||f===e||f===null)break;r=f}if(d){for(let T of p)queueMicrotask(()=>{throw T});throw d}}finally{t[dn]=e,delete t.currentTarget,Je(l),ht(h)}}}const Li=((kl=globalThis==null?void 0:globalThis.window)==null?void 0:kl.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function Hc(t){return(Li==null?void 0:Li.createHTML(t))??t}function Bo(t){var e=vo("template");return e.innerHTML=Hc(t.replaceAll("<!>","<!---->")),e.content}function as(t,e){var n=$;n.nodes===null&&(n.nodes={start:t,end:e,a:null,t:null})}function q(t,e){var n=(e&Ll)!==0,s=(e&Bl)!==0,i,r=!t.startsWith("<!>");return()=>{i===void 0&&(i=Bo(r?t:"<!>"+t),n||(i=In(i)));var o=s||fo?document.importNode(i,!0):i.cloneNode(!0);if(n){var a=In(o),c=o.lastChild;as(a,c)}else as(o,o);return o}}function qc(t,e,n="svg"){var s=!t.startsWith("<!>"),i=`<${n}>${s?t:"<!>"+t}</${n}>`,r;return()=>{if(!r){var o=Bo(i),a=In(o);r=In(a)}var c=r.cloneNode(!0);return as(c,c),c}}function As(t,e){return qc(t,e,"svg")}function Nn(t=""){{var e=Tt(t+"");return as(e,e),e}}function Ms(){var t=document.createDocumentFragment(),e=document.createComment(""),n=Tt();return t.append(e,n),as(e,n),t}function M(t,e){t!==null&&t.before(e)}const Vc=["touchstart","touchmove"];function Gc(t){return Vc.includes(t)}function Y(t,e){var n=e==null?"":typeof e=="object"?`${e}`:e;n!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=n,t.nodeValue=`${n}`)}function Kc(t,e){return Xc(t,e)}const Os=new Map;function Xc(t,{target:e,anchor:n,props:s={},events:i,context:r,intro:o=!0,transformError:a}){Nc();var c=void 0,u=Pc(()=>{var l=n??e.appendChild(Tt());vc(l,{pending:()=>{}},p=>{Ft({});var f=ve;r&&(f.c=r),i&&(s.$$events=i),c=t(p,s)||{},Wt()},a);var h=new Set,d=p=>{for(var f=0;f<p.length;f++){var m=p[f];if(!h.has(m)){h.add(m);var S=Gc(m);for(const I of[e,document]){var x=Os.get(I);x===void 0&&(x=new Map,Os.set(I,x));var T=x.get(m);T===void 0?(I.addEventListener(m,Pi,{passive:S}),x.set(m,1)):x.set(m,T+1)}}}};return d(ks(Po)),Oi.add(d),()=>{var S;for(var p of h)for(const x of[e,document]){var f=Os.get(x),m=f.get(p);--m==0?(x.removeEventListener(p,Pi),f.delete(p),f.size===0&&Os.delete(x)):f.set(p,m)}Oi.delete(d),l!==n&&((S=l.parentNode)==null||S.removeChild(l))}});return Yc.set(c,u),c}let Yc=new WeakMap;class Fo{constructor(e,n=!0){St(this,"anchor");G(this,ut,new Map);G(this,bt,new Map);G(this,Ve,new Map);G(this,yn,new Set);G(this,vs,!0);G(this,ws,()=>{var e=U;if(w(this,ut).has(e)){var n=w(this,ut).get(e),s=w(this,bt).get(n);if(s)Mi(s),w(this,yn).delete(n);else{var i=w(this,Ve).get(n);i&&(w(this,bt).set(n,i.effect),w(this,Ve).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),s=i.effect)}for(const[r,o]of w(this,ut)){if(w(this,ut).delete(r),r===e)break;const a=w(this,Ve).get(o);a&&(Oe(a.effect),w(this,Ve).delete(o))}for(const[r,o]of w(this,bt)){if(r===n||w(this,yn).has(r))continue;const a=()=>{if(Array.from(w(this,ut).values()).includes(r)){var u=document.createDocumentFragment();xo(o,u),u.append(Tt()),w(this,Ve).set(r,{effect:o,fragment:u})}else Oe(o);w(this,yn).delete(r),w(this,bt).delete(r)};w(this,vs)||!s?(w(this,yn).add(r),cn(o,a,!1)):a()}}});G(this,ci,e=>{w(this,ut).delete(e);const n=Array.from(w(this,ut).values());for(const[s,i]of w(this,Ve))n.includes(s)||(Oe(i.effect),w(this,Ve).delete(s))});this.anchor=e,j(this,vs,n)}ensure(e,n){var s=U,i=mo();if(n&&!w(this,bt).has(e)&&!w(this,Ve).has(e))if(i){var r=document.createDocumentFragment(),o=Tt();r.append(o),w(this,Ve).set(e,{effect:Ye(()=>n(o)),fragment:r})}else w(this,bt).set(e,Ye(()=>n(this.anchor)));if(w(this,ut).set(s,e),i){for(const[a,c]of w(this,bt))a===e?s.unskip_effect(c):s.skip_effect(c);for(const[a,c]of w(this,Ve))a===e?s.unskip_effect(c.effect):s.skip_effect(c.effect);s.oncommit(w(this,ws)),s.ondiscard(w(this,ci))}else w(this,ws).call(this)}}ut=new WeakMap,bt=new WeakMap,Ve=new WeakMap,yn=new WeakMap,vs=new WeakMap,ws=new WeakMap,ci=new WeakMap;function Bi(t){ve===null&&Xl(),Tn&&ve.l!==null?Jc(ve).m.push(t):ss(()=>{const e=os(t);if(typeof e=="function")return e})}function Jc(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}function ae(t,e,n=!1){var s=new Fo(t),i=n?nn:0;function r(o,a){s.ensure(o,a)}Ns(()=>{var o=!1;e((a,c=0)=>{o=!0,r(c,a)}),o||r(!1,null)},i)}function Rn(t,e){return e}function Qc(t,e,n){for(var s=[],i=e.length,r,o=e.length,a=0;a<i;a++){let h=e[a];cn(h,()=>{if(r){if(r.pending.delete(h),r.done.add(h),r.pending.size===0){var d=t.outrogroups;Fi(ks(r.done)),d.delete(r),d.size===0&&(t.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=s.length===0&&n!==null;if(c){var u=n,l=u.parentNode;Rc(l),l.append(u),t.items.clear()}Fi(e,!c)}else r={pending:new Set(e),done:new Set},(t.outrogroups??(t.outrogroups=new Set)).add(r)}function Fi(t,e=!0){for(var n=0;n<t.length;n++)Oe(t[n],e)}var Wo;function Dn(t,e,n,s,i,r=null){var o=t,a=new Map;{var c=t;o=c.appendChild(Tt())}var u=null,l=Ei(()=>{var S=n();return wi(S)?S:S==null?[]:ks(S)}),h,d=!0;function p(){m.fallback=u,Zc(m,h,o,e,s),u!==null&&(h.length===0?u.f&Lt?(u.f^=Lt,cs(u,null,o)):Mi(u):cn(u,()=>{u=null}))}var f=Ns(()=>{h=v(l);for(var S=h.length,x=new Set,T=U,I=mo(),g=0;g<S;g+=1){var _=h[g],E=s(_,g),b=d?null:a.get(E);b?(b.v&&En(b.v,_),b.i&&En(b.i,g),I&&T.unskip_effect(b.e)):(b=$c(a,d?o:Wo??(Wo=Tt()),_,E,g,i,e,n),d||(b.e.f|=Lt),a.set(E,b)),x.add(E)}if(S===0&&r&&!u&&(d?u=Ye(()=>r(o)):(u=Ye(()=>r(Wo??(Wo=Tt()))),u.f|=Lt)),S>x.size&&Jl(),!d)if(I){for(const[y,k]of a)x.has(y)||T.skip_effect(k.e);T.oncommit(p),T.ondiscard(()=>{})}else p();v(l)}),m={effect:f,items:a,outrogroups:null,fallback:u};d=!1}function ls(t){for(;t!==null&&!(t.f&nt);)t=t.next;return t}function Zc(t,e,n,s,i){var y;var r=e.length,o=t.items,a=ls(t.effect.first),c,u=null,l=[],h=[],d,p,f,m;for(m=0;m<r;m+=1){if(d=e[m],p=i(d,m),f=o.get(p).e,t.outrogroups!==null)for(const k of t.outrogroups)k.pending.delete(f),k.done.delete(f);if(f.f&Lt)if(f.f^=Lt,f===a)cs(f,null,n);else{var S=u?u.next:a;f===t.effect.last&&(t.effect.last=f.prev),f.prev&&(f.prev.next=f.next),f.next&&(f.next.prev=f.prev),Vt(t,u,f),Vt(t,f,S),cs(f,S,n),u=f,l=[],h=[],a=ls(u.next);continue}if(f.f&Fe&&Mi(f),f!==a){if(c!==void 0&&c.has(f)){if(l.length<h.length){var x=h[0],T;u=x.prev;var I=l[0],g=l[l.length-1];for(T=0;T<l.length;T+=1)cs(l[T],x,n);for(T=0;T<h.length;T+=1)c.delete(h[T]);Vt(t,I.prev,g.next),Vt(t,u,I),Vt(t,g,x),a=x,u=g,m-=1,l=[],h=[]}else c.delete(f),cs(f,a,n),Vt(t,f.prev,f.next),Vt(t,f,u===null?t.effect.first:u.next),Vt(t,u,f),u=f;continue}for(l=[],h=[];a!==null&&a!==f;)(c??(c=new Set)).add(a),h.push(a),a=ls(a.next);if(a===null)continue}f.f&Lt||l.push(f),u=f,a=ls(f.next)}if(t.outrogroups!==null){for(const k of t.outrogroups)k.pending.size===0&&(Fi(ks(k.done)),(y=t.outrogroups)==null||y.delete(k));t.outrogroups.size===0&&(t.outrogroups=null)}if(a!==null||c!==void 0){var _=[];if(c!==void 0)for(f of c)f.f&Fe||_.push(f);for(;a!==null;)!(a.f&Fe)&&a!==t.fallback&&_.push(a),a=ls(a.next);var E=_.length;if(E>0){var b=r===0?n:null;Qc(t,_,b)}}}function $c(t,e,n,s,i,r,o,a){var c=o&ie?o&_s?ln(n):Ec(n,!1,!1):null,u=o&ye?ln(i):null;return{v:c,i:u,e:Ye(()=>(r(e,c??n,u??i,a),()=>{t.delete(s)}))}}function cs(t,e,n){if(t.nodes)for(var s=t.nodes.start,i=t.nodes.end,r=e&&!(e.f&Lt)?e.nodes.start:n;s!==null;){var o=ns(s);if(r.before(s),s===i)return;s=o}}function Vt(t,e,n){e===null?t.effect.first=n:e.next=n,n===null?t.effect.last=e:n.prev=e}function zo(t,e,n,s,i){var a;var r=(a=e.$$slots)==null?void 0:a[n],o=!1;r===!0&&(r=e.children,o=!0),r===void 0||r(t,o?()=>s:s)}function jo(t,e,n){var s=new Fo(t);Ns(()=>{var i=e()??null;s.ensure(i,i&&(r=>n(r,i)))},nn)}function Gt(t,e){yo(()=>{var n=t.getRootNode(),s=n.host?n:n.head??n.ownerDocument.head;if(!s.querySelector("#"+e.hash)){const i=vo("style");i.id=e.hash,i.textContent=e.code,s.appendChild(i)}})}function Uo(t){var e,n,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=Uo(t[e]))&&(s&&(s+=" "),s+=n)}else for(n in t)t[n]&&(s&&(s+=" "),s+=n);return s}function eu(){for(var t,e,n=0,s="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=Uo(t))&&(s&&(s+=" "),s+=e);return s}function An(t){return typeof t=="object"?eu(t):t??""}function tu(t,e,n){var s=t==null?"":""+t;return e&&(s=s?s+" "+e:e),s===""?null:s}function Kt(t,e,n,s,i,r){var o=t.__className;if(o!==n||o===void 0){var a=tu(n,s);a==null?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a),t.__className=n}return r}function Ho(t,e,n=!1){if(t.multiple){if(e==null)return;if(!wi(e))return oc();for(var s of t.options)s.selected=e.includes(qo(s));return}for(s of t.options){var i=qo(s);if(Cc(i,e)){s.selected=!0;return}}(!n||e!==void 0)&&(t.selectedIndex=-1)}function nu(t){var e=new MutationObserver(()=>{Ho(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ri(()=>{e.disconnect()})}function qo(t){return"__value"in t?t.__value:t.value}const su=Symbol("is custom element"),iu=Symbol("is html");function ru(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Re(t,e,n,s){var i=ou(t);i[e]!==(i[e]=n)&&(e==="loading"&&(t[Kl]=n),n==null?t.removeAttribute(e):typeof n!="string"&&au(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function ou(t){return t.__attributes??(t.__attributes={[su]:t.nodeName.includes("-"),[iu]:t.namespaceURI===jr})}var Vo=new Map;function au(t){var e=t.getAttribute("is")||t.nodeName,n=Vo.get(e);if(n)return n;Vo.set(e,n=[]);for(var s,i=t,r=Element.prototype;r!==i;){s=zl(i);for(var o in s)s[o].set&&n.push(o);i=Ur(i)}return n}function lu(t,e,n=e){var s=new WeakSet;Ac(t,"input",async i=>{var r=i?t.defaultValue:t.value;if(r=Wi(t)?zi(r):r,n(r),U!==null&&s.add(U),await jc(),r!==(r=e())){var o=t.selectionStart,a=t.selectionEnd,c=t.value.length;if(t.value=r??"",a!==null){var u=t.value.length;o===a&&a===c&&u>c?(t.selectionStart=u,t.selectionEnd=u):(t.selectionStart=o,t.selectionEnd=Math.min(a,u))}}}),os(e)==null&&t.value&&(n(Wi(t)?zi(t.value):t.value),U!==null&&s.add(U)),Di(()=>{var i=e();if(t===document.activeElement){var r=ki??U;if(s.has(r))return}Wi(t)&&i===zi(t.value)||t.type==="date"&&!i&&!t.value||i!==t.value&&(t.value=i??"")})}function Wi(t){var e=t.type;return e==="number"||e==="range"}function zi(t){return t===""?null:+t}function Go(t,e){return t===e||(t==null?void 0:t[rn])===e}function cu(t={},e,n,s){return yo(()=>{var i,r;return Di(()=>{i=r,r=[],os(()=>{t!==n(...r)&&(e(t,...r),i&&Go(n(...i),t)&&e(null,...i))})}),()=>{zt(()=>{r&&Go(n(...r),t)&&e(null,...r)})}}),t}let Ps=!1;function uu(t){var e=Ps;try{return Ps=!1,[t(),Ps]}finally{Ps=e}}function ze(t,e,n,s){var I;var i=!Tn||(n&Al)!==0,r=(n&Ol)!==0,o=(n&Pl)!==0,a=s,c=!0,u=()=>(c&&(c=!1,a=o?os(s):s),a),l;if(r){var h=rn in t||Gl in t;l=((I=_n(t,e))==null?void 0:I.set)??(h&&e in t?g=>t[e]=g:void 0)}var d,p=!1;r?[d,p]=uu(()=>t[e]):d=t[e],d===void 0&&s!==void 0&&(d=u(),l&&(i&&tc(),l(d)));var f;if(i?f=()=>{var g=t[e];return g===void 0?u():(c=!0,g)}:f=()=>{var g=t[e];return g!==void 0&&(a=void 0),g===void 0?a:g},i&&!(n&Ml))return f;if(l){var m=t.$$legacy;return function(g,_){return arguments.length>0?((!i||!_||m||p)&&l(_?f():g),g):f()}}var S=!1,x=(n&Dl?Is:Ei)(()=>(S=!1,f()));r&&v(x);var T=$;return function(g,_){if(arguments.length>0){const E=_?v(x):i&&r?ot(g):g;return C(x,E),S=!0,a!==void 0&&(a=E),g}return qt&&S||T.f&kt?x.v:v(x)}}function Ko(){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 ji(t,e,n){let s="";if(n){const i=new Date;i.setTime(i.getTime()+n*24*60*60*1e3),s="; expires="+i.toUTCString()}document.cookie=t+"="+(e||"")+s+"; path=/; secure; samesite=strict"}function Ui(t){const e=t+"=",n=document.cookie.split(";");for(let s=0;s<n.length;s++){let i=n[s];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 Xo(){const t="uniqueUserID";let e=Ui(t);return e||(e=Ko(),ji(t,e,365)),e}function je(t,e,n={},s={}){const i="https://admin-api.wineater.com/api/widget-events";let r=Ui("uniqueUserID");r||(r=Xo());const o={user_agent:navigator.userAgent,screen_width:window.screen.width,screen_height:window.screen.height,language:navigator.language,platform:navigator.platform},a=new Date().toISOString();let c=Ui("sessionID");c||(c=Ko(),ji("sessionID",c,1));const u={event_type:t,store_id:e,session_id:c,event_time:a,data:n,meta:{...s,user_id:r},device_info:o,region:navigator.language.split("-")[1]||null,language:navigator.language.split("-")[0]||"en"};return fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)}).then(l=>l.ok?l.json():l.json().then(h=>{throw new Error(h.message||"Failed to track widget event")})).catch(l=>{throw console.error("Widget event tracking error:",l),l})}var Yo={},hu=function(t,e,n,s,i){var r=new Worker(Yo[e]||(Yo[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 a=o.data,c=a.$e$;if(c){var u=new Error(c[0]);u.code=c[1],u.stack=c[2],i(u,null)}else i(null,a)},r.postMessage(n,s),r},$e=Uint8Array,Le=Uint16Array,Ls=Int32Array,Bs=new $e([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]),Fs=new $e([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]),Hi=new $e([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Jo=function(t,e){for(var n=new Le(31),s=0;s<31;++s)n[s]=e+=1<<t[s-1];for(var i=new Ls(n[30]),s=1;s<30;++s)for(var r=n[s];r<n[s+1];++r)i[r]=r-n[s]<<5|s;return{b:n,r:i}},Qo=Jo(Bs,2),du=Qo.b,Ws=Qo.r;du[28]=258,Ws[258]=28;for(var fu=Jo(Fs,0),qi=fu.r,zs=new Le(32768),ce=0;ce<32768;++ce){var Xt=(ce&43690)>>1|(ce&21845)<<1;Xt=(Xt&52428)>>2|(Xt&13107)<<2,Xt=(Xt&61680)>>4|(Xt&3855)<<4,zs[ce]=((Xt&65280)>>8|(Xt&255)<<8)>>1}for(var Mn=function(t,e,n){for(var s=t.length,i=0,r=new Le(e);i<s;++i)t[i]&&++r[t[i]-1];var o=new Le(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var a;if(n){a=new Le(1<<e);var c=15-e;for(i=0;i<s;++i)if(t[i])for(var u=i<<4|t[i],l=e-t[i],h=o[t[i]-1]++<<l,d=h|(1<<l)-1;h<=d;++h)a[zs[h]>>c]=u}else for(a=new Le(s),i=0;i<s;++i)t[i]&&(a[i]=zs[o[t[i]-1]++]>>15-t[i]);return a},Yt=new $e(288),ce=0;ce<144;++ce)Yt[ce]=8;for(var ce=144;ce<256;++ce)Yt[ce]=9;for(var ce=256;ce<280;++ce)Yt[ce]=7;for(var ce=280;ce<288;++ce)Yt[ce]=8;for(var us=new $e(32),ce=0;ce<32;++ce)us[ce]=5;var Zo=Mn(Yt,9,0),$o=Mn(us,5,0),Vi=function(t){return(t+7)/8|0},ea=function(t,e,n){return(e==null||e<0)&&(e=0),(n==null||n>t.length)&&(n=t.length),new $e(t.subarray(e,n))},pu=["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"],ta=function(t,e,n){var s=new Error(e||pu[t]);if(s.code=t,Error.captureStackTrace&&Error.captureStackTrace(s,ta),!n)throw s;return s},dt=function(t,e,n){n<<=e&7;var s=e/8|0;t[s]|=n,t[s+1]|=n>>8},On=function(t,e,n){n<<=e&7;var s=e/8|0;t[s]|=n,t[s+1]|=n>>8,t[s+2]|=n>>16},js=function(t,e){for(var n=[],s=0;s<t.length;++s)t[s]&&n.push({s,f:t[s]});var i=n.length,r=n.slice();if(!i)return{t:Yi,l:0};if(i==1){var o=new $e(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(_,E){return _.f-E.f}),n.push({s:-1,f:25001});var a=n[0],c=n[1],u=0,l=1,h=2;for(n[0]={s:-1,f:a.f+c.f,l:a,r:c};l!=i-1;)a=n[n[u].f<n[h].f?u++:h++],c=n[u!=l&&n[u].f<n[h].f?u++:h++],n[l++]={s:-1,f:a.f+c.f,l:a,r:c};for(var d=r[0].s,s=1;s<i;++s)r[s].s>d&&(d=r[s].s);var p=new Le(d+1),f=Us(n[l-1],p,0);if(f>e){var s=0,m=0,S=f-e,x=1<<S;for(r.sort(function(E,b){return p[b.s]-p[E.s]||E.f-b.f});s<i;++s){var T=r[s].s;if(p[T]>e)m+=x-(1<<f-p[T]),p[T]=e;else break}for(m>>=S;m>0;){var I=r[s].s;p[I]<e?m-=1<<e-p[I]++-1:++s}for(;s>=0&&m;--s){var g=r[s].s;p[g]==e&&(--p[g],++m)}f=e}return{t:new $e(p),l:f}},Us=function(t,e,n){return t.s==-1?Math.max(Us(t.l,e,n+1),Us(t.r,e,n+1)):e[t.s]=n},Gi=function(t){for(var e=t.length;e&&!t[--e];);for(var n=new Le(++e),s=0,i=t[0],r=1,o=function(c){n[s++]=c},a=1;a<=e;++a)if(t[a]==i&&a!=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[a]}return{c:n.subarray(0,s),n:e}},Pn=function(t,e){for(var n=0,s=0;s<e.length;++s)n+=t[s]*e[s];return n},Ki=function(t,e,n){var s=n.length,i=Vi(e+2);t[i]=s&255,t[i+1]=s>>8,t[i+2]=t[i]^255,t[i+3]=t[i+1]^255;for(var r=0;r<s;++r)t[i+r+4]=n[r];return(i+4+s)*8},Xi=function(t,e,n,s,i,r,o,a,c,u,l){dt(e,l++,n),++i[256];for(var h=js(i,15),d=h.t,p=h.l,f=js(r,15),m=f.t,S=f.l,x=Gi(d),T=x.c,I=x.n,g=Gi(m),_=g.c,E=g.n,b=new Le(19),y=0;y<T.length;++y)++b[T[y]&31];for(var y=0;y<_.length;++y)++b[_[y]&31];for(var k=js(b,7),P=k.t,V=k.l,F=19;F>4&&!P[Hi[F-1]];--F);var Q=u+5<<3,z=Pn(i,Yt)+Pn(r,us)+o,B=Pn(i,d)+Pn(r,m)+o+14+3*F+Pn(b,P)+2*b[16]+3*b[17]+7*b[18];if(c>=0&&Q<=z&&Q<=B)return Ki(e,l,t.subarray(c,c+u));var J,ee,D,te;if(dt(e,l,1+(B<z)),l+=2,B<z){J=Mn(d,p,0),ee=d,D=Mn(m,S,0),te=m;var Ae=Mn(P,V,0);dt(e,l,I-257),dt(e,l+5,E-1),dt(e,l+10,F-4),l+=14;for(var y=0;y<F;++y)dt(e,l+3*y,P[Hi[y]]);l+=3*F;for(var _e=[T,_],Mt=0;Mt<2;++Mt)for(var yt=_e[Mt],y=0;y<yt.length;++y){var N=yt[y]&31;dt(e,l,Ae[N]),l+=P[N],N>15&&(dt(e,l,yt[y]>>5&127),l+=yt[y]>>12)}}else J=Zo,ee=Yt,D=$o,te=us;for(var y=0;y<a;++y){var A=s[y];if(A>255){var N=A>>18&31;On(e,l,J[N+257]),l+=ee[N+257],N>7&&(dt(e,l,A>>23&31),l+=Bs[N]);var Z=A&31;On(e,l,D[Z]),l+=te[Z],Z>3&&(On(e,l,A>>5&8191),l+=Fs[Z])}else On(e,l,J[A]),l+=ee[A]}return On(e,l,J[256]),l+ee[256]},na=new Ls([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Yi=new $e(0),sa=function(t,e,n,s,i,r){var o=r.z||t.length,a=new $e(s+o+5*(1+Math.ceil(o/7e3))+i),c=a.subarray(s,a.length-i),u=r.l,l=(r.r||0)&7;if(e){l&&(c[0]=r.r>>3);for(var h=na[e-1],d=h>>13,p=h&8191,f=(1<<n)-1,m=r.p||new Le(32768),S=r.h||new Le(f+1),x=Math.ceil(n/3),T=2*x,I=function(ne){return(t[ne]^t[ne+1]<<x^t[ne+2]<<T)&f},g=new Ls(25e3),_=new Le(288),E=new Le(32),b=0,y=0,k=r.i||0,P=0,V=r.w||0,F=0;k+2<o;++k){var Q=I(k),z=k&32767,B=S[Q];if(m[z]=B,S[Q]=z,V<=k){var J=o-k;if((b>7e3||P>24576)&&(J>423||!u)){l=Xi(t,c,0,g,_,E,y,P,F,k-F,l),P=b=y=0,F=k;for(var ee=0;ee<286;++ee)_[ee]=0;for(var ee=0;ee<30;++ee)E[ee]=0}var D=2,te=0,Ae=p,_e=z-B&32767;if(J>2&&Q==I(k-_e))for(var Mt=Math.min(d,J)-1,yt=Math.min(32767,k),N=Math.min(258,J);_e<=yt&&--Ae&&z!=B;){if(t[k+D]==t[k+D-_e]){for(var A=0;A<N&&t[k+A]==t[k+A-_e];++A);if(A>D){if(D=A,te=_e,A>Mt)break;for(var Z=Math.min(_e,A-2),le=0,ee=0;ee<Z;++ee){var ke=k-_e+ee&32767,ue=m[ke],Ge=ke-ue&32767;Ge>le&&(le=Ge,B=ke)}}}z=B,B=m[z],_e+=z-B&32767}if(te){g[P++]=268435456|Ws[D]<<18|qi[te];var De=Ws[D]&31,R=qi[te]&31;y+=Bs[De]+Fs[R],++_[257+De],++E[R],V=k+D,++b}else g[P++]=t[k],++_[t[k]]}}for(k=Math.max(k,V);k<o;++k)g[P++]=t[k],++_[t[k]];l=Xi(t,c,u,g,_,E,y,P,F,k-F,l),u||(r.r=l&7|c[l/8|0]<<3,l-=7,r.h=S,r.p=m,r.i=k,r.w=V)}else{for(var k=r.w||0;k<o+u;k+=65535){var L=k+65535;L>=o&&(c[l/8|0]=u,L=o),l=Ki(c,l+1,t.subarray(k,L))}r.i=o}return ea(a,0,s+Vi(l)+i)},ia=function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var n=e,s=9;--s;)n=(n&1&&-306674912)^n>>>1;t[e]=n}return t}(),ra=function(){var t=-1;return{p:function(e){for(var n=t,s=0;s<e.length;++s)n=ia[n&255^e[s]]^n>>>8;t=n},d:function(){return~t}}},Ji=function(t,e,n,s,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new $e(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return sa(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,n,s,i)},gu=function(t,e){var n={};for(var s in t)n[s]=t[s];for(var s in e)n[s]=e[s];return n},oa=function(t,e,n){for(var s=t(),i=t.toString(),r=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<s.length;++o){var a=s[o],c=r[o];if(typeof a=="function"){e+=";"+c+"=";var u=a.toString();if(a.prototype)if(u.indexOf("[native code]")!=-1){var l=u.indexOf(" ",8)+1;e+=u.slice(l,u.indexOf("(",l))}else{e+=u;for(var h in a.prototype)e+=";"+c+".prototype."+h+"="+a.prototype[h].toString()}else e+=u}else n[c]=a}return e},Hs=[],mu=function(t){var e=[];for(var n in t)t[n].buffer&&e.push((t[n]=new t[n].constructor(t[n])).buffer);return e},vu=function(t,e,n,s){if(!Hs[n]){for(var i="",r={},o=t.length-1,a=0;a<o;++a)i=oa(t[a],i,r);Hs[n]={c:oa(t[o],i,r),e:r}}var c=gu({},Hs[n].e);return hu(Hs[n].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",n,c,mu(c),s)},wu=function(){return[$e,Le,Ls,Bs,Fs,Hi,Ws,qi,Zo,Yt,$o,us,zs,na,Yi,Mn,dt,On,js,Us,Gi,Pn,Ki,Xi,Vi,ea,sa,Ji,Su,aa]},bu=function(){return[la,ca,qs,ra,ia]},aa=function(t){return postMessage(t,[t.buffer])},yu=function(t,e,n,s,i,r){var o=vu(n,s,i,function(a,c){o.terminate(),r(a,c)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},qs=function(t,e,n){for(;n;++e)t[e]=n,n>>>=8},la=function(t,e){var n=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&&qs(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),n){t[3]=8;for(var s=0;s<=n.length;++s)t[s+10]=n.charCodeAt(s)}},ca=function(t){return 10+(t.filename?t.filename.length+1:0)};function Su(t,e){return Ji(t,e||{},0,0)}function _u(t,e,n){return n||(n=e,e={}),typeof n!="function"&&ta(7),yu(t,e,[wu,bu,function(){return[ua]}],function(s){return aa(ua(s.data[0],s.data[1]))},2,n)}function ua(t,e){e||(e={});var n=ra(),s=t.length;n.p(t);var i=Ji(t,e,ca(e),8),r=i.length;return la(i,e),qs(i,r-8,n.d()),qs(i,r-4,s),i}var ku=typeof TextDecoder<"u"&&new TextDecoder,Tu=0;try{ku.decode(Yi,{stream:!0}),Tu=1}catch{}class ha{constructor(){this.idx=1,this.backDict={}}getKey(e){let n=!1;return this.backDict[e]||(n=!0,this.backDict[e]=this.idx++),[this.backDict[e],n]}}class xu{constructor(e){this.dict=new ha,this.app=e.app,this.isDictDisabled=e.isDictDisabled}sendSetAttribute(e,n,s){if(this.isDictDisabled){const i=[12,e,n,s];return this.app.send(i)}else{const i=[51,e,this.applyDict(n),this.applyDict(s)];return this.app.send(i)}}applyDict(e){const[n,s]=this.dict.getKey(e);return s&&this.app.send([50,n,e]),n}clear(){this.dict=new ha}}class Eu{constructor(e,n){this.app=e,this.startParams=n,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=s=>{if(s.value.length){const i=Iu(s);if(i.type)return i}},this.durationInt=null}setConditions(e){this.conditions=e}async fetchConditions(e,n){try{const s=await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${e}`,{method:"GET",headers:{Authorization:`Bearer ${n}`}}),{conditions:i}=await s.json(),r=[];i.forEach(o=>{o.filters.forEach(c=>{let u;c.type==="fetch"?(u={type:"network_request",subConditions:[],name:o.name},c.filters.forEach(l=>{const h=this.createConditionFromFilter(l);h&&u.subConditions.push(h)})):u=this.createConditionFromFilter(c),u&&(u.type==="session_duration"&&this.processDuration(u.value[0],o.name),r.push({...u,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(n){this.app.debug.error(n)}}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 n=this.conditions.filter(s=>s.type==="feature_flag");n.length&&n.forEach(s=>{const i=Ln[s.operator];i&&e.find(r=>i(r.key,s.value))&&this.trigger(s.name)})}processDuration(e,n){this.durationInt=setInterval(()=>{performance.now()>e&&this.trigger(n)},1e3),this.app.attachStopCallback(()=>{this.durationInt&&clearInterval(this.durationInt)})}networkRequest(e){const n=this.conditions.filter(s=>s.type==="network_request");n.length&&n.forEach(s=>{const i=s.subConditions.filter(r=>r.operator!=="isAny");i.length?i.every(o=>{let a;switch(o.key){case"url":a=e[3];break;case"status":a=e[6];break;case"method":a=e[2];break;case"duration":a=e[8];break}const c=Ln[o.operator];if(c&&c(a,o.value))return!0})&&this.trigger(s.name):i.length===0&&s.subConditions.length&&this.trigger(s.name)})}customEvent(e){const n=this.conditions.filter(s=>s.type==="custom_event");n.length&&n.forEach(s=>{const i=Ln[s.operator];i&&(i(e[1],s.value)||i(e[2],s.value))&&this.trigger(s.name)})}clickEvent(e){const n=this.conditions.filter(s=>s.type==="click");n.length&&n.forEach(s=>{const i=Ln[s.operator];i&&(i(e[3],s.value)||i(e[4],s.value))&&this.trigger(s.name)})}pageLocationEvent(e){const n=this.conditions.filter(s=>s.type==="visited_url");n&&n.forEach(s=>{const i=Ln[s.operator];i&&i(e[1],s.value)&&this.trigger(s.name)})}jsExceptionEvent(e){const n=[e[1],e[2],e[3]],s=this.conditions.filter(i=>i.type==="exception");s&&s.forEach(i=>{const r=Ln[i.operator];r&&n.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const Ln={is:(t,e)=>e.some(n=>t.includes(n)),isAny:()=>!0,isNot:(t,e)=>!e.some(n=>t.includes(n)),contains:(t,e)=>e.some(n=>t.includes(n)),notContains:(t,e)=>!e.some(n=>t.includes(n)),startsWith:(t,e)=>e.some(n=>t.startsWith(n)),endsWith:(t,e)=>e.some(n=>t.endsWith(n)),greaterThan:(t,e)=>t>e,greaterOrEqual:(t,e)=>t>=e,lessOrEqual:(t,e)=>t<=e,lessThan:(t,e)=>t<e},Iu=t=>{const e={on:"is",notOn:"isNot",">":"greaterThan","<":"lessThan","=":"is","<=":"lessOrEqual",">=":"greaterOrEqual"},n=i=>{if(Object.keys(e).includes(i))return e[i]};let s={type:"",operator:"",value:t.value,key:""};switch(t.type){case"click":s={type:"click",operator:n(t.operator),value:t.value,key:""};break;case"location":s={type:"visited_url",operator:t.operator,value:t.value,key:""};break;case"custom":s={type:"custom_event",operator:t.operator,value:t.value,key:""};break;case"metadata":s={type:t.source==="featureFlag"?"feature_flag":t.type,operator:t.operator,value:t.value,key:""};break;case"error":s={type:"exception",operator:t.operator,value:t.value,key:""};break;case"duration":s={type:"session_duration",value:t.value[0],key:""};break;case"fetchUrl":s={type:"network_request",key:"url",operator:t.operator,value:t.value};break;case"fetchStatusCode":s={type:"network_request",key:"status",operator:n(t.operator),value:t.value};break;case"fetchMethod":s={type:"network_request",key:"method",operator:n(t.operator),value:t.value};break;case"fetchDuration":s={type:"network_request",key:"duration",operator:n(t.operator),value:t.value};break}return s};class Cu{constructor(e){this.app=e,this.flags=[],this.storageKey="__openreplay_flags";const n=this.app.sessionStorage.getItem(this.storageKey);if(n){const s=n.split(";").filter(Boolean);this.flags=s.map(i=>JSON.parse(i))}}getFeatureFlag(e){return this.flags.find(n=>n.key===e)}isFlagEnabled(e){return this.flags.findIndex(n=>n.key===e)!==-1}onFlagsLoad(e){this.onFlagsCb=e}async reloadFlags(e){const n=this.app.sessionStorage.getItem(this.storageKey),s={};n&&n.split(";").filter(Boolean).forEach(l=>{const h=JSON.parse(l);s[h.key]={key:h.key,value:h.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:s},a=e??this.app.session.getSessionToken(),c=await fetch(this.app.options.ingestPoint+"/v1/web/feature-flags",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify(o)});if(c.status===200){const u=await c.json();return this.handleFlags(u.flags)}}handleFlags(e){var r;const n=[];e.forEach(o=>{o.is_persist&&n.push(o)});let s="";return this.diffPersist(n).forEach(o=>{s+=`${JSON.stringify(o)};`}),this.app.sessionStorage.setItem(this.storageKey,s),this.flags=e,(r=this.onFlagsCb)==null?void 0:r.call(this,e)}clearPersistFlags(){this.app.sessionStorage.removeItem(this.storageKey)}diffPersist(e){const n=this.app.sessionStorage.getItem(this.storageKey);if(!n)return e;const i=n.split(";").filter(Boolean).map(r=>JSON.parse(r));return e.filter(r=>i.findIndex(o=>o.key===r.key)===-1)}}const da={htmlmasked:"hidden",masked:"obscured"},ft=!(typeof window>"u"),Nu=ft&&navigator.userAgent.match(/firefox|fxios/i),Ru=1e5;let Qi=ft?Date.now()-performance.now():0;function Zi(){Qi=Date.now()-performance.now()}function Bn(){return Qi}const lt=ft&&performance.now?()=>Math.round(performance.now()+Qi):()=>Date.now(),$i="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function fa(t){return t.trim().replace(/\s+/g," ")}function pa(t){return t.startsWith("https://")||t.startsWith("http://")}const Vs="https://docs.openreplay.com",ga={};function Jt(t,e,n="/"){ga[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${Vs}${n} for more information.`),ga[t]=!0)}function er(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&Jt('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function pn(t,e){const n=`data-openreplay-${e}`;return t.hasAttribute(n)?(da[e]&&Jt(`"${n}" attribute`,`"${da[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function Du(t){try{return!!t.contentDocument}catch{return!1}}function ma(t){try{return t instanceof HTMLIFrameElement?t.contentDocument:t instanceof Window?t.document:t instanceof Document?t.defaultView:"nodeType"in t?t.nodeType:"addEventListener"in t&&t.addEventListener,!0}catch(e){if(e instanceof DOMException&&e.name==="SecurityError")return!1}return!0}function va(t){return t.toString(16).padStart(2,"0")}function Au(t){const e=new Uint8Array(t/2),n=window.crypto||window.msCrypto;return n?(n.getRandomValues(e),Array.from(e,va).join("")):Array.from({length:t},()=>va(Math.floor(Math.random()*16))).join("")}function wa(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function tr(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function ba(t,e){if(e)return new MutationObserver(t);{const n=tr("MutationObserver");return new window[n](t)}}function ya(t,e,n,s,i){if(!ma(t))return;let r="addEventListener";i||(r=tr("addEventListener"));try{t[r]?t[r](e,n,s):t.addEventListener(e,n,s)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}function Sa(t,e,n,s,i){if(!ma(t))return;let r="removeEventListener";i||(r=tr("removeEventListener"));try{t[r]?t[r](e,n,s):t.removeEventListener(e,n,s)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}class Mu{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 n=this.taskQueue.shift();Promise.resolve(n()).then(()=>{requestAnimationFrame(()=>e())})};e()}}const Ou=new Mu;function Pu(t){Ou.addTask(t)}function _a(t,e){const n={...t};for(const s in e)if(e.hasOwnProperty(s)){const i=e[s],r=t[s];typeof i=="object"&&!Array.isArray(i)&&i!==null?n[s]=_a(r||{},i):n[s]=i}return n}function gn(t){return[0,t]}function Lu(t,e){return[5,t,e]}function Bu(t,e){return[6,t,e]}function Fu(){return[7]}function Wu(t,e,n,s,i){return[8,t,e,n,s,i]}function zu(t,e,n){return[9,t,e,n]}function ju(t,e,n){return[10,t,e,n]}function Uu(t){return[11,t]}function ka(t,e){return[13,t,e]}function Hu(t,e){return[14,t,e]}function qu(t,e,n){return[16,t,e,n]}function Vu(t,e,n){return[18,t,e,n]}function Gu(t,e){return[19,t,e]}function Ku(t,e){return[20,t,e]}function Xu(t,e){return[22,t,e]}function Yu(t,e,n,s,i,r,o,a,c){return[23,t,e,n,s,i,r,o,a,c]}function Ju(t,e,n){return[24,t,e,n]}function Qu(t,e){return[27,t,e]}function Zu(t){return[28,t]}function $u(t){return[29,t]}function Ta(t,e){return[30,t,e]}function eh(t,e,n,s){return[49,t,e,n,s]}function th(t,e){return[54,t,e]}function nh(t){return[55,t]}function xa(t,e,n,s){return[57,t,e,n,s]}function Ea(t){return[58,t]}function nr(t,e,n,s){return[60,t,e,n,s]}function sh(t,e,n){return[61,t,e,n]}function ih(t,e){return[63,t,e]}function rh(t,e){return[64,t,e]}function oh(t,e,n,s,i,r){return[68,t,e,n,s,i,r]}function sr(t,e){return[70,t,e]}function Ia(t,e,n){return[71,t,e,n]}function ir(t,e,n,s){return[73,t,e,n,s]}function Ca(t,e){return[75,t,e]}function Na(t,e){return[76,t,e]}function ah(t,e){return[77,t,e]}function rr(t,e,n,s){return[78,t,e,n,s]}function Gs(t,e,n,s,i,r,o,a,c){return[83,t,e,n,s,i,r,o,a,c]}function lh(t,e,n,s,i,r){return[84,t,e,n,s,i,r]}function ch(t,e,n,s,i,r){return[112,t,e,n,s,i,r]}function Ra(t,e,n){return[113,t,e,n]}function uh(t){return[114,t]}function Da(t){return[115,t]}function Aa(t,e,n,s,i,r,o,a,c,u){return[116,t,e,n,s,i,r,o,a,c,u]}function Ks(t){return[117,t]}function mn(t){return[118,t]}function hh(t,e){return[119,t,e]}function dh(t){return[120,t]}function fh(t,e,n,s){return[122,t,e,n,s]}const or=ft&&"performance"in window&&"memory"in performance?performance:{memory:{}},ar=ft?(navigator.deviceMemory||0)*1024:0,lr=or.memory.jsHeapSizeLimit||0;function ph(t,e){if(!Object.assign({capturePerformance:!0},e).capturePerformance)return;let s,i;const r=()=>{s===void 0||s===-1||(s++,requestAnimationFrame(r))};t.ticker.attach(()=>{i===void 0||i===-1||i++},0,!1);const o=()=>{s===void 0||i===void 0||(t.send(eh(s,i,or.memory.totalJSHeapSize||0,or.memory.usedJSHeapSize||0)),i=s=document.hidden?-1:0)};t.attachStartCallback(()=>{i=s=-1,o(),r()}),t.attachStopCallback(()=>{i=s=void 0}),t.ticker.attach(o,40,!1),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",o,!1,!1)}const Ma="__or__watched_tags__";class gh{constructor(e){this.intervals={},this.tags=[],this.sessionStorage=e.sessionStorage,this.errLog=e.errLog,this.onTag=e.onTag;const n=JSON.parse(e.sessionStorage.getItem(Ma)??"[]");this.setTags(n),this.observer=new IntersectionObserver(s=>{s.forEach(i=>{if(i.isIntersecting&&i.target){const r=i.target.__or_watcher_tagname;r&&this.onTagRendered(r),this.observer.unobserve(i.target)}})})}async fetchTags(e,n){return fetch(`${e}/v1/web/tags`,{method:"GET",headers:{Authorization:`Bearer ${n}`}}).then(s=>s.json()).then(({tags:s})=>{if(s&&s.length){this.setTags(s);const i=JSON.stringify(s);this.sessionStorage.setItem(Ma,i||"")}}).catch(s=>this.errLog(s))}setTags(e){this.tags=e,this.intervals={},e.forEach(n=>{this.intervals[n.id]=setInterval(()=>{const s=document.querySelectorAll(n.selector);if(s.length>0){const i=s[0];i.__or_watcher_tagname=n.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 mh={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"'},vh={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},Xs={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"},wh={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},bh={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"},yh={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"},Oa={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},Fn={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},Sh={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"},Wn={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"},_h={...Wn,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},Pa={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},La={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"},Ba={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},kh={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},Fa={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},Th={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"},Wa={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"},za={fontWeight:"bold"},xh={fontSize:"13px",lineHeight:"auto"},ja={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},Eh={...ja,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},Ih={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},Ch={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},Ua={Standard:{width:1280,height:720}};class Nh{constructor(e){this.app=e,this.mediaRecorder=null,this.recordedChunks=[],this.stream=null,this.recStartTs=null}async startRecording(e,n,s,i){this.recStartTs=this.app.timestamp();const r=n;try{this.stream=await navigator.mediaDevices.getUserMedia({video:i?{...r,frameRate:{ideal:e}}:!1,audio:s}),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 n=new Blob(this.recordedChunks,{type:"video/webm"});e(n)},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(n=>{if(n.ok)return n.json();throw new Error("Failed to get upload url")}).then(({url:n})=>fetch(n,{method:"PUT",headers:{"Content-Type":"video/webm"},body:e})).catch(console.error).finally(()=>{this.discard()})}async saveToFile(e="recorded-video.webm"){const n=await this.stopRecording(),s=URL.createObjectURL(n),i=document.createElement("a");i.style.display="none",i.href=s,i.download=e,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(s),document.body.removeChild(i)}discard(){var e,n;(e=this.mediaRecorder)==null||e.stop(),(n=this.stream)==null||n.getTracks().forEach(s=>s.stop())}}function Rh(t,e){e.onmousedown=function(n){const s=t.getBoundingClientRect(),i=n.clientX-s.left,r=n.clientY-s.top;t.style.position="fixed",t.style.zIndex=99999999999999,o(n.pageX,n.pageY);function o(u,l){let h=u-i,d=l-r;h<=5&&(h=5),d<=5&&(d=5),h>=window.innerWidth-s.width&&(h=window.innerWidth-s.width),d>=window.innerHeight-s.height&&(d=window.innerHeight-s.height),t.style.left=`${h}px`,t.style.top=`${d}px`}function a(u){o(u.pageX,u.pageY)}document.addEventListener("mousemove",a);const c=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c)},e.ondragstart=function(){return!1}}function Dh(){const t=document.createElement("div");t.className="grid";for(let e=0;e<16;e++){const n=document.createElement("div");Object.assign(n.style,{width:"2px",height:"2px",borderRadius:"10px",background:"white"}),n.className="cell",t.appendChild(n)}return Object.assign(t.style,{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gridTemplateRows:"repeat(4, 1fr)",gap:"2px",cursor:"grab"}),t}function Ah(){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 Mh(){const t=document.createElement("style");t.type="text/css",t.innerText=`@keyframes spin {
|
|
2
2
|
0% { transform: rotate(0deg); }
|
|
3
3
|
100% { transform: rotate(360deg); }
|
|
4
|
-
}`,document.head.appendChild(t)}function
|
|
4
|
+
}`,document.head.appendChild(t)}function Oh(){Mh();const t=document.createElement("div");return t.classList.add("spinner"),Object.assign(t.style,Ch),t}function X(t,e,n,s,i){const r=document.createElement(t);return r.className=e,Object.assign(r.style,n),s&&(r.textContent=s),i&&(r.id=i),r}const Ys="or_uxt_test_start",cr="or_uxt_task_index",ur="or_uxt_session_id",Ph="or_uxt_test_id";class Lh{constructor(e,n,s,i,r,o,a,c,u){this.ingestPoint=e,this.getTimestamp=n,this.token=s,this.testId=i,this.storageKey=r,this.setStorageKey=o,this.removeStorageKey=a,this.getStorageKey=c,this.getSessionId=u,this.durations={testStart:0,tasks:[]},this.getDurations=()=>this.durations,this.setDurations=h=>{this.durations.testStart=h.testStart,this.durations.tasks=h.tasks},this.signalTask=(h,d,p)=>{if(!h)return console.error("User Testing: No Task ID Given");const f=this.durations.tasks.find(x=>x.taskId===h),m=this.getTimestamp(),S=f?m-f.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:h,status:d,duration:S,timestamp:m,taskAnswer:p})})},this.signalTest=h=>{const d=this.getTimestamp();if(h==="begin"&&this.testId){const m=this.getSessionId();this.setStorageKey(ur,m),this.setStorageKey(this.storageKey,this.testId.toString()),this.setStorageKey(Ys,d.toString())}else this.removeStorageKey(this.storageKey),this.removeStorageKey(cr),this.removeStorageKey(Ys);const p=this.durations.testStart||d,f=d-p;return fetch(`${this.ingestPoint}/v1/web/uxt/signals/test`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`},body:JSON.stringify({testId:this.testId,status:h,duration:f,timestamp:d})})};const l=this.getStorageKey(Ys);l&&(this.durations.testStart=parseInt(l,10))}}class Bh{constructor(e,n){this.app=e,this.storageKey=n,this.bg=X("div","bg",mh,void 0,"__or_ut_bg"),this.container=X("div","container",vh,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,a,c)=>{this.testId=o;const u=this.app.options.ingestPoint;return fetch(`${u}/v1/web/uxt/test/${o}`,{headers:{Authorization:`Bearer ${a}`}}).then(l=>l.json()).then(({test:l})=>{this.isActive=!0,this.test=l,this.signalManager=new Lh(this.app.options.ingestPoint,()=>this.app.timestamp(),a,o,this.storageKey,(h,d)=>this.app.localStorage.setItem(h,d),h=>this.app.localStorage.removeItem(h),h=>this.app.localStorage.getItem(h),()=>this.app.getSessionID()),this.createGreeting(l.title,l.reqMic,l.reqCamera),c&&((l.reqMic||l.reqCamera)&&this.userRecorder.startRecording(30,Ua.Standard,l.reqMic,l.reqCamera),this.showWidget(l.description,l.tasks,!0),this.showTaskSection())}).then(()=>o).catch(l=>{console.log("OR: Error fetching test",l)})},this.hideTaskSection=()=>!1,this.showTaskSection=()=>!0,this.collapseWidget=()=>!1,this.removeGreeting=()=>!1,this.toggleDescriptionVisibility=()=>{},this.currentTaskIndex=0,this.userRecorder=new Nh(e);const s=this.app.getSessionID(),i=this.app.localStorage.getItem(ur);s!==i&&(this.app.localStorage.removeItem(this.storageKey),this.app.localStorage.removeItem(ur),this.app.localStorage.removeItem(Ph),this.app.localStorage.removeItem(cr),this.app.localStorage.removeItem(Ys));const r=this.app.localStorage.getItem(cr);r&&(this.currentTaskIndex=parseInt(r,10))}getTestId(){return this.testId}createGreeting(e,n,s){const i=X("div","title",wh,e),r=X("div","description",bh,`Welcome, you're here to help us improve, not to be judged. Your insights matter!
|
|
5
5
|
|
|
6
6
|
📹 We're recording this browser tab to learn from your experience.
|
|
7
|
-
🎤 Please enable mic and camera if asked, to give us a complete picture.`),o=X("div","button",
|
|
7
|
+
🎤 Please enable mic and camera if asked, to give us a complete picture.`),o=X("div","button",yh,"Read guidelines to begin");this.removeGreeting=()=>((n||s)&&this.userRecorder.startRecording(30,Ua.Standard,n,s),this.container.removeChild(o),this.container.removeChild(r),this.container.removeChild(i),!1),o.onclick=()=>{var c,u,l,h;this.removeGreeting();const a=(c=this.signalManager)==null?void 0:c.getDurations();a&&this.signalManager&&(a.testStart=this.app.timestamp(),this.signalManager.setDurations(a)),(u=this.signalManager)==null||u.signalTest("begin"),this.container.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',Object.assign(this.container.style,Xs),this.showWidget(((l=this.test)==null?void 0:l.guidelines)||"",((h=this.test)==null?void 0:h.tasks)||[])},this.container.append(i,r,o),this.bg.appendChild(this.container),document.body.appendChild(this.bg)}showWidget(e,n,s){this.container.innerHTML="",Object.assign(this.bg.style,{position:"fixed",zIndex:99999999999999,right:"8px",left:"unset",width:"fit-content",top:"8px",height:"fit-content",background:"unset",display:"unset",alignItems:"unset",justifyContent:"unset"});const i=this.createTitleSection();this.container.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',Object.assign(this.container.style,Xs);const r=this.createDescriptionSection(e),o=this.createTasksSection(n),a=X("div","stop_bn_or",Ba,"Abort Session"),c=X("div","stop_ct_or",{fontSize:"13px!important"});c.style.fontSize="13px",c.append(a),this.container.append(i,r,o,c),this.taskSection=o,this.descriptionSection=r,this.stopButton=a,this.stopButtonContainer=c,a.onclick=()=>{var u;this.userRecorder.discard(),(u=this.signalManager)==null||u.signalTest("skipped"),document.body.removeChild(this.bg),window.close()},s?this.toggleDescriptionVisibility():this.hideTaskSection()}createTitleSection(){var a;const e=X("div","title",Sh),n=Dh(),s=X("div","title_text",{maxWidth:"19rem",overflow:"hidden",textOverflow:"ellipsis",width:"100%",fontSize:16,lineHeight:"auto",cursor:"pointer"},(a=this.test)==null?void 0:a.title),i=Ah();e.append(n,s,i);const r=c=>(this.widgetVisible=c,this.container.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',Object.assign(this.container.style,this.widgetVisible?Xs:{border:"none",background:"none",padding:0}),this.taskSection&&Object.assign(this.taskSection.style,this.widgetVisible?Wn:{display:"none"}),this.descriptionSection&&Object.assign(this.descriptionSection.style,this.widgetVisible?Wn:{display:"none"}),this.endSection&&Object.assign(this.endSection.style,this.widgetVisible?Wn:{display:"none"}),this.stopButton&&Object.assign(this.stopButton.style,this.widgetVisible?Ba:{display:"none"}),c),o=()=>{Object.assign(i.style,{transform:this.widgetVisible?"rotate(0deg)":"rotate(180deg)"}),r(!this.widgetVisible)};return s.onclick=o,i.onclick=o,Rh(this.bg,n),this.collapseWidget=()=>r(!1),e}createDescriptionSection(e){const n=X("div","description_section_or",Wn),s=X("div","description_s_title_or",Oa),i=X("div","title",{fontSize:13,fontWeight:500,lineHeight:"auto"},"Introduction & Guidelines"),r=X("div","icon",Pa,"-"),o=X("div","content",Fn),a=X("div","text_description",{maxHeight:"250px",overflowY:"auto",whiteSpace:"pre-wrap",fontSize:13,color:"#454545",lineHeight:"auto"});a.innerHTML=e;const c=X("div","button_begin_or",La,"Begin Test");s.append(i,r),o.append(a,c),n.append(s,o);const u=()=>{this.widgetGuidelinesVisible=!this.widgetGuidelinesVisible,r.textContent=this.widgetGuidelinesVisible?"-":"+",Object.assign(o.style,this.widgetGuidelinesVisible?Fn:{display:"none"})};return s.onclick=u,this.toggleDescriptionVisibility=()=>{this.widgetGuidelinesVisible=!1,r.textContent=this.widgetGuidelinesVisible?"-":"+",Object.assign(o.style,this.widgetGuidelinesVisible?Fn:{display:"none"}),o.removeChild(c)},c.onclick=()=>{var l,h,d;if(u(),this.test){const p=(l=this.signalManager)==null?void 0:l.getDurations(),f=p?p.tasks.findIndex(m=>this.test&&m.taskId===this.test.tasks[0].task_id):null;p&&f===-1&&(p.tasks.push({taskId:this.test.tasks[0].task_id,started:this.app.timestamp()}),(h=this.signalManager)==null||h.setDurations(p)),(d=this.signalManager)==null||d.signalTask(this.test.tasks[0].task_id,"begin")}this.showTaskSection(),o.removeChild(c)},n}createTasksSection(e){this.container.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',Object.assign(this.container.style,Xs);const n=X("div","task_section_or",Wn),s=X("div","description_t_title_or",Oa),i=X("div","title",{fontSize:"13px",fontWeight:"500",lineHeight:"auto"},"Tasks"),r=X("div","icon",Pa,"-"),o=X("div","content",Fn),a=X("div","pagination",kh),c=X("div","taskCard",Wa),u=X("div","taskText",za),l=X("div","taskDescription",xh),h=X("div","taskButtons",Ih),d=X("div","taskText",za);d.textContent="Your answer";const p=X("textarea","taskDescription",{resize:"vertical"}),f=X("div","inputArea",Wa);f.append(d,p);const m=X("div","closePanelButton",ja,"Collapse Panel"),S=X("div","nextButton",Eh,"Done, Next");s.append(i,r),c.append(u,l),h.append(m,S),o.append(a,c,f,h),n.append(s,o);const x=()=>{const g=e[this.currentTaskIndex];u.textContent=g.title,l.textContent=g.description,g.allow_typing?f.style.display="flex":f.style.display="none"};e.forEach((g,_)=>{const E=X("span",`or_task_${_}`,{outline:"1px solid #efefef",fontSize:"13px",height:"24px",width:"24px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em"},(_+1).toString());E.id=`or_task_${_}`,a.append(E)});const T=()=>{this.widgetTasksVisible=!this.widgetTasksVisible,r.textContent=this.widgetTasksVisible?"-":"+",Object.assign(o.style,this.widgetTasksVisible?Fn:{display:"none"})};this.hideTaskSection=()=>(r.textContent="+",Object.assign(o.style,{display:"none"}),this.widgetTasksVisible=!1,!1),this.showTaskSection=()=>(r.textContent="-",Object.assign(o.style,Fn),this.widgetTasksVisible=!0,!0);const I=()=>{const g=document.getElementById(`or_task_${this.currentTaskIndex}`);g&&Object.assign(g.style,Fa);for(let _=0;_<this.currentTaskIndex;_++){const E=document.getElementById(`or_task_${_}`);E&&Object.assign(E.style,Th)}};return s.onclick=T,m.onclick=this.collapseWidget,S.onclick=()=>{var _,E,b,y;const g=e[this.currentTaskIndex].allow_typing?p.value:void 0;if(p.value="",(_=this.signalManager)==null||_.signalTask(e[this.currentTaskIndex].task_id,"done",g),this.currentTaskIndex<e.length-1){this.currentTaskIndex++,x();const k=(E=this.signalManager)==null?void 0:E.getDurations();k&&k.tasks.findIndex(P=>P.taskId===e[this.currentTaskIndex].task_id)===-1&&(k.tasks.push({taskId:e[this.currentTaskIndex].task_id,started:this.app.timestamp()}),(b=this.signalManager)==null||b.setDurations(k)),(y=this.signalManager)==null||y.signalTask(e[this.currentTaskIndex].task_id,"begin"),I()}else this.showEndSection();this.app.localStorage.setItem("or_uxt_task_index",this.currentTaskIndex.toString())},setTimeout(()=>{const g=document.getElementById("or_task_0");g&&Object.assign(g.style,Fa),x(),I()},1),n}showEndSection(){var a,c,u,l;let e=!0;(a=this.signalManager)==null||a.signalTest("done");const n=X("div","end_section_or",_h),s=X("div","end_title_or",{fontSize:"1.25rem",fontWeight:"500"},"Thank you! 👍"),i=X("div","end_description_or",{},((c=this.test)==null?void 0:c.conclusion)??`Thank you for participating in our usability test. Your feedback has been captured and will be used to enhance our website.
|
|
8
8
|
|
|
9
|
-
We appreciate your time and valuable input.`),r=X("div","end_button_or",Sa,"Submitting Feedback"),o=vh();r.appendChild(o),(u=this.test)!=null&&u.reqMic||(l=this.test)!=null&&l.reqCamera?this.userRecorder.sendToAPI().then(()=>{r.removeChild(o),r.textContent="End Session",e=!1}).catch(h=>{console.error(h),r.removeChild(o),r.textContent="End Session",e=!1}):(r.removeChild(o),r.textContent="End Session",e=!1),this.taskSection&&this.container.removeChild(this.taskSection),this.descriptionSection&&this.container.removeChild(this.descriptionSection),this.stopButton&&this.stopButtonContainer&&this.container.removeChild(this.stopButtonContainer),r.onclick=()=>{e||(window.close(),document.body.removeChild(this.bg))},n.append(s,i,r),this.endSection=n,this.container.append(n)}}function Na(t){return!!t&&t.nodeType!=null}function ir(t){return t.namespaceURI==="http://www.w3.org/2000/svg"}function Nt(t){return t.nodeType===Node.ELEMENT_NODE}function _h(t){return t.nodeType===Node.COMMENT_NODE}function rr(t){return t.nodeType===Node.TEXT_NODE}function Vs(t){return t.nodeType===Node.DOCUMENT_NODE}function Gs(t){return t.nodeType===Node.DOCUMENT_NODE||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function ye(t,e){return t.localName===e}class Sh{constructor(e,n){this.app=e,this.options=n,this.snapshots={},this.intervals=[],this.restartTracking=()=>{this.clear(),this.app.nodes.scanTree(this.captureCanvas)},this.captureCanvas=s=>{const i=this.app.nodes.getID(s);if(!i||!ye(s,"canvas")||this.app.sanitizer.isObscured(i)||this.app.sanitizer.isHidden(i)||!ye(s,"canvas")||this.snapshots[i])return;new IntersectionObserver(a=>{a.forEach(c=>{c.isIntersecting&&(c.target?this.snapshots[i]&&this.snapshots[i].createdAt?this.snapshots[i].paused=!1:this.recordCanvas(c.target,i):this.snapshots[i]&&(this.snapshots[i].paused=!0))})}).observe(s)},this.recordCanvas=(s,i)=>{const r=this.app.timestamp();this.snapshots[i]={images:[],createdAt:r,paused:!1,dummy:document.createElement("canvas")};const o=Xu(i.toString(),r);this.app.send(o);const a=u=>{kh(u,this.options.quality,this.snapshots[i].dummy,this.options.fixedScaling,this.fileExt,l=>{if(l){if(!this.snapshots[i])return this.app.debug.warn("Canvas not present in snapshots after capture:",this.snapshots,i);this.snapshots[i].images.push({id:this.app.timestamp(),data:l}),this.snapshots[i].images.length>9&&(this.sendSnaps(this.snapshots[i].images,i,this.snapshots[i].createdAt),this.snapshots[i].images=[])}})},c=setInterval(()=>{const u=this.app.nodes.getID(s),l=u?this.app.nodes.getNode(u):void 0;if(!this.snapshots[i]){this.app.debug.log("Canvas is not present in {snapshots}"),clearInterval(c);return}if(!l||!ye(l,"canvas")||l!==s){this.app.debug.log("Canvas element not in sync",l,s),clearInterval(c);return}else this.snapshots[i].paused||(this.options.useAnimationFrame?requestAnimationFrame(()=>{a(l)}):a(l))},this.interval);this.intervals.push(c)},this.fileExt=n.fileExt??"webp",this.interval=1e3/n.fps}startTracking(){setTimeout(()=>{this.app.nodes.scanTree(this.captureCanvas),this.app.nodes.attachNodeCallback(this.captureCanvas)},250)}sendSnaps(e,n,s){if(Object.keys(this.snapshots).length===0)return;const i=new FormData;e.forEach(o=>{const a=o.data;a&&(i.append("snapshot",a,`${s}_${n}_${o.id}.${this.fileExt}`),this.options.isDebug&&Th(a,`${s}_${n}_${o.id}.${this.fileExt}`))});const r=()=>{this.app.debug.log("Restarting tracker; token expired"),this.app.stop(!1),setTimeout(()=>{this.app.start({},!0)},250)};fetch(this.app.options.ingestPoint+"/v1/web/images",{method:"POST",headers:{Authorization:`Bearer ${this.app.session.getSessionToken()??""}`},body:i}).then(o=>o.status===401?r():!0).catch(o=>{this.app.debug.error("error saving canvas",o)})}clear(){this.intervals.forEach(e=>clearInterval(e)),this.snapshots={}}}const Ra={low:.35,medium:.55,high:.8};function kh(t,e="medium",n,s=!1,i,r){const o=`image/${i}`;if(s){const a=window.devicePixelRatio||1;n.width=t.width/a,n.height=t.height/a;const c=n.getContext("2d");if(!c)return"";c.clearRect(0,0,n.width,n.height),c.drawImage(t,0,0,n.width,n.height),n.toBlob(r,o,Ra[e])}else t.toBlob(r,o,Ra[e])}function Th(t,e){const n=URL.createObjectURL(t),s=document.createElement("a");s.href=n,s.download=e,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}const Ln={Verbose:5,Log:4,Warnings:3,Errors:2,Silent:0};class xh{constructor(e=Ln.Silent){this.shouldLog=n=>this.level>=n,this.info=(...n)=>{this.shouldLog(Ln.Verbose)&&console.info(...n)},this.log=(...n)=>{this.shouldLog(Ln.Log)&&console.log(...n)},this.warn=(...n)=>{this.shouldLog(Ln.Warnings)&&console.warn(...n)},this.error=(...n)=>{this.shouldLog(Ln.Errors)&&console.error(...n)},this.level=e}}const Eh=1e3;function Ih(t,e,n){const s=t.entries();function i(){const r=[];let o=s.next();for(;!o.done&&r.length<e;)r.push(o.value),o=s.next();r.length>0&&(r.forEach(([a,c])=>{c&&n(c)}),setTimeout(i,50))}i()}function Ch(t){var e;try{if(!t.isConnected)return[!1,"not connected"];const n=t.nodeType===Node.DOCUMENT_NODE,s=n?t.defaultView:(e=t.ownerDocument)==null?void 0:e.defaultView,i=n?t:t.ownerDocument;return s?s.closed?[!1,"window closed"]:i!=null&&i.documentElement.isConnected?[!0,"ok"]:[!1,"documentElement not connected"]:[!1,"no window"]}catch(n){return[!1,n]}}const Nh={interval:Eh*30,batchSize:2500,enabled:!0};class Rh{constructor(e,n,s){this.nodes=e,this.unregisterNode=n,this.start=()=>{this.options.enabled&&(this.stop(),this.interval=setInterval(()=>{Ih(this.nodes,this.options.batchSize,i=>{Ch(i)[0]||this.unregisterNode(i)})},this.options.interval))},this.stop=()=>{this.interval&&clearInterval(this.interval)},this.options={...Nh,...s}}}class Dh{constructor(e){this.nodes=new Map,this.totalNodeAmount=0,this.nodeCallbacks=[],this.elementListeners=new Map,this.nextNodeId=0,this.scanTree=n=>{this.nodes.forEach(s=>s?n(s):void 0)},this.attachNodeListener=(n,s,i,r=!0)=>{const o=this.getID(n);if(o===void 0)return;oa(n,s,i,r,this.forceNgOff);let a=this.elementListeners.get(o);a===void 0&&(a=[],this.elementListeners.set(o,a)),a.push([s,i,r])},this.unregisterNode=n=>{const s=n[this.node_id];if(s!==void 0){n[this.node_id]=void 0,delete n[this.node_id],this.nodes.delete(s);const i=this.elementListeners.get(s);i!==void 0&&(this.elementListeners.delete(s),i.forEach(r=>aa(n,r[0],r[1],r[2],this.forceNgOff))),this.totalNodeAmount--}return s},this.node_id=e.node_id,this.forceNgOff=e.forceNgOff,this.maintainer=new Rh(this.nodes,this.unregisterNode,e.maintainer),this.maintainer.start()}syntheticMode(e){const n=Number.MAX_SAFE_INTEGER,i=99999999*e;if(i>n)throw new Error("Placeholder id overflow");this.nextNodeId=i}attachNodeCallback(e){return this.nodeCallbacks.push(e)}registerNode(e){let n=e[this.node_id];const s=n===void 0;return s&&(n=this.nextNodeId,this.totalNodeAmount++,this.nextNodeId++,this.nodes.set(n,e),e[this.node_id]=n),[n,s]}cleanTree(){for(const[e,n]of this.nodes)n&&!document.contains(n)&&this.unregisterNode(n)}callNodeCallbacks(e,n){this.nodeCallbacks.forEach(s=>s(e,n))}getID(e){if(e)return e[this.node_id]}getNode(e){return this.nodes.get(e)}getNodeCount(){return this.totalNodeAmount}clear(){for(const[e,n]of this.nodes)n&&this.unregisterNode(n);this.nextNodeId=0,this.nodes.clear()}}function Ks(t){if(_h(t))return!0;if(rr(t))return!1;if(!Nt(t))return!0;const e=t.tagName.toUpperCase();if(e==="LINK"){const n=t.getAttribute("rel"),s=t.getAttribute("as");return!(n!=null&&n.includes("stylesheet")||s==="style"||s==="font")}return e==="SCRIPT"||e==="NOSCRIPT"||e==="META"||e==="TITLE"||e==="BASE"}function or(t){return Gs(t)?!0:!Ks(t)}var ft;(function(t){t[t.New=0]="New",t[t.Removed=1]="Removed",t[t.Changed=2]="Changed"})(ft||(ft={}));class ar{constructor(e,n=!1){this.app=e,this.isTopContext=n,this.commited=[],this.recents=new Map,this.indexes=[],this.attributesMap=new Map,this.textSet=new Set,this.observer=ra(this.app.safe(s=>{for(const i of s){const r=i.target,o=i.type;if(!or(r))continue;if(o==="childList"){for(let c=0;c<i.removedNodes.length;c++)or(i.removedNodes[c])&&this.bindNode(i.removedNodes[c]);for(let c=0;c<i.addedNodes.length;c++)this.bindTree(i.addedNodes[c]);continue}const a=this.app.nodes.getID(r);if(a!==void 0){if(this.recents.has(a)||this.recents.set(a,ft.Changed),o==="attributes"){const c=i.attributeName;if(c===null)continue;let u=this.attributesMap.get(a);u===void 0&&this.attributesMap.set(a,u=new Set),u.add(c);continue}o==="characterData"&&this.textSet.add(a)}}this.commitNodes()}),this.app.options.forceNgOff)}clear(){this.commited.length=0,this.recents.clear(),this.indexes.length=1,this.attributesMap.clear(),this.textSet.clear()}handleIframeSrcChange(e){const n=e.contentDocument;if(n&&this.app.nodes.getID(n)!==void 0){const i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:c=>Ks(c)||this.app.nodes.getID(c)===void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},!1);let r=0;const o=this.app.nodes.getNodeCount();for(;i.nextNode();)e.contentDocument.contains(i.currentNode)||(r+=1,this.app.nodes.unregisterNode(i.currentNode));const a=Math.floor(r/o*100);a>30&&this.app.send(va(a))}}sendNodeAttribute(e,n,s,i){if(ir(n)){s.substring(0,6)==="xlink:"&&(s=s.substring(6)),i===null?this.app.send(ca(e,s)):s==="href"?(i.length>1e5&&(i=""),this.app.send(Yi(e,s,i,this.app.getBaseHref()))):this.app.attributeSender.sendSetAttribute(e,s,i);return}if(!(s==="src"||s==="srcset"||s==="integrity"||s==="crossorigin"||s==="autocomplete"||s.substring(0,2)==="on")&&!(s==="value"&&ye(n,"input")&&n.type!=="button"&&n.type!=="reset"&&n.type!=="submit")){if(i===null){this.app.send(ca(e,s));return}if(s==="style"||s==="href"&&ye(n,"link")){this.app.send(Yi(e,s,i,this.app.getBaseHref()));return}(s==="href"||i.length>1e5)&&(i=""),this.app.attributeSender.sendSetAttribute(e,s,i)}}sendNodeData(e,n,s){if(ye(n,"style")){this.app.send(zu(e,s,this.app.getBaseHref()));return}s=this.app.sanitizer.sanitize(e,s),this.app.send(Eu(e,s))}bindNode(e){const[n,s]=this.app.nodes.registerNode(e);s?this.recents.set(n,ft.New):this.recents.get(n)!==ft.New&&this.recents.set(n,ft.Removed)}bindTree(e){if(!or(e))return;this.bindNode(e);const n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:s=>(this.app.nodes.getID(s)!==void 0&&this.app.debug.error("! Node is already bound",s),Ks(s)||this.app.nodes.getID(s)!==void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT)},!1);for(;n.nextNode();)this.bindNode(n.currentNode)}unbindTree(e){const n=this.app.nodes.unregisterNode(e);if(n!==void 0&&this.recents.get(n)===ft.Removed){this.app.send(xu(n));const s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:a=>Ks(a)||this.app.nodes.getID(a)===void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},!1);let i=0;const r=this.app.nodes.getNodeCount();for(;s.nextNode();)i+=1,this.app.nodes.unregisterNode(s.currentNode);const o=Math.floor(i/r*100);o>30&&this.app.send(va(o))}}_commitNode(e,n){if(Gs(n))return!0;const s=n.parentNode;let i;if(!ye(n,"html")||!this.isTopContext){if(s===null)return this.unbindTree(n),!1;if(i=this.app.nodes.getID(s),i===void 0)return this.unbindTree(n),!1;if(!this.commitNode(i))return this.unbindTree(n),!1;if(this.app.sanitizer.handleNode(e,i,n),this.app.sanitizer.isHidden(i))return!1}let r=n.previousSibling;for(;r!==null;){const l=this.app.nodes.getID(r);if(l!==void 0){this.commitNode(l),this.indexes[e]=this.indexes[l]+1;break}r=r.previousSibling}r===null&&(this.indexes[e]=0);const o=this.recents.get(e),a=o===ft.New,c=this.indexes[e];if(c===void 0)throw"commitNode: missing node index";if(a){if(Nt(n)){let l=n;if(i!==void 0){if(this.app.sanitizer.isHidden(e)){const h=l.clientWidth,d=l.clientHeight;l=n.cloneNode(),l.style.width=`${h}px`,l.style.height=`${d}px`}this.app.send(Su(e,i,c,l.tagName,ir(n)))}for(let h=0;h<l.attributes.length;h++){const d=l.attributes[h];this.sendNodeAttribute(e,l,d.nodeName,d.value)}}else rr(n)&&(this.app.send(ku(e,i,c)),this.sendNodeData(e,s,n.data));return!0}o===ft.Removed&&i!==void 0&&this.app.send(Tu(e,i,c));const u=this.attributesMap.get(e);if(u!==void 0){if(!Nt(n))throw"commitNode: node is not an element";for(const l of u)this.sendNodeAttribute(e,n,l,n.getAttribute(l))}if(this.textSet.has(e)){if(!rr(n))throw"commitNode: node is not a text";this.sendNodeData(e,s,n.data)}return!0}commitNode(e){const n=this.app.nodes.getNode(e);if(n===void 0)return!1;const s=this.commited[e];return s!==void 0?s:this.commited[e]=this._commitNode(e,n)}commitNodes(e=!1){let n;this.recents.forEach((s,i)=>{this.commitNode(i),s===ft.New&&(n=this.app.nodes.getNode(i))&&this.app.nodes.callNodeCallbacks(n,e)}),this.clear()}observeRoot(e,n,s=e){this.observer.observe(e,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1}),this.bindTree(s),n(this.app.nodes.getID(e)),this.commitNodes(!0)}disconnect(){this.observer.disconnect(),this.clear()}}class Da extends ar{observe(e){const n=e.contentDocument,s=this.app.nodes.getID(e);!n||s===void 0||this.observeRoot(n,i=>{if(i===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.docId=i,this.app.send(Ji(s,i))})}syntheticObserve(e,n){this.observeRoot(n,s=>{if(s===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.app.send(Ji(e,s))})}}class Ah extends ar{observe(e){const n=e.shadowRoot,s=this.app.nodes.getID(e);!n||s===void 0||this.observeRoot(n,i=>{if(i===void 0){this.app.debug.error("OpenReplay: Shadow Root was not bound");return}this.app.send(Ji(s,i))})}}class Mh{constructor(){this.states=new WeakMap}calcOffset(e){let n=0,s=0;if(e.parent&&([n,s]=this.calcOffset(e.parent)),!e.offset){const{left:o,top:a}=e.iFrame.getBoundingClientRect();e.offset=[o,a]}const[i,r]=e.offset;return[n+i,s+r]}getDocumentOffset(e){const n=this.states.get(e);return n?this.calcOffset(n):[0,0]}observe(e){var a;const n=e.contentDocument;if(!n)return;const s=e.ownerDocument,i=this.states.get(s),r={offset:null,iFrame:e,parent:i||null,clear:()=>{var c;s.removeEventListener("scroll",o),(c=s.defaultView)==null||c.removeEventListener("resize",o)}},o=()=>{r.offset=null};s.addEventListener("scroll",o),(a=s.defaultView)==null||a.addEventListener("resize",o),this.states.set(n,r)}clear(){this.states=new WeakMap}}const lr=dt?Element.prototype.attachShadow:()=>new ShadowRoot;class Oh extends ar{constructor(e){super(e.app,!0),this.iframeOffsets=new Mh,this.contextCallbacks=[],this.contextsSet=new WeakSet,this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.docObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.app=e.app,this.options=Object.assign({captureIFrames:!0},e.options),this.app.nodes.attachNodeCallback(n=>{ye(n,"iframe")&&(this.options.captureIFrames&&!rn(n,"obscured")||rn(n,"capture"))&&this.handleIframe(n)}),this.app.nodes.attachNodeCallback(n=>{Nt(n)&&n.shadowRoot!==null&&this.handleShadowRoot(n.shadowRoot)})}attachContextCallback(e){this.contextCallbacks.push(e)}getDocumentOffset(e){return this.iframeOffsets.getDocumentOffset(e)}handleIframe(e){const n=this.app.safe(()=>setTimeout(()=>{const s=this.app.nodes.getID(e);if(s===void 0||!pu(e))return;const i=e.contentWindow,r=e.contentDocument;if(!r){this.app.debug.warn("no doc for iframe found",e);return}if(r&&this.docObservers.has(r)){this.app.debug.info("doc already observed for",s);return}const o=new Da(this.app);this.iframeObservers.set(e,o),this.docObservers.set(r,o),this.iframeObserversArr.push(o),o.observe(e),this.iframeOffsets.observe(e),i&&i===i.window&&!this.contextsSet.has(i)&&(this.contextsSet.add(i),this.contextCallbacks.forEach(a=>a(i)))},250));e.addEventListener("load",n),n()}handleShadowRoot(e){const n=new Ah(this.app);this.shadowRootObservers.set(e,n),n.observe(e.host)}observe(){const e=this;Element.prototype.attachShadow=function(){const n=lr.apply(this,arguments);return e.handleShadowRoot(n),n},this.app.nodes.clear(),this.observeRoot(window.document,()=>{this.app.send(_u()),this.app.nodes.callNodeCallbacks(document,!0)},window.document.documentElement)}crossdomainObserve(e,n){const s=this;Element.prototype.attachShadow=function(){const r=lr.apply(this,arguments);return s.handleShadowRoot(r),r},this.app.nodes.clear(),this.app.nodes.syntheticMode(n);const i=new Da(this.app);this.iframeObservers.set(window.document,i),i.syntheticObserve(e,window.document)}disconnect(){this.iframeOffsets.clear(),Element.prototype.attachShadow=lr,this.iframeObserversArr.forEach(e=>e.disconnect()),this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.docObservers=new WeakMap,super.disconnect()}}var Xs;(function(t){t[t.Plain=0]="Plain",t[t.Obscured=1]="Obscured",t[t.Hidden=2]="Hidden"})(Xs||(Xs={}));const Ph=t=>t.trim().replace(/[^\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/g,"█");class Lh{constructor(e){this.obscured=new Set,this.hidden=new Set,this.app=e.app,this.options=Object.assign({obscureTextEmails:!0,obscureTextNumbers:!1},e.options)}handleNode(e,n,s){if((this.obscured.has(n)||Nt(s)&&(rn(s,"masked")||rn(s,"obscured")))&&this.obscured.add(e),(this.hidden.has(n)||Nt(s)&&(rn(s,"htmlmasked")||rn(s,"hidden")))&&this.hidden.add(e),this.options.domSanitizer!==void 0&&Nt(s)){const i=this.options.domSanitizer(s);i===Xs.Obscured&&this.obscured.add(e),i===Xs.Hidden&&this.hidden.add(e)}}sanitize(e,n){return this.obscured.has(e)?Ph(n):(this.options.obscureTextNumbers&&(n=n.replace(/\d/g,"0")),this.options.obscureTextEmails&&(n=n.replace(/^\w+([+.-]\w+)*@\w+([.-]\w+)*\.\w{2,3}$/g,s=>{const[i,r]=s.split("@"),[o,a]=r.split(".");return`${Gi(i)}@${Gi(o)}.${Gi(a)}`})),n)}isObscured(e){return this.obscured.has(e)}isHidden(e){return this.hidden.has(e)}getInnerTextSecure(e){const n=this.app.nodes.getID(e);return n?this.sanitize(n,e.innerText):""}clear(){this.obscured.clear(),this.hidden.clear()}}class Bh{constructor(e){this.metadata={},this.userID=null,this.callbacks=[],this.timestamp=0,this.app=e.app,this.options=e.options,this.createTabId()}attachUpdateCallback(e){this.callbacks.push(e)}handleUpdate(e){e.userID==null&&delete e.userID,e.sessionID==null&&delete e.sessionID,this.callbacks.forEach(n=>n(e))}assign(e){e.userID!==void 0&&(this.userID=e.userID),e.metadata!==void 0&&Object.entries(e.metadata).forEach(([n,s])=>this.metadata[n]=s),e.sessionID!==void 0&&(this.sessionID=e.sessionID),e.timestamp!==void 0&&(this.timestamp=e.timestamp),e.projectID!==void 0&&(this.projectID=e.projectID),this.handleUpdate(e)}setMetadata(e,n){this.metadata[e]=n,this.handleUpdate({metadata:{[e]:n}})}setUserID(e){this.userID=e,this.handleUpdate({userID:e})}setUserInfo(e){this.userInfo=e}getPageNumber(){const e=this.app.sessionStorage.getItem(this.options.session_pageno_key);if(e!=null)return parseInt(e)}incPageNo(){let e=this.getPageNumber();return e===void 0?e=0:e++,this.app.sessionStorage.setItem(this.options.session_pageno_key,e.toString()),e}getSessionToken(){return this.token||this.app.sessionStorage.getItem(this.options.session_token_key)||void 0}setSessionToken(e){this.token=e,this.app.sessionStorage.setItem(this.options.session_token_key,e)}applySessionHash(e){const n=decodeURI(e).split("&");let s=e,i="100500";n.length==2&&([i,s]=n),!(!i||!s)&&(this.app.sessionStorage.setItem(this.options.session_token_key,s),this.app.sessionStorage.setItem(this.options.session_pageno_key,i))}getSessionHash(){const e=this.getPageNumber(),n=this.getSessionToken();if(!(e===void 0||n===void 0))return encodeURI(String(e)+"&"+n)}getTabId(){return this.tabId||this.createTabId(),this.tabId}regenerateTabId(){const e=gu(12);this.app.sessionStorage.setItem(this.options.session_tabid_key,e),this.tabId=e}createTabId(){const e=this.app.sessionStorage.getItem(this.options.session_tabid_key);e?this.tabId=e:this.regenerateTabId()}getInfo(){return{sessionID:this.sessionID,metadata:this.metadata,userID:this.userID,timestamp:this.timestamp,projectID:this.projectID}}reset(){this.app.sessionStorage.removeItem(this.options.session_token_key),this.metadata={},this.userID=null,this.sessionID=void 0,this.timestamp=0}}function Fh(t,e){let n=0;return()=>{n++>=e&&(n=0,t())}}class Wh{constructor(e){this.app=e,this.timer=null,this.callbacks=[]}attach(e,n=0,s=!0,i){i&&(e=e.bind(i)),s&&(e=this.app.safe(e)),this.callbacks.unshift(n?Fh(e,n):e)-1}start(){this.timer===null&&(this.timer=setInterval(()=>this.callbacks.forEach(e=>{e&&e()}),30))}stop(){this.timer!==null&&(clearInterval(this.timer),this.timer=null)}}const zh='!function(){"use strict";class t{constructor(t,s,i,e=10,n=250,h,r){this.onUnauthorised=s,this.onFailure=i,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.pageNo=r,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.lastBatchNum=0,this.ingestURL=t+"/v1/web/i",this.isCompressing=void 0!==h}getQueueStatus(){return 0===this.queue.length&&!this.busy}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){if(this.busy||!this.token)this.queue.push(t);else if(this.busy=!0,this.isCompressing&&this.onCompress)this.onCompress(t);else{const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}}sendNext(){const t=this.queue.shift();if(t)if(this.busy=!0,this.isCompressing&&this.onCompress)this.onCompress(t);else{const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}else this.busy=!1}retry(t,s,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout((()=>this.sendBatch(t,s,i)),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,s,i){var e;const n=null==i?void 0:i.toString().replace(/^([^_]+)_([^_]+).*/,"$1_$2_$3");this.busy=!0;const h={Authorization:`Bearer ${this.token}`};s&&(h["Content-Encoding"]="gzip"),null!==this.token?fetch(`${this.ingestURL}?batch=${null!==(e=this.pageNo)&&void 0!==e?e:"noPageNum"}_${null!=n?n:"noBatchNum"}`,{body:t,method:"POST",headers:h,keepalive:t.length<65536}).then((e=>{if(401===e.status)return this.busy=!1,void this.onUnauthorised();e.status>=400?this.retry(t,s,`${null!=i?i:"noBatchNum"}_network:${e.status}`):(this.attemptsCount=0,this.sendNext())})).catch((e=>{console.warn("OpenReplay:",e),this.retry(t,s,`${null!=i?i:"noBatchNum"}_reject:${e.message}`)})):setTimeout((()=>{this.sendBatch(t,s,`${null!=i?i:"noBatchNum"}_newToken`)}),500)}sendCompressed(t){const s=++this.lastBatchNum;this.sendBatch(t,!0,s)}sendUncompressed(t){const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}clean(){this.sendNext(),setTimeout((()=>{this.token=null,this.queue.length=0}),10)}}const s="function"==typeof TextEncoder?new TextEncoder:{encode(t){const s=t.length,i=new Uint8Array(3*s);let e=-1;for(let n=0,h=0,r=0;r!==s;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===s){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){i[e+=1]=240|n>>>18,i[e+=1]=128|n>>>12&63,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n;continue}}n<=127?i[e+=1]=0|n:n<=2047?(i[e+=1]=192|n>>>6,i[e+=1]=128|63&n):(i[e+=1]=224|n>>>12,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n)}return i.subarray(0,e+1)}};class i{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,s){this.data.set(t,s)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const i=s.encode(t),e=i.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(i,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}class e extends i{encode(t){switch(t[0]){case 0:case 11:case 114:case 115:return this.uint(t[1]);case 4:case 44:case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:case 20:case 38:case 70:case 75:case 76:case 77:case 82:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:case 24:case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 12:case 61:case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:case 17:case 50:case 54:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:case 27:case 30:case 41:case 45:case 46:case 63:case 64:case 79:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 28:case 29:case 42:case 117:case 118:return this.string(t[1]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.int(t[5]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 55:return this.boolean(t[1]);case 57:case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:case 120:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 67:case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 68:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 83:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 84:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10]);case 119:return this.string(t[1])&&this.uint(t[2]);case 121:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 122:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 123:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])}}}class n{constructor(t,s,i,n,h,r){this.pageNo=t,this.timestamp=s,this.url=i,this.onBatch=n,this.tabId=h,this.onOfflineEnd=r,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new e(this.beaconSize),this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,s){for(let s=0;s<3;s++)this.sizeBuffer[s]=t>>8*s;this.encoder.set(this.sizeBuffer,s)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url],s=[118,this.tabId];this.writeType(t),this.writeFields(t),this.writeWithSize(s),this.isEmpty=!0}writeWithSize(t){const s=this.encoder;if(!this.writeType(t)||!s.skip(3))return!1;const i=s.getCurrentOffset(),e=this.writeFields(t);if(e){const e=s.getCurrentOffset()-i;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,i-3),s.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}writeMessage(t){if("q_end"===t[0])return this.finaliseBatch(),this.onOfflineEnd();0===t[0]&&(this.timestamp=t[1]),122===t[0]&&(this.url=t[1]),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new e(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new e(this.beaconSize),this.prepare()))}finaliseBatch(){if(this.isEmpty)return;const t=this.encoder.flush();this.onBatch(t),this.prepare()}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active",t[t.Stopped=4]="Stopped"}(h||(h={}));let r=null,u=null,a=h.NotActive;function o(){u&&u.finaliseBatch()}function c(){return new Promise((t=>{a=h.Stopping,null!==p&&(clearInterval(p),p=null),u&&(u.clean(),u=null),r&&(r.clean(),setTimeout((()=>{r=null}),20)),setTimeout((()=>{a=h.NotActive,t(null)}),100)}))}function g(){[h.Stopped,h.Stopping].includes(a)||(postMessage("a_stop"),c().then((()=>{postMessage("a_start")})))}let l,p=null;self.onmessage=({data:s})=>{if(null!=s){if("stop"===s)return o(),void c().then((()=>{a=h.Stopped}));if("forceFlushBatch"!==s){if(!Array.isArray(s)){if("compressed"===s.type){if(!r)return console.debug("OR WebWorker: sender not initialised. Compressed batch."),void g();s.batch&&r.sendCompressed(s.batch)}if("uncompressed"===s.type){if(!r)return console.debug("OR WebWorker: sender not initialised. Uncompressed batch."),void g();s.batch&&r.sendUncompressed(s.batch)}return"start"===s.type?(a=h.Starting,r=new t(s.ingestPoint,(()=>{g()}),(t=>{!function(t){postMessage({type:"failure",reason:t}),c()}(t)}),s.connAttemptCount,s.connAttemptGap,(t=>{postMessage({type:"compress",batch:t},[t.buffer])}),s.pageNo),u=new n(s.pageNo,s.timestamp,s.url,(t=>{r&&r.push(t)}),s.tabId,(()=>postMessage({type:"queue_empty"}))),null===p&&(p=setInterval(o,1e4)),a=h.Active):"auth"===s.type?r?u?(r.authorise(s.token),void(s.beaconSizeLimit&&u.setBeaconSizeLimit(s.beaconSizeLimit))):(console.debug("OR WebWorker: writer not initialised. Received auth."),void g()):(console.debug("OR WebWorker: sender not initialised. Received auth."),void g()):void 0}if(u){const t=u;s.forEach((s=>{55===s[0]&&(s[1]?l=setTimeout((()=>g()),18e5):clearTimeout(l)),t.writeMessage(s)}))}else postMessage("not_init"),g()}else o()}else o()}}();\n',ss="canceled",Aa="or_uxt_active",cr="or_buffer_1",Rt=t=>({reason:t,success:!1}),Ma=t=>({...t,success:!0});var ge;(function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Active=2]="Active",t[t.ColdStart=3]="ColdStart"})(ge||(ge={}));const Oa="https://api.openreplay.com/ingest";function ur(){const t=new Date().getTimezoneOffset()*-1,e=t>=0?"+":"-",n=Math.floor(Math.abs(t)/60),s=Math.abs(t)%60;return`UTC${e}${String(n).padStart(2,"0")}:${String(s).padStart(2,"0")}`}const jh=t=>new Promise(e=>setTimeout(e,t)),me={ask:"never-gonna-give-you-up",resp:"never-gonna-let-you-down",reg:"never-gonna-run-around-and-desert-you",iframeSignal:"tracker inside a child iframe",iframeId:"getting node id for child iframe",iframeBatch:"batch of messages from an iframe window",parentAlive:"signal that parent is live",killIframe:"stop tracker inside frame",startIframe:"start tracker inside frame",polling:"hello-how-are-you-im-under-the-water-please-help-me"};let Uh=class{constructor(e,n,s,i,r){var c,u;this.signalError=i,this.insideIframe=r,this.messages=[],this.bufferedMessages1=[],this.bufferedMessages2=[],this.startCallbacks=[],this.stopCallbacks=[],this.commitCallbacks=[],this.activityState=ge.NotActive,this.version="14.0.14",this.socketMode=!1,this.compressionThreshold=24*1e3,this.bc=null,this.canvasRecorder=null,this.conditionsManager=null,this.canStart=!1,this.rootId=null,this.pageFrames=[],this.frameOderNumber=0,this.features={"feature-flags":!0,"usability-test":!0},this.parentActive=!1,this.checkStatus=()=>this.parentActive,this.parentCrossDomainFrameListener=l=>{const{data:h}=l;if(!(!h||l.source===window)){if(h.line===me.startIframe){if(this.active())return;try{this.allowAppStart(),this.start()}catch(d){console.error("children frame restart failed:",d)}}h.line===me.parentAlive&&(this.parentActive=!0),h.line===me.iframeId&&(this.parentActive=!0,this.rootId=h.id,this.session.setSessionToken(h.token),this.frameOderNumber=h.frameOrderNumber,this.debug.log("starting iframe tracking",h),this.allowAppStart()),h.line===me.killIframe&&this.active()&&this.stop()}},this.trackedFrames=[],this.crossDomainIframeListener=l=>{var d,f;if(!this.active()||l.source===window)return;const{data:h}=l;if(h){if(h.line===me.iframeSignal&&((d=l.source)==null||d.postMessage({ping:!0,line:me.parentAlive},"*"),(async()=>{var E;if(l.source===null)return console.error("Couldnt connect to event.source for child iframe tracking");const v=await this.checkNodeId(l.source);if(!v){this.debug.log("Couldnt get node id for iframe",l.source);return}try{this.trackedFrames.includes(h.context)?this.debug.log("Trying to observe already added iframe; ignore if its a restart"):this.trackedFrames.push(h.context),await this.waitStarted();const T=this.session.getSessionToken(),x=this.trackedFrames.findIndex(g=>g===h.context)+1;x===0&&this.debug.error("Couldnt get order number for iframe",h.context,this.trackedFrames);const I={line:me.iframeId,id:v,token:T,frameOrderNumber:x};this.debug.log("Got child frame signal; nodeId",v,l.source,I),(E=l.source)==null||E.postMessage(I,"*")}catch(T){console.error(T)}})()),h.line===me.iframeBatch){const v=h.messages.map(E=>{if(E[0]===20){let T=E;return this.pageFrames.forEach(x=>{if(x.contentWindow===l.source){const[I,g,y]=E,{left:k,top:S}=x.getBoundingClientRect();T=[I,g+k,y+S]}}),T}if(E[0]===68){let T=E;return this.pageFrames.forEach(x=>{if(x.contentWindow===l.source){const[I,g,y,k,S,_,w]=E,{left:A,top:L,width:B,height:U}=x.getBoundingClientRect(),F=document.documentElement.scrollWidth,W=document.documentElement.scrollHeight,K=_/100*B+A,Z=w/100*U+L,D=K/F,ee=Z/W;T=[I,g,y,k,S,Math.round(D*1e3)/10,Math.round(ee*1e3)/10]}}),T}return E});this.messages.push(...v)}if(h.line===me.polling){if(!this.pollingQueue.order.length)return;const p=this.pollingQueue.order[0];if(p&&this.pollingQueue[p].length===0){this.pollingQueue.order=this.pollingQueue.order.filter(v=>v!==p);return}this.pollingQueue[p].includes(h.context)&&(this.pollingQueue[p]=this.pollingQueue[p].filter(v=>v!==h.context),(f=l.source)==null||f.postMessage({line:p},"*"),this.pollingQueue[p].length===0&&this.pollingQueue.order.shift())}}},this.pollingQueue={order:[]},this.addCommand=l=>{this.pollingQueue.order.push(l),this.pollingQueue[l]=[...this.trackedFrames]},this.bootChildrenFrames=async()=>{await this.waitStarted(),this.addCommand(me.startIframe)},this.killChildrenFrames=()=>{this.addCommand(me.killIframe)},this.signalIframeTracker=()=>{var T;const l=this.session.getTabId();window.parent.postMessage({line:me.iframeSignal,source:l,context:this.contextId},((T=this.options.crossdomain)==null?void 0:T.parentDomain)??"*");const h=10;let d=0,f=250,p=0,v=!1;const E=()=>{var x;if(v||this.checkStatus()){v=!0;return}window.parent.postMessage({line:me.iframeSignal,source:l,context:this.contextId},((x=this.options.crossdomain)==null?void 0:x.parentDomain)??"*"),this.debug.info("Trying to signal to parent, attempt:",d+1),d++};for(let x=0;x<h;x++){if(this.checkStatus()){v=!0;break}p+=f,setTimeout(()=>{E()},p),f*=1.5}},this.startTimeout=null,this.coldStartCommitN=0,this.delay=0,this.attachStartCallback=(l,h=!1)=>{h&&(l=this.safe(l)),this.startCallbacks.push(l)},this.attachStopCallback=(l,h=!1)=>{h&&(l=this.safe(l)),this.stopCallbacks.push(l)},this.attachEventListener=(l,h,d,f=!0,p=!0)=>{f&&(d=this.safe(d));const v=()=>l?oa(l,h,d,p,this.options.forceNgOff):null,E=()=>l?aa(l,h,d,p,this.options.forceNgOff):null;this.attachStartCallback(v,f),this.attachStopCallback(E,f)},this.coldInterval=null,this.orderNumber=0,this.coldStartTs=0,this.singleBuffer=!1,this.onSessionSent=()=>{},this.prevOpts={},this.restartCanvasTracking=()=>{var l;(l=this.canvasRecorder)==null||l.restartTracking()},this.flushBuffer=async l=>new Promise(h=>{let d=!1;const f=[l.shift()];for(;!d;){const p=l[0];!p||p[0]===0?d=!0:f.push(l.shift())}this.postToWorker(f),h(null)}),this.onUxtCb=[],this.contextId=Math.random().toString(36).slice(2),this.projectKey=e,Object.keys(s).findIndex(l=>["fixedCanvasScaling","disableCanvas"].includes(l))!==-1&&(console.warn('Openreplay: canvas options are moving to separate key "canvas" in next update. Please update your configuration.'),s={...s,canvas:{__save_canvas_locally:s.__save_canvas_locally,fixedCanvasScaling:s.fixedCanvasScaling,disableCanvas:s.disableCanvas}}),this.networkOptions=s.network;const o={revID:"",node_id:"__openreplay_id",session_token_key:"__openreplay_token",session_pageno_key:"__openreplay_pageno",session_reset_key:"__openreplay_reset",session_tabid_key:"__openreplay_tabid",local_uuid_key:"__openreplay_uuid",ingestPoint:Oa,resourceBaseHref:null,__is_snippet:!1,__debug_report_edp:null,__debug__:Ln.Silent,__save_canvas_locally:!1,localStorage:null,sessionStorage:null,disableStringDict:!1,forceSingleTab:!1,assistSocketHost:"",fixedCanvasScaling:!1,disableCanvas:!1,captureIFrames:!0,obscureTextEmails:!0,obscureTextNumbers:!1,crossdomain:{parentDomain:"*"},canvas:{disableCanvas:!1,fixedCanvasScaling:!1,__save_canvas_locally:!1,useAnimationFrame:!1},forceNgOff:!1};if(this.options=la(o,s),!this.insideIframe&&!this.options.forceSingleTab&&globalThis&&"BroadcastChannel"in globalThis){const l=location.hostname.split(".").slice(-2).join("_");this.bc=new BroadcastChannel(`rick_${l}`)}this.revID=this.options.revID,this.localStorage=this.options.localStorage??window.localStorage,this.sessionStorage=this.options.sessionStorage??window.sessionStorage,this.sanitizer=new Lh({app:this,options:s}),this.nodes=new Dh({node_id:this.options.node_id,forceNgOff:!!s.forceNgOff,maintainer:(c=this.options.nodes)==null?void 0:c.maintainer}),this.observer=new Oh({app:this,options:s}),this.ticker=new Wh(this),this.ticker.attach(()=>this.commit()),this.debug=new xh(this.options.__debug__),this.session=new Bh({app:this,options:this.options}),this.attributeSender=new lu({app:this,isDictDisabled:!!(this.options.disableStringDict||(u=this.options.crossdomain)!=null&&u.enabled)}),this.featureFlags=new hu(this),this.tagWatcher=new Zu({sessionStorage:this.sessionStorage,errLog:this.debug.error,onTag:l=>this.send(Yu(l))}),this.session.attachUpdateCallback(({userID:l,metadata:h})=>{l!=null&&this.send(Pu(l)),h!=null&&Object.entries(h).forEach(([d,f])=>this.send(ua(d,f)))}),n!=null&&this.session.applySessionHash(n);const a=this.session.getTabId();this.insideIframe?(window.addEventListener("message",this.parentCrossDomainFrameListener),setInterval(()=>{var l;document.hidden||window.parent.postMessage({line:me.polling,context:this.contextId},((l=s.crossdomain)==null?void 0:l.parentDomain)??"*")},250)):(this.initWorker(),window.addEventListener("message",this.crossDomainIframeListener)),this.bc!==null&&(this.bc.postMessage({line:me.ask,source:a,context:this.contextId}),this.startTimeout=setTimeout(()=>{this.allowAppStart()},250),this.bc.onmessage=l=>{if(l.data.context!==this.contextId){if(l.data.line===me.resp){const h=l.data.token;this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===me.reg){const h=l.data.token;this.session.regenerateTabId(),this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===me.ask){const h=this.session.getSessionToken();h&&this.bc&&this.bc.postMessage({line:l.data.source===a?me.reg:me.resp,token:h,source:a,context:this.contextId})}}})}allowAppStart(){this.canStart=!0,this.startTimeout&&(clearTimeout(this.startTimeout),this.startTimeout=null)}async checkNodeId(e){let n;if(this.pageFrames.length>0&&(n=this.pageFrames.find(i=>i.contentWindow===e)),!n||!this.pageFrames.length){const i=Array.from(document.querySelectorAll("iframe"));this.pageFrames=i,n=i.find(r=>r.contentWindow===e)}if(!n)return null;let s=0;for(;s<100;){const i=n[this.options.node_id];if(i!==void 0)return s=100,i;s++,await jh(100)}return null}initWorker(){try{this.worker=new Worker(URL.createObjectURL(new Blob([zh],{type:"text/javascript"}))),this.worker.onerror=n=>{this._debug("webworker_error",n)},this.worker.onmessage=({data:n})=>{this.handleWorkerMsg(n)};const e=()=>{this.worker&&this.worker.postMessage(null)};this.attachEventListener(window,"beforeunload",e,!1),this.attachEventListener(document.body,"mouseleave",e,!1,!1),this.attachEventListener(document,"visibilitychange",e,!1)}catch(e){this._debug("worker_start",e)}}handleWorkerMsg(e){var n;if(e==="a_stop")this.stop(!1);else if(e==="a_start")this.waitStatus(ge.NotActive).then(()=>{this.allowAppStart(),this.start(this.prevOpts,!0).then(s=>{this.debug.info("Worker restarted, session was too long",s)}).catch(s=>{this.debug.error("Worker restart failed",s)})});else if(e==="not_init")this.debug.warn("OR WebWorker: writer not initialised. Restarting tracker");else if(e.type==="failure")this.stop(!1),this.debug.error("worker_failed",e.reason),this._debug("worker_failed",e.reason);else if(e.type==="compress"){const s=e.batch;s.byteLength>this.compressionThreshold?ru(e.batch,{mtime:0},(r,o)=>{var a,c;r?(this.debug.error("Openreplay compression error:",r),(a=this.worker)==null||a.postMessage({type:"uncompressed",batch:s})):(c=this.worker)==null||c.postMessage({type:"compressed",batch:o})}):(n=this.worker)==null||n.postMessage({type:"uncompressed",batch:s})}else e.type==="queue_empty"&&this.onSessionSent()}_debug(e,n){this.options.__debug_report_edp!==null&&fetch(this.options.__debug_report_edp,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e,error:`${n}`})}),this.debug.error("OpenReplay error: ",e,n)}send(e,n=!1){var s;this.activityState!==ge.NotActive&&(this.activityState===ge.ColdStart?(this.bufferedMessages1.push(e),this.singleBuffer||this.bufferedMessages2.push(e),(s=this.conditionsManager)==null||s.processMessage(e)):this.messages.push(e),this.activityState===ge.Active&&n&&this.commit())}_nCommit(){var e;if(this.socketMode){this.messages.unshift(an(this.session.getTabId())),this.messages.unshift(on(this.timestamp())),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0;return}if(this.insideIframe){window.parent.postMessage({line:me.iframeBatch,messages:this.messages},((e=this.options.crossdomain)==null?void 0:e.parentDomain)??"*"),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0;return}if(!(this.worker===void 0||!this.messages.length))try{bu(()=>{var n;this.messages.unshift(an(this.session.getTabId())),this.messages.unshift(on(this.timestamp())),(n=this.worker)==null||n.postMessage(this.messages),this.commitCallbacks.forEach(s=>s(this.messages)),this.messages.length=0})}catch(n){this._debug("worker_commit",n),this.stop(!0),setTimeout(()=>{this.start()},500)}}_cStartCommit(){this.coldStartCommitN+=1,this.coldStartCommitN===2&&(this.bufferedMessages1.push(on(this.timestamp())),this.bufferedMessages1.push(an(this.session.getTabId())),this.bufferedMessages2.push(on(this.timestamp())),this.bufferedMessages2.push(an(this.session.getTabId())),this.coldStartCommitN=0)}commit(){this.activityState===ge.ColdStart?this._cStartCommit():this._nCommit()}postToWorker(e){var n;(n=this.worker)==null||n.postMessage(e),this.commitCallbacks.forEach(s=>s(e)),e.length=0}timestamp(){return rt()+this.delay}safe(e){const n=this;return function(...s){try{e.apply(this,s)}catch(i){n._debug("safe_fn_call",i)}}}attachCommitCallback(e){this.commitCallbacks.push(e)}checkRequiredVersion(e){const n=e.split(/[.-]/),s=this.version.split(/[.-]/);for(let i=0;i<3;i++){if(isNaN(Number(s[i]))||isNaN(Number(n[i])))return!1;if(Number(s[i])>Number(n[i]))return!0;if(Number(s[i])<Number(n[i]))return!1}return!0}getTrackerInfo(){return{userUUID:this.localStorage.getItem(this.options.local_uuid_key),projectKey:this.projectKey,revID:this.revID,trackerVersion:this.version,isSnippet:this.options.__is_snippet}}getSessionInfo(){return{...this.session.getInfo(),...this.getTrackerInfo()}}getSessionToken(){return this.session.getSessionToken()}getSessionID(){return this.session.getInfo().sessionID||void 0}getSessionURL(e){const{projectID:n,sessionID:s,timestamp:i}=this.session.getInfo();if(!n||!s){this.debug.error("OpenReplay error: Unable to build session URL");return}const r=this.options.ingestPoint,c=(/api\.openreplay\.com/.test(r)?"https://app.openreplay.com/ingest":r).replace(/ingest$/,`${n}/session/${s}`);if(e!=null&&e.withCurrentTime){const u=rt()-i;return`${c}?jumpto=${u}`}return c}getHost(){return new URL(this.options.ingestPoint).host}getProjectKey(){return this.projectKey}getBaseHref(){var e,n;return typeof this.options.resourceBaseHref=="string"?this.options.resourceBaseHref:(this.options.resourceBaseHref,document.baseURI?document.baseURI:((n=(e=document.head)==null?void 0:e.getElementsByTagName("base")[0])==null?void 0:n.getAttribute("href"))||location.origin+location.pathname)}resolveResourceURL(e){const n=new URL(this.getBaseHref());return n.pathname+="/"+new URL(e).pathname,n.pathname.replace(/\/+/g,"/"),n.toString()}isServiceURL(e){return e.startsWith(this.options.ingestPoint)}active(){return this.activityState===ge.Active}resetNextPageSession(e){e?this.sessionStorage.setItem(this.options.session_reset_key,"t"):this.sessionStorage.removeItem(this.options.session_reset_key)}checkSessionToken(e){const n=this.sessionStorage.getItem(this.options.session_reset_key)!==null,s=e||n,i=this.session.getSessionToken();return s||!i}async coldStart(e={},n){this.singleBuffer=!1;const s=1e3,i=this.checkSessionToken(e.forceNew);n&&await this.setupConditionalStart(e);const r=()=>{this.orderNumber+=1,Vi(),this.coldStartTs=rt(),this.orderNumber%2===0?(this.bufferedMessages1.length=0,this.bufferedMessages1.push(on(this.timestamp())),this.bufferedMessages1.push(an(this.session.getTabId()))):(this.bufferedMessages2.length=0,this.bufferedMessages2.push(on(this.timestamp())),this.bufferedMessages2.push(an(this.session.getTabId()))),this.stop(!1),this.activityState=ge.ColdStart,e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata}),i||(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(Us(this.session.getTabId()))),this.observer.observe(),this.ticker.start()};this.coldInterval=setInterval(()=>{r()},30*s),r()}async setupConditionalStart(e){var f,p;this.conditionsManager=new cu(this,e);const n=await fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:rt(),doNotRecord:!0,bufferDiff:0,userID:this.session.getInfo().userID,token:void 0,deviceMemory:er,jsHeapSizeLimit:tr,timezone:ur(),width:window.screen.width,height:window.screen.height})}),{token:s,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,projectID:l,features:h}=await n.json();this.features=h||this.features,this.session.assign({projectID:l}),this.session.setUserInfo({userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u});const d={sessionToken:s,userUUID:"",sessionID:""};this.startCallbacks.forEach(v=>v(d)),await((f=this.conditionsManager)==null?void 0:f.fetchConditions(l,s)),this.features["feature-flags"]&&(await this.featureFlags.reloadFlags(s),(p=this.conditionsManager)==null||p.processFlags(this.featureFlags.flags)),await this.tagWatcher.fetchTags(this.options.ingestPoint,s)}offlineRecording(e={},n){this.onSessionSent=n,this.singleBuffer=!0;const s=this.checkSessionToken(e.forceNew);Vi(),this.coldStartTs=rt();const i=this.localStorage.getItem(cr);if(i){const o=JSON.parse(i);this.bufferedMessages1=Array.isArray(o)?o:this.bufferedMessages1,this.localStorage.removeItem(cr)}this.bufferedMessages1.push(on(this.timestamp())),this.bufferedMessages1.push(an(this.session.getTabId())),this.activityState=ge.ColdStart,e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r={sessionToken:"",userUUID:"",sessionID:""};return this.startCallbacks.forEach(o=>o(r)),s||this.send(Us(this.session.getTabId())),this.observer.observe(),this.ticker.start(),{saveBuffer:this.saveBuffer,getBuffer:this.getBuffer,setBuffer:this.setBuffer}}saveBuffer(){this.localStorage.setItem(cr,JSON.stringify(this.bufferedMessages1))}getBuffer(){return this.bufferedMessages1}setBuffer(e){this.bufferedMessages1=e}async uploadOfflineRecording(){var d,f;this.stop(!1);const e=rt();(d=this.worker)==null||d.postMessage({type:"start",pageNo:this.session.incPageNo(),ingestPoint:this.options.ingestPoint,timestamp:this.coldStartTs,url:document.URL,connAttemptCount:this.options.connAttemptCount,connAttemptGap:this.options.connAttemptGap,tabId:this.session.getTabId()});const n=await fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:e,doNotRecord:!1,bufferDiff:e-this.coldStartTs,userID:this.session.getInfo().userID,token:void 0,deviceMemory:er,jsHeapSizeLimit:tr,timezone:ur()})}),{token:s,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,beaconSizeLimit:l,projectID:h}=await n.json();for((f=this.worker)==null||f.postMessage({type:"auth",token:s,beaconSizeLimit:l}),this.session.assign({projectID:h}),this.session.setUserInfo({userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u});this.bufferedMessages1.length>0;)await this.flushBuffer(this.bufferedMessages1);this.postToWorker([["q_end"]]),this.clearBuffers()}async _start(e={},n=!1,s){var c,u,l,h,d;Object.keys(e).length!==0&&(this.prevOpts=e);const i=this.activityState===ge.ColdStart;if(i&&this.coldInterval&&clearInterval(this.coldInterval),!this.worker&&!this.insideIframe){const f="No worker found: perhaps, CSP is not set.";return this.signalError(f,[]),Promise.resolve(Rt(f))}if(this.activityState===ge.Active||this.activityState===ge.Starting)return Promise.resolve(Rt("OpenReplay: trying to call `start()` on the instance that has been started already."));this.activityState=ge.Starting,i||Vi(),e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r=rt();(c=this.worker)==null||c.postMessage({type:"start",pageNo:this.session.incPageNo(),ingestPoint:this.options.ingestPoint,timestamp:i?this.coldStartTs:r,url:document.URL,connAttemptCount:this.options.connAttemptCount,connAttemptGap:this.options.connAttemptGap,tabId:this.session.getTabId()});const o=this.session.getSessionToken(),a=this.checkSessionToken(e.forceNew);this.sessionStorage.removeItem(this.options.session_reset_key),this.debug.log("OpenReplay: starting session; need new session id?",a,"session token: ",o);try{const f=await window.fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:r,doNotRecord:!1,bufferDiff:r-this.coldStartTs,userID:this.session.getInfo().userID,token:a?void 0:o,deviceMemory:er,jsHeapSizeLimit:tr,timezone:ur(),condition:s,assistOnly:e.assistOnly??this.socketMode,width:window.screen.width,height:window.screen.height})});if(f.status!==200){const D=await f.text(),ee=D===ss?ss:`Server error: ${f.status}. ${D}`;return Rt(ee)}if(!this.worker&&!this.insideIframe){const D="no worker found after start request (this should not happen in real world)";return this.signalError(D,[]),Rt(D)}const{token:p,userUUID:v,projectID:E,beaconSizeLimit:T,compressionThreshold:x,delay:I,sessionID:g,startTimestamp:y,userBrowser:k,userCity:S,userCountry:_,userDevice:w,userOS:A,userState:L,canvasEnabled:B,canvasQuality:U,canvasFPS:F,assistOnly:W,features:K}=await f.json();if(this.features=K||this.features,typeof p!="string"||typeof v!="string"||typeof y!="number"&&typeof y<"u"||typeof g!="string"||typeof I!="number"||typeof T!="number"&&typeof T<"u"){const D=`Incorrect server response: ${JSON.stringify(f)}`;return this.signalError(D,[]),Rt(D)}this.delay=I,this.session.setSessionToken(p),this.session.setUserInfo({userBrowser:k,userCity:S,userCountry:_,userDevice:w,userOS:A,userState:L}),this.session.assign({sessionID:g,timestamp:y||r,projectID:E}),W?(this.socketMode=!0,(u=this.worker)==null||u.postMessage("stop")):(l=this.worker)==null||l.postMessage({type:"auth",token:p,beaconSizeLimit:T}),!a&&p===o&&(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(Us(this.session.getTabId()))),Object.entries(this.session.getInfo().metadata).forEach(([D,ee])=>this.send(ua(D,ee))),this.localStorage.setItem(this.options.local_uuid_key,v),this.compressionThreshold=x;const Z={sessionToken:p,userUUID:v,sessionID:g};if(this.startCallbacks.forEach(D=>D(Z)),e.startCallback&&e.startCallback(Ma(Z)),this.features["feature-flags"]&&this.featureFlags.reloadFlags(),await this.tagWatcher.fetchTags(this.options.ingestPoint,p),this.activityState=ge.Active,(h=this.options.crossdomain)!=null&&h.enabled&&!this.insideIframe&&this.bootChildrenFrames(),B&&!this.options.canvas.disableCanvas&&(this.canvasRecorder=this.canvasRecorder??new Sh(this,{fps:F,quality:U,isDebug:this.options.canvas.__save_canvas_locally,fixedScaling:this.options.canvas.fixedCanvasScaling,useAnimationFrame:this.options.canvas.useAnimationFrame})),i){const D=this.bufferedMessages1.length>this.bufferedMessages2.length?this.bufferedMessages1:this.bufferedMessages2;for(;D.length>0;)await this.flushBuffer(D);this.clearBuffers(),this.commit()}else this.insideIframe&&this.rootId?this.observer.crossdomainObserve(this.rootId,this.frameOderNumber):this.observer.observe(),this.ticker.start();if((d=this.canvasRecorder)==null||d.startTracking(),this.features["usability-test"]&&!this.insideIframe){this.uxtManager=this.uxtManager?this.uxtManager:new yh(this,Aa);let D;const ee=this.localStorage.getItem(Aa);if(ee&&(D=parseInt(ee,10)),location!=null&&location.search){const N=new URLSearchParams(location.search);if(N.has("oruxt")){const O=N.get("oruxt");D=O?parseInt(O,10):void 0}}D&&(this.uxtManager.isActive?this.onUxtCb.forEach(N=>N(D)):this.uxtManager.getTest(D,p,!!ee).then(N=>{N&&this.onUxtCb.forEach(O=>O(N))}))}return Ma(Z)}catch(f){if(this.stop(),this.session.reset(),!f)return console.error("Unknown error during start"),this.signalError("Unknown error",[]),Rt("Unknown error");if(f===ss)return this.signalError(ss,[]),Rt(ss);this._debug("session_start",f);const p=f instanceof Error?f.message:f.toString();return this.signalError(p,[]),Rt(p)}}addOnUxtCb(e){this.onUxtCb.push(e)}getUxtId(){var e;return(e=this.uxtManager)==null?void 0:e.getTestId()}async waitStart(){return new Promise(e=>{const n=setInterval(()=>{this.canStart&&(clearInterval(n),e(!0))},100)})}async waitStarted(){return this.waitStatus(ge.Active)}async waitStatus(e){return new Promise(n=>{const s=()=>{this.activityState===e?n(!0):setTimeout(s,25)};s()})}async start(...e){return this.activityState===ge.Active||this.activityState===ge.Starting?Promise.resolve(Rt("OpenReplay: trying to call `start()` on the instance that has been started already.")):(this.insideIframe&&this.signalIframeTracker(),document.hidden?new Promise(n=>{const s=async()=>{document.hidden||(await this.waitStart(),document.removeEventListener("visibilitychange",s),n(this._start(...e)))};document.addEventListener("visibilitychange",s)}):(await this.waitStart(),this._start(...e)))}forceFlushBatch(){var e;(e=this.worker)==null||e.postMessage("forceFlushBatch")}getTabId(){return this.session.getTabId()}clearBuffers(){this.bufferedMessages1.length=0,this.bufferedMessages2.length=0}trackWs(e){const n=e;return(s,i,r="down")=>{typeof s!="string"||typeof i!="string"||i.length>5*1024*1024||s.length>255||this.send(Vu("websocket",n,i,this.timestamp(),r,s))}}stop(e=!0){var n,s;if(this.activityState!==ge.NotActive)try{!this.insideIframe&&((n=this.options.crossdomain)!=null&&n.enabled)&&this.killChildrenFrames(),this.attributeSender.clear(),this.sanitizer.clear(),this.observer.disconnect(),this.nodes.clear(),this.ticker.stop(),this.stopCallbacks.forEach(i=>i()),this.tagWatcher.clear(),this.worker&&e&&this.worker.postMessage("stop"),(s=this.canvasRecorder)==null||s.clear(),this.messages.length=0,this.parentActive=!1}finally{this.activityState=ge.NotActive,this.debug.log("OpenReplay tracking stopped.")}}};function Hh(t){const e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(e===void 0)return;const n=()=>t.send(Fu(Math.round(e.downlink*1e3),e.type||"unknown"));n(),e.addEventListener("change",n)}const Pa=dt&&"InstallTrigger"in window?t=>t.message+`
|
|
10
|
-
`+t.stack:t=>t.stack||t.message;function
|
|
11
|
-
`).filter(s=>!!s.match(
|
|
12
|
-
`).filter(s=>!s.match(
|
|
9
|
+
We appreciate your time and valuable input.`),r=X("div","end_button_or",La,"Submitting Feedback"),o=Oh();r.appendChild(o),(u=this.test)!=null&&u.reqMic||(l=this.test)!=null&&l.reqCamera?this.userRecorder.sendToAPI().then(()=>{r.removeChild(o),r.textContent="End Session",e=!1}).catch(h=>{console.error(h),r.removeChild(o),r.textContent="End Session",e=!1}):(r.removeChild(o),r.textContent="End Session",e=!1),this.taskSection&&this.container.removeChild(this.taskSection),this.descriptionSection&&this.container.removeChild(this.descriptionSection),this.stopButton&&this.stopButtonContainer&&this.container.removeChild(this.stopButtonContainer),r.onclick=()=>{e||(window.close(),document.body.removeChild(this.bg))},n.append(s,i,r),this.endSection=n,this.container.append(n)}}function Ha(t){return!!t&&t.nodeType!=null}function hr(t){return t.namespaceURI==="http://www.w3.org/2000/svg"}function Ct(t){return t.nodeType===Node.ELEMENT_NODE}function Fh(t){return t.nodeType===Node.COMMENT_NODE}function dr(t){return t.nodeType===Node.TEXT_NODE}function Js(t){return t.nodeType===Node.DOCUMENT_NODE}function Qs(t){return t.nodeType===Node.DOCUMENT_NODE||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function we(t,e){return t.localName===e}class Wh{constructor(e,n){this.app=e,this.options=n,this.snapshots={},this.intervals=[],this.restartTracking=()=>{this.clear(),this.app.nodes.scanTree(this.captureCanvas)},this.captureCanvas=s=>{const i=this.app.nodes.getID(s);if(!i||!we(s,"canvas")||this.app.sanitizer.isObscured(i)||this.app.sanitizer.isHidden(i)||!we(s,"canvas")||this.snapshots[i])return;new IntersectionObserver(a=>{a.forEach(c=>{c.isIntersecting&&(c.target?this.snapshots[i]&&this.snapshots[i].createdAt?this.snapshots[i].paused=!1:this.recordCanvas(c.target,i):this.snapshots[i]&&(this.snapshots[i].paused=!0))})}).observe(s)},this.recordCanvas=(s,i)=>{const r=this.app.timestamp();this.snapshots[i]={images:[],createdAt:r,paused:!1,dummy:document.createElement("canvas")};const o=hh(i.toString(),r);this.app.send(o);const a=u=>{zh(u,this.options.quality,this.snapshots[i].dummy,this.options.fixedScaling,this.fileExt,l=>{if(l){if(!this.snapshots[i])return this.app.debug.warn("Canvas not present in snapshots after capture:",this.snapshots,i);this.snapshots[i].images.push({id:this.app.timestamp(),data:l}),this.snapshots[i].images.length>9&&(this.sendSnaps(this.snapshots[i].images,i,this.snapshots[i].createdAt),this.snapshots[i].images=[])}})},c=setInterval(()=>{const u=this.app.nodes.getID(s),l=u?this.app.nodes.getNode(u):void 0;if(!this.snapshots[i]){this.app.debug.log("Canvas is not present in {snapshots}"),clearInterval(c);return}if(!l||!we(l,"canvas")||l!==s){this.app.debug.log("Canvas element not in sync",l,s),clearInterval(c);return}else this.snapshots[i].paused||(this.options.useAnimationFrame?requestAnimationFrame(()=>{a(l)}):a(l))},this.interval);this.intervals.push(c)},this.fileExt=n.fileExt??"webp",this.interval=1e3/n.fps}startTracking(){setTimeout(()=>{this.app.nodes.scanTree(this.captureCanvas),this.app.nodes.attachNodeCallback(this.captureCanvas)},250)}sendSnaps(e,n,s){if(Object.keys(this.snapshots).length===0)return;const i=new FormData;e.forEach(o=>{const a=o.data;a&&(i.append("snapshot",a,`${s}_${n}_${o.id}.${this.fileExt}`),this.options.isDebug&&jh(a,`${s}_${n}_${o.id}.${this.fileExt}`))});const r=()=>{this.app.debug.log("Restarting tracker; token expired"),this.app.stop(!1),setTimeout(()=>{this.app.start({},!0)},250)};fetch(this.app.options.ingestPoint+"/v1/web/images",{method:"POST",headers:{Authorization:`Bearer ${this.app.session.getSessionToken()??""}`},body:i}).then(o=>o.status===401?r():!0).catch(o=>{this.app.debug.error("error saving canvas",o)})}clear(){this.intervals.forEach(e=>clearInterval(e)),this.snapshots={}}}const qa={low:.35,medium:.55,high:.8};function zh(t,e="medium",n,s=!1,i,r){const o=`image/${i}`;if(s){const a=window.devicePixelRatio||1;n.width=t.width/a,n.height=t.height/a;const c=n.getContext("2d");if(!c)return"";c.clearRect(0,0,n.width,n.height),c.drawImage(t,0,0,n.width,n.height),n.toBlob(r,o,qa[e])}else t.toBlob(r,o,qa[e])}function jh(t,e){const n=URL.createObjectURL(t),s=document.createElement("a");s.href=n,s.download=e,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}const zn={Verbose:5,Log:4,Warnings:3,Errors:2,Silent:0};class Uh{constructor(e=zn.Silent){this.shouldLog=n=>this.level>=n,this.info=(...n)=>{this.shouldLog(zn.Verbose)&&console.info(...n)},this.log=(...n)=>{this.shouldLog(zn.Log)&&console.log(...n)},this.warn=(...n)=>{this.shouldLog(zn.Warnings)&&console.warn(...n)},this.error=(...n)=>{this.shouldLog(zn.Errors)&&console.error(...n)},this.level=e}}const Hh=1e3;function qh(t,e,n){const s=t.entries();function i(){const r=[];let o=s.next();for(;!o.done&&r.length<e;)r.push(o.value),o=s.next();r.length>0&&(r.forEach(([a,c])=>{c&&n(c)}),setTimeout(i,50))}i()}function Vh(t){var e;try{if(!t.isConnected)return[!1,"not connected"];const n=t.nodeType===Node.DOCUMENT_NODE,s=n?t.defaultView:(e=t.ownerDocument)==null?void 0:e.defaultView,i=n?t:t.ownerDocument;return s?s.closed?[!1,"window closed"]:i!=null&&i.documentElement.isConnected?[!0,"ok"]:[!1,"documentElement not connected"]:[!1,"no window"]}catch(n){return[!1,n]}}const Gh={interval:Hh*30,batchSize:2500,enabled:!0};class Kh{constructor(e,n,s){this.nodes=e,this.unregisterNode=n,this.start=()=>{this.options.enabled&&(this.stop(),this.interval=setInterval(()=>{qh(this.nodes,this.options.batchSize,i=>{Vh(i)[0]||this.unregisterNode(i)})},this.options.interval))},this.stop=()=>{this.interval&&clearInterval(this.interval)},this.options={...Gh,...s}}}class Xh{constructor(e){this.nodes=new Map,this.totalNodeAmount=0,this.nodeCallbacks=[],this.elementListeners=new Map,this.nextNodeId=0,this.scanTree=n=>{this.nodes.forEach(s=>s?n(s):void 0)},this.attachNodeListener=(n,s,i,r=!0)=>{const o=this.getID(n);if(o===void 0)return;ya(n,s,i,r,this.forceNgOff);let a=this.elementListeners.get(o);a===void 0&&(a=[],this.elementListeners.set(o,a)),a.push([s,i,r])},this.unregisterNode=n=>{const s=n[this.node_id];if(s!==void 0){n[this.node_id]=void 0,delete n[this.node_id],this.nodes.delete(s);const i=this.elementListeners.get(s);i!==void 0&&(this.elementListeners.delete(s),i.forEach(r=>Sa(n,r[0],r[1],r[2],this.forceNgOff))),this.totalNodeAmount--}return s},this.node_id=e.node_id,this.forceNgOff=e.forceNgOff,this.maintainer=new Kh(this.nodes,this.unregisterNode,e.maintainer),this.maintainer.start()}syntheticMode(e){const n=Number.MAX_SAFE_INTEGER,i=99999999*e;if(i>n)throw new Error("Placeholder id overflow");this.nextNodeId=i}attachNodeCallback(e){return this.nodeCallbacks.push(e)}registerNode(e){let n=e[this.node_id];const s=n===void 0;return s&&(n=this.nextNodeId,this.totalNodeAmount++,this.nextNodeId++,this.nodes.set(n,e),e[this.node_id]=n),[n,s]}cleanTree(){for(const[e,n]of this.nodes)n&&!document.contains(n)&&this.unregisterNode(n)}callNodeCallbacks(e,n){this.nodeCallbacks.forEach(s=>s(e,n))}getID(e){if(e)return e[this.node_id]}getNode(e){return this.nodes.get(e)}getNodeCount(){return this.totalNodeAmount}clear(){for(const[e,n]of this.nodes)n&&this.unregisterNode(n);this.nextNodeId=0,this.nodes.clear()}}function Zs(t){if(Fh(t))return!0;if(dr(t))return!1;if(!Ct(t))return!0;const e=t.tagName.toUpperCase();if(e==="LINK"){const n=t.getAttribute("rel"),s=t.getAttribute("as");return!(n!=null&&n.includes("stylesheet")||s==="style"||s==="font")}return e==="SCRIPT"||e==="NOSCRIPT"||e==="META"||e==="TITLE"||e==="BASE"}function fr(t){return Qs(t)?!0:!Zs(t)}var pt;(function(t){t[t.New=0]="New",t[t.Removed=1]="Removed",t[t.Changed=2]="Changed"})(pt||(pt={}));class pr{constructor(e,n=!1){this.app=e,this.isTopContext=n,this.commited=[],this.recents=new Map,this.indexes=[],this.attributesMap=new Map,this.textSet=new Set,this.observer=ba(this.app.safe(s=>{for(const i of s){const r=i.target,o=i.type;if(!fr(r))continue;if(o==="childList"){for(let c=0;c<i.removedNodes.length;c++)fr(i.removedNodes[c])&&this.bindNode(i.removedNodes[c]);for(let c=0;c<i.addedNodes.length;c++)this.bindTree(i.addedNodes[c]);continue}const a=this.app.nodes.getID(r);if(a!==void 0){if(this.recents.has(a)||this.recents.set(a,pt.Changed),o==="attributes"){const c=i.attributeName;if(c===null)continue;let u=this.attributesMap.get(a);u===void 0&&this.attributesMap.set(a,u=new Set),u.add(c);continue}o==="characterData"&&this.textSet.add(a)}}this.commitNodes()}),this.app.options.forceNgOff)}clear(){this.commited.length=0,this.recents.clear(),this.indexes.length=1,this.attributesMap.clear(),this.textSet.clear()}handleIframeSrcChange(e){const n=e.contentDocument;if(n&&this.app.nodes.getID(n)!==void 0){const i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:c=>Zs(c)||this.app.nodes.getID(c)===void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},!1);let r=0;const o=this.app.nodes.getNodeCount();for(;i.nextNode();)e.contentDocument.contains(i.currentNode)||(r+=1,this.app.nodes.unregisterNode(i.currentNode));const a=Math.floor(r/o*100);a>30&&this.app.send(Da(a))}}sendNodeAttribute(e,n,s,i){if(hr(n)){s.substring(0,6)==="xlink:"&&(s=s.substring(6)),i===null?this.app.send(ka(e,s)):s==="href"?(i.length>1e5&&(i=""),this.app.send(nr(e,s,i,this.app.getBaseHref()))):this.app.attributeSender.sendSetAttribute(e,s,i);return}if(!(s==="src"||s==="srcset"||s==="integrity"||s==="crossorigin"||s==="autocomplete"||s.substring(0,2)==="on")&&!(s==="value"&&we(n,"input")&&n.type!=="button"&&n.type!=="reset"&&n.type!=="submit")){if(i===null){this.app.send(ka(e,s));return}if(s==="style"||s==="href"&&we(n,"link")){this.app.send(nr(e,s,i,this.app.getBaseHref()));return}(s==="href"||i.length>1e5)&&(i=""),this.app.attributeSender.sendSetAttribute(e,s,i)}}sendNodeData(e,n,s){if(we(n,"style")){this.app.send(sh(e,s,this.app.getBaseHref()));return}s=this.app.sanitizer.sanitize(e,s),this.app.send(Hu(e,s))}bindNode(e){const[n,s]=this.app.nodes.registerNode(e);s?this.recents.set(n,pt.New):this.recents.get(n)!==pt.New&&this.recents.set(n,pt.Removed)}bindTree(e){if(!fr(e))return;this.bindNode(e);const n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:s=>(this.app.nodes.getID(s)!==void 0&&this.app.debug.error("! Node is already bound",s),Zs(s)||this.app.nodes.getID(s)!==void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT)},!1);for(;n.nextNode();)this.bindNode(n.currentNode)}unbindTree(e){const n=this.app.nodes.unregisterNode(e);if(n!==void 0&&this.recents.get(n)===pt.Removed){this.app.send(Uu(n));const s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:a=>Zs(a)||this.app.nodes.getID(a)===void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},!1);let i=0;const r=this.app.nodes.getNodeCount();for(;s.nextNode();)i+=1,this.app.nodes.unregisterNode(s.currentNode);const o=Math.floor(i/r*100);o>30&&this.app.send(Da(o))}}_commitNode(e,n){if(Qs(n))return!0;const s=n.parentNode;let i;if(!we(n,"html")||!this.isTopContext){if(s===null)return this.unbindTree(n),!1;if(i=this.app.nodes.getID(s),i===void 0)return this.unbindTree(n),!1;if(!this.commitNode(i))return this.unbindTree(n),!1;if(this.app.sanitizer.handleNode(e,i,n),this.app.sanitizer.isHidden(i))return!1}let r=n.previousSibling;for(;r!==null;){const l=this.app.nodes.getID(r);if(l!==void 0){this.commitNode(l),this.indexes[e]=this.indexes[l]+1;break}r=r.previousSibling}r===null&&(this.indexes[e]=0);const o=this.recents.get(e),a=o===pt.New,c=this.indexes[e];if(c===void 0)throw"commitNode: missing node index";if(a){if(Ct(n)){let l=n;if(i!==void 0){if(this.app.sanitizer.isHidden(e)){const h=l.clientWidth,d=l.clientHeight;l=n.cloneNode(),l.style.width=`${h}px`,l.style.height=`${d}px`}this.app.send(Wu(e,i,c,l.tagName,hr(n)))}for(let h=0;h<l.attributes.length;h++){const d=l.attributes[h];this.sendNodeAttribute(e,l,d.nodeName,d.value)}}else dr(n)&&(this.app.send(zu(e,i,c)),this.sendNodeData(e,s,n.data));return!0}o===pt.Removed&&i!==void 0&&this.app.send(ju(e,i,c));const u=this.attributesMap.get(e);if(u!==void 0){if(!Ct(n))throw"commitNode: node is not an element";for(const l of u)this.sendNodeAttribute(e,n,l,n.getAttribute(l))}if(this.textSet.has(e)){if(!dr(n))throw"commitNode: node is not a text";this.sendNodeData(e,s,n.data)}return!0}commitNode(e){const n=this.app.nodes.getNode(e);if(n===void 0)return!1;const s=this.commited[e];return s!==void 0?s:this.commited[e]=this._commitNode(e,n)}commitNodes(e=!1){let n;this.recents.forEach((s,i)=>{this.commitNode(i),s===pt.New&&(n=this.app.nodes.getNode(i))&&this.app.nodes.callNodeCallbacks(n,e)}),this.clear()}observeRoot(e,n,s=e){this.observer.observe(e,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1}),this.bindTree(s),n(this.app.nodes.getID(e)),this.commitNodes(!0)}disconnect(){this.observer.disconnect(),this.clear()}}class Va extends pr{observe(e){const n=e.contentDocument,s=this.app.nodes.getID(e);!n||s===void 0||this.observeRoot(n,i=>{if(i===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.docId=i,this.app.send(sr(s,i))})}syntheticObserve(e,n){this.observeRoot(n,s=>{if(s===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.app.send(sr(e,s))})}}class Yh extends pr{observe(e){const n=e.shadowRoot,s=this.app.nodes.getID(e);!n||s===void 0||this.observeRoot(n,i=>{if(i===void 0){this.app.debug.error("OpenReplay: Shadow Root was not bound");return}this.app.send(sr(s,i))})}}class Jh{constructor(){this.states=new WeakMap}calcOffset(e){let n=0,s=0;if(e.parent&&([n,s]=this.calcOffset(e.parent)),!e.offset){const{left:o,top:a}=e.iFrame.getBoundingClientRect();e.offset=[o,a]}const[i,r]=e.offset;return[n+i,s+r]}getDocumentOffset(e){const n=this.states.get(e);return n?this.calcOffset(n):[0,0]}observe(e){var a;const n=e.contentDocument;if(!n)return;const s=e.ownerDocument,i=this.states.get(s),r={offset:null,iFrame:e,parent:i||null,clear:()=>{var c;s.removeEventListener("scroll",o),(c=s.defaultView)==null||c.removeEventListener("resize",o)}},o=()=>{r.offset=null};s.addEventListener("scroll",o),(a=s.defaultView)==null||a.addEventListener("resize",o),this.states.set(n,r)}clear(){this.states=new WeakMap}}const gr=ft?Element.prototype.attachShadow:()=>new ShadowRoot;class Qh extends pr{constructor(e){super(e.app,!0),this.iframeOffsets=new Jh,this.contextCallbacks=[],this.contextsSet=new WeakSet,this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.docObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.app=e.app,this.options=Object.assign({captureIFrames:!0},e.options),this.app.nodes.attachNodeCallback(n=>{we(n,"iframe")&&(this.options.captureIFrames&&!pn(n,"obscured")||pn(n,"capture"))&&this.handleIframe(n)}),this.app.nodes.attachNodeCallback(n=>{Ct(n)&&n.shadowRoot!==null&&this.handleShadowRoot(n.shadowRoot)})}attachContextCallback(e){this.contextCallbacks.push(e)}getDocumentOffset(e){return this.iframeOffsets.getDocumentOffset(e)}handleIframe(e){const n=this.app.safe(()=>setTimeout(()=>{const s=this.app.nodes.getID(e);if(s===void 0||!Du(e))return;const i=e.contentWindow,r=e.contentDocument;if(!r){this.app.debug.warn("no doc for iframe found",e);return}if(r&&this.docObservers.has(r)){this.app.debug.info("doc already observed for",s);return}const o=new Va(this.app);this.iframeObservers.set(e,o),this.docObservers.set(r,o),this.iframeObserversArr.push(o),o.observe(e),this.iframeOffsets.observe(e),i&&i===i.window&&!this.contextsSet.has(i)&&(this.contextsSet.add(i),this.contextCallbacks.forEach(a=>a(i)))},250));e.addEventListener("load",n),n()}handleShadowRoot(e){const n=new Yh(this.app);this.shadowRootObservers.set(e,n),n.observe(e.host)}observe(){const e=this;Element.prototype.attachShadow=function(){const n=gr.apply(this,arguments);return e.handleShadowRoot(n),n},this.app.nodes.clear(),this.observeRoot(window.document,()=>{this.app.send(Fu()),this.app.nodes.callNodeCallbacks(document,!0)},window.document.documentElement)}crossdomainObserve(e,n){const s=this;Element.prototype.attachShadow=function(){const r=gr.apply(this,arguments);return s.handleShadowRoot(r),r},this.app.nodes.clear(),this.app.nodes.syntheticMode(n);const i=new Va(this.app);this.iframeObservers.set(window.document,i),i.syntheticObserve(e,window.document)}disconnect(){this.iframeOffsets.clear(),Element.prototype.attachShadow=gr,this.iframeObserversArr.forEach(e=>e.disconnect()),this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.docObservers=new WeakMap,super.disconnect()}}var $s;(function(t){t[t.Plain=0]="Plain",t[t.Obscured=1]="Obscured",t[t.Hidden=2]="Hidden"})($s||($s={}));const Zh=t=>t.trim().replace(/[^\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/g,"█");class $h{constructor(e){this.obscured=new Set,this.hidden=new Set,this.app=e.app,this.options=Object.assign({obscureTextEmails:!0,obscureTextNumbers:!1},e.options)}handleNode(e,n,s){if((this.obscured.has(n)||Ct(s)&&(pn(s,"masked")||pn(s,"obscured")))&&this.obscured.add(e),(this.hidden.has(n)||Ct(s)&&(pn(s,"htmlmasked")||pn(s,"hidden")))&&this.hidden.add(e),this.options.domSanitizer!==void 0&&Ct(s)){const i=this.options.domSanitizer(s);i===$s.Obscured&&this.obscured.add(e),i===$s.Hidden&&this.hidden.add(e)}}sanitize(e,n){return this.obscured.has(e)?Zh(n):(this.options.obscureTextNumbers&&(n=n.replace(/\d/g,"0")),this.options.obscureTextEmails&&(n=n.replace(/^\w+([+.-]\w+)*@\w+([.-]\w+)*\.\w{2,3}$/g,s=>{const[i,r]=s.split("@"),[o,a]=r.split(".");return`${$i(i)}@${$i(o)}.${$i(a)}`})),n)}isObscured(e){return this.obscured.has(e)}isHidden(e){return this.hidden.has(e)}getInnerTextSecure(e){const n=this.app.nodes.getID(e);return n?this.sanitize(n,e.innerText):""}clear(){this.obscured.clear(),this.hidden.clear()}}class ed{constructor(e){this.metadata={},this.userID=null,this.callbacks=[],this.timestamp=0,this.app=e.app,this.options=e.options,this.createTabId()}attachUpdateCallback(e){this.callbacks.push(e)}handleUpdate(e){e.userID==null&&delete e.userID,e.sessionID==null&&delete e.sessionID,this.callbacks.forEach(n=>n(e))}assign(e){e.userID!==void 0&&(this.userID=e.userID),e.metadata!==void 0&&Object.entries(e.metadata).forEach(([n,s])=>this.metadata[n]=s),e.sessionID!==void 0&&(this.sessionID=e.sessionID),e.timestamp!==void 0&&(this.timestamp=e.timestamp),e.projectID!==void 0&&(this.projectID=e.projectID),this.handleUpdate(e)}setMetadata(e,n){this.metadata[e]=n,this.handleUpdate({metadata:{[e]:n}})}setUserID(e){this.userID=e,this.handleUpdate({userID:e})}setUserInfo(e){this.userInfo=e}getPageNumber(){const e=this.app.sessionStorage.getItem(this.options.session_pageno_key);if(e!=null)return parseInt(e)}incPageNo(){let e=this.getPageNumber();return e===void 0?e=0:e++,this.app.sessionStorage.setItem(this.options.session_pageno_key,e.toString()),e}getSessionToken(){return this.token||this.app.sessionStorage.getItem(this.options.session_token_key)||void 0}setSessionToken(e){this.token=e,this.app.sessionStorage.setItem(this.options.session_token_key,e)}applySessionHash(e){const n=decodeURI(e).split("&");let s=e,i="100500";n.length==2&&([i,s]=n),!(!i||!s)&&(this.app.sessionStorage.setItem(this.options.session_token_key,s),this.app.sessionStorage.setItem(this.options.session_pageno_key,i))}getSessionHash(){const e=this.getPageNumber(),n=this.getSessionToken();if(!(e===void 0||n===void 0))return encodeURI(String(e)+"&"+n)}getTabId(){return this.tabId||this.createTabId(),this.tabId}regenerateTabId(){const e=Au(12);this.app.sessionStorage.setItem(this.options.session_tabid_key,e),this.tabId=e}createTabId(){const e=this.app.sessionStorage.getItem(this.options.session_tabid_key);e?this.tabId=e:this.regenerateTabId()}getInfo(){return{sessionID:this.sessionID,metadata:this.metadata,userID:this.userID,timestamp:this.timestamp,projectID:this.projectID}}reset(){this.app.sessionStorage.removeItem(this.options.session_token_key),this.metadata={},this.userID=null,this.sessionID=void 0,this.timestamp=0}}function td(t,e){let n=0;return()=>{n++>=e&&(n=0,t())}}class nd{constructor(e){this.app=e,this.timer=null,this.callbacks=[]}attach(e,n=0,s=!0,i){i&&(e=e.bind(i)),s&&(e=this.app.safe(e)),this.callbacks.unshift(n?td(e,n):e)-1}start(){this.timer===null&&(this.timer=setInterval(()=>this.callbacks.forEach(e=>{e&&e()}),30))}stop(){this.timer!==null&&(clearInterval(this.timer),this.timer=null)}}const sd='!function(){"use strict";class t{constructor(t,s,i,e=10,n=250,h,r){this.onUnauthorised=s,this.onFailure=i,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.pageNo=r,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.lastBatchNum=0,this.ingestURL=t+"/v1/web/i",this.isCompressing=void 0!==h}getQueueStatus(){return 0===this.queue.length&&!this.busy}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){if(this.busy||!this.token)this.queue.push(t);else if(this.busy=!0,this.isCompressing&&this.onCompress)this.onCompress(t);else{const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}}sendNext(){const t=this.queue.shift();if(t)if(this.busy=!0,this.isCompressing&&this.onCompress)this.onCompress(t);else{const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}else this.busy=!1}retry(t,s,i){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout((()=>this.sendBatch(t,s,i)),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,s,i){var e;const n=null==i?void 0:i.toString().replace(/^([^_]+)_([^_]+).*/,"$1_$2_$3");this.busy=!0;const h={Authorization:`Bearer ${this.token}`};s&&(h["Content-Encoding"]="gzip"),null!==this.token?fetch(`${this.ingestURL}?batch=${null!==(e=this.pageNo)&&void 0!==e?e:"noPageNum"}_${null!=n?n:"noBatchNum"}`,{body:t,method:"POST",headers:h,keepalive:t.length<65536}).then((e=>{if(401===e.status)return this.busy=!1,void this.onUnauthorised();e.status>=400?this.retry(t,s,`${null!=i?i:"noBatchNum"}_network:${e.status}`):(this.attemptsCount=0,this.sendNext())})).catch((e=>{console.warn("OpenReplay:",e),this.retry(t,s,`${null!=i?i:"noBatchNum"}_reject:${e.message}`)})):setTimeout((()=>{this.sendBatch(t,s,`${null!=i?i:"noBatchNum"}_newToken`)}),500)}sendCompressed(t){const s=++this.lastBatchNum;this.sendBatch(t,!0,s)}sendUncompressed(t){const s=++this.lastBatchNum;this.sendBatch(t,!1,s)}clean(){this.sendNext(),setTimeout((()=>{this.token=null,this.queue.length=0}),10)}}const s="function"==typeof TextEncoder?new TextEncoder:{encode(t){const s=t.length,i=new Uint8Array(3*s);let e=-1;for(let n=0,h=0,r=0;r!==s;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===s){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){i[e+=1]=240|n>>>18,i[e+=1]=128|n>>>12&63,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n;continue}}n<=127?i[e+=1]=0|n:n<=2047?(i[e+=1]=192|n>>>6,i[e+=1]=128|63&n):(i[e+=1]=224|n>>>12,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n)}return i.subarray(0,e+1)}};class i{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,s){this.data.set(t,s)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const i=s.encode(t),e=i.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(i,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}class e extends i{encode(t){switch(t[0]){case 0:case 11:case 114:case 115:return this.uint(t[1]);case 4:case 44:case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:case 20:case 38:case 70:case 75:case 76:case 77:case 82:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:case 24:case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 12:case 61:case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:case 17:case 50:case 54:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:case 27:case 30:case 41:case 45:case 46:case 63:case 64:case 79:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 28:case 29:case 42:case 117:case 118:return this.string(t[1]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 48:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.int(t[5]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 55:return this.boolean(t[1]);case 57:case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:case 120:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 67:case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 68:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 83:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 84:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10]);case 119:return this.string(t[1])&&this.uint(t[2]);case 121:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 122:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 123:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])}}}class n{constructor(t,s,i,n,h,r){this.pageNo=t,this.timestamp=s,this.url=i,this.onBatch=n,this.tabId=h,this.onOfflineEnd=r,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new e(this.beaconSize),this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,s){for(let s=0;s<3;s++)this.sizeBuffer[s]=t>>8*s;this.encoder.set(this.sizeBuffer,s)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url],s=[118,this.tabId];this.writeType(t),this.writeFields(t),this.writeWithSize(s),this.isEmpty=!0}writeWithSize(t){const s=this.encoder;if(!this.writeType(t)||!s.skip(3))return!1;const i=s.getCurrentOffset(),e=this.writeFields(t);if(e){const e=s.getCurrentOffset()-i;if(e>16777215)return console.warn("OpenReplay: max message size overflow."),!1;this.writeSizeAt(e,i-3),s.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}writeMessage(t){if("q_end"===t[0])return this.finaliseBatch(),this.onOfflineEnd();0===t[0]&&(this.timestamp=t[1]),122===t[0]&&(this.url=t[1]),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new e(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn("OpenReplay: beacon size overflow. Skipping large message.",t,this),this.encoder=new e(this.beaconSize),this.prepare()))}finaliseBatch(){if(this.isEmpty)return;const t=this.encoder.flush();this.onBatch(t),this.prepare()}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Stopping=2]="Stopping",t[t.Active=3]="Active",t[t.Stopped=4]="Stopped"}(h||(h={}));let r=null,u=null,a=h.NotActive;function o(){u&&u.finaliseBatch()}function c(){return new Promise((t=>{a=h.Stopping,null!==p&&(clearInterval(p),p=null),u&&(u.clean(),u=null),r&&(r.clean(),setTimeout((()=>{r=null}),20)),setTimeout((()=>{a=h.NotActive,t(null)}),100)}))}function g(){[h.Stopped,h.Stopping].includes(a)||(postMessage("a_stop"),c().then((()=>{postMessage("a_start")})))}let l,p=null;self.onmessage=({data:s})=>{if(null!=s){if("stop"===s)return o(),void c().then((()=>{a=h.Stopped}));if("forceFlushBatch"!==s){if(!Array.isArray(s)){if("compressed"===s.type){if(!r)return console.debug("OR WebWorker: sender not initialised. Compressed batch."),void g();s.batch&&r.sendCompressed(s.batch)}if("uncompressed"===s.type){if(!r)return console.debug("OR WebWorker: sender not initialised. Uncompressed batch."),void g();s.batch&&r.sendUncompressed(s.batch)}return"start"===s.type?(a=h.Starting,r=new t(s.ingestPoint,(()=>{g()}),(t=>{!function(t){postMessage({type:"failure",reason:t}),c()}(t)}),s.connAttemptCount,s.connAttemptGap,(t=>{postMessage({type:"compress",batch:t},[t.buffer])}),s.pageNo),u=new n(s.pageNo,s.timestamp,s.url,(t=>{r&&r.push(t)}),s.tabId,(()=>postMessage({type:"queue_empty"}))),null===p&&(p=setInterval(o,1e4)),a=h.Active):"auth"===s.type?r?u?(r.authorise(s.token),void(s.beaconSizeLimit&&u.setBeaconSizeLimit(s.beaconSizeLimit))):(console.debug("OR WebWorker: writer not initialised. Received auth."),void g()):(console.debug("OR WebWorker: sender not initialised. Received auth."),void g()):void 0}if(u){const t=u;s.forEach((s=>{55===s[0]&&(s[1]?l=setTimeout((()=>g()),18e5):clearTimeout(l)),t.writeMessage(s)}))}else postMessage("not_init"),g()}else o()}else o()}}();\n',hs="canceled",Ga="or_uxt_active",mr="or_buffer_1",Nt=t=>({reason:t,success:!1}),Ka=t=>({...t,success:!0});var pe;(function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Active=2]="Active",t[t.ColdStart=3]="ColdStart"})(pe||(pe={}));const Xa="https://api.openreplay.com/ingest";function vr(){const t=new Date().getTimezoneOffset()*-1,e=t>=0?"+":"-",n=Math.floor(Math.abs(t)/60),s=Math.abs(t)%60;return`UTC${e}${String(n).padStart(2,"0")}:${String(s).padStart(2,"0")}`}const id=t=>new Promise(e=>setTimeout(e,t)),ge={ask:"never-gonna-give-you-up",resp:"never-gonna-let-you-down",reg:"never-gonna-run-around-and-desert-you",iframeSignal:"tracker inside a child iframe",iframeId:"getting node id for child iframe",iframeBatch:"batch of messages from an iframe window",parentAlive:"signal that parent is live",killIframe:"stop tracker inside frame",startIframe:"start tracker inside frame",polling:"hello-how-are-you-im-under-the-water-please-help-me"};let rd=class{constructor(e,n,s,i,r){var c,u;this.signalError=i,this.insideIframe=r,this.messages=[],this.bufferedMessages1=[],this.bufferedMessages2=[],this.startCallbacks=[],this.stopCallbacks=[],this.commitCallbacks=[],this.activityState=pe.NotActive,this.version="14.0.14",this.socketMode=!1,this.compressionThreshold=24*1e3,this.bc=null,this.canvasRecorder=null,this.conditionsManager=null,this.canStart=!1,this.rootId=null,this.pageFrames=[],this.frameOderNumber=0,this.features={"feature-flags":!0,"usability-test":!0},this.parentActive=!1,this.checkStatus=()=>this.parentActive,this.parentCrossDomainFrameListener=l=>{const{data:h}=l;if(!(!h||l.source===window)){if(h.line===ge.startIframe){if(this.active())return;try{this.allowAppStart(),this.start()}catch(d){console.error("children frame restart failed:",d)}}h.line===ge.parentAlive&&(this.parentActive=!0),h.line===ge.iframeId&&(this.parentActive=!0,this.rootId=h.id,this.session.setSessionToken(h.token),this.frameOderNumber=h.frameOrderNumber,this.debug.log("starting iframe tracking",h),this.allowAppStart()),h.line===ge.killIframe&&this.active()&&this.stop()}},this.trackedFrames=[],this.crossDomainIframeListener=l=>{var d,p;if(!this.active()||l.source===window)return;const{data:h}=l;if(h){if(h.line===ge.iframeSignal&&((d=l.source)==null||d.postMessage({ping:!0,line:ge.parentAlive},"*"),(async()=>{var S;if(l.source===null)return console.error("Couldnt connect to event.source for child iframe tracking");const m=await this.checkNodeId(l.source);if(!m){this.debug.log("Couldnt get node id for iframe",l.source);return}try{this.trackedFrames.includes(h.context)?this.debug.log("Trying to observe already added iframe; ignore if its a restart"):this.trackedFrames.push(h.context),await this.waitStarted();const x=this.session.getSessionToken(),T=this.trackedFrames.findIndex(g=>g===h.context)+1;T===0&&this.debug.error("Couldnt get order number for iframe",h.context,this.trackedFrames);const I={line:ge.iframeId,id:m,token:x,frameOrderNumber:T};this.debug.log("Got child frame signal; nodeId",m,l.source,I),(S=l.source)==null||S.postMessage(I,"*")}catch(x){console.error(x)}})()),h.line===ge.iframeBatch){const m=h.messages.map(S=>{if(S[0]===20){let x=S;return this.pageFrames.forEach(T=>{if(T.contentWindow===l.source){const[I,g,_]=S,{left:E,top:b}=T.getBoundingClientRect();x=[I,g+E,_+b]}}),x}if(S[0]===68){let x=S;return this.pageFrames.forEach(T=>{if(T.contentWindow===l.source){const[I,g,_,E,b,y,k]=S,{left:P,top:V,width:F,height:Q}=T.getBoundingClientRect(),z=document.documentElement.scrollWidth,B=document.documentElement.scrollHeight,J=y/100*F+P,ee=k/100*Q+V,D=J/z,te=ee/B;x=[I,g,_,E,b,Math.round(D*1e3)/10,Math.round(te*1e3)/10]}}),x}return S});this.messages.push(...m)}if(h.line===ge.polling){if(!this.pollingQueue.order.length)return;const f=this.pollingQueue.order[0];if(f&&this.pollingQueue[f].length===0){this.pollingQueue.order=this.pollingQueue.order.filter(m=>m!==f);return}this.pollingQueue[f].includes(h.context)&&(this.pollingQueue[f]=this.pollingQueue[f].filter(m=>m!==h.context),(p=l.source)==null||p.postMessage({line:f},"*"),this.pollingQueue[f].length===0&&this.pollingQueue.order.shift())}}},this.pollingQueue={order:[]},this.addCommand=l=>{this.pollingQueue.order.push(l),this.pollingQueue[l]=[...this.trackedFrames]},this.bootChildrenFrames=async()=>{await this.waitStarted(),this.addCommand(ge.startIframe)},this.killChildrenFrames=()=>{this.addCommand(ge.killIframe)},this.signalIframeTracker=()=>{var x;const l=this.session.getTabId();window.parent.postMessage({line:ge.iframeSignal,source:l,context:this.contextId},((x=this.options.crossdomain)==null?void 0:x.parentDomain)??"*");const h=10;let d=0,p=250,f=0,m=!1;const S=()=>{var T;if(m||this.checkStatus()){m=!0;return}window.parent.postMessage({line:ge.iframeSignal,source:l,context:this.contextId},((T=this.options.crossdomain)==null?void 0:T.parentDomain)??"*"),this.debug.info("Trying to signal to parent, attempt:",d+1),d++};for(let T=0;T<h;T++){if(this.checkStatus()){m=!0;break}f+=p,setTimeout(()=>{S()},f),p*=1.5}},this.startTimeout=null,this.coldStartCommitN=0,this.delay=0,this.attachStartCallback=(l,h=!1)=>{h&&(l=this.safe(l)),this.startCallbacks.push(l)},this.attachStopCallback=(l,h=!1)=>{h&&(l=this.safe(l)),this.stopCallbacks.push(l)},this.attachEventListener=(l,h,d,p=!0,f=!0)=>{p&&(d=this.safe(d));const m=()=>l?ya(l,h,d,f,this.options.forceNgOff):null,S=()=>l?Sa(l,h,d,f,this.options.forceNgOff):null;this.attachStartCallback(m,p),this.attachStopCallback(S,p)},this.coldInterval=null,this.orderNumber=0,this.coldStartTs=0,this.singleBuffer=!1,this.onSessionSent=()=>{},this.prevOpts={},this.restartCanvasTracking=()=>{var l;(l=this.canvasRecorder)==null||l.restartTracking()},this.flushBuffer=async l=>new Promise(h=>{let d=!1;const p=[l.shift()];for(;!d;){const f=l[0];!f||f[0]===0?d=!0:p.push(l.shift())}this.postToWorker(p),h(null)}),this.onUxtCb=[],this.contextId=Math.random().toString(36).slice(2),this.projectKey=e,Object.keys(s).findIndex(l=>["fixedCanvasScaling","disableCanvas"].includes(l))!==-1&&(console.warn('Openreplay: canvas options are moving to separate key "canvas" in next update. Please update your configuration.'),s={...s,canvas:{__save_canvas_locally:s.__save_canvas_locally,fixedCanvasScaling:s.fixedCanvasScaling,disableCanvas:s.disableCanvas}}),this.networkOptions=s.network;const o={revID:"",node_id:"__openreplay_id",session_token_key:"__openreplay_token",session_pageno_key:"__openreplay_pageno",session_reset_key:"__openreplay_reset",session_tabid_key:"__openreplay_tabid",local_uuid_key:"__openreplay_uuid",ingestPoint:Xa,resourceBaseHref:null,__is_snippet:!1,__debug_report_edp:null,__debug__:zn.Silent,__save_canvas_locally:!1,localStorage:null,sessionStorage:null,disableStringDict:!1,forceSingleTab:!1,assistSocketHost:"",fixedCanvasScaling:!1,disableCanvas:!1,captureIFrames:!0,obscureTextEmails:!0,obscureTextNumbers:!1,crossdomain:{parentDomain:"*"},canvas:{disableCanvas:!1,fixedCanvasScaling:!1,__save_canvas_locally:!1,useAnimationFrame:!1},forceNgOff:!1};if(this.options=_a(o,s),!this.insideIframe&&!this.options.forceSingleTab&&globalThis&&"BroadcastChannel"in globalThis){const l=location.hostname.split(".").slice(-2).join("_");this.bc=new BroadcastChannel(`rick_${l}`)}this.revID=this.options.revID,this.localStorage=this.options.localStorage??window.localStorage,this.sessionStorage=this.options.sessionStorage??window.sessionStorage,this.sanitizer=new $h({app:this,options:s}),this.nodes=new Xh({node_id:this.options.node_id,forceNgOff:!!s.forceNgOff,maintainer:(c=this.options.nodes)==null?void 0:c.maintainer}),this.observer=new Qh({app:this,options:s}),this.ticker=new nd(this),this.ticker.attach(()=>this.commit()),this.debug=new Uh(this.options.__debug__),this.session=new ed({app:this,options:this.options}),this.attributeSender=new xu({app:this,isDictDisabled:!!(this.options.disableStringDict||(u=this.options.crossdomain)!=null&&u.enabled)}),this.featureFlags=new Cu(this),this.tagWatcher=new gh({sessionStorage:this.sessionStorage,errLog:this.debug.error,onTag:l=>this.send(dh(l))}),this.session.attachUpdateCallback(({userID:l,metadata:h})=>{l!=null&&this.send(Zu(l)),h!=null&&Object.entries(h).forEach(([d,p])=>this.send(Ta(d,p)))}),n!=null&&this.session.applySessionHash(n);const a=this.session.getTabId();this.insideIframe?(window.addEventListener("message",this.parentCrossDomainFrameListener),setInterval(()=>{var l;document.hidden||window.parent.postMessage({line:ge.polling,context:this.contextId},((l=s.crossdomain)==null?void 0:l.parentDomain)??"*")},250)):(this.initWorker(),window.addEventListener("message",this.crossDomainIframeListener)),this.bc!==null&&(this.bc.postMessage({line:ge.ask,source:a,context:this.contextId}),this.startTimeout=setTimeout(()=>{this.allowAppStart()},250),this.bc.onmessage=l=>{if(l.data.context!==this.contextId){if(l.data.line===ge.resp){const h=l.data.token;this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===ge.reg){const h=l.data.token;this.session.regenerateTabId(),this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===ge.ask){const h=this.session.getSessionToken();h&&this.bc&&this.bc.postMessage({line:l.data.source===a?ge.reg:ge.resp,token:h,source:a,context:this.contextId})}}})}allowAppStart(){this.canStart=!0,this.startTimeout&&(clearTimeout(this.startTimeout),this.startTimeout=null)}async checkNodeId(e){let n;if(this.pageFrames.length>0&&(n=this.pageFrames.find(i=>i.contentWindow===e)),!n||!this.pageFrames.length){const i=Array.from(document.querySelectorAll("iframe"));this.pageFrames=i,n=i.find(r=>r.contentWindow===e)}if(!n)return null;let s=0;for(;s<100;){const i=n[this.options.node_id];if(i!==void 0)return s=100,i;s++,await id(100)}return null}initWorker(){try{this.worker=new Worker(URL.createObjectURL(new Blob([sd],{type:"text/javascript"}))),this.worker.onerror=n=>{this._debug("webworker_error",n)},this.worker.onmessage=({data:n})=>{this.handleWorkerMsg(n)};const e=()=>{this.worker&&this.worker.postMessage(null)};this.attachEventListener(window,"beforeunload",e,!1),this.attachEventListener(document.body,"mouseleave",e,!1,!1),this.attachEventListener(document,"visibilitychange",e,!1)}catch(e){this._debug("worker_start",e)}}handleWorkerMsg(e){var n;if(e==="a_stop")this.stop(!1);else if(e==="a_start")this.waitStatus(pe.NotActive).then(()=>{this.allowAppStart(),this.start(this.prevOpts,!0).then(s=>{this.debug.info("Worker restarted, session was too long",s)}).catch(s=>{this.debug.error("Worker restart failed",s)})});else if(e==="not_init")this.debug.warn("OR WebWorker: writer not initialised. Restarting tracker");else if(e.type==="failure")this.stop(!1),this.debug.error("worker_failed",e.reason),this._debug("worker_failed",e.reason);else if(e.type==="compress"){const s=e.batch;s.byteLength>this.compressionThreshold?_u(e.batch,{mtime:0},(r,o)=>{var a,c;r?(this.debug.error("Openreplay compression error:",r),(a=this.worker)==null||a.postMessage({type:"uncompressed",batch:s})):(c=this.worker)==null||c.postMessage({type:"compressed",batch:o})}):(n=this.worker)==null||n.postMessage({type:"uncompressed",batch:s})}else e.type==="queue_empty"&&this.onSessionSent()}_debug(e,n){this.options.__debug_report_edp!==null&&fetch(this.options.__debug_report_edp,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e,error:`${n}`})}),this.debug.error("OpenReplay error: ",e,n)}send(e,n=!1){var s;this.activityState!==pe.NotActive&&(this.activityState===pe.ColdStart?(this.bufferedMessages1.push(e),this.singleBuffer||this.bufferedMessages2.push(e),(s=this.conditionsManager)==null||s.processMessage(e)):this.messages.push(e),this.activityState===pe.Active&&n&&this.commit())}_nCommit(){var e;if(this.socketMode){this.messages.unshift(mn(this.session.getTabId())),this.messages.unshift(gn(this.timestamp())),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0;return}if(this.insideIframe){window.parent.postMessage({line:ge.iframeBatch,messages:this.messages},((e=this.options.crossdomain)==null?void 0:e.parentDomain)??"*"),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0;return}if(!(this.worker===void 0||!this.messages.length))try{Pu(()=>{var n;this.messages.unshift(mn(this.session.getTabId())),this.messages.unshift(gn(this.timestamp())),(n=this.worker)==null||n.postMessage(this.messages),this.commitCallbacks.forEach(s=>s(this.messages)),this.messages.length=0})}catch(n){this._debug("worker_commit",n),this.stop(!0),setTimeout(()=>{this.start()},500)}}_cStartCommit(){this.coldStartCommitN+=1,this.coldStartCommitN===2&&(this.bufferedMessages1.push(gn(this.timestamp())),this.bufferedMessages1.push(mn(this.session.getTabId())),this.bufferedMessages2.push(gn(this.timestamp())),this.bufferedMessages2.push(mn(this.session.getTabId())),this.coldStartCommitN=0)}commit(){this.activityState===pe.ColdStart?this._cStartCommit():this._nCommit()}postToWorker(e){var n;(n=this.worker)==null||n.postMessage(e),this.commitCallbacks.forEach(s=>s(e)),e.length=0}timestamp(){return lt()+this.delay}safe(e){const n=this;return function(...s){try{e.apply(this,s)}catch(i){n._debug("safe_fn_call",i)}}}attachCommitCallback(e){this.commitCallbacks.push(e)}checkRequiredVersion(e){const n=e.split(/[.-]/),s=this.version.split(/[.-]/);for(let i=0;i<3;i++){if(isNaN(Number(s[i]))||isNaN(Number(n[i])))return!1;if(Number(s[i])>Number(n[i]))return!0;if(Number(s[i])<Number(n[i]))return!1}return!0}getTrackerInfo(){return{userUUID:this.localStorage.getItem(this.options.local_uuid_key),projectKey:this.projectKey,revID:this.revID,trackerVersion:this.version,isSnippet:this.options.__is_snippet}}getSessionInfo(){return{...this.session.getInfo(),...this.getTrackerInfo()}}getSessionToken(){return this.session.getSessionToken()}getSessionID(){return this.session.getInfo().sessionID||void 0}getSessionURL(e){const{projectID:n,sessionID:s,timestamp:i}=this.session.getInfo();if(!n||!s){this.debug.error("OpenReplay error: Unable to build session URL");return}const r=this.options.ingestPoint,c=(/api\.openreplay\.com/.test(r)?"https://app.openreplay.com/ingest":r).replace(/ingest$/,`${n}/session/${s}`);if(e!=null&&e.withCurrentTime){const u=lt()-i;return`${c}?jumpto=${u}`}return c}getHost(){return new URL(this.options.ingestPoint).host}getProjectKey(){return this.projectKey}getBaseHref(){var e,n;return typeof this.options.resourceBaseHref=="string"?this.options.resourceBaseHref:(this.options.resourceBaseHref,document.baseURI?document.baseURI:((n=(e=document.head)==null?void 0:e.getElementsByTagName("base")[0])==null?void 0:n.getAttribute("href"))||location.origin+location.pathname)}resolveResourceURL(e){const n=new URL(this.getBaseHref());return n.pathname+="/"+new URL(e).pathname,n.pathname.replace(/\/+/g,"/"),n.toString()}isServiceURL(e){return e.startsWith(this.options.ingestPoint)}active(){return this.activityState===pe.Active}resetNextPageSession(e){e?this.sessionStorage.setItem(this.options.session_reset_key,"t"):this.sessionStorage.removeItem(this.options.session_reset_key)}checkSessionToken(e){const n=this.sessionStorage.getItem(this.options.session_reset_key)!==null,s=e||n,i=this.session.getSessionToken();return s||!i}async coldStart(e={},n){this.singleBuffer=!1;const s=1e3,i=this.checkSessionToken(e.forceNew);n&&await this.setupConditionalStart(e);const r=()=>{this.orderNumber+=1,Zi(),this.coldStartTs=lt(),this.orderNumber%2===0?(this.bufferedMessages1.length=0,this.bufferedMessages1.push(gn(this.timestamp())),this.bufferedMessages1.push(mn(this.session.getTabId()))):(this.bufferedMessages2.length=0,this.bufferedMessages2.push(gn(this.timestamp())),this.bufferedMessages2.push(mn(this.session.getTabId()))),this.stop(!1),this.activityState=pe.ColdStart,e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata}),i||(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(Ks(this.session.getTabId()))),this.observer.observe(),this.ticker.start()};this.coldInterval=setInterval(()=>{r()},30*s),r()}async setupConditionalStart(e){var p,f;this.conditionsManager=new Eu(this,e);const n=await fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:lt(),doNotRecord:!0,bufferDiff:0,userID:this.session.getInfo().userID,token:void 0,deviceMemory:ar,jsHeapSizeLimit:lr,timezone:vr(),width:window.screen.width,height:window.screen.height})}),{token:s,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,projectID:l,features:h}=await n.json();this.features=h||this.features,this.session.assign({projectID:l}),this.session.setUserInfo({userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u});const d={sessionToken:s,userUUID:"",sessionID:""};this.startCallbacks.forEach(m=>m(d)),await((p=this.conditionsManager)==null?void 0:p.fetchConditions(l,s)),this.features["feature-flags"]&&(await this.featureFlags.reloadFlags(s),(f=this.conditionsManager)==null||f.processFlags(this.featureFlags.flags)),await this.tagWatcher.fetchTags(this.options.ingestPoint,s)}offlineRecording(e={},n){this.onSessionSent=n,this.singleBuffer=!0;const s=this.checkSessionToken(e.forceNew);Zi(),this.coldStartTs=lt();const i=this.localStorage.getItem(mr);if(i){const o=JSON.parse(i);this.bufferedMessages1=Array.isArray(o)?o:this.bufferedMessages1,this.localStorage.removeItem(mr)}this.bufferedMessages1.push(gn(this.timestamp())),this.bufferedMessages1.push(mn(this.session.getTabId())),this.activityState=pe.ColdStart,e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r={sessionToken:"",userUUID:"",sessionID:""};return this.startCallbacks.forEach(o=>o(r)),s||this.send(Ks(this.session.getTabId())),this.observer.observe(),this.ticker.start(),{saveBuffer:this.saveBuffer,getBuffer:this.getBuffer,setBuffer:this.setBuffer}}saveBuffer(){this.localStorage.setItem(mr,JSON.stringify(this.bufferedMessages1))}getBuffer(){return this.bufferedMessages1}setBuffer(e){this.bufferedMessages1=e}async uploadOfflineRecording(){var d,p;this.stop(!1);const e=lt();(d=this.worker)==null||d.postMessage({type:"start",pageNo:this.session.incPageNo(),ingestPoint:this.options.ingestPoint,timestamp:this.coldStartTs,url:document.URL,connAttemptCount:this.options.connAttemptCount,connAttemptGap:this.options.connAttemptGap,tabId:this.session.getTabId()});const n=await fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:e,doNotRecord:!1,bufferDiff:e-this.coldStartTs,userID:this.session.getInfo().userID,token:void 0,deviceMemory:ar,jsHeapSizeLimit:lr,timezone:vr()})}),{token:s,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,beaconSizeLimit:l,projectID:h}=await n.json();for((p=this.worker)==null||p.postMessage({type:"auth",token:s,beaconSizeLimit:l}),this.session.assign({projectID:h}),this.session.setUserInfo({userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u});this.bufferedMessages1.length>0;)await this.flushBuffer(this.bufferedMessages1);this.postToWorker([["q_end"]]),this.clearBuffers()}async _start(e={},n=!1,s){var c,u,l,h,d;Object.keys(e).length!==0&&(this.prevOpts=e);const i=this.activityState===pe.ColdStart;if(i&&this.coldInterval&&clearInterval(this.coldInterval),!this.worker&&!this.insideIframe){const p="No worker found: perhaps, CSP is not set.";return this.signalError(p,[]),Promise.resolve(Nt(p))}if(this.activityState===pe.Active||this.activityState===pe.Starting)return Promise.resolve(Nt("OpenReplay: trying to call `start()` on the instance that has been started already."));this.activityState=pe.Starting,i||Zi(),e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r=lt();(c=this.worker)==null||c.postMessage({type:"start",pageNo:this.session.incPageNo(),ingestPoint:this.options.ingestPoint,timestamp:i?this.coldStartTs:r,url:document.URL,connAttemptCount:this.options.connAttemptCount,connAttemptGap:this.options.connAttemptGap,tabId:this.session.getTabId()});const o=this.session.getSessionToken(),a=this.checkSessionToken(e.forceNew);this.sessionStorage.removeItem(this.options.session_reset_key),this.debug.log("OpenReplay: starting session; need new session id?",a,"session token: ",o);try{const p=await window.fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:r,doNotRecord:!1,bufferDiff:r-this.coldStartTs,userID:this.session.getInfo().userID,token:a?void 0:o,deviceMemory:ar,jsHeapSizeLimit:lr,timezone:vr(),condition:s,assistOnly:e.assistOnly??this.socketMode,width:window.screen.width,height:window.screen.height})});if(p.status!==200){const D=await p.text(),te=D===hs?hs:`Server error: ${p.status}. ${D}`;return Nt(te)}if(!this.worker&&!this.insideIframe){const D="no worker found after start request (this should not happen in real world)";return this.signalError(D,[]),Nt(D)}const{token:f,userUUID:m,projectID:S,beaconSizeLimit:x,compressionThreshold:T,delay:I,sessionID:g,startTimestamp:_,userBrowser:E,userCity:b,userCountry:y,userDevice:k,userOS:P,userState:V,canvasEnabled:F,canvasQuality:Q,canvasFPS:z,assistOnly:B,features:J}=await p.json();if(this.features=J||this.features,typeof f!="string"||typeof m!="string"||typeof _!="number"&&typeof _<"u"||typeof g!="string"||typeof I!="number"||typeof x!="number"&&typeof x<"u"){const D=`Incorrect server response: ${JSON.stringify(p)}`;return this.signalError(D,[]),Nt(D)}this.delay=I,this.session.setSessionToken(f),this.session.setUserInfo({userBrowser:E,userCity:b,userCountry:y,userDevice:k,userOS:P,userState:V}),this.session.assign({sessionID:g,timestamp:_||r,projectID:S}),B?(this.socketMode=!0,(u=this.worker)==null||u.postMessage("stop")):(l=this.worker)==null||l.postMessage({type:"auth",token:f,beaconSizeLimit:x}),!a&&f===o&&(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(Ks(this.session.getTabId()))),Object.entries(this.session.getInfo().metadata).forEach(([D,te])=>this.send(Ta(D,te))),this.localStorage.setItem(this.options.local_uuid_key,m),this.compressionThreshold=T;const ee={sessionToken:f,userUUID:m,sessionID:g};if(this.startCallbacks.forEach(D=>D(ee)),e.startCallback&&e.startCallback(Ka(ee)),this.features["feature-flags"]&&this.featureFlags.reloadFlags(),await this.tagWatcher.fetchTags(this.options.ingestPoint,f),this.activityState=pe.Active,(h=this.options.crossdomain)!=null&&h.enabled&&!this.insideIframe&&this.bootChildrenFrames(),F&&!this.options.canvas.disableCanvas&&(this.canvasRecorder=this.canvasRecorder??new Wh(this,{fps:z,quality:Q,isDebug:this.options.canvas.__save_canvas_locally,fixedScaling:this.options.canvas.fixedCanvasScaling,useAnimationFrame:this.options.canvas.useAnimationFrame})),i){const D=this.bufferedMessages1.length>this.bufferedMessages2.length?this.bufferedMessages1:this.bufferedMessages2;for(;D.length>0;)await this.flushBuffer(D);this.clearBuffers(),this.commit()}else this.insideIframe&&this.rootId?this.observer.crossdomainObserve(this.rootId,this.frameOderNumber):this.observer.observe(),this.ticker.start();if((d=this.canvasRecorder)==null||d.startTracking(),this.features["usability-test"]&&!this.insideIframe){this.uxtManager=this.uxtManager?this.uxtManager:new Bh(this,Ga);let D;const te=this.localStorage.getItem(Ga);if(te&&(D=parseInt(te,10)),location!=null&&location.search){const Ae=new URLSearchParams(location.search);if(Ae.has("oruxt")){const _e=Ae.get("oruxt");D=_e?parseInt(_e,10):void 0}}D&&(this.uxtManager.isActive?this.onUxtCb.forEach(Ae=>Ae(D)):this.uxtManager.getTest(D,f,!!te).then(Ae=>{Ae&&this.onUxtCb.forEach(_e=>_e(Ae))}))}return Ka(ee)}catch(p){if(this.stop(),this.session.reset(),!p)return console.error("Unknown error during start"),this.signalError("Unknown error",[]),Nt("Unknown error");if(p===hs)return this.signalError(hs,[]),Nt(hs);this._debug("session_start",p);const f=p instanceof Error?p.message:p.toString();return this.signalError(f,[]),Nt(f)}}addOnUxtCb(e){this.onUxtCb.push(e)}getUxtId(){var e;return(e=this.uxtManager)==null?void 0:e.getTestId()}async waitStart(){return new Promise(e=>{const n=setInterval(()=>{this.canStart&&(clearInterval(n),e(!0))},100)})}async waitStarted(){return this.waitStatus(pe.Active)}async waitStatus(e){return new Promise(n=>{const s=()=>{this.activityState===e?n(!0):setTimeout(s,25)};s()})}async start(...e){return this.activityState===pe.Active||this.activityState===pe.Starting?Promise.resolve(Nt("OpenReplay: trying to call `start()` on the instance that has been started already.")):(this.insideIframe&&this.signalIframeTracker(),document.hidden?new Promise(n=>{const s=async()=>{document.hidden||(await this.waitStart(),document.removeEventListener("visibilitychange",s),n(this._start(...e)))};document.addEventListener("visibilitychange",s)}):(await this.waitStart(),this._start(...e)))}forceFlushBatch(){var e;(e=this.worker)==null||e.postMessage("forceFlushBatch")}getTabId(){return this.session.getTabId()}clearBuffers(){this.bufferedMessages1.length=0,this.bufferedMessages2.length=0}trackWs(e){const n=e;return(s,i,r="down")=>{typeof s!="string"||typeof i!="string"||i.length>5*1024*1024||s.length>255||this.send(lh("websocket",n,i,this.timestamp(),r,s))}}stop(e=!0){var n,s;if(this.activityState!==pe.NotActive)try{!this.insideIframe&&((n=this.options.crossdomain)!=null&&n.enabled)&&this.killChildrenFrames(),this.attributeSender.clear(),this.sanitizer.clear(),this.observer.disconnect(),this.nodes.clear(),this.ticker.stop(),this.stopCallbacks.forEach(i=>i()),this.tagWatcher.clear(),this.worker&&e&&this.worker.postMessage("stop"),(s=this.canvasRecorder)==null||s.clear(),this.messages.length=0,this.parentActive=!1}finally{this.activityState=pe.NotActive,this.debug.log("OpenReplay tracking stopped.")}}};function od(t){const e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(e===void 0)return;const n=()=>t.send(th(Math.round(e.downlink*1e3),e.type||"unknown"));n(),e.addEventListener("change",n)}const Ya=ft&&"InstallTrigger"in window?t=>t.message+`
|
|
10
|
+
`+t.stack:t=>t.stack||t.message;function wr(t){return t===void 0?"undefined":t===null?"null":t instanceof Error?Ya(t):Array.isArray(t)?`Array(${t.length})`:String(t)}function ad(t){return typeof t!="number"?"NaN":t.toString()}function ld(t){return typeof t!="number"?"NaN":Math.floor(t).toString()}function Ja(t){if(t===void 0)return"undefined";if(t===null)return"null";if(t instanceof Error)return Ya(t);if(Array.isArray(t)){const e=t.length,n=t.slice(0,10).map(wr).join(", ");return`Array(${e})[${n}]`}if(typeof t=="object"){const e=[];let n=0;for(const s in t){if(++n===10)break;const i=t[s];e.push(s+": "+wr(i))}return"{"+e.join(", ")+"}"}return t.toString()}function cd(t){return typeof t[0]=="string"&&t.unshift(t.shift().replace(/%(o|s|f|d|i)/g,(e,n)=>{const s=t.shift();if(s===void 0)return e;switch(n){case"o":return Ja(s);case"s":return wr(s);case"f":return ad(s);case"d":case"i":return ld(s);default:return e}})),t.map(Ja).join(" ")}const Qa=["log","info","warn","error","debug","assert"];function ud(t,e){const n=Object.assign({consoleMethods:Qa,consoleThrottling:30},e);if(!Array.isArray(n.consoleMethods)||n.consoleMethods.length===0)return;const s=t.safe((c,u)=>t.send(Xu(c,cd(u))));let i=0;const r=()=>{i=0};t.attachStartCallback(r),t.ticker.attach(r,33,!1);const o=(c,u)=>{const l={apply:function(h,d,p){Reflect.apply(h,u,p),i=i+1,!(i>n.consoleThrottling)&&s(h.name,p)}};n.consoleMethods.forEach(h=>{if(Qa.indexOf(h)===-1){t.debug.error(`OpenReplay: unsupported console method "${h}"`);return}const d=u.console[h];c[h]=new Proxy(d,l)})},a=t.safe(c=>o(c.console,c));a(window),t.observer.attachContextCallback(a)}const hd=/(^|@)\S+:\d+/,Za=/^\s*at .*(\S+:\d+|\(native\))/m,dd=/^(eval@)?(\[native code\])?$/;function fd(t,e){if(typeof t.stacktrace<"u"||typeof t["opera#sourceloc"]<"u")return wd(t);if(t.stack&&t.stack.match(Za))return pd(t);if(t.stack)return md(t);throw new Error("Cannot parse given Error object")}function br(t){if(!t.includes(":"))return[t,void 0,void 0];const n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t.replace(/[()]/g,""));return[n[1],n[2]||void 0,n[3]||void 0]}function ds(t,e){return t}function pd(t,e){return gd(t.stack)}function gd(t,e){return ds(t.split(`
|
|
11
|
+
`).filter(s=>!!s.match(Za))).map(s=>{s.includes("(eval ")&&(s=s.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));let i=s.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,"");const r=i.match(/ (\(.+\)$)/);i=r?i.replace(r[0],""):i;const o=br(r?r[1]:i),a=r&&i||void 0,c=["eval","<anonymous>"].includes(o[0])?void 0:o[0];return{function:a,file:c,line:o[1]?+o[1]:void 0,col:o[2]?+o[2]:void 0,raw:s}})}function md(t,e){return vd(t.stack)}function vd(t,e){return ds(t.split(`
|
|
12
|
+
`).filter(s=>!s.match(dd))).map(s=>{if(s.includes(" > eval")&&(s=s.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),!s.includes("@")&&!s.includes(":"))return{function:s};{const i=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,r=s.match(i),o=r&&r[1]?r[1]:void 0,a=br(s.replace(i,""));return{function:o,file:a[0],line:a[1]?+a[1]:void 0,col:a[2]?+a[2]:void 0,raw:s}}})}function wd(t,e){return!t.stacktrace||t.message.includes(`
|
|
13
13
|
`)&&t.message.split(`
|
|
14
14
|
`).length>t.stacktrace.split(`
|
|
15
|
-
`).length?
|
|
16
|
-
`),i=[];for(let r=2,o=s.length;r<o;r+=2){const a=n.exec(s[r]);a&&i.push({file:a[2],line:+a[1],raw:s[r]})}return
|
|
17
|
-
`),i=[];for(let r=0,o=s.length;r<o;r+=2){const a=n.exec(s[r]);a&&i.push({function:a[3]||void 0,file:a[2],line:a[1]?+a[1]:void 0,raw:s[r]})}return
|
|
18
|
-
`).filter(s=>!!s.match(Xh)&&!s.match(/^Error created at/))).map(s=>{const i=s.split("@"),r=dr(i.pop()),o=i.shift()||"",a=o.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;let c;o.match(/\(([^)]*)\)/)&&(c=o.replace(/^[^(]+\(([^)]*)\)$/,"$1"));const u=c===void 0||c==="[arguments not available]"?void 0:c.split(",");return{function:a,args:u,file:r[0],line:r[1]?+r[1]:void 0,col:r[2]?+r[2]:void 0,raw:s}})}function rd(t){return t.map(e=>({functionName:e.function,args:e.args,fileName:e.file,lineNumber:e.line,columnNumber:e.col,source:e.raw}))}function od(t,e){return rd(Jh(t))}function Wa(t){return[{columnNumber:t.colno,lineNumber:t.lineno,fileName:t.filename,functionName:"",source:""}]}function Ys(t,e,n={}){let s=e;try{s=od(t)}catch{}return Zi(t.name,t.message,JSON.stringify(s),JSON.stringify(n))}function za(t,e=window,n={}){if(t instanceof ErrorEvent){if(t.error instanceof Error)return Ys(t.error,Wa(t),n);{let[s,i]=t.message.split(":");return i||(s="Error",i=t.message),Zi(s,i,JSON.stringify(Wa(t)),JSON.stringify(n))}}else if("PromiseRejectionEvent"in e&&t instanceof e.PromiseRejectionEvent){if(t.reason instanceof Error)return Ys(t.reason,[],n);{let s;try{s=JSON.stringify(t.reason)}catch{s=String(t.reason)}return Zi("Unhandled Promise Rejection",s,"[]",JSON.stringify(n))}}return null}function ad(t,e){const n=Object.assign({captureExceptions:!0},e);function s(i){function r(o){const a=za(o,i);a!=null&&t.send(a)}try{t.attachEventListener(i,"unhandledrejection",r),t.attachEventListener(i,"error",r)}catch(o){console.error("Error while attaching to error proto contexts",o)}}n.captureExceptions&&(t.observer.attachContextCallback(s),s(window))}function ja(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 ld(t){return du&&(t.startsWith("data:image/svg+xml")||t.match(/.svg$|/i))}const cd="https://static.openreplay.com/tracker/placeholder.jpeg";function ud(t){function e(a,c){t.attributeSender.sendSetAttribute(a,"src",cd);const{width:u,height:l}=c.getBoundingClientRect();c.hasAttribute("width")||t.attributeSender.sendSetAttribute(a,"width",String(u)),c.hasAttribute("height")||t.attributeSender.sendSetAttribute(a,"height",String(l))}const n=function(a,c){const{srcset:u}=c;if(!u)return;const l=u.split(u.match(/,\s+/)?/,\s+/:",").map(h=>ja(h)).join(", ");t.attributeSender.sendSetAttribute(a,"srcset",l)},s=function(a,c){c.src.length>fu&&e(a,c),t.send(Yi(a,"src",c.src,t.getBaseHref()))},i=t.safe(function(a){const c=ja(a.src||"");ea(c)&&t.send(ba(t.timestamp(),0,0,0,0,0,c,"img",0,!1))}),r=t.safe(function(a){const c=t.nodes.getID(a);c!==void 0&&a.complete&&(a.naturalHeight===0&&a.naturalWidth===0&&!ld(a.src)?i(a):t.sanitizer.isHidden(c)||t.sanitizer.isObscured(c)?e(c,a):(s(c,a),n(c,a)))}),o=ra(t.safe(a=>{for(const c of a)if(c.type==="attributes"){const u=c.target,l=t.nodes.getID(u);if(l===void 0)return;c.attributeName==="src"&&s(l,u),c.attributeName==="srcset"&&n(l,u)}}),t.options.forceNgOff);t.attachStopCallback(()=>{o.disconnect()}),t.nodes.attachNodeCallback(a=>{ye(a,"img")&&(t.nodes.attachNodeListener(a,"error",()=>i(a)),t.nodes.attachNodeListener(a,"load",()=>r(a)),r(a),o.observe(a,{attributes:!0,attributeFilter:["src","srcset"]}))})}const hd=["text","password","email","search","number","range","date","tel","time"];function dd(t){return ye(t,"textarea")?!0:ye(t,"input")?hd.includes(t.type):!1}function fd(t){if(!ye(t,"input"))return!1;const e=t.type;return e==="checkbox"||e==="radio"}const pd=dt&&"labels"in HTMLInputElement.prototype?t=>{let e=t;for(;(e=e.parentNode)!==null;)if(ye(e,"label"))return e;const n=t.labels;if(n!==null&&n.length===1)return n[0]}:t=>{let e=t;for(;(e=e.parentNode)!==null;)if(ye(e,"label"))return e;const n=t.id;if(n){const s=t.ownerDocument.querySelectorAll('label[for="'+n+'"]');if(s!==null&&s.length===1)return s[0]}};function Ua(t){let e=Ki(t);if(e===null){const n=pd(t);e=n&&n.innerText||t.placeholder||t.name||t.id||t.className||t.type}return $o(e).slice(0,100)}const Bn={Plain:0,Obscured:1,Hidden:2};function gd(t,e){const n=Object.assign({obscureInputNumbers:!0,obscureInputEmails:!0,defaultInputMode:Bn.Obscured,obscureInputDates:!1},e);function s(l,h){let d=h.value,f=n.defaultInputMode;h.type==="password"||t.sanitizer.isHidden(l)?f=Bn.Hidden:(t.sanitizer.isObscured(l)||f===Bn.Plain&&(n.obscureInputNumbers&&h.type!=="date"&&/\d\d\d\d/.test(d)||n.obscureInputDates&&h.type==="date"||n.obscureInputEmails&&(h.type==="email"||~d.indexOf("@"))))&&(f=Bn.Obscured);let p=0;switch(f){case Bn.Hidden:p=-1,d="";break;case Bn.Obscured:p=d.length,d="";break}return{value:d,mask:p}}function i(l,h){const{value:d,mask:f}=s(l,h);t.send(Cu(l,d,f))}const r=new Map,o=new Map;t.attachStopCallback(()=>{r.clear(),o.clear()});function a(l,h){r.get(l)!==h.value&&(r.set(l,h.value),i(l,h))}function c(l,h){o.get(l)!==h&&(o.set(l,h),t.send(Nu(l,h)))}t.ticker.attach(()=>{r.forEach((l,h)=>{const d=t.nodes.getNode(h);if(!d)return r.delete(h);a(h,d)}),o.forEach((l,h)=>{const d=t.nodes.getNode(h);if(!d)return o.delete(h);c(h,d.checked)})},3);function u(l,h,d,f){const{value:p,mask:v}=s(l,h),E=Ua(h);t.send(Gu(l,p,v!==0,E,d,f))}t.nodes.attachNodeCallback(t.safe(l=>{const h=t.nodes.getID(l);if(h!==void 0){if(ye(l,"select")&&(i(h,l),t.nodes.attachNodeListener(l,"change",()=>i(h,l))),dd(l)){a(h,l);let d=0,f=0,p=0;const v=()=>{d=rt()},E=()=>{f===0&&d!==0&&(f=rt()-d)},T=()=>{d!==0&&(p=rt()-d),u(h,l,f,p),f=0,p=0,d=0};t.nodes.attachNodeListener(l,"focus",v),t.nodes.attachNodeListener(l,"input",E),t.nodes.attachNodeListener(l,"change",T);return}if(fd(l)){c(h,l.checked),t.nodes.attachNodeListener(l,"change",()=>c(h,l.checked));return}}}))}let Ze,fr,Ha;function md(t,e){if(Ha=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 n={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};Ze={...n,...e},fr=vd(Ze.root,n);let s=Js(t,"all",()=>Js(t,"two",()=>Js(t,"one",()=>Js(t,"none"))));if(s){const i=Ya(Ja(s,t));return i.length>0&&(s=i[0]),Qs(s)}else throw new Error("Selector was not found.")}function vd(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function Js(t,e,n){let s=null,i=[],r=t,o=0;for(;r;){const a=new Date().getTime()-Ha.getTime();if(Ze.timeoutMs!==void 0&&a>Ze.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${a}ms`);let c=$s(bd(r))||$s(...wd(r))||$s(...yd(r))||$s(_d(r))||[Ka()];const u=Sd(r);if(e=="all")u&&(c=c.concat(c.filter(pr).map(l=>Zs(l,u))));else if(e=="two")c=c.slice(0,1),u&&(c=c.concat(c.filter(pr).map(l=>Zs(l,u))));else if(e=="one"){const[l]=c=c.slice(0,1);u&&pr(l)&&(c=[Zs(l,u)])}else e=="none"&&(c=[Ka()],u&&(c=[Zs(c[0],u)]));for(let l of c)l.level=o;if(i.push(c),i.length>=Ze.seedMinLength&&(s=qa(i,n),s))break;r=r.parentElement,o++}return s||(s=qa(i,n)),!s&&n?n():s}function qa(t,e){const n=Ya(Xa(t));if(n.length>Ze.threshold)return e?e():null;for(let s of n)if(Ga(s))return s;return null}function Qs(t){let e=t[0],n=e.name;for(let s=1;s<t.length;s++){const i=t[s].level||0;e.level===i-1?n=`${t[s].name} > ${n}`:n=`${t[s].name} ${n}`,e=t[s]}return n}function Va(t){return t.map(e=>e.penalty).reduce((e,n)=>e+n,0)}function Ga(t){const e=Qs(t);switch(fr.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 bd(t){const e=t.getAttribute("id");return e&&Ze.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function wd(t){return Array.from(t.attributes).filter(n=>Ze.attr(n.name,n.value)).map(n=>({name:`[${CSS.escape(n.name)}="${CSS.escape(n.value)}"]`,penalty:.5}))}function yd(t){return Array.from(t.classList).filter(Ze.className).map(n=>({name:"."+CSS.escape(n),penalty:1}))}function _d(t){const e=t.tagName.toLowerCase();return Ze.tagName(e)?{name:e,penalty:2}:null}function Ka(){return{name:"*",penalty:3}}function Sd(t){const e=t.parentNode;if(!e)return null;let n=e.firstChild;if(!n)return null;let s=0;for(;n&&(n.nodeType===Node.ELEMENT_NODE&&s++,n!==t);)n=n.nextSibling;return s}function Zs(t,e){return{name:t.name+`:nth-child(${e})`,penalty:t.penalty+1}}function pr(t){return t.name!=="html"&&!t.name.startsWith("#")}function $s(...t){const e=t.filter(kd);return e.length>0?e:null}function kd(t){return t!=null}function*Xa(t,e=[]){if(t.length>0)for(let n of t[0])yield*Xa(t.slice(1,t.length),e.concat(n));else yield e}function Ya(t){return[...t].sort((e,n)=>Va(e)-Va(n))}function*Ja(t,e,n={counter:0,visited:new Map}){if(t.length>2&&t.length>Ze.optimizedMinLength)for(let s=1;s<t.length-1;s++){if(n.counter>Ze.maxNumberOfTries)return;n.counter+=1;const i=[...t];i.splice(s,1);const r=Qs(i);if(n.visited.has(r))return;Ga(i)&&Td(i,e)&&(yield i,n.visited.set(r,!0),yield*Ja(i,e,n))}}function Td(t,e){return fr.querySelector(Qs(t))===e}function xd(t,e,n){return md(t,{root:e.body,seedMinLength:3,optimizedMinLength:(n==null?void 0:n.minSelectorDepth)||2,threshold:(n==null?void 0:n.nthThreshold)||1e3,maxNumberOfTries:(n==null?void 0:n.maxOptimiseTries)||1e4})}function gr(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 Qa(t,e){return t instanceof Element?Ed(t,e):null}function Ed(t,e){let n=t;for(;n!==null&&n!==e.documentElement;){if(rn(n,"masked"))return null;n=n.parentElement}if(ir(t)){let s=t.ownerSVGElement;for(;s!==null;)t=s,s=s.ownerSVGElement}for(n=t;n!==null&&n!==e.documentElement;){const s=n.tagName.toUpperCase();if(s==="LABEL")return null;if(s==="INPUT"||gr(n)||Ki(n)!==null)return n;n=n.parentElement}return t===e.documentElement?null:t}function Id(t,e){const{disableClickmaps:n=!1}=e||{};function s(g){const y=Ki(g);if(y!==null)return y;if(ye(g,"input"))return Ua(g);if(gr(g)){let k="";return g instanceof HTMLElement&&(k=t.sanitizer.getInnerTextSecure(g)),k=k||g.id||g.className,$o(k).slice(0,100)}return""}let i=-1,r=-1,o=!1,a=null,c=0,u={},l=0,h=0,d=0,f=0,p;const v=.008,E=225;function T(){const g=f/E;if(!l){l=g;return}const y=(g-l)/E;d>4&&y>v&&t.send(Ku(rt())),f=0,d=0,l=g}t.attachStartCallback(()=>{p=setInterval(()=>T(),E)}),t.attachStopCallback(()=>{i=-1,r=-1,o=!1,a=null,u={},p&&clearInterval(p)});const x=()=>{o&&(t.send(Ru(i,r)),o=!1)},I=(g,y=!1)=>{function k(_,w,A){return u[_]=u[_]||xd(w,g,A)}const S=y?t.attachEventListener.bind(t):t.nodes.attachNodeListener.bind(t.nodes);S(g.documentElement,"mouseover",_=>{const w=Qa(_.target,g);w!==a&&(a=w,c=performance.now())}),S(g,"mousemove",_=>{const[w,A]=t.observer.getDocumentOffset(g);i=_.clientX+w,r=_.clientY+A,o=!0;const L=Math.sign(_.movementX);f+=Math.abs(_.movementX)+Math.abs(_.movementY),L!==h&&(h=L,d++)},!1),S(g,"click",_=>{const w=Qa(_.target,g);if(!_.clientX&&!_.clientY||w===null)return;const A=t.nodes.getID(w);if(A!==void 0){const L=_.pageX,B=_.pageY,U=g.documentElement.scrollWidth,F=g.documentElement.scrollHeight,W=Za(L/U),K=Za(B/F);x(),t.send(Hu(A,a===w?Math.round(performance.now()-c):0,s(w),gr(w)&&!n?k(A,w,e):"",W,K),!0)}a=null})};t.nodes.attachNodeCallback(g=>{Vs(g)&&I(g)}),I(document,!0),t.ticker.attach(x,(e==null?void 0:e.trackingOffset)||7)}function Za(t){return Math.round(t*1e4)}function Cd(t){const e=[],n=document.getElementsByTagName("*"),s=/url\(("[^"]*"|'[^']*'|[^)]*)\)/i;for(let i=0;i<n.length;i++){const r=n[i];let o="";if(ye(r,"img")&&(o=r.currentSrc||r.src),!o){const p=getComputedStyle(r).getPropertyValue("background-image");if(p){const v=s.exec(p);v!==null&&(o=v[1],(o.startsWith('"')||o.startsWith("'"))&&(o=o.substr(1,o.length-2)))}}if(!o)continue;const a=o.substr(0,10)==="data:image"?0:t[o];if(a===void 0)continue;const c=r.getBoundingClientRect(),u=Math.max(c.top,0),l=Math.max(c.left,0),h=Math.min(c.bottom,window.innerHeight||document.documentElement&&document.documentElement.clientHeight||0),d=Math.min(c.right,window.innerWidth||document.documentElement&&document.documentElement.clientWidth||0);if(h<=u||d<=l)continue;const f=(h-u)*(d-l);e.push({time:a,area:f})}return e}function Nd(t,e){let n=Math.max(document.documentElement&&document.documentElement.clientWidth||0,window.innerWidth||0)*Math.max(document.documentElement&&document.documentElement.clientHeight||0,window.innerHeight||0)/10,s=n*t;for(let i=0;i<e.length;i++){const{time:r,area:o}=e[i];n+=o,s+=o*(r>t?r:t)}return n===0?0:s/n}function Rd(t,e){const n=Object.assign({captureResourceTimings:!0,capturePageLoadTimings:!0,capturePageRenderTimings:!0,excludedResourceUrls:[]},e);if("PerformanceObserver"in window||(n.captureResourceTimings=!1),!n.captureResourceTimings)return;let s={};function i(u){var h;if(u.duration<0||!ea(u.name)||t.isServiceURL(u.name))return;s!==null&&(s[u.name]=u.startTime+u.duration);let l=!1;(h=n.excludedResourceUrls)==null||h.forEach(d=>{if(u.name.startsWith(d)){l=!0;return}}),!l&&t.send(ba(u.startTime+Mn(),u.duration,u.responseStart&&u.startTime?u.responseStart-u.startTime:0,u.transferSize>u.encodedBodySize?u.transferSize-u.encodedBodySize:0,u.encodedBodySize||0,u.decodedBodySize||0,u.name,u.initiatorType,u.transferSize,u.responseStatus&&u.responseStatus===304||u.transferSize===0))}const r=new PerformanceObserver(u=>u.getEntries().forEach(i));let o;t.attachStartCallback(function({sessionID:u}){u!==o&&(performance.getEntriesByType("resource").forEach(i),o=u),r.observe({entryTypes:["resource"]})}),t.attachStopCallback(function(){r.disconnect()});let a=0,c=0;if(n.capturePageLoadTimings){let u=!1;t.ticker.attach(()=>{if(!u&&((a===0||c===0)&&performance.getEntriesByType("paint").forEach(l=>{const{name:h,startTime:d}=l;switch(h){case"first-paint":a=d;break;case"first-contentful-paint":c=d;break}}),performance.timing.loadEventEnd||performance.now()>3e4)){u=!0;const{navigationStart:l,requestStart:h,responseStart:d,responseEnd:f,domContentLoadedEventStart:p,domContentLoadedEventEnd:v,loadEventStart:E,loadEventEnd:T}=performance.timing;t.send(Au(h-l||0,d-l||0,f-l||0,p-l||0,v-l||0,E-l||0,T-l||0,a,c))}},30)}if(n.capturePageRenderTimings){let u=0,l=0,h=0,d=null,f=!1;t.ticker.attach(()=>{if(f)return;const p=performance.now();if(s!==null&&(u=Math.max.apply(null,Object.keys(s).map(v=>s[v])),p-u>1e3&&(d=Cd(s),s=null)),h!==null&&(p-h>50&&(l=p),h=p-l>5e3?null:p),d!==null&&h===null||p>3e4){f=!0,s=null;const v=d===null?0:Nd(c||a,d),{domContentLoadedEventEnd:E,navigationStart:T}=performance.timing,x=h===null?Math.max(l,c,E-T||0):0;t.send(Mu(v,c>u?c:u,x))}})}}function mr(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 Dd(t,e){let n=!1;const s=new Map;function i(a){Na(a)&&(Nt(a)&&s.set(a,[a.scrollLeft,a.scrollTop]),Vs(a)&&s.set(a,mr(a)))}const r=t.safe(()=>{e||t.send(yu(...mr(document)))}),o=t.safe((a,c)=>{const u=t.nodes.getID(c);u!==void 0&&t.send(Iu(u,a[0],a[1]))});t.attachStartCallback(r),t.attachStopCallback(()=>{n=!1,s.clear()}),t.nodes.attachNodeCallback((a,c)=>{c&&(Nt(a)&&a.scrollLeft+a.scrollTop>0?s.set(a,[a.scrollLeft,a.scrollTop]):Vs(a)&&s.set(a,mr(a))),Gs(a)&&t.nodes.attachNodeListener(a,"scroll",u=>{i(u.target)})}),t.attachEventListener(document,"scroll",a=>{const c=a.target;if(c===document){n=!0;return}i(c)}),t.ticker.attach(()=>{n&&(r(),n=!1),s.forEach(o),s.clear()},5,!1)}function Ad(t){let e,n,s,i,r=document.referrer;const o=t.safe(()=>{const{URL:u}=document;u!==e&&(e=u,t.send(Ju(e,r,i,document.title)),i=0,r=e)}),a=t.safe(()=>{const{innerWidth:u,innerHeight:l}=window;(u!==n||l!==s)&&(n=u,s=l,t.send(wu(n,s)))}),c=document.hidden===void 0?Function.prototype:t.safe(()=>t.send(Wu(document.hidden)));t.attachStartCallback(()=>{e=null,i=Mn(),n=s=-1,o(),a(),c()}),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",c,!1,!1),t.ticker.attach(o,1,!1),t.ticker.attach(a,5,!1)}function $a(t){return Gs(t)&&!!t.adoptedStyleSheets}let Md=15;function el(){return Md++}const ei=new Map;function Od(t){if(t===null||!$a(document))return;const e=new Map,n=new Map,s=o=>setTimeout(()=>{let a=t.nodes.getID(o);if(o===document&&(a=0),a===void 0)return;let c=n.get(a);c||(c=[]);const u=[],l=o.adoptedStyleSheets;if(l&&Symbol.iterator in l)for(const h of l){let d=e.get(h);const f=!d;if(d||(d=el(),e.set(h,d)),c.includes(d)||t.send(ga(d,a)),f){const p=h.cssRules;for(let v=0;v<p.length;v++)t.send(Qi(d,p[v].cssText,v,t.getBaseHref()))}u.push(d)}if(Symbol.iterator in c)for(const h of c)u.includes(h)||t.send(qu(h,a));n.set(a,u)},20);function i(o){const a=Object.getOwnPropertyDescriptor(o,"adoptedStyleSheets");a&&Object.defineProperty(o,"adoptedStyleSheets",{...a,set:function(c){const u=a.set.call(this,c);return s(this),u}})}const r=o=>{if(o.__openreplay_adpss_patched__)return;o.__openreplay_adpss_patched__=!0,i(o.Document.prototype),i(o.ShadowRoot.prototype);const{replace:a,replaceSync:c}=o.CSSStyleSheet.prototype;o.CSSStyleSheet.prototype.replace=function(u){return a.call(this,u).then(l=>{const h=e.get(this);return h&&t.send(fa(h,u,t.getBaseHref())),l})},o.CSSStyleSheet.prototype.replaceSync=function(u){const l=e.get(this);return l&&t.send(fa(l,u,t.getBaseHref())),c.call(this,u)}};r(window),t.observer.attachContextCallback(t.safe(r)),t.attachStopCallback(()=>{e.clear(),n.clear()}),t.attachStartCallback(()=>{s(document)}),t.nodes.attachNodeCallback(o=>{$a(o)&&s(o)})}function Pd(t){if(t===null)return;if(!window.CSSStyleSheet){t.send(ju("no_stylesheet_prototype_in_window",""));return}const e=t.safe((i,r,o)=>{const a=ei.get(i);a&&(typeof o=="string"?t.send(Qi(a,o,r,t.getBaseHref())):t.send(pa(a,r)))}),n=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 a=ei.get(o);if(!a){t.debug.warn("No sheedID found for",o,ei);return}const c=r.cssText,u=o.cssRules,l=Array.from(u).indexOf(r);l>=0?(t.send(Qi(a,c,l,t.getBaseHref())),t.send(pa(a,l+1))):t.debug.warn("Rule index not found in",o,r)}),s=t.safe(i=>{const{insertRule:r,deleteRule:o}=i.CSSStyleSheet.prototype,{insertRule:a,deleteRule:c}=i.CSSGroupingRule.prototype;i.CSSStyleSheet.prototype.insertRule=function(u,l=0){return e(this,l,u),r.call(this,u,l)},i.CSSStyleSheet.prototype.deleteRule=function(u){return e(this,u),o.call(this,u)},i.CSSGroupingRule.prototype.insertRule=function(u,l=0){const h=a.call(this,u,l);return n(this),h},i.CSSGroupingRule.prototype.deleteRule=function(u=0){const l=c.call(this,u);return n(this),l}});s(window),t.observer.attachContextCallback(s),t.nodes.attachNodeCallback(i=>{if(!ye(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,a=el();ei.set(o,a),t.send(ga(a,r));const c=o.cssRules;for(let u=0;u<c.length;u++)e(o,u,c[u].cssText)})}function Ld(t){function e(s){const i=t.nodes.getID(s);i!==void 0&&t.send(da(i))}let n=!1;t.nodes.attachNodeCallback(s=>{ye(s,"body")&&(t.nodes.attachNodeListener(s,"focus",i=>{Na(i.target)&&(e(i.target),n=!1)}),t.nodes.attachNodeListener(s,"blur",i=>{i.relatedTarget===null&&(n=!0,setTimeout(()=>{n&&t.send(da(-1))},0))}))}),t.attachStartCallback(()=>{let s=document.activeElement;for(;s&&ye(s,"iframe")&&s.contentDocument;)s=s.contentDocument.activeElement;s&&s!==s.ownerDocument.body&&e(s)},!0)}function Bd(t){if(!window.FontFace)return;const e=new Map,n=s=>{class i extends s.FontFace{constructor(...o){if(typeof o[1]=="string"){let a="";o[2]&&t.safe(()=>{a=JSON.stringify(o[2])});const c=[o[0],o[1],a],u=e.get(s.document)||[];u.push(c),e.set(s.document,u);const l=s===window?0:t.nodes.getID(s.document);if(l===void 0)return;t.active()&&t.send(ha(l,...c))}super(...o)}}s.FontFace=i};t.observer.attachContextCallback(n),n(window),t.nodes.attachNodeCallback(t.safe(s=>{if(!Vs(s))return;const i=e.get(s);if(!i)return;const r=s.defaultView===window?0:t.nodes.getID(s);r!==void 0&&i.forEach(o=>{t.send(ha(r,...o))})}))}function Fd(t,e,n,s,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:p,method:v,url:E,baseURL:T}=d.config,{data:x,headers:I,status:g,response:y}=d,{data:k,headers:S,status:_}=y||{},w=n.ignoreHeaders,A=Array.isArray(w)?D=>w.includes(D):()=>w;function L(D,ee){A(ee[0])||(D[ee[0]]=ee[1])}let B={},U={};f.toJSON?B=f.toJSON():f instanceof Headers?f.forEach((D,ee)=>L(B,[ee,D])):Array.isArray(f)?f.forEach(D=>L(B,D)):typeof f=="object"&&Object.entries(f).forEach(D=>L(B,D));const F=S||I;F.toJSON?U=F.toJSON():F instanceof Headers?F.forEach((D,ee)=>L(U,[ee,D])):Array.isArray(F)?F.forEach(D=>L(U,D)):typeof F=="object"&&Object.entries(F).forEach(([D,ee])=>{A(D)||(U[D]=ee)});const W=s({url:E,method:v||"",status:g||_||0,request:{headers:B,body:p},response:{headers:U,body:k||x}});if(!W){t.debug.log("Openreplay: empty request/response info, skipping");return}const K=d.config.__openreplay_timing,Z=performance.now()-K;t.debug.log("Openreplay: final req object",W),t.send(js("xhr",String(v),String(W.url),i(W.request),i(W.response),W.status,K+Mn(),Z,0))}function o(d){if(t.debug.log("Openreplay: capturing API request",d),d.__openreplay_timing=performance.now(),n.sessionTokenHeader){const f=typeof n.sessionTokenHeader=="string"?n.sessionTokenHeader:"X-OpenReplay-Session-Token",p=t.getSessionToken();p&&d.headers.set(f,p)}return d}function a(d){return n.failuresOnly||r(d),d}function c(d){return t.debug.log("Openreplay: capturing API request error",d),Wd(d)&&d.response?r(d.response):d instanceof Error&&t.send(Ys(d,[])),Promise.reject(d)}function u(d){t.debug.log("Openreplay: failed API request, skipping",d)}const l=e.interceptors.request.use(o,u,{synchronous:!0}),h=e.interceptors.response.use(a,c,{synchronous:!0});t.attachStopCallback(()=>{var d,f,p,v;(f=(d=e.interceptors.request).eject)==null||f.call(d,l),(v=(p=e.interceptors.response).eject)==null||v.call(p,h)})}function Wd(t){return zd(t)&&t.isAxiosError===!0}function zd(t){return t!==null&&typeof t=="object"}class vr{constructor(e=[],n,s){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header={},this.responseType="",this.requestType="xhr",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:n}=this.writeHeaders(),s={headers:e,body:this.method==="GET"?JSON.stringify(this.getData):this.requestData},i={headers:n,body:this.response},r=this.sanitize({url:this.url,method:this.method,status:this.status,request:s,response:i});if(!r)return null;if(r.url.includes("/graphql")&&r.response.body&&typeof r.response.body=="string"){const a=r.response.body.includes("errors");r.status=a?400:200,this.requestType="graphql"}return{requestType:this.requestType,method:r.method,url:r.url,request:JSON.stringify(r.request),response:JSON.stringify(r.response),status:r.status,startTime:this.startTime,duration:this.duration,responseSize:this.responseSize}}writeHeaders(){const e={};Object.entries(this.requestHeader).forEach(([s,i])=>{this.isHeaderIgnored(s)||(e[s]=i)}),this.setSessionTokenHeader((s,i)=>{e[s]=i});const n={};return Object.entries(this.header).forEach(([s,i])=>{this.isHeaderIgnored(s)||(n[s]=i)}),{reqHs:e,resHs:n}}isHeaderIgnored(e){return Array.isArray(this.ignoredHeaders)?this.ignoredHeaders.map(n=>n.toLowerCase()).includes(e.toLowerCase()):this.ignoredHeaders}}const rs=(t,e)=>{let n="";switch(t){case"":case"text":case"json":typeof e=="string"?n=e:wr(e)||Array.isArray(e)?n=JSON.stringify(e):typeof e<"u"&&(n=Object.prototype.toString.call(e));break;case"blob":case"document":case"arraybuffer":default:typeof e<"u"&&(n=Object.prototype.toString.call(e));break}return n},br=t=>{if(!t)return null;let e;if(typeof t=="string"){(t[0]==="{"||t[0]==="[")&&(e=t);const n=t.split("&");n.length===1?e=t:e=n.join(",")}else if(Ud(t)){const n=[];for(const[s,i]of t)n.push(`${s}=${typeof i=="string"?i:"[object Object]"}`);e=n.join(",")}else t instanceof Blob||t instanceof ReadableStream||t instanceof ArrayBuffer?e="byte data":wr(t)?e=t:e=`can't parse body ${typeof t}`;return e},jd=(t,e={})=>{wr(e)||(e={});let n=t?t.split("?"):[];if(n.shift(),n.length>0){n=n.join("?").split("&");for(const s of n){const i=s.split("=");try{e[i[0]]=decodeURIComponent(i[1])}catch{e[i[0]]=i[1]}}}return e};function wr(t){return t!==null&&typeof t=="object"}function Ud(t){return t==null||ArrayBuffer.isView(t)?!1:typeof Symbol<"u"&&typeof t[Symbol.iterator]=="function"}function ti(t){return t<=0?"":t>=1e3*1e3?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":`${t}B`}const yr=t=>(t.startsWith("//")&&(t=`${new URL(window.location.href).protocol}${t}`),t.startsWith("http")?new URL(t):new URL(t,window.location.href)),Hd=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 qd{constructor(e,n,s,i,r){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.sendMessage=i,this.isServiceUrl=r}apply(e,n,s){const i=s[0],r=s[1],o=new vr(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);if(this.isServiceUrl(i))return e.apply(n,s);const a=yr(i);if(o.method="POST",o.url=i,o.name=(a.pathname.split("/").pop()||"")+a.search,o.requestType="beacon",o.requestHeader={"Content-Type":Hd(r)},o.status=0,o.statusText="Pending",a.search&&a.searchParams){o.getData={};for(const[l,h]of a.searchParams)o.getData[l]=h}o.requestData=br(r),o.startTime||(o.startTime=performance.now());const c=e.apply(n,s);c?(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 u=o.getMessage();return u&&this.sendMessage(u),c}}class Vd{static create(e,n,s,i,r,o){if(e)return new Proxy(e,new qd(n,s,i,r,o))}}var pt;(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"})(pt||(pt={}));class Gd{constructor(e,n){this.resp=e,this.item=n,this.mockReader()}set(e,n,s){return Reflect.set(e,n,s)}get(e,n){const s=Reflect.get(e,n);switch(n){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return()=>(this.item.responseType=n.toLowerCase(),s.apply(e).then(i=>(this.item.response=rs(this.item.responseType,i),i)))}return typeof s=="function"?s.bind(e):s}mockReader(){let e;if(!this.resp.body||typeof this.resp.body.getReader!="function")return;const n=this.resp.body.getReader;this.resp.body.getReader=()=>{const s=n.apply(this.resp.body);if(this.item.readyState===pt.DONE)return s;const i=s.read,r=s.cancel;return this.item.responseType="arraybuffer",s.read=()=>i.apply(s).then(o=>{if(!e)e=new Uint8Array(o.value);else{const a=new Uint8Array(e.length+o.value.length);a.set(e),a.set(o.value,e.length),e=a}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=ti(this.item.responseSize),o.done&&(this.item.response=rs(this.item.responseType,e)),o}),s.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=rs(this.item.responseType,e),r.apply(s,o)),s}}}class Kd{constructor(e,n,s,i,r,o){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.sendMessage=i,this.isServiceUrl=r,this.tokenUrlMatcher=o}apply(e,n,s){const i=s[0],r=s[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,s);const a=new vr(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);return this.beforeFetch(a,i,r),this.setSessionTokenHeader((c,u)=>{if(!(this.tokenUrlMatcher!==void 0&&!this.tokenUrlMatcher(a.url))){if(s[1]===void 0&&s[0]instanceof Request)return s[0].headers.append(c,u);s[1]||(s[1]={}),s[1].headers===void 0&&(s[1]=Object.assign(Object.assign({},s[1]),{headers:{}})),s[1].headers instanceof Headers?s[1].headers.append(c,u):Array.isArray(s[1].headers)?s[1].headers.push([c,u]):s[1].headers[c]=u}}),e.apply(window,s).then(this.afterFetch(a)).catch(c=>{throw a.endTime=performance.now(),a.duration=a.endTime-(a.startTime||a.endTime),c})}beforeFetch(e,n,s){let i,r="GET",o={};if(typeof n=="string"?(r=(s==null?void 0:s.method)||"GET",i=yr(n),o=(s==null?void 0:s.headers)||{}):(r=n.method||"GET",i=yr(n.url),o=n.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[a,c]of o)e.requestHeader[a]=c}else e.requestHeader=o;if(i.search&&i.searchParams){e.getData={};for(const[a,c]of i.searchParams)e.getData[a]=c}s!=null&&s.body&&(e.requestData=br(s.body))}afterFetch(e){return n=>{e.endTime=performance.now(),e.duration=e.endTime-(e.startTime||e.endTime),e.status=n.status,e.statusText=String(n.status);let s=!1;e.header={};for(const[i,r]of n.headers)e.header[i]=r,s=r.toLowerCase().indexOf("chunked")>-1?!0:s;return s?e.readyState=3:(e.readyState=4,this.handleResponseBody(n.clone(),e).then(i=>{e.responseSize=typeof i=="string"?i.length:i.byteLength,e.responseSizeText=ti(e.responseSize),e.response=rs(e.responseType,i);const r=e.getMessage();r&&this.sendMessage(r)}).catch(i=>{if(i.name!=="AbortError")throw i})),new Proxy(n,new Gd(n,e))}}handleResponseBody(e,n){const s=e.headers.get("content-type");return s&&s.includes("application/json")?(n.responseType="json",e.text()):s&&(s.includes("text/html")||s.includes("text/plain"))?(n.responseType="text",e.text()):(n.responseType="arraybuffer",e.arrayBuffer())}}class Xd{static create(e,n,s,i,r,o){return new Proxy(fetch,new Kd(e,n,s,i,r,o))}}class Yd{constructor(e,n,s,i,r,o,a){this.ignoredHeaders=n,this.setSessionTokenHeader=s,this.sanitize=i,this.sendMessage=r,this.isServiceUrl=o,this.tokenUrlMatcher=a,this.XMLReq=e,this.XMLReq.onreadystatechange=()=>{this.onReadyStateChange()},this.XMLReq.onabort=()=>{this.onAbort()},this.XMLReq.ontimeout=()=>{this.onTimeout()},this.item=new vr(n,s,i),this.item.requestType="xhr"}get(e,n){switch(n){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 s=Reflect.get(e,n);return typeof s=="function"?s.bind(e):s}}set(e,n,s){switch(n){case"onreadystatechange":return this.setOnReadyStateChange(e,n,s);case"onabort":return this.setOnAbort(e,n,s);case"ontimeout":return this.setOnTimeout(e,n,s)}return Reflect.set(e,n,s)}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=rs(this.item.responseType,this.item.response)},0),this.XMLReq.readyState===pt.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 n=Reflect.get(e,"open");return(...s)=>{var i,r,o;const a=s[0],c=s[1];return this.item.method=a?a.toUpperCase():"GET",this.item.url=((i=c.toString)===null||i===void 0?void 0:i.call(c))||"",this.item.name=(o=(r=this.item.url)===null||r===void 0?void 0:r.replace(new RegExp("/*$"),"").split("/").pop())!==null&&o!==void 0?o:"",this.item.getData=jd(this.item.url,{}),n.apply(e,s)}}getSend(e){const n=Reflect.get(e,"send");return(...s)=>{const i=s[0];return this.item.requestData=br(i),n.apply(e,s)}}getSetRequestHeader(e){const n=Reflect.get(e,"setRequestHeader");return(...s)=>(this.item.requestHeader||(this.item.requestHeader={}),this.item.requestHeader[s[0]]=s[1],n.apply(e,s))}setOnReadyStateChange(e,n,s){return Reflect.set(e,n,(...i)=>{this.onReadyStateChange(),s==null||s.apply(e,i)})}setOnAbort(e,n,s){return Reflect.set(e,n,(...i)=>{this.onAbort(),s.apply(e,i)})}setOnTimeout(e,n,s){return Reflect.set(e,n,(...i)=>{this.onTimeout(),s.apply(e,i)})}updateItemByReadyState(){switch(this.XMLReq.readyState){case pt.UNSENT:case pt.OPENED:this.item.status=pt.UNSENT,this.item.statusText="Pending",this.item.startTime||(this.item.startTime=performance.now());break;case pt.HEADERS_RECEIVED:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};const e=this.XMLReq.getAllResponseHeaders()||"",n=e.split(`
|
|
19
|
-
`);for(let s=0;s<n.length;s++){const i=n[s];if(!i)continue;const r=i.split(": "),o=r[0];this.item.header[o]=r.slice(1).join(": ")}break;case pt.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=ti(this.item.responseSize));break;case pt.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=ti(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown";break}}}class Jd{static create(e,n,s,i,r,o){return new Proxy(XMLHttpRequest,{construct(a){const c=new a;return new Proxy(c,new Yd(c,e,n,s,i,r,o))}})}}const tl=t=>{const e=`Openreplay: Can't find ${t} in global context.`;console.warn(e)};function Qd(t,e,n,s,i,r,o={xhr:!0,fetch:!0,beacon:!0},a){var c;if(t&&(o.xhr&&(t.XMLHttpRequest?t.XMLHttpRequest=Jd.create(e,n,s,i,r,a):tl("XMLHttpRequest")),o.fetch&&(t.fetch?t.fetch=Xd.create(e,n,s,i,r,a):tl("fetch")),o.beacon&&!((c=t.navigator)===null||c===void 0)&&c.sendBeacon)){const u=t.navigator.sendBeacon;t.navigator.sendBeacon=Vd.create(u,e,n,s,i,r)}}function _r(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function nl(t){return typeof t=="string"?t.toUpperCase():"GET"}function Zd(t,e={}){const n=Object.assign({failuresOnly:!1,ignoreHeaders:["cookie","set-cookie","authorization"],capturePayload:!1,sessionTokenHeader:!1,captureInIframes:!0,axiosInstances:void 0,useProxy:!0},e);n.useProxy===!1&&t.debug.warn("Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true");const s=n.ignoreHeaders,i=Array.isArray(s)?l=>s.includes(l):()=>s,r=n.sessionTokenHeader===!0?"X-OpenReplay-SessionToken":n.sessionTokenHeader;function o(l){if(r){const h=t.getSessionToken();h&&t.safe(l)(r,h)}}function a(l){if(n.capturePayload||(delete l.request.body,delete l.response.body),n.sanitizer){const h=l.response.body;if(typeof h=="string")try{l.response.body=JSON.parse(h)}catch{}return n.sanitizer(l)}return l}function c(l){if(l&&typeof l.body!="string")try{l.body=JSON.stringify(l.body)}catch{l.body="<unable to stringify>",t.notify.warn("Openreplay fetch couldn't stringify body:",l.body)}return JSON.stringify(l)}const u=l=>{if(n.useProxy)return Qd(l,n.ignoreHeaders,o,a,I=>{t.send(js(I.requestType,I.method,I.url,I.request,I.response,I.status,I.startTime+Mn(),I.duration,I.responseSize))},I=>t.isServiceURL(I),{xhr:!0,fetch:!0,beacon:!0},n.tokenUrlMatcher);const h=l.fetch.bind(l),d=(I,g={})=>{if(!(typeof I=="string"||I instanceof URL)||t.isServiceURL(String(I)))return h(I,g);o(function(k,S){g.headers===void 0&&(g.headers={}),g.headers instanceof Headers?g.headers.append(k,S):Array.isArray(g.headers)?g.headers.push([k,S]):g.headers[k]=S});const y=performance.now();return h(I,g).then(k=>{const S=performance.now()-y;if(n.failuresOnly&&k.status<400)return k;const _=k.clone();return _.text().then(w=>{const A={},L={};if(s!==!0){const F=([W,K])=>{i(W)||(A[W]=K)};g.headers instanceof Headers?g.headers.forEach((W,K)=>F([K,W])):Array.isArray(g.headers)?g.headers.forEach(F):typeof g.headers=="object"&&Object.entries(g.headers).forEach(F),_.headers.forEach((W,K)=>{i(K)||(L[K]=W)})}const B=nl(g.method),U=a({url:String(I),method:B,status:_.status,request:{headers:A,body:g.body||null},response:{headers:L,body:w}});U&&t.send(js("fetch",B,String(U.url),c(U.request),c(U.response),_.status,y+Mn(),S,0))}).catch(w=>t.debug.error("Could not process Fetch response:",w)),k})};l.fetch=d;const f=l.XMLHttpRequest.prototype.open,p=l.XMLHttpRequest.prototype.setRequestHeader,v=l.XMLHttpRequest.prototype.send;function E(I,g){const y=this;o((S,_)=>y.setRequestHeader(S,_));let k=0;return y.addEventListener("loadstart",S=>{k=S.timeStamp}),y.addEventListener("load",t.safe(S=>{const{headers:_,body:w}=_r(y),A=k>0?S.timeStamp-k:0,B=(y.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),U={};B.forEach(function(K){const Z=K.split(": "),D=Z.shift();i(D)||(U[D]=Z.join(": "))});const F=nl(I),W=a({url:String(g),method:F,status:y.status,request:{headers:_,body:w||null},response:{headers:U,body:y.response}});W&&t.send(js("xhr",F,String(W.url),c(W.request),c(W.response),y.status,k+Mn(),A,0))})),f.apply(this,arguments)}function T(I){const g=_r(this);return g.body=I,v.apply(this,arguments)}function x(I,g){if(!i(I)){const y=_r(this);y.headers[I]=g}return p.apply(this,arguments)}n.axiosInstances||(l.XMLHttpRequest.prototype.open=E,l.XMLHttpRequest.prototype.send=T,l.XMLHttpRequest.prototype.setRequestHeader=x)};u(window),n.axiosInstances&&n.axiosInstances.forEach(l=>{Fd(t,l,n,a,c)}),n.captureInIframes&&t.observer.attachContextCallback(t.safe(u))}function $d(t){t.attachEventListener(document,"selectionchange",()=>{const e=document.getSelection();if(e!==null&&!e.isCollapsed){const n=t.nodes.getID(e.anchorNode),s=t.nodes.getID(e.focusNode),i=e.toString().replace(/\s+/g," ");n&&s&&t.send(ma(n,s,i))}else t.send(ma(-1,-1,""))})}function ef(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(Us(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const ni="/installation/javascript-sdk";function tf(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${zs}${ni}`),!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 ${zs}${ni} for more information.`),!1;t.projectKey=t.projectID.toString(),qt("`projectID` option","`projectKey` option",ni)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&qt("`sessionToken` option","`sessionHash` start() option","/"),!0}const nf=()=>{try{return!!window.top}catch{return!1}};class sf{constructor(e){var a,c;if(this.options=e,this.app=null,this.crossdomainMode=!1,this.checkDoNotTrack=()=>this.options.respectDoNotTrack&&(navigator.doNotTrack=="1"||window.doNotTrack=="1"),this.signalStartIssue=(u,l)=>{const h=this.checkDoNotTrack(),d=new XMLHttpRequest,f=this.options.ingestPoint||Oa;d.open("POST",f+"/v1/web/not-started"),d.send(JSON.stringify({trackerVersion:"14.0.14",projectKey:this.options.projectKey,doNotTrack:h,reason:l.length?`missing api: ${l.join(",")}`:u}))},this.restartCanvasTracking=()=>{this.app!==null&&this.app.restartCanvasTracking()},this.handleError=(u,l={})=>{if(this.app!==null){if(u instanceof Error){const h=Ys(u,[],l);this.app.send(h)}else if(u instanceof ErrorEvent||"PromiseRejectionEvent"in window&&u instanceof PromiseRejectionEvent){const h=za(u,void 0,l);h!=null&&this.app.send(h)}}},this.crossdomainMode=!!(ia()&&((a=e.crossdomain)!=null&&a.enabled)),!dt||!tf(e)){console.error("OpenReplay: tracker called in a non-browser environment or with invalid options");return}if(window.__OPENREPLAY__||!this.crossdomainMode&&ia()&&nf()&&((c=window.top)!=null&&c.__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 n=this.checkDoNotTrack(),s=[],i=["Map","Set","MutationObserver","performance","timing","startsWith","Blob","Worker"];if(n)s.push("doNotTrack");else for(const u of i)if(u==="timing"){if("performance"in window&&!(u in performance)){s.push(u);break}}else if(u==="startsWith"){if(!(u in String.prototype)){s.push(u);break}}else if(!(u in window)){s.push(u);break}if(s.length>0){const u=s.join(",");console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${u}`),this.signalStartIssue("missing_api",s);return}const r=new Uh(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(Ad(r),Hh(r),Qu(r,e),ef(r)),Id(r,e.mouse),Dd(r,this.crossdomainMode),Pd(r),Od(r),Kh(r,e),ad(r,e),ud(r),gd(r,e),Rd(r,e),Ld(r),Bd(r),Zd(r,e.network),$d(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 u=r.getTabId(),l=r.sessionStorage??window.sessionStorage;window.open=function(...h){return e.autoResetOnWindowOpen&&r.resetNextPageSession(!0),e.resetTabOnWindowOpen&&l.removeItem(e.session_tabid_key||"__openreplay_tabid"),r.resetNextPageSession(!1),l.setItem(e.session_tabid_key||"__openreplay_tabid",u),o.call(window,...h)}}),r.attachStopCallback(()=>{window.open=o}))}isFlagEnabled(e){return this.featureFlags.isFlagEnabled(e)}onFlagsLoad(e){var n;(n=this.app)==null||n.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 n;return(n=this.app)==null?void 0:n.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 dt?!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 ${zs}${ni}`),!1)}coldStart(e,n){if(this.browserEnvCheck()){if(this.app===null)return Promise.reject("Tracker not initialized");this.app.coldStart(e,n)}else return Promise.reject("Trying to start not in browser.")}startOfflineRecording(e,n){return this.browserEnvCheck()?this.app===null?Promise.reject("Tracker not initialized"):this.app.offlineRecording(e,n):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 qt("'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){qt("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send(Lu(e))}userAnonymousID(e){qt("'userAnonymousID' method","'setUserAnonymousID' method","/"),this.setUserAnonymousID(e)}setMetadata(e,n){typeof e=="string"&&typeof n=="string"&&this.app!==null&&this.app.session.setMetadata(e,n)}metadata(e,n){qt("'metadata' method","'setMetadata' method","/"),this.setMetadata(e,n)}event(e,n=null,s=!1){if(typeof e=="string"&&this.app!==null){if(s)return this.issue(e,n);try{n=JSON.stringify(n)}catch{return}this.app.send(Ou(e,n))}}issue(e,n=null){if(typeof e=="string"&&this.app!==null){try{n=JSON.stringify(n)}catch{return}this.app.send(Uu(e,n))}}}function rf(t){return{id:String(t.ID),appellation:t.Appellation||null,country:t.Country||null,grape:t.Grape,image:t.Image,price:Number(t.Price),producer:t.Producer||null,region:t.Region,score:t.Score?Number(t.Score):null,shortDescription:t["Short Description"]||null,store:t.Store,storeId:t.Store_id||null,tags:Array.isArray(t.Tags)?t.Tags.map(String):[],title:t.Title,type:t.Type,url:t.Url||null,vintage:t.Vintage?Number(t.Vintage):null,pairingRecommendation:t.pairing_recommendation||null,total:t.Total?Number(t.Total):null,itemId:t.item_id||null,isPromote:t.is_promote?!!t.is_promote:null,stock:t.stock?Number(t.stock):null,byTheGlass:!!t.by_the_glass,glassPrice:t.glass_price!=null?Number(t.glass_price):null}}function Sr(t){return{id:String(t.id),title:String(t.title),description:String(t.description),region:String(t.region),price:Number(t.price),grape:String(t.grape),appellation:t.appellation?String(t.appellation):null,url:t.url?String(t.url):null,store:String(t.store),storeId:t.storeId?String(t.storeId):null,image:String(t.image),country:t.country?String(t.country):null,vintage:t.vintage?Number(t.vintage):null,tags:Array.isArray(t.tags)?t.tags.map(String):[],score:t.score?Number(t.score):null,total:t.total?Number(t.total):null,isPromote:t.is_promote?!!t.is_promote:null,stock:t.stock?Number(t.stock):null,distance:Number(t.distance),reason:String(t.reason),type:String(t.type),byTheGlass:!!t.by_the_glass,glassPrice:t.glass_price!=null?Number(t.glass_price):null}}function of(t){return{recommendations:(t.recommendations||[]).filter(Boolean).map(Sr),hasMore:!!t.has_more}}class af{constructor(e,n="1"){Y(this,Xt,"https://api.wineater.com/");Y(this,At);Y(this,Un);z(this,At,e),z(this,Un,n)}async getInstantRecommendations(){try{const e=b(this,Un)==="2"?"dish/recommendations/instant/v2":"dish/recommendations/instant",n=await fetch(`${b(this,Xt)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,At)}`}}),s=await n.json();if(!n.ok)throw new Error(`API call failed with status ${n.status}: ${s.message||"No additional error information"}`);return s.filter(Boolean).map(rf)}catch(e){throw new Error(`Error in getInstantRecommendations: ${e.message}`)}}async getWineRecommendationsSearch(e){try{const n=b(this,Un)==="2"?"dish/recommendations/search/v2":"dish/recommendations/search",s=await fetch(`${b(this,Xt)}${n}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,At)}`},body:JSON.stringify({text:e})}),i=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${i.message||"No additional error information"}`);return i.filter(Boolean).map(Sr)}catch(n){throw new Error(`Error in getWineRecommendations: ${n.message}`)}}async getMoreWineRecommendations(e,n){try{const s=await fetch(`${b(this,Xt)}dish/recommendations/search/v2/more`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,At)}`},body:JSON.stringify({text:e,exclude_ids:n})}),i=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${i.message||"No additional error information"}`);return of(i)}catch(s){throw new Error(`Error in getMoreWineRecommendations: ${s.message}`)}}async getSimilarWines(e){try{const n=await fetch(`${b(this,Xt)}dish/recommendations/similar`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,At)}`},body:JSON.stringify({id:e})}),s=await n.json();if(!n.ok)throw new Error(`API call failed with status ${n.status}: ${s.message||"No additional error information"}`);return s.filter(Boolean).map(Sr)}catch(n){throw new Error(`Error in getSimilarWines: ${n.message}`)}}async getStoreConfig(){try{const e=await fetch(`${b(this,Xt)}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,At)}`}});if(!e.ok)throw new Error(`HTTP error! Status: ${e.status}`);return await e.json()}catch(e){throw console.error("Error fetching store configuration:",e),e}}}Xt=new WeakMap,At=new WeakMap,Un=new WeakMap;const lf=((cl=window==null?void 0:window.wineaterData)==null?void 0:cl.CLIENT_TOKEN)||"HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG",sl=String(((ul=window==null?void 0:window.wineaterData)==null?void 0:ul.apiVersion)||"1"),os=new af(lf,sl),Ve={WIDGET_INITIALIZED:"widget_initialized",WIDGET_LOADED:"widget_loaded",SEARCH_PERFORMED:"search_performed",SEARCH_RESULTS_DISPLAYED:"search_results_displayed",NO_RESULTS_FOUND:"no_results_found",WINE_CARD_HOVER:"wine_card_hover",WINE_CARD_CLICK:"wine_card_click",WINE_DETAILS_VIEWED:"wine_details_viewed",WINE_DETAILS_CLOSED:"wine_details_closed",BUY_BUTTON_CLICKED:"buy_button_clicked",SHOW_MORE_CLICKED:"show_more_clicked",SIMILAR_WINES_CLICKED:"similar_wines_clicked",FILTER_APPLIED:"filter_applied",LANGUAGE_CHANGED:"language_changed",ERROR_OCCURRED:"error_occurred",MOBILE_VIEW_ACTIVATED:"mobile_view_activated"},cf={fr:{lang:"fr",welcomeMessage:"Quel plat allez-vous déguster ? Décrivez-le-moi et je vous proposerai le vin qui l'accompagnera parfaitement.",noResultsFound:"Aucun résultat trouvé.",somethingWentWrong:"Désolé, quelque chose a mal tourné.",chatButton1:"Trouvez l'accord parfait",chatButton2:"Associez le vin",chatButton3:"Obtenez des conseils",chatTitle:"Accord Mets & Vins 🍷",chatSubtitle:"Décrivez votre plat et obtenez une recommandation en 30 secondes",inputPlaceholder:"ex., Salade de thon",sendButton:"Accorder",poweredBy:"Propulsé par",price:"Prix",region:"Région",type:"Type",reason:"Suggestion",moreInfo:"Plus d'infos",tryAgain:"Réessayer",similarWines:"Vins similaires",byTheGlass:"Au verre",winePairingIntro:"Pour ce vin, voici quelques suggestions de plats :",askForDinner:"Que voulez-vous manger ce soir?",clearChatButton:"Effacer le chat",widgetTitle:"TROUVEZ VOTRE VIN PARFAIT",widgetSubtitle:"Partagez tout ce que vous avez en tête—votre repas, humeur, budget ou occasion—et notre sommelier IA vous recommandera le vin parfait en quelques secondes",searchPlaceholder:"Entrez un mot-clé ou une description","wineDetails.reason":"Raison","wineDetails.price":"Prix","wineDetails.region":"Région","wineDetails.type":"Type","wineDetails.moreInfo":"Plus d'infos","wineDetails.code":"Code","wineDetails.buy":"Acheter",searchButton:"Rechercher",priceRange:"Gamme de prix",wineColor:"Couleur du vin",intensity:"Intensité",red:"Rouge",white:"Blanc",rose:"Rosé",light:"Léger",medium:"Moyen",full:"Puissant",barTitle:"Sélection du bar",barSubtitle:"Choisissez vos plats ci-dessous et cliquez sur «Envoyer»",barSendButton:"Envoyer",barResetButton:"Réinitialiser",barName:"Nom du bar",barNotesPlaceholder:"Entrez vos souhaits ici...",placeholderSuggestions:["Vin pour les pâtes","Parfait avec du poisson","Recommandé pour une soirée"],headerLine1:"Partagez tout ce qui vous passe par la tête —",headerLine2:"— et obtenez des recommandations de vin parfait en quelques secondes",headerMeal:"repas",headerMood:"humeur",headerBudget:"budget",headerOccasion:"occasion",headerOr:"ou",errorMessage:"Une erreur est survenue. Veuillez réessayer plus tard.",noResultsMessage:"Aucun résultat trouvé pour votre recherche. Veuillez essayer une autre requête.",ai_sommelier:"AI sommelier"},es:{lang:"es",welcomeMessage:"¿Qué vas a comer? Cuéntame tu plato y te recomendaré el maridaje perfecto.",noResultsFound:"No se encontraron resultados.",somethingWentWrong:"Lo sentimos, algo salió mal.",chatButton1:"Encuentra tu maridaje",chatButton2:"Combina vino ya",chatButton3:"Recibe asesoría ahora",chatTitle:"Maridaje de Vinos 🍷",chatSubtitle:"Describe tu comida y obtén una recomendación en 30 segundos",inputPlaceholder:"ej., Ensalada de atún",sendButton:"Combinar",poweredBy:"Desarrollado por",price:"Precio",region:"Región",type:"Tipo",reason:"Sugerencia",moreInfo:"Más info",tryAgain:"Probar otra vez",similarWines:"Vinos similares",byTheGlass:"Por copa",winePairingIntro:"Para este vino, aquí tienes algunas sugerencias de platos:",askForDinner:"¿Qué te gustaría cenar?",clearChatButton:"Limpiar el chat",widgetTitle:"ENCUENTRA TU VINO PERFECTO",widgetSubtitle:"Comparte cualquier cosa que tengas en mente—tu comida, estado de ánimo, presupuesto o evento—y nuestro sommelier de IA te recomendará el vino perfecto en segundos",searchPlaceholder:"Escribe una palabra clave o descripción","wineDetails.reason":"Razón","wineDetails.price":"Precio","wineDetails.region":"Región","wineDetails.type":"Tipo","wineDetails.code":"Código","wineDetails.moreInfo":"Más información","wineDetails.buy":"Comprar",searchButton:"Buscar",priceRange:"Rango de precios",wineColor:"Color del vino",intensity:"Intensidad",red:"Tinto",white:"Blanco",rose:"Rosado",light:"Ligero",medium:"Medio",full:"Intenso",barTitle:"Platos de Bar",barSubtitle:"Selecciona de la lista y presiona «Enviar»",barSendButton:"Enviar",barResetButton:"Reiniciar",barName:"Nombre del bar",barNotesPlaceholder:"Agrega tus comentarios aquí...",placeholderSuggestions:["Vino para pasta","Perfecto con pescado","Recomendado para una fiesta"],headerLine1:"Comparte cualquier cosa que tengas en mente —",headerLine2:"— y obtén recomendaciones del vino perfecto en cuestión de segundos",headerMeal:"comida",headerMood:"estado de ánimo",headerBudget:"presupuesto",headerOccasion:"ocasión",headerOr:"o",errorMessage:"Algo salió mal. Por favor, inténtalo de nuevo más tarde.",noResultsMessage:"No se encontraron resultados para tu búsqueda. Por favor, intenta con otra consulta.",ai_sommelier:"AI sommelier"},en:{lang:"en",welcomeMessage:"What are you planning to eat? Share your dish and I'll recommend the perfect wine pairing for your meal.",noResultsFound:"No results found.",somethingWentWrong:"Sorry, something went wrong.",chatButton1:"Find Your Pairing",chatButton2:"Pair Wine Now",chatButton3:"Get Wine Advice",chatTitle:"Wine Pairing Assistant 🍷",chatSubtitle:"Describe your meal and get a recommendation in 30 seconds",inputPlaceholder:"e.g., Tuna salad",sendButton:"Match",poweredBy:"Powered by",price:"Price",region:"Region",type:"Type",reason:"Suggestion",moreInfo:"More info",tryAgain:"Try again",similarWines:"Similar wines",byTheGlass:"By the glass",winePairingIntro:"For this wine, here are some suggested dishes:",askForDinner:"What would you like to have for dinner?",clearChatButton:"Clear Chat",widgetTitle:"FIND YOUR PERFECT WINE",widgetSubtitle:"Share anything on your mind—your meal, mood, budget, or occasion—and our AI sommelier will recommend the perfect wine in seconds",searchPlaceholder:"Enter a keyword or description","wineDetails.price":"Price","wineDetails.region":"Region","wineDetails.type":"Type","wineDetails.moreInfo":"More info","wineDetails.reason":"Reason","wineDetails.code":"Code","wineDetails.buy":"Buy",searchButton:"Search",priceRange:"Price Range",wineColor:"Wine Color",intensity:"Intensity",red:"Red",white:"White",rose:"Rosé",light:"Light",medium:"Medium",full:"Full",barTitle:"Bar Dishes",barSubtitle:"Select dishes below and click 'Send'",barSendButton:"Send",barResetButton:"Reset",barName:"Bar Name",barNotesPlaceholder:"Add your wishes here...",placeholderSuggestions:["Wine for pasta","Perfect with fish","Recommended for a party"],headerLine1:"Share anything on your mind —",headerLine2:"— and get recommendations of the perfect wine in seconds",headerMeal:"meal",headerMood:"mood",headerBudget:"budget",headerOccasion:"occasion",headerOr:"or",errorMessage:"Something went wrong. Please try again later.",noResultsMessage:"No results found for your search. Please try a different query.",ai_sommelier:"AI sommelier"},sr:{lang:"sr",welcomeMessage:"Šta planirate da jedete? Podelite svoje jelo i preporučiću vam savršeno vino uz obrok.",noResultsFound:"Nema rezultata.",somethingWentWrong:"Izvinite, nešto je pošlo po zlu.",chatButton1:"Pronađi vino",chatButton2:"Upari vino sada",chatButton3:"Zatraži preporuku",chatTitle:"Asistent za uparivanje vina 🍷",chatSubtitle:"Opišite svoj obrok i dobijte preporuku za 30 sekundi",inputPlaceholder:"npr. Tuna salata",sendButton:"Upari",poweredBy:"Pokreće",price:"Cena",region:"Regija",type:"Tip",reason:"Preporuka",moreInfo:"Više informacija",tryAgain:"Pokušaj ponovo",similarWines:"Slična vina",byTheGlass:"Na čašu",winePairingIntro:"Za ovo vino, preporučuju se sledeća jela:",askForDinner:"Šta biste želeli za večeru?",clearChatButton:"Obriši razgovor",widgetTitle:"PRONAĐITE SAVRŠENO VINO",widgetSubtitle:"Podelite bilo šta — obrok, raspoloženje, budžet ili priliku — i naš AI somelijer će vam za par sekundi preporučiti vino",searchPlaceholder:"Unesite ključnu reč ili opis","wineDetails.price":"Cena","wineDetails.region":"Regija","wineDetails.type":"Tip","wineDetails.moreInfo":"Više informacija","wineDetails.reason":"Razlog","wineDetails.code":"Šifra","wineDetails.buy":"Kupi",searchButton:"Pretraga",priceRange:"Cenovni raspon",wineColor:"Boja vina",intensity:"Intenzitet",red:"Crveno",white:"Belo",rose:"Roze",light:"Lako",medium:"Srednje",full:"Puno",barTitle:"Jela iz bara",barSubtitle:"Izaberite jela ispod i kliknite 'Pošalji'",barSendButton:"Pošalji",barResetButton:"Resetuj",barName:"Naziv bara",barNotesPlaceholder:"Dodajte svoje želje ovde...",placeholderSuggestions:["Vino uz pastu","Savršeno uz ribu","Preporuka za žurku"],headerLine1:"Podelite bilo šta što vam je na umu —",headerLine2:"— i dobijte preporuke za savršeno vino za par sekundi",headerMeal:"obrok",headerMood:"raspoloženje",headerBudget:"budžet",headerOccasion:"prilika",headerOr:"ili",errorMessage:"Nešto je pošlo po zlu. Molimo pokušajte ponovo kasnije.",noResultsMessage:"Nema rezultata za vašu pretragu. Molimo pokušajte sa drugačijim upitom.",ai_sommelier:"AI sommelier"},de:{lang:"de",welcomeMessage:"Was möchten Sie essen? Beschreiben Sie Ihr Gericht und ich empfehle Ihnen den perfekten Wein dazu.",noResultsFound:"Keine Ergebnisse gefunden.",somethingWentWrong:"Entschuldigung, etwas ist schief gelaufen.",chatButton1:"Finde Dein Pairing",chatButton2:"Wein jetzt wählen",chatButton3:"Erhalte Weinberatung",chatTitle:"Wein & Speisen 🍷",chatSubtitle:"Beschreiben Sie Ihr Gericht und erhalten Sie in 30 Sekunden eine Empfehlung",inputPlaceholder:"z.B., Thunfischsalat",sendButton:"Kombinieren",poweredBy:"Unterstützt von",price:"Preis",region:"Region",type:"Typ",reason:"Anregung",moreInfo:"Mehr Info",tryAgain:"Nochmal versuchen",similarWines:"Ähnliche Weine",byTheGlass:"Glasweise",winePairingIntro:"Für diesen Wein gibt es folgende Essensvorschläge:",askForDinner:"Was möchten Sie zum Abendessen essen?",clearChatButton:"Chat löschen",widgetTitle:"FINDEN SIE IHREN PERFEKTEN WEIN",widgetSubtitle:"Teilen Sie alles, was Ihnen in den Sinn kommt—Ihre Mahlzeit, Stimmung, Ihr Budget oder Anlass—und unser KI-Sommelier empfiehlt Ihnen in Sekunden den perfekten Wein",placeholderSuggestions:["Wein für Pasta","Perfekt zu Fisch","Empfohlen für eine Party"],searchPlaceholder:"Geben Sie ein Stichwort oder eine Beschreibung ein","wineDetails.price":"Preis","wineDetails.region":"Region","wineDetails.type":"Typ","wineDetails.moreInfo":"Mehr Info","wineDetails.reason":"Grund","wineDetails.code":"Code","wineDetails.buy":"Kaufen",searchButton:"Suche",priceRange:"Preisspanne",wineColor:"Weinfarbe",intensity:"Intensität",red:"Rot",white:"Weiß",rose:"Rosé",light:"Leicht",medium:"Mittel",full:"Voll",barTitle:"Bar-Auswahl",barSubtitle:"Wählen Sie Ihre Gerichte und klicken Sie auf 'Senden'",barSendButton:"Senden",barResetButton:"Zurücksetzen",barName:"Name der Bar",headerLine1:"Teilen Sie alles, was Ihnen durch den Kopf geht —",headerLine2:"— und erhalten Sie in Sekundenschnelle Empfehlungen für den perfekten Wein",headerMeal:"Mahlzeit",headerMood:"Stimmung",headerBudget:"Budget",headerOccasion:"Anlass",headerOr:"oder",errorMessage:"Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.",noResultsMessage:"Keine Ergebnisse für Ihre Suche gefunden. Bitte versuchen Sie es mit einer anderen Anfrage.",ai_sommelier:"AI sommelier"},ukr:{lang:"ukr",welcomeMessage:"Що ви збираєтесь їсти? Опишіть свою страву, і я порекомендую вам ідеальне вино.",noResultsFound:"Результатів не знайдено.",somethingWentWrong:"Вибачте, щось пішло не так.",chatButton1:"Знайти ідеальне поєднання",chatButton2:"Підібрати вино",chatButton3:"Отримати пораду",chatTitle:"Сомельє-помічник 🍷",chatSubtitle:"Опишіть свою страву і отримайте рекомендацію за 30 секунд",inputPlaceholder:"наприклад, Тунець із салатом",sendButton:"Підібрати",poweredBy:"Розроблено на основі",price:"Ціна",region:"Регіон",type:"Тип",reason:"Рекомендація",moreInfo:"Докладніше",tryAgain:"Спробувати ще",similarWines:"Схожі вина",byTheGlass:"На келих",winePairingIntro:"До цього вина підходять такі страви:",askForDinner:"Що ви хочете на вечерю?",clearChatButton:"Очистити чат",widgetTitle:"ЗНАЙДІТЬ ІДЕАЛЬНЕ ВИНО",widgetSubtitle:"Поділіться тим, що у вас на думці—їжа, настрій, бюджет чи подія—і наш AI-сомельє порекомендує вам ідеальне вино за секунди",searchPlaceholder:"Введіть ключове слово або опис","wineDetails.reason":"Причина","wineDetails.price":"Ціна","wineDetails.region":"Регіон","wineDetails.type":"Тип","wineDetails.moreInfo":"Докладніше","wineDetails.code":"Код","wineDetails.buy":"Купити",searchButton:"Пошук",priceRange:"Діапазон цін",wineColor:"Колір вина",intensity:"Інтенсивність",red:"Червоне",white:"Біле",rose:"Рожеве",light:"Легке",medium:"Середнє",full:"Повне",barTitle:"Закуски до вина",barSubtitle:"Виберіть страви нижче та натисніть «Надіслати»",barSendButton:"Надіслати",barResetButton:"Скинути",barName:"Назва бару",barNotesPlaceholder:"Додайте ваші побажання тут...",placeholderSuggestions:["Вино до пасти","Ідеально до риби","Рекомендуємо для вечірки"],headerLine1:"Поділіться будь-якими вашими думками —",headerLine2:"— і отримайте рекомендації щодо ідеального вина за секунди",headerMeal:"страва",headerMood:"настрій",headerBudget:"бюджет",headerOccasion:"подія",headerOr:"або",errorMessage:"Щось пішло не так. Будь ласка, спробуйте пізніше.",noResultsMessage:"За вашим запитом не знайдено результатів. Спробуйте інший запит.",ai_sommelier:"AI sommelier"},ru:{lang:"ru",welcomeMessage:"Что вы планируете поесть? Напишите ваше блюдо, и я подберу идеальное вино к нему.",noResultsFound:"Результаты не найдены.",somethingWentWrong:"Извините, что-то пошло не так.",chatButton1:"Найти сочетание",chatButton2:"Подобрать вино",chatButton3:"Получить совет",chatTitle:"Ассистент по подбору вина 🍷",chatSubtitle:"Опишите ваше блюдо и получите рекомендацию за 30 секунд",inputPlaceholder:"например, Тунец с салатом",sendButton:"Подобрать",poweredBy:"Powered by",price:"Цена",region:"Регион",type:"Тип",reason:"Рекомендация",moreInfo:"Подробнее",tryAgain:"Попробовать ещё",similarWines:"Похожие вина",byTheGlass:"По бокалам",winePairingIntro:"К этому вину подходят следующие блюда:",askForDinner:"Что бы вы хотели на ужин?",clearChatButton:"Очистить чат",widgetTitle:"НАЙДИТЬ ИДЕАЛЬНОЕ ВИНО",widgetSubtitle:"Поделитесь вашими предпочтениями — блюдом, настроением, бюджетом или случаем — и наш AI-сомелье подберёт идеальное вино за секунды",searchPlaceholder:"Введите ключевое слово или описание","wineDetails.price":"Цена","wineDetails.region":"Регион","wineDetails.type":"Тип","wineDetails.moreInfo":"Подробнее","wineDetails.reason":"Причина","wineDetails.code":"Код","wineDetails.buy":"Купить",searchButton:"Поиск",priceRange:"Диапазон цен",wineColor:"Цвет вина",intensity:"Интенсивность",red:"Красное",white:"Белое",rose:"Розовое",light:"Лёгкое",medium:"Среднее",full:"Полное",barTitle:"Закуски к вину",barSubtitle:"Выберите блюда ниже и нажмите 'Отправить'",barSendButton:"Отправить",barResetButton:"Сбросить",barName:"Название бара",barNotesPlaceholder:"Добавьте ваши пожелания здесь...",placeholderSuggestions:["Вино для пасты","Идеально к рыбе","Рекомендуем для вечеринки"],headerLine1:"Поделитесь любыми вашими мыслями —",headerLine2:"— и получите рекомендации по идеальному вину за считанные секунды",headerMeal:"блюдо",headerMood:"настроение",headerBudget:"бюджет",headerOccasion:"случай",headerOr:"или",errorMessage:"Что-то пошло не так. Пожалуйста, попробуйте позже.",noResultsMessage:"По вашему запросу не найдено результатов. Попробуйте другой запрос.",ai_sommelier:"AI sommelier"},kk:{lang:"kk",welcomeMessage:"Сіз не жегіңіз келеді? Тағамыңызды сипаттаңыз, мен оған керемет шарап ұсынамын.",noResultsFound:"Нәтижелер табылмады.",somethingWentWrong:"Кешіріңіз, бірдеңе дұрыс болмады.",chatButton1:"Сәйкестік табу",chatButton2:"Шарап таңдау",chatButton3:"Кеңес алу",chatTitle:"Шарап таңдаушы көмекші 🍷",chatSubtitle:"Тағамыңызды сипаттаңыз — 30 секундта ұсыныс алыңыз",inputPlaceholder:"мысалы, тунец салатымен",sendButton:"Таңдау",poweredBy:"Powered by",price:"Бағасы",region:"Өңір",type:"Түрі",reason:"Ұсыныс",moreInfo:"Толығырақ",tryAgain:"Қайта көру",similarWines:"Ұқсас шараптар",byTheGlass:"Бокалмен",winePairingIntro:"Бұл шарапқа келесі тағамдар сәйкес келеді:",askForDinner:"Кешкі асқа не қалайсыз?",clearChatButton:"Чатты тазалау",widgetTitle:"КЕРЕМЕТ ШАРАПТЫ ТАБЫҢЫЗ",widgetSubtitle:"Таңдауларыңызды бөлісіңіз — тағам, көңіл-күй, бюджет немесе жағдай — және біздің AI-сомелье сізге бірнеше секундта шарап ұсынады",searchPlaceholder:"Кілт сөзді немесе сипаттаманы енгізіңіз","wineDetails.price":"Бағасы","wineDetails.region":"Өңір","wineDetails.type":"Түрі","wineDetails.moreInfo":"Толығырақ","wineDetails.reason":"Себебі","wineDetails.code":"Код","wineDetails.buy":"Сатып алу",searchButton:"Іздеу",priceRange:"Баға диапазоны",wineColor:"Шарап түсі",intensity:"Қанықтылық",red:"Қызыл",white:"Ақ",rose:"Розалық",light:"Жеңіл",medium:"Орташа",full:"Толық",barTitle:"Шарапқа арналған тіскебасарлар",barSubtitle:"Төмендегі тағамдарды таңдаңыз және 'Жіберу' батырмасын басыңыз",barSendButton:"Жіберу",barResetButton:"Қалпына келтіру",barName:"Бар атауы",barNotesPlaceholder:"Мұнда өз тілектеріңізді жазыңыз...",placeholderSuggestions:["Пастаға арналған шарап","Балыққа тамаша үйлеседі","Кешке ұсынуға болады"],headerLine1:"Ойларыңызбен бөлісіңіз —",headerLine2:"— және бірнеше секундта мінсіз шарап ұсынысын алыңыз",headerMeal:"тағам",headerMood:"көңіл-күй",headerBudget:"бюджет",headerOccasion:"жағдай",headerOr:"немесе",errorMessage:"Бірдеңе дұрыс болмады. Кейінірек қайта көріңіз.",noResultsMessage:"Іздеуіңізге сәйкес нәтиже табылмады. Басқа сұрау қолданып көріңіз.",ai_sommelier:"AI sommelier"},pt:{lang:"pt",welcomeMessage:"O que você planeja comer? Descreva seu prato e eu recomendarei a harmonização perfeita.",noResultsFound:"Nenhum resultado encontrado.",somethingWentWrong:"Desculpe, algo deu errado.",chatButton1:"Encontre sua harmonização",chatButton2:"Harmonizar vinho agora",chatButton3:"Receber conselho de vinho",chatTitle:"Assistente de Harmonização de Vinhos 🍷",chatSubtitle:"Descreva sua refeição e receba uma recomendação em 30 segundos",inputPlaceholder:"ex., Salada de atum",sendButton:"Harmonizar",poweredBy:"Desenvolvido por",price:"Preço",region:"Região",type:"Tipo",reason:"Sugestão",moreInfo:"Mais informações",tryAgain:"Tentar de novo",similarWines:"Vinhos semelhantes",byTheGlass:"Por taça",winePairingIntro:"Para este vinho, aqui estão algumas sugestões de pratos:",askForDinner:"O que você gostaria de jantar?",clearChatButton:"Limpar chat",widgetTitle:"ENCONTRE SEU VINHO PERFEITO",widgetSubtitle:"Compartilhe o que tiver em mente — sua refeição, humor, orçamento ou ocasião — e nosso sommelier de IA recomendará o vinho perfeito em segundos",searchPlaceholder:"Digite uma palavra-chave ou descrição","wineDetails.reason":"Motivo","wineDetails.price":"Preço","wineDetails.region":"Região","wineDetails.type":"Tipo","wineDetails.moreInfo":"Mais informações","wineDetails.code":"Código","wineDetails.buy":"Comprar",searchButton:"Pesquisar",priceRange:"Faixa de preço",wineColor:"Cor do vinho",intensity:"Intensidade",red:"Tinto",white:"Branco",rose:"Rosé",light:"Leve",medium:"Médio",full:"Encorpado",barTitle:"Pratos do bar",barSubtitle:"Selecione os pratos abaixo e clique em 'Enviar'",barSendButton:"Enviar",barResetButton:"Resetar",barName:"Nome do bar",barNotesPlaceholder:"Adicione seus desejos aqui...",placeholderSuggestions:["Vinho para massa","Perfeito com peixe","Recomendado para uma festa"],headerLine1:"Compartilhe o que tiver em mente —",headerLine2:"— e receba recomendações do vinho perfeito em segundos",headerMeal:"refeição",headerMood:"humor",headerBudget:"orçamento",headerOccasion:"ocasião",headerOr:"ou",errorMessage:"Algo deu errado. Por favor, tente novamente mais tarde.",noResultsMessage:"Nenhum resultado encontrado para sua pesquisa. Por favor, tente uma consulta diferente.",ai_sommelier:"AI sommelier"}};function uf(t){return{id:String(t.id),lang:t.lang,available_languages:t.available_languages?t.available_languages:[t.lang],open_ai_key:t.open_ai_key??null,currency:t.currency,title:t.title}}const hf={0:{logoUrl:null,brandColor:"#7B2BEB"},29:{logoUrl:"https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media/plou_logo.jpg",brandColor:"#e6c6bb"},25:{logoUrl:null,brandColor:"#000000",wineaterColor:"#000000",buttonUppercase:!0,customCss:`
|
|
15
|
+
`).length?bd(t):t.stack?Sd(t):yd(t)}function bd(t,e){const n=/Line (\d+).*script (?:in )?(\S+)/i,s=t.message.split(`
|
|
16
|
+
`),i=[];for(let r=2,o=s.length;r<o;r+=2){const a=n.exec(s[r]);a&&i.push({file:a[2],line:+a[1],raw:s[r]})}return ds(i)}function yd(t,e){const n=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,s=t.stacktrace.split(`
|
|
17
|
+
`),i=[];for(let r=0,o=s.length;r<o;r+=2){const a=n.exec(s[r]);a&&i.push({function:a[3]||void 0,file:a[2],line:a[1]?+a[1]:void 0,raw:s[r]})}return ds(i)}function Sd(t,e){return ds(t.stack.split(`
|
|
18
|
+
`).filter(s=>!!s.match(hd)&&!s.match(/^Error created at/))).map(s=>{const i=s.split("@"),r=br(i.pop()),o=i.shift()||"",a=o.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;let c;o.match(/\(([^)]*)\)/)&&(c=o.replace(/^[^(]+\(([^)]*)\)$/,"$1"));const u=c===void 0||c==="[arguments not available]"?void 0:c.split(",");return{function:a,args:u,file:r[0],line:r[1]?+r[1]:void 0,col:r[2]?+r[2]:void 0,raw:s}})}function _d(t){return t.map(e=>({functionName:e.function,args:e.args,fileName:e.file,lineNumber:e.line,columnNumber:e.col,source:e.raw}))}function kd(t,e){return _d(fd(t))}function $a(t){return[{columnNumber:t.colno,lineNumber:t.lineno,fileName:t.filename,functionName:"",source:""}]}function ei(t,e,n={}){let s=e;try{s=kd(t)}catch{}return rr(t.name,t.message,JSON.stringify(s),JSON.stringify(n))}function el(t,e=window,n={}){if(t instanceof ErrorEvent){if(t.error instanceof Error)return ei(t.error,$a(t),n);{let[s,i]=t.message.split(":");return i||(s="Error",i=t.message),rr(s,i,JSON.stringify($a(t)),JSON.stringify(n))}}else if("PromiseRejectionEvent"in e&&t instanceof e.PromiseRejectionEvent){if(t.reason instanceof Error)return ei(t.reason,[],n);{let s;try{s=JSON.stringify(t.reason)}catch{s=String(t.reason)}return rr("Unhandled Promise Rejection",s,"[]",JSON.stringify(n))}}return null}function Td(t,e){const n=Object.assign({captureExceptions:!0},e);function s(i){function r(o){const a=el(o,i);a!=null&&t.send(a)}try{t.attachEventListener(i,"unhandledrejection",r),t.attachEventListener(i,"error",r)}catch(o){console.error("Error while attaching to error proto contexts",o)}}n.captureExceptions&&(t.observer.attachContextCallback(s),s(window))}function tl(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 xd(t){return Nu&&(t.startsWith("data:image/svg+xml")||t.match(/.svg$|/i))}const Ed="https://static.openreplay.com/tracker/placeholder.jpeg";function Id(t){function e(a,c){t.attributeSender.sendSetAttribute(a,"src",Ed);const{width:u,height:l}=c.getBoundingClientRect();c.hasAttribute("width")||t.attributeSender.sendSetAttribute(a,"width",String(u)),c.hasAttribute("height")||t.attributeSender.sendSetAttribute(a,"height",String(l))}const n=function(a,c){const{srcset:u}=c;if(!u)return;const l=u.split(u.match(/,\s+/)?/,\s+/:",").map(h=>tl(h)).join(", ");t.attributeSender.sendSetAttribute(a,"srcset",l)},s=function(a,c){c.src.length>Ru&&e(a,c),t.send(nr(a,"src",c.src,t.getBaseHref()))},i=t.safe(function(a){const c=tl(a.src||"");pa(c)&&t.send(Aa(t.timestamp(),0,0,0,0,0,c,"img",0,!1))}),r=t.safe(function(a){const c=t.nodes.getID(a);c!==void 0&&a.complete&&(a.naturalHeight===0&&a.naturalWidth===0&&!xd(a.src)?i(a):t.sanitizer.isHidden(c)||t.sanitizer.isObscured(c)?e(c,a):(s(c,a),n(c,a)))}),o=ba(t.safe(a=>{for(const c of a)if(c.type==="attributes"){const u=c.target,l=t.nodes.getID(u);if(l===void 0)return;c.attributeName==="src"&&s(l,u),c.attributeName==="srcset"&&n(l,u)}}),t.options.forceNgOff);t.attachStopCallback(()=>{o.disconnect()}),t.nodes.attachNodeCallback(a=>{we(a,"img")&&(t.nodes.attachNodeListener(a,"error",()=>i(a)),t.nodes.attachNodeListener(a,"load",()=>r(a)),r(a),o.observe(a,{attributes:!0,attributeFilter:["src","srcset"]}))})}const Cd=["text","password","email","search","number","range","date","tel","time"];function Nd(t){return we(t,"textarea")?!0:we(t,"input")?Cd.includes(t.type):!1}function Rd(t){if(!we(t,"input"))return!1;const e=t.type;return e==="checkbox"||e==="radio"}const Dd=ft&&"labels"in HTMLInputElement.prototype?t=>{let e=t;for(;(e=e.parentNode)!==null;)if(we(e,"label"))return e;const n=t.labels;if(n!==null&&n.length===1)return n[0]}:t=>{let e=t;for(;(e=e.parentNode)!==null;)if(we(e,"label"))return e;const n=t.id;if(n){const s=t.ownerDocument.querySelectorAll('label[for="'+n+'"]');if(s!==null&&s.length===1)return s[0]}};function nl(t){let e=er(t);if(e===null){const n=Dd(t);e=n&&n.innerText||t.placeholder||t.name||t.id||t.className||t.type}return fa(e).slice(0,100)}const jn={Plain:0,Obscured:1,Hidden:2};function Ad(t,e){const n=Object.assign({obscureInputNumbers:!0,obscureInputEmails:!0,defaultInputMode:jn.Obscured,obscureInputDates:!1},e);function s(l,h){let d=h.value,p=n.defaultInputMode;h.type==="password"||t.sanitizer.isHidden(l)?p=jn.Hidden:(t.sanitizer.isObscured(l)||p===jn.Plain&&(n.obscureInputNumbers&&h.type!=="date"&&/\d\d\d\d/.test(d)||n.obscureInputDates&&h.type==="date"||n.obscureInputEmails&&(h.type==="email"||~d.indexOf("@"))))&&(p=jn.Obscured);let f=0;switch(p){case jn.Hidden:f=-1,d="";break;case jn.Obscured:f=d.length,d="";break}return{value:d,mask:f}}function i(l,h){const{value:d,mask:p}=s(l,h);t.send(Vu(l,d,p))}const r=new Map,o=new Map;t.attachStopCallback(()=>{r.clear(),o.clear()});function a(l,h){r.get(l)!==h.value&&(r.set(l,h.value),i(l,h))}function c(l,h){o.get(l)!==h&&(o.set(l,h),t.send(Gu(l,h)))}t.ticker.attach(()=>{r.forEach((l,h)=>{const d=t.nodes.getNode(h);if(!d)return r.delete(h);a(h,d)}),o.forEach((l,h)=>{const d=t.nodes.getNode(h);if(!d)return o.delete(h);c(h,d.checked)})},3);function u(l,h,d,p){const{value:f,mask:m}=s(l,h),S=nl(h);t.send(ch(l,f,m!==0,S,d,p))}t.nodes.attachNodeCallback(t.safe(l=>{const h=t.nodes.getID(l);if(h!==void 0){if(we(l,"select")&&(i(h,l),t.nodes.attachNodeListener(l,"change",()=>i(h,l))),Nd(l)){a(h,l);let d=0,p=0,f=0;const m=()=>{d=lt()},S=()=>{p===0&&d!==0&&(p=lt()-d)},x=()=>{d!==0&&(f=lt()-d),u(h,l,p,f),p=0,f=0,d=0};t.nodes.attachNodeListener(l,"focus",m),t.nodes.attachNodeListener(l,"input",S),t.nodes.attachNodeListener(l,"change",x);return}if(Rd(l)){c(h,l.checked),t.nodes.attachNodeListener(l,"change",()=>c(h,l.checked));return}}}))}let et,yr,sl;function Md(t,e){if(sl=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 n={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};et={...n,...e},yr=Od(et.root,n);let s=ti(t,"all",()=>ti(t,"two",()=>ti(t,"one",()=>ti(t,"none"))));if(s){const i=cl(ul(s,t));return i.length>0&&(s=i[0]),ni(s)}else throw new Error("Selector was not found.")}function Od(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function ti(t,e,n){let s=null,i=[],r=t,o=0;for(;r;){const a=new Date().getTime()-sl.getTime();if(et.timeoutMs!==void 0&&a>et.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${a}ms`);let c=ii(Pd(r))||ii(...Ld(r))||ii(...Bd(r))||ii(Fd(r))||[al()];const u=Wd(r);if(e=="all")u&&(c=c.concat(c.filter(Sr).map(l=>si(l,u))));else if(e=="two")c=c.slice(0,1),u&&(c=c.concat(c.filter(Sr).map(l=>si(l,u))));else if(e=="one"){const[l]=c=c.slice(0,1);u&&Sr(l)&&(c=[si(l,u)])}else e=="none"&&(c=[al()],u&&(c=[si(c[0],u)]));for(let l of c)l.level=o;if(i.push(c),i.length>=et.seedMinLength&&(s=il(i,n),s))break;r=r.parentElement,o++}return s||(s=il(i,n)),!s&&n?n():s}function il(t,e){const n=cl(ll(t));if(n.length>et.threshold)return e?e():null;for(let s of n)if(ol(s))return s;return null}function ni(t){let e=t[0],n=e.name;for(let s=1;s<t.length;s++){const i=t[s].level||0;e.level===i-1?n=`${t[s].name} > ${n}`:n=`${t[s].name} ${n}`,e=t[s]}return n}function rl(t){return t.map(e=>e.penalty).reduce((e,n)=>e+n,0)}function ol(t){const e=ni(t);switch(yr.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 Pd(t){const e=t.getAttribute("id");return e&&et.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function Ld(t){return Array.from(t.attributes).filter(n=>et.attr(n.name,n.value)).map(n=>({name:`[${CSS.escape(n.name)}="${CSS.escape(n.value)}"]`,penalty:.5}))}function Bd(t){return Array.from(t.classList).filter(et.className).map(n=>({name:"."+CSS.escape(n),penalty:1}))}function Fd(t){const e=t.tagName.toLowerCase();return et.tagName(e)?{name:e,penalty:2}:null}function al(){return{name:"*",penalty:3}}function Wd(t){const e=t.parentNode;if(!e)return null;let n=e.firstChild;if(!n)return null;let s=0;for(;n&&(n.nodeType===Node.ELEMENT_NODE&&s++,n!==t);)n=n.nextSibling;return s}function si(t,e){return{name:t.name+`:nth-child(${e})`,penalty:t.penalty+1}}function Sr(t){return t.name!=="html"&&!t.name.startsWith("#")}function ii(...t){const e=t.filter(zd);return e.length>0?e:null}function zd(t){return t!=null}function*ll(t,e=[]){if(t.length>0)for(let n of t[0])yield*ll(t.slice(1,t.length),e.concat(n));else yield e}function cl(t){return[...t].sort((e,n)=>rl(e)-rl(n))}function*ul(t,e,n={counter:0,visited:new Map}){if(t.length>2&&t.length>et.optimizedMinLength)for(let s=1;s<t.length-1;s++){if(n.counter>et.maxNumberOfTries)return;n.counter+=1;const i=[...t];i.splice(s,1);const r=ni(i);if(n.visited.has(r))return;ol(i)&&jd(i,e)&&(yield i,n.visited.set(r,!0),yield*ul(i,e,n))}}function jd(t,e){return yr.querySelector(ni(t))===e}function Ud(t,e,n){return Md(t,{root:e.body,seedMinLength:3,optimizedMinLength:(n==null?void 0:n.minSelectorDepth)||2,threshold:(n==null?void 0:n.nthThreshold)||1e3,maxNumberOfTries:(n==null?void 0:n.maxOptimiseTries)||1e4})}function _r(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 hl(t,e){return t instanceof Element?Hd(t,e):null}function Hd(t,e){let n=t;for(;n!==null&&n!==e.documentElement;){if(pn(n,"masked"))return null;n=n.parentElement}if(hr(t)){let s=t.ownerSVGElement;for(;s!==null;)t=s,s=s.ownerSVGElement}for(n=t;n!==null&&n!==e.documentElement;){const s=n.tagName.toUpperCase();if(s==="LABEL")return null;if(s==="INPUT"||_r(n)||er(n)!==null)return n;n=n.parentElement}return t===e.documentElement?null:t}function qd(t,e){const{disableClickmaps:n=!1}=e||{};function s(g){const _=er(g);if(_!==null)return _;if(we(g,"input"))return nl(g);if(_r(g)){let E="";return g instanceof HTMLElement&&(E=t.sanitizer.getInnerTextSecure(g)),E=E||g.id||g.className,fa(E).slice(0,100)}return""}let i=-1,r=-1,o=!1,a=null,c=0,u={},l=0,h=0,d=0,p=0,f;const m=.008,S=225;function x(){const g=p/S;if(!l){l=g;return}const _=(g-l)/S;d>4&&_>m&&t.send(uh(lt())),p=0,d=0,l=g}t.attachStartCallback(()=>{f=setInterval(()=>x(),S)}),t.attachStopCallback(()=>{i=-1,r=-1,o=!1,a=null,u={},f&&clearInterval(f)});const T=()=>{o&&(t.send(Ku(i,r)),o=!1)},I=(g,_=!1)=>{function E(y,k,P){return u[y]=u[y]||Ud(k,g,P)}const b=_?t.attachEventListener.bind(t):t.nodes.attachNodeListener.bind(t.nodes);b(g.documentElement,"mouseover",y=>{const k=hl(y.target,g);k!==a&&(a=k,c=performance.now())}),b(g,"mousemove",y=>{const[k,P]=t.observer.getDocumentOffset(g);i=y.clientX+k,r=y.clientY+P,o=!0;const V=Math.sign(y.movementX);p+=Math.abs(y.movementX)+Math.abs(y.movementY),V!==h&&(h=V,d++)},!1),b(g,"click",y=>{const k=hl(y.target,g);if(!y.clientX&&!y.clientY||k===null)return;const P=t.nodes.getID(k);if(P!==void 0){const V=y.pageX,F=y.pageY,Q=g.documentElement.scrollWidth,z=g.documentElement.scrollHeight,B=dl(V/Q),J=dl(F/z);T(),t.send(oh(P,a===k?Math.round(performance.now()-c):0,s(k),_r(k)&&!n?E(P,k,e):"",B,J),!0)}a=null})};t.nodes.attachNodeCallback(g=>{Js(g)&&I(g)}),I(document,!0),t.ticker.attach(T,(e==null?void 0:e.trackingOffset)||7)}function dl(t){return Math.round(t*1e4)}function Vd(t){const e=[],n=document.getElementsByTagName("*"),s=/url\(("[^"]*"|'[^']*'|[^)]*)\)/i;for(let i=0;i<n.length;i++){const r=n[i];let o="";if(we(r,"img")&&(o=r.currentSrc||r.src),!o){const f=getComputedStyle(r).getPropertyValue("background-image");if(f){const m=s.exec(f);m!==null&&(o=m[1],(o.startsWith('"')||o.startsWith("'"))&&(o=o.substr(1,o.length-2)))}}if(!o)continue;const a=o.substr(0,10)==="data:image"?0:t[o];if(a===void 0)continue;const c=r.getBoundingClientRect(),u=Math.max(c.top,0),l=Math.max(c.left,0),h=Math.min(c.bottom,window.innerHeight||document.documentElement&&document.documentElement.clientHeight||0),d=Math.min(c.right,window.innerWidth||document.documentElement&&document.documentElement.clientWidth||0);if(h<=u||d<=l)continue;const p=(h-u)*(d-l);e.push({time:a,area:p})}return e}function Gd(t,e){let n=Math.max(document.documentElement&&document.documentElement.clientWidth||0,window.innerWidth||0)*Math.max(document.documentElement&&document.documentElement.clientHeight||0,window.innerHeight||0)/10,s=n*t;for(let i=0;i<e.length;i++){const{time:r,area:o}=e[i];n+=o,s+=o*(r>t?r:t)}return n===0?0:s/n}function Kd(t,e){const n=Object.assign({captureResourceTimings:!0,capturePageLoadTimings:!0,capturePageRenderTimings:!0,excludedResourceUrls:[]},e);if("PerformanceObserver"in window||(n.captureResourceTimings=!1),!n.captureResourceTimings)return;let s={};function i(u){var h;if(u.duration<0||!pa(u.name)||t.isServiceURL(u.name))return;s!==null&&(s[u.name]=u.startTime+u.duration);let l=!1;(h=n.excludedResourceUrls)==null||h.forEach(d=>{if(u.name.startsWith(d)){l=!0;return}}),!l&&t.send(Aa(u.startTime+Bn(),u.duration,u.responseStart&&u.startTime?u.responseStart-u.startTime:0,u.transferSize>u.encodedBodySize?u.transferSize-u.encodedBodySize:0,u.encodedBodySize||0,u.decodedBodySize||0,u.name,u.initiatorType,u.transferSize,u.responseStatus&&u.responseStatus===304||u.transferSize===0))}const r=new PerformanceObserver(u=>u.getEntries().forEach(i));let o;t.attachStartCallback(function({sessionID:u}){u!==o&&(performance.getEntriesByType("resource").forEach(i),o=u),r.observe({entryTypes:["resource"]})}),t.attachStopCallback(function(){r.disconnect()});let a=0,c=0;if(n.capturePageLoadTimings){let u=!1;t.ticker.attach(()=>{if(!u&&((a===0||c===0)&&performance.getEntriesByType("paint").forEach(l=>{const{name:h,startTime:d}=l;switch(h){case"first-paint":a=d;break;case"first-contentful-paint":c=d;break}}),performance.timing.loadEventEnd||performance.now()>3e4)){u=!0;const{navigationStart:l,requestStart:h,responseStart:d,responseEnd:p,domContentLoadedEventStart:f,domContentLoadedEventEnd:m,loadEventStart:S,loadEventEnd:x}=performance.timing;t.send(Yu(h-l||0,d-l||0,p-l||0,f-l||0,m-l||0,S-l||0,x-l||0,a,c))}},30)}if(n.capturePageRenderTimings){let u=0,l=0,h=0,d=null,p=!1;t.ticker.attach(()=>{if(p)return;const f=performance.now();if(s!==null&&(u=Math.max.apply(null,Object.keys(s).map(m=>s[m])),f-u>1e3&&(d=Vd(s),s=null)),h!==null&&(f-h>50&&(l=f),h=f-l>5e3?null:f),d!==null&&h===null||f>3e4){p=!0,s=null;const m=d===null?0:Gd(c||a,d),{domContentLoadedEventEnd:S,navigationStart:x}=performance.timing,T=h===null?Math.max(l,c,S-x||0):0;t.send(Ju(m,c>u?c:u,T))}})}}function kr(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 Xd(t,e){let n=!1;const s=new Map;function i(a){Ha(a)&&(Ct(a)&&s.set(a,[a.scrollLeft,a.scrollTop]),Js(a)&&s.set(a,kr(a)))}const r=t.safe(()=>{e||t.send(Bu(...kr(document)))}),o=t.safe((a,c)=>{const u=t.nodes.getID(c);u!==void 0&&t.send(qu(u,a[0],a[1]))});t.attachStartCallback(r),t.attachStopCallback(()=>{n=!1,s.clear()}),t.nodes.attachNodeCallback((a,c)=>{c&&(Ct(a)&&a.scrollLeft+a.scrollTop>0?s.set(a,[a.scrollLeft,a.scrollTop]):Js(a)&&s.set(a,kr(a))),Qs(a)&&t.nodes.attachNodeListener(a,"scroll",u=>{i(u.target)})}),t.attachEventListener(document,"scroll",a=>{const c=a.target;if(c===document){n=!0;return}i(c)}),t.ticker.attach(()=>{n&&(r(),n=!1),s.forEach(o),s.clear()},5,!1)}function Yd(t){let e,n,s,i,r=document.referrer;const o=t.safe(()=>{const{URL:u}=document;u!==e&&(e=u,t.send(fh(e,r,i,document.title)),i=0,r=e)}),a=t.safe(()=>{const{innerWidth:u,innerHeight:l}=window;(u!==n||l!==s)&&(n=u,s=l,t.send(Lu(n,s)))}),c=document.hidden===void 0?Function.prototype:t.safe(()=>t.send(nh(document.hidden)));t.attachStartCallback(()=>{e=null,i=Bn(),n=s=-1,o(),a(),c()}),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",c,!1,!1),t.ticker.attach(o,1,!1),t.ticker.attach(a,5,!1)}function fl(t){return Qs(t)&&!!t.adoptedStyleSheets}let Jd=15;function pl(){return Jd++}const ri=new Map;function Qd(t){if(t===null||!fl(document))return;const e=new Map,n=new Map,s=o=>setTimeout(()=>{let a=t.nodes.getID(o);if(o===document&&(a=0),a===void 0)return;let c=n.get(a);c||(c=[]);const u=[],l=o.adoptedStyleSheets;if(l&&Symbol.iterator in l)for(const h of l){let d=e.get(h);const p=!d;if(d||(d=pl(),e.set(h,d)),c.includes(d)||t.send(Na(d,a)),p){const f=h.cssRules;for(let m=0;m<f.length;m++)t.send(ir(d,f[m].cssText,m,t.getBaseHref()))}u.push(d)}if(Symbol.iterator in c)for(const h of c)u.includes(h)||t.send(ah(h,a));n.set(a,u)},20);function i(o){const a=Object.getOwnPropertyDescriptor(o,"adoptedStyleSheets");a&&Object.defineProperty(o,"adoptedStyleSheets",{...a,set:function(c){const u=a.set.call(this,c);return s(this),u}})}const r=o=>{if(o.__openreplay_adpss_patched__)return;o.__openreplay_adpss_patched__=!0,i(o.Document.prototype),i(o.ShadowRoot.prototype);const{replace:a,replaceSync:c}=o.CSSStyleSheet.prototype;o.CSSStyleSheet.prototype.replace=function(u){return a.call(this,u).then(l=>{const h=e.get(this);return h&&t.send(Ia(h,u,t.getBaseHref())),l})},o.CSSStyleSheet.prototype.replaceSync=function(u){const l=e.get(this);return l&&t.send(Ia(l,u,t.getBaseHref())),c.call(this,u)}};r(window),t.observer.attachContextCallback(t.safe(r)),t.attachStopCallback(()=>{e.clear(),n.clear()}),t.attachStartCallback(()=>{s(document)}),t.nodes.attachNodeCallback(o=>{fl(o)&&s(o)})}function Zd(t){if(t===null)return;if(!window.CSSStyleSheet){t.send(ih("no_stylesheet_prototype_in_window",""));return}const e=t.safe((i,r,o)=>{const a=ri.get(i);a&&(typeof o=="string"?t.send(ir(a,o,r,t.getBaseHref())):t.send(Ca(a,r)))}),n=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 a=ri.get(o);if(!a){t.debug.warn("No sheedID found for",o,ri);return}const c=r.cssText,u=o.cssRules,l=Array.from(u).indexOf(r);l>=0?(t.send(ir(a,c,l,t.getBaseHref())),t.send(Ca(a,l+1))):t.debug.warn("Rule index not found in",o,r)}),s=t.safe(i=>{const{insertRule:r,deleteRule:o}=i.CSSStyleSheet.prototype,{insertRule:a,deleteRule:c}=i.CSSGroupingRule.prototype;i.CSSStyleSheet.prototype.insertRule=function(u,l=0){return e(this,l,u),r.call(this,u,l)},i.CSSStyleSheet.prototype.deleteRule=function(u){return e(this,u),o.call(this,u)},i.CSSGroupingRule.prototype.insertRule=function(u,l=0){const h=a.call(this,u,l);return n(this),h},i.CSSGroupingRule.prototype.deleteRule=function(u=0){const l=c.call(this,u);return n(this),l}});s(window),t.observer.attachContextCallback(s),t.nodes.attachNodeCallback(i=>{if(!we(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,a=pl();ri.set(o,a),t.send(Na(a,r));const c=o.cssRules;for(let u=0;u<c.length;u++)e(o,u,c[u].cssText)})}function $d(t){function e(s){const i=t.nodes.getID(s);i!==void 0&&t.send(Ea(i))}let n=!1;t.nodes.attachNodeCallback(s=>{we(s,"body")&&(t.nodes.attachNodeListener(s,"focus",i=>{Ha(i.target)&&(e(i.target),n=!1)}),t.nodes.attachNodeListener(s,"blur",i=>{i.relatedTarget===null&&(n=!0,setTimeout(()=>{n&&t.send(Ea(-1))},0))}))}),t.attachStartCallback(()=>{let s=document.activeElement;for(;s&&we(s,"iframe")&&s.contentDocument;)s=s.contentDocument.activeElement;s&&s!==s.ownerDocument.body&&e(s)},!0)}function ef(t){if(!window.FontFace)return;const e=new Map,n=s=>{class i extends s.FontFace{constructor(...o){if(typeof o[1]=="string"){let a="";o[2]&&t.safe(()=>{a=JSON.stringify(o[2])});const c=[o[0],o[1],a],u=e.get(s.document)||[];u.push(c),e.set(s.document,u);const l=s===window?0:t.nodes.getID(s.document);if(l===void 0)return;t.active()&&t.send(xa(l,...c))}super(...o)}}s.FontFace=i};t.observer.attachContextCallback(n),n(window),t.nodes.attachNodeCallback(t.safe(s=>{if(!Js(s))return;const i=e.get(s);if(!i)return;const r=s.defaultView===window?0:t.nodes.getID(s);r!==void 0&&i.forEach(o=>{t.send(xa(r,...o))})}))}function tf(t,e,n,s,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:p,data:f,method:m,url:S,baseURL:x}=d.config,{data:T,headers:I,status:g,response:_}=d,{data:E,headers:b,status:y}=_||{},k=n.ignoreHeaders,P=Array.isArray(k)?D=>k.includes(D):()=>k;function V(D,te){P(te[0])||(D[te[0]]=te[1])}let F={},Q={};p.toJSON?F=p.toJSON():p instanceof Headers?p.forEach((D,te)=>V(F,[te,D])):Array.isArray(p)?p.forEach(D=>V(F,D)):typeof p=="object"&&Object.entries(p).forEach(D=>V(F,D));const z=b||I;z.toJSON?Q=z.toJSON():z instanceof Headers?z.forEach((D,te)=>V(Q,[te,D])):Array.isArray(z)?z.forEach(D=>V(Q,D)):typeof z=="object"&&Object.entries(z).forEach(([D,te])=>{P(D)||(Q[D]=te)});const B=s({url:S,method:m||"",status:g||y||0,request:{headers:F,body:f},response:{headers:Q,body:E||T}});if(!B){t.debug.log("Openreplay: empty request/response info, skipping");return}const J=d.config.__openreplay_timing,ee=performance.now()-J;t.debug.log("Openreplay: final req object",B),t.send(Gs("xhr",String(m),String(B.url),i(B.request),i(B.response),B.status,J+Bn(),ee,0))}function o(d){if(t.debug.log("Openreplay: capturing API request",d),d.__openreplay_timing=performance.now(),n.sessionTokenHeader){const p=typeof n.sessionTokenHeader=="string"?n.sessionTokenHeader:"X-OpenReplay-Session-Token",f=t.getSessionToken();f&&d.headers.set(p,f)}return d}function a(d){return n.failuresOnly||r(d),d}function c(d){return t.debug.log("Openreplay: capturing API request error",d),nf(d)&&d.response?r(d.response):d instanceof Error&&t.send(ei(d,[])),Promise.reject(d)}function u(d){t.debug.log("Openreplay: failed API request, skipping",d)}const l=e.interceptors.request.use(o,u,{synchronous:!0}),h=e.interceptors.response.use(a,c,{synchronous:!0});t.attachStopCallback(()=>{var d,p,f,m;(p=(d=e.interceptors.request).eject)==null||p.call(d,l),(m=(f=e.interceptors.response).eject)==null||m.call(f,h)})}function nf(t){return sf(t)&&t.isAxiosError===!0}function sf(t){return t!==null&&typeof t=="object"}class Tr{constructor(e=[],n,s){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header={},this.responseType="",this.requestType="xhr",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:n}=this.writeHeaders(),s={headers:e,body:this.method==="GET"?JSON.stringify(this.getData):this.requestData},i={headers:n,body:this.response},r=this.sanitize({url:this.url,method:this.method,status:this.status,request:s,response:i});if(!r)return null;if(r.url.includes("/graphql")&&r.response.body&&typeof r.response.body=="string"){const a=r.response.body.includes("errors");r.status=a?400:200,this.requestType="graphql"}return{requestType:this.requestType,method:r.method,url:r.url,request:JSON.stringify(r.request),response:JSON.stringify(r.response),status:r.status,startTime:this.startTime,duration:this.duration,responseSize:this.responseSize}}writeHeaders(){const e={};Object.entries(this.requestHeader).forEach(([s,i])=>{this.isHeaderIgnored(s)||(e[s]=i)}),this.setSessionTokenHeader((s,i)=>{e[s]=i});const n={};return Object.entries(this.header).forEach(([s,i])=>{this.isHeaderIgnored(s)||(n[s]=i)}),{reqHs:e,resHs:n}}isHeaderIgnored(e){return Array.isArray(this.ignoredHeaders)?this.ignoredHeaders.map(n=>n.toLowerCase()).includes(e.toLowerCase()):this.ignoredHeaders}}const fs=(t,e)=>{let n="";switch(t){case"":case"text":case"json":typeof e=="string"?n=e:Er(e)||Array.isArray(e)?n=JSON.stringify(e):typeof e<"u"&&(n=Object.prototype.toString.call(e));break;case"blob":case"document":case"arraybuffer":default:typeof e<"u"&&(n=Object.prototype.toString.call(e));break}return n},xr=t=>{if(!t)return null;let e;if(typeof t=="string"){(t[0]==="{"||t[0]==="[")&&(e=t);const n=t.split("&");n.length===1?e=t:e=n.join(",")}else if(of(t)){const n=[];for(const[s,i]of t)n.push(`${s}=${typeof i=="string"?i:"[object Object]"}`);e=n.join(",")}else t instanceof Blob||t instanceof ReadableStream||t instanceof ArrayBuffer?e="byte data":Er(t)?e=t:e=`can't parse body ${typeof t}`;return e},rf=(t,e={})=>{Er(e)||(e={});let n=t?t.split("?"):[];if(n.shift(),n.length>0){n=n.join("?").split("&");for(const s of n){const i=s.split("=");try{e[i[0]]=decodeURIComponent(i[1])}catch{e[i[0]]=i[1]}}}return e};function Er(t){return t!==null&&typeof t=="object"}function of(t){return t==null||ArrayBuffer.isView(t)?!1:typeof Symbol<"u"&&typeof t[Symbol.iterator]=="function"}function oi(t){return t<=0?"":t>=1e3*1e3?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":`${t}B`}const Ir=t=>(t.startsWith("//")&&(t=`${new URL(window.location.href).protocol}${t}`),t.startsWith("http")?new URL(t):new URL(t,window.location.href)),af=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 lf{constructor(e,n,s,i,r){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.sendMessage=i,this.isServiceUrl=r}apply(e,n,s){const i=s[0],r=s[1],o=new Tr(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);if(this.isServiceUrl(i))return e.apply(n,s);const a=Ir(i);if(o.method="POST",o.url=i,o.name=(a.pathname.split("/").pop()||"")+a.search,o.requestType="beacon",o.requestHeader={"Content-Type":af(r)},o.status=0,o.statusText="Pending",a.search&&a.searchParams){o.getData={};for(const[l,h]of a.searchParams)o.getData[l]=h}o.requestData=xr(r),o.startTime||(o.startTime=performance.now());const c=e.apply(n,s);c?(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 u=o.getMessage();return u&&this.sendMessage(u),c}}class cf{static create(e,n,s,i,r,o){if(e)return new Proxy(e,new lf(n,s,i,r,o))}}var gt;(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"})(gt||(gt={}));class uf{constructor(e,n){this.resp=e,this.item=n,this.mockReader()}set(e,n,s){return Reflect.set(e,n,s)}get(e,n){const s=Reflect.get(e,n);switch(n){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return()=>(this.item.responseType=n.toLowerCase(),s.apply(e).then(i=>(this.item.response=fs(this.item.responseType,i),i)))}return typeof s=="function"?s.bind(e):s}mockReader(){let e;if(!this.resp.body||typeof this.resp.body.getReader!="function")return;const n=this.resp.body.getReader;this.resp.body.getReader=()=>{const s=n.apply(this.resp.body);if(this.item.readyState===gt.DONE)return s;const i=s.read,r=s.cancel;return this.item.responseType="arraybuffer",s.read=()=>i.apply(s).then(o=>{if(!e)e=new Uint8Array(o.value);else{const a=new Uint8Array(e.length+o.value.length);a.set(e),a.set(o.value,e.length),e=a}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=oi(this.item.responseSize),o.done&&(this.item.response=fs(this.item.responseType,e)),o}),s.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=fs(this.item.responseType,e),r.apply(s,o)),s}}}class hf{constructor(e,n,s,i,r,o){this.ignoredHeaders=e,this.setSessionTokenHeader=n,this.sanitize=s,this.sendMessage=i,this.isServiceUrl=r,this.tokenUrlMatcher=o}apply(e,n,s){const i=s[0],r=s[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,s);const a=new Tr(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);return this.beforeFetch(a,i,r),this.setSessionTokenHeader((c,u)=>{if(!(this.tokenUrlMatcher!==void 0&&!this.tokenUrlMatcher(a.url))){if(s[1]===void 0&&s[0]instanceof Request)return s[0].headers.append(c,u);s[1]||(s[1]={}),s[1].headers===void 0&&(s[1]=Object.assign(Object.assign({},s[1]),{headers:{}})),s[1].headers instanceof Headers?s[1].headers.append(c,u):Array.isArray(s[1].headers)?s[1].headers.push([c,u]):s[1].headers[c]=u}}),e.apply(window,s).then(this.afterFetch(a)).catch(c=>{throw a.endTime=performance.now(),a.duration=a.endTime-(a.startTime||a.endTime),c})}beforeFetch(e,n,s){let i,r="GET",o={};if(typeof n=="string"?(r=(s==null?void 0:s.method)||"GET",i=Ir(n),o=(s==null?void 0:s.headers)||{}):(r=n.method||"GET",i=Ir(n.url),o=n.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[a,c]of o)e.requestHeader[a]=c}else e.requestHeader=o;if(i.search&&i.searchParams){e.getData={};for(const[a,c]of i.searchParams)e.getData[a]=c}s!=null&&s.body&&(e.requestData=xr(s.body))}afterFetch(e){return n=>{e.endTime=performance.now(),e.duration=e.endTime-(e.startTime||e.endTime),e.status=n.status,e.statusText=String(n.status);let s=!1;e.header={};for(const[i,r]of n.headers)e.header[i]=r,s=r.toLowerCase().indexOf("chunked")>-1?!0:s;return s?e.readyState=3:(e.readyState=4,this.handleResponseBody(n.clone(),e).then(i=>{e.responseSize=typeof i=="string"?i.length:i.byteLength,e.responseSizeText=oi(e.responseSize),e.response=fs(e.responseType,i);const r=e.getMessage();r&&this.sendMessage(r)}).catch(i=>{if(i.name!=="AbortError")throw i})),new Proxy(n,new uf(n,e))}}handleResponseBody(e,n){const s=e.headers.get("content-type");return s&&s.includes("application/json")?(n.responseType="json",e.text()):s&&(s.includes("text/html")||s.includes("text/plain"))?(n.responseType="text",e.text()):(n.responseType="arraybuffer",e.arrayBuffer())}}class df{static create(e,n,s,i,r,o){return new Proxy(fetch,new hf(e,n,s,i,r,o))}}class ff{constructor(e,n,s,i,r,o,a){this.ignoredHeaders=n,this.setSessionTokenHeader=s,this.sanitize=i,this.sendMessage=r,this.isServiceUrl=o,this.tokenUrlMatcher=a,this.XMLReq=e,this.XMLReq.onreadystatechange=()=>{this.onReadyStateChange()},this.XMLReq.onabort=()=>{this.onAbort()},this.XMLReq.ontimeout=()=>{this.onTimeout()},this.item=new Tr(n,s,i),this.item.requestType="xhr"}get(e,n){switch(n){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 s=Reflect.get(e,n);return typeof s=="function"?s.bind(e):s}}set(e,n,s){switch(n){case"onreadystatechange":return this.setOnReadyStateChange(e,n,s);case"onabort":return this.setOnAbort(e,n,s);case"ontimeout":return this.setOnTimeout(e,n,s)}return Reflect.set(e,n,s)}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=fs(this.item.responseType,this.item.response)},0),this.XMLReq.readyState===gt.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 n=Reflect.get(e,"open");return(...s)=>{var i,r,o;const a=s[0],c=s[1];return this.item.method=a?a.toUpperCase():"GET",this.item.url=((i=c.toString)===null||i===void 0?void 0:i.call(c))||"",this.item.name=(o=(r=this.item.url)===null||r===void 0?void 0:r.replace(new RegExp("/*$"),"").split("/").pop())!==null&&o!==void 0?o:"",this.item.getData=rf(this.item.url,{}),n.apply(e,s)}}getSend(e){const n=Reflect.get(e,"send");return(...s)=>{const i=s[0];return this.item.requestData=xr(i),n.apply(e,s)}}getSetRequestHeader(e){const n=Reflect.get(e,"setRequestHeader");return(...s)=>(this.item.requestHeader||(this.item.requestHeader={}),this.item.requestHeader[s[0]]=s[1],n.apply(e,s))}setOnReadyStateChange(e,n,s){return Reflect.set(e,n,(...i)=>{this.onReadyStateChange(),s==null||s.apply(e,i)})}setOnAbort(e,n,s){return Reflect.set(e,n,(...i)=>{this.onAbort(),s.apply(e,i)})}setOnTimeout(e,n,s){return Reflect.set(e,n,(...i)=>{this.onTimeout(),s.apply(e,i)})}updateItemByReadyState(){switch(this.XMLReq.readyState){case gt.UNSENT:case gt.OPENED:this.item.status=gt.UNSENT,this.item.statusText="Pending",this.item.startTime||(this.item.startTime=performance.now());break;case gt.HEADERS_RECEIVED:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};const e=this.XMLReq.getAllResponseHeaders()||"",n=e.split(`
|
|
19
|
+
`);for(let s=0;s<n.length;s++){const i=n[s];if(!i)continue;const r=i.split(": "),o=r[0];this.item.header[o]=r.slice(1).join(": ")}break;case gt.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=oi(this.item.responseSize));break;case gt.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=oi(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown";break}}}class pf{static create(e,n,s,i,r,o){return new Proxy(XMLHttpRequest,{construct(a){const c=new a;return new Proxy(c,new ff(c,e,n,s,i,r,o))}})}}const gl=t=>{const e=`Openreplay: Can't find ${t} in global context.`;console.warn(e)};function gf(t,e,n,s,i,r,o={xhr:!0,fetch:!0,beacon:!0},a){var c;if(t&&(o.xhr&&(t.XMLHttpRequest?t.XMLHttpRequest=pf.create(e,n,s,i,r,a):gl("XMLHttpRequest")),o.fetch&&(t.fetch?t.fetch=df.create(e,n,s,i,r,a):gl("fetch")),o.beacon&&!((c=t.navigator)===null||c===void 0)&&c.sendBeacon)){const u=t.navigator.sendBeacon;t.navigator.sendBeacon=cf.create(u,e,n,s,i,r)}}function Cr(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function ml(t){return typeof t=="string"?t.toUpperCase():"GET"}function mf(t,e={}){const n=Object.assign({failuresOnly:!1,ignoreHeaders:["cookie","set-cookie","authorization"],capturePayload:!1,sessionTokenHeader:!1,captureInIframes:!0,axiosInstances:void 0,useProxy:!0},e);n.useProxy===!1&&t.debug.warn("Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true");const s=n.ignoreHeaders,i=Array.isArray(s)?l=>s.includes(l):()=>s,r=n.sessionTokenHeader===!0?"X-OpenReplay-SessionToken":n.sessionTokenHeader;function o(l){if(r){const h=t.getSessionToken();h&&t.safe(l)(r,h)}}function a(l){if(n.capturePayload||(delete l.request.body,delete l.response.body),n.sanitizer){const h=l.response.body;if(typeof h=="string")try{l.response.body=JSON.parse(h)}catch{}return n.sanitizer(l)}return l}function c(l){if(l&&typeof l.body!="string")try{l.body=JSON.stringify(l.body)}catch{l.body="<unable to stringify>",t.notify.warn("Openreplay fetch couldn't stringify body:",l.body)}return JSON.stringify(l)}const u=l=>{if(n.useProxy)return gf(l,n.ignoreHeaders,o,a,I=>{t.send(Gs(I.requestType,I.method,I.url,I.request,I.response,I.status,I.startTime+Bn(),I.duration,I.responseSize))},I=>t.isServiceURL(I),{xhr:!0,fetch:!0,beacon:!0},n.tokenUrlMatcher);const h=l.fetch.bind(l),d=(I,g={})=>{if(!(typeof I=="string"||I instanceof URL)||t.isServiceURL(String(I)))return h(I,g);o(function(E,b){g.headers===void 0&&(g.headers={}),g.headers instanceof Headers?g.headers.append(E,b):Array.isArray(g.headers)?g.headers.push([E,b]):g.headers[E]=b});const _=performance.now();return h(I,g).then(E=>{const b=performance.now()-_;if(n.failuresOnly&&E.status<400)return E;const y=E.clone();return y.text().then(k=>{const P={},V={};if(s!==!0){const z=([B,J])=>{i(B)||(P[B]=J)};g.headers instanceof Headers?g.headers.forEach((B,J)=>z([J,B])):Array.isArray(g.headers)?g.headers.forEach(z):typeof g.headers=="object"&&Object.entries(g.headers).forEach(z),y.headers.forEach((B,J)=>{i(J)||(V[J]=B)})}const F=ml(g.method),Q=a({url:String(I),method:F,status:y.status,request:{headers:P,body:g.body||null},response:{headers:V,body:k}});Q&&t.send(Gs("fetch",F,String(Q.url),c(Q.request),c(Q.response),y.status,_+Bn(),b,0))}).catch(k=>t.debug.error("Could not process Fetch response:",k)),E})};l.fetch=d;const p=l.XMLHttpRequest.prototype.open,f=l.XMLHttpRequest.prototype.setRequestHeader,m=l.XMLHttpRequest.prototype.send;function S(I,g){const _=this;o((b,y)=>_.setRequestHeader(b,y));let E=0;return _.addEventListener("loadstart",b=>{E=b.timeStamp}),_.addEventListener("load",t.safe(b=>{const{headers:y,body:k}=Cr(_),P=E>0?b.timeStamp-E:0,F=(_.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),Q={};F.forEach(function(J){const ee=J.split(": "),D=ee.shift();i(D)||(Q[D]=ee.join(": "))});const z=ml(I),B=a({url:String(g),method:z,status:_.status,request:{headers:y,body:k||null},response:{headers:Q,body:_.response}});B&&t.send(Gs("xhr",z,String(B.url),c(B.request),c(B.response),_.status,E+Bn(),P,0))})),p.apply(this,arguments)}function x(I){const g=Cr(this);return g.body=I,m.apply(this,arguments)}function T(I,g){if(!i(I)){const _=Cr(this);_.headers[I]=g}return f.apply(this,arguments)}n.axiosInstances||(l.XMLHttpRequest.prototype.open=S,l.XMLHttpRequest.prototype.send=x,l.XMLHttpRequest.prototype.setRequestHeader=T)};u(window),n.axiosInstances&&n.axiosInstances.forEach(l=>{tf(t,l,n,a,c)}),n.captureInIframes&&t.observer.attachContextCallback(t.safe(u))}function vf(t){t.attachEventListener(document,"selectionchange",()=>{const e=document.getSelection();if(e!==null&&!e.isCollapsed){const n=t.nodes.getID(e.anchorNode),s=t.nodes.getID(e.focusNode),i=e.toString().replace(/\s+/g," ");n&&s&&t.send(Ra(n,s,i))}else t.send(Ra(-1,-1,""))})}function wf(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(Ks(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const ai="/installation/javascript-sdk";function bf(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${Vs}${ai}`),!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 ${Vs}${ai} for more information.`),!1;t.projectKey=t.projectID.toString(),Jt("`projectID` option","`projectKey` option",ai)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&Jt("`sessionToken` option","`sessionHash` start() option","/"),!0}const yf=()=>{try{return!!window.top}catch{return!1}};class Sf{constructor(e){var a,c;if(this.options=e,this.app=null,this.crossdomainMode=!1,this.checkDoNotTrack=()=>this.options.respectDoNotTrack&&(navigator.doNotTrack=="1"||window.doNotTrack=="1"),this.signalStartIssue=(u,l)=>{const h=this.checkDoNotTrack(),d=new XMLHttpRequest,p=this.options.ingestPoint||Xa;d.open("POST",p+"/v1/web/not-started"),d.send(JSON.stringify({trackerVersion:"14.0.14",projectKey:this.options.projectKey,doNotTrack:h,reason:l.length?`missing api: ${l.join(",")}`:u}))},this.restartCanvasTracking=()=>{this.app!==null&&this.app.restartCanvasTracking()},this.handleError=(u,l={})=>{if(this.app!==null){if(u instanceof Error){const h=ei(u,[],l);this.app.send(h)}else if(u instanceof ErrorEvent||"PromiseRejectionEvent"in window&&u instanceof PromiseRejectionEvent){const h=el(u,void 0,l);h!=null&&this.app.send(h)}}},this.crossdomainMode=!!(wa()&&((a=e.crossdomain)!=null&&a.enabled)),!ft||!bf(e)){console.error("OpenReplay: tracker called in a non-browser environment or with invalid options");return}if(window.__OPENREPLAY__||!this.crossdomainMode&&wa()&&yf()&&((c=window.top)!=null&&c.__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 n=this.checkDoNotTrack(),s=[],i=["Map","Set","MutationObserver","performance","timing","startsWith","Blob","Worker"];if(n)s.push("doNotTrack");else for(const u of i)if(u==="timing"){if("performance"in window&&!(u in performance)){s.push(u);break}}else if(u==="startsWith"){if(!(u in String.prototype)){s.push(u);break}}else if(!(u in window)){s.push(u);break}if(s.length>0){const u=s.join(",");console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${u}`),this.signalStartIssue("missing_api",s);return}const r=new rd(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(Yd(r),od(r),ph(r,e),wf(r)),qd(r,e.mouse),Xd(r,this.crossdomainMode),Zd(r),Qd(r),ud(r,e),Td(r,e),Id(r),Ad(r,e),Kd(r,e),$d(r),ef(r),mf(r,e.network),vf(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 u=r.getTabId(),l=r.sessionStorage??window.sessionStorage;window.open=function(...h){return e.autoResetOnWindowOpen&&r.resetNextPageSession(!0),e.resetTabOnWindowOpen&&l.removeItem(e.session_tabid_key||"__openreplay_tabid"),r.resetNextPageSession(!1),l.setItem(e.session_tabid_key||"__openreplay_tabid",u),o.call(window,...h)}}),r.attachStopCallback(()=>{window.open=o}))}isFlagEnabled(e){return this.featureFlags.isFlagEnabled(e)}onFlagsLoad(e){var n;(n=this.app)==null||n.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 n;return(n=this.app)==null?void 0:n.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 ft?!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 ${Vs}${ai}`),!1)}coldStart(e,n){if(this.browserEnvCheck()){if(this.app===null)return Promise.reject("Tracker not initialized");this.app.coldStart(e,n)}else return Promise.reject("Trying to start not in browser.")}startOfflineRecording(e,n){return this.browserEnvCheck()?this.app===null?Promise.reject("Tracker not initialized"):this.app.offlineRecording(e,n):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 Jt("'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){Jt("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send($u(e))}userAnonymousID(e){Jt("'userAnonymousID' method","'setUserAnonymousID' method","/"),this.setUserAnonymousID(e)}setMetadata(e,n){typeof e=="string"&&typeof n=="string"&&this.app!==null&&this.app.session.setMetadata(e,n)}metadata(e,n){Jt("'metadata' method","'setMetadata' method","/"),this.setMetadata(e,n)}event(e,n=null,s=!1){if(typeof e=="string"&&this.app!==null){if(s)return this.issue(e,n);try{n=JSON.stringify(n)}catch{return}this.app.send(Qu(e,n))}}issue(e,n=null){if(typeof e=="string"&&this.app!==null){try{n=JSON.stringify(n)}catch{return}this.app.send(rh(e,n))}}}function _f(t){return{id:String(t.ID),appellation:t.Appellation||null,country:t.Country||null,grape:t.Grape,image:t.Image,price:Number(t.Price),producer:t.Producer||null,region:t.Region,score:t.Score?Number(t.Score):null,shortDescription:t["Short Description"]||null,store:t.Store,storeId:t.Store_id||null,tags:Array.isArray(t.Tags)?t.Tags.map(String):[],title:t.Title,type:t.Type,url:t.Url||null,vintage:t.Vintage?Number(t.Vintage):null,pairingRecommendation:t.pairing_recommendation||null,total:t.Total?Number(t.Total):null,itemId:t.item_id||null,isPromote:t.is_promote?!!t.is_promote:null,stock:t.stock?Number(t.stock):null,byTheGlass:!!t.by_the_glass,glassPrice:t.glass_price!=null?Number(t.glass_price):null}}function Nr(t){return{id:String(t.id),title:String(t.title),description:String(t.description),region:String(t.region),price:Number(t.price),grape:String(t.grape),appellation:t.appellation?String(t.appellation):null,url:t.url?String(t.url):null,store:String(t.store),storeId:t.storeId?String(t.storeId):null,image:String(t.image),country:t.country?String(t.country):null,vintage:t.vintage?Number(t.vintage):null,tags:Array.isArray(t.tags)?t.tags.map(String):[],score:t.score?Number(t.score):null,total:t.total?Number(t.total):null,isPromote:t.is_promote?!!t.is_promote:null,stock:t.stock?Number(t.stock):null,distance:Number(t.distance),reason:String(t.reason),type:String(t.type),byTheGlass:!!t.by_the_glass,glassPrice:t.glass_price!=null?Number(t.glass_price):null}}function kf(t){return{recommendations:(t.recommendations||[]).filter(Boolean).map(Nr),hasMore:!!t.has_more}}class Tf{constructor(e,n="1"){G(this,$t,"https://api.wineater.com/");G(this,At);G(this,Jn);j(this,At,e),j(this,Jn,n)}async getInstantRecommendations(){try{const e=w(this,Jn)==="2"?"dish/recommendations/instant/v2":"dish/recommendations/instant",n=await fetch(`${w(this,$t)}${e}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${w(this,At)}`}}),s=await n.json();if(!n.ok)throw new Error(`API call failed with status ${n.status}: ${s.message||"No additional error information"}`);return s.filter(Boolean).map(_f)}catch(e){throw new Error(`Error in getInstantRecommendations: ${e.message}`)}}async getWineRecommendationsSearch(e){try{const n=w(this,Jn)==="2"?"dish/recommendations/search/v2":"dish/recommendations/search",s=await fetch(`${w(this,$t)}${n}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${w(this,At)}`},body:JSON.stringify({text:e})}),i=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${i.message||"No additional error information"}`);return i.filter(Boolean).map(Nr)}catch(n){throw new Error(`Error in getWineRecommendations: ${n.message}`)}}async getMoreWineRecommendations(e,n){try{const s=await fetch(`${w(this,$t)}dish/recommendations/search/v2/more`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${w(this,At)}`},body:JSON.stringify({text:e,exclude_ids:n})}),i=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${i.message||"No additional error information"}`);return kf(i)}catch(s){throw new Error(`Error in getMoreWineRecommendations: ${s.message}`)}}async getSimilarWines(e){try{const n=await fetch(`${w(this,$t)}dish/recommendations/similar`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${w(this,At)}`},body:JSON.stringify({id:e})}),s=await n.json();if(!n.ok)throw new Error(`API call failed with status ${n.status}: ${s.message||"No additional error information"}`);return s.filter(Boolean).map(Nr)}catch(n){throw new Error(`Error in getSimilarWines: ${n.message}`)}}async getStoreConfig(){try{const e=await fetch(`${w(this,$t)}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${w(this,At)}`}});if(!e.ok)throw new Error(`HTTP error! Status: ${e.status}`);return await e.json()}catch(e){throw console.error("Error fetching store configuration:",e),e}}}$t=new WeakMap,At=new WeakMap,Jn=new WeakMap;const xf=((Tl=window==null?void 0:window.wineaterData)==null?void 0:Tl.CLIENT_TOKEN)||"HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG",vl=String(((xl=window==null?void 0:window.wineaterData)==null?void 0:xl.apiVersion)||"1"),ps=new Tf(xf,vl),Ue={WIDGET_INITIALIZED:"widget_initialized",WIDGET_LOADED:"widget_loaded",SEARCH_PERFORMED:"search_performed",SEARCH_RESULTS_DISPLAYED:"search_results_displayed",NO_RESULTS_FOUND:"no_results_found",WINE_CARD_HOVER:"wine_card_hover",WINE_CARD_CLICK:"wine_card_click",WINE_DETAILS_VIEWED:"wine_details_viewed",WINE_DETAILS_CLOSED:"wine_details_closed",BUY_BUTTON_CLICKED:"buy_button_clicked",SHOW_MORE_CLICKED:"show_more_clicked",SIMILAR_WINES_CLICKED:"similar_wines_clicked",FILTER_APPLIED:"filter_applied",LANGUAGE_CHANGED:"language_changed",ERROR_OCCURRED:"error_occurred",MOBILE_VIEW_ACTIVATED:"mobile_view_activated"},Ef={fr:{lang:"fr",welcomeMessage:"Quel plat allez-vous déguster ? Décrivez-le-moi et je vous proposerai le vin qui l'accompagnera parfaitement.",noResultsFound:"Aucun résultat trouvé.",somethingWentWrong:"Désolé, quelque chose a mal tourné.",chatButton1:"Trouvez l'accord parfait",chatButton2:"Associez le vin",chatButton3:"Obtenez des conseils",chatTitle:"Accord Mets & Vins 🍷",chatSubtitle:"Décrivez votre plat et obtenez une recommandation en 30 secondes",inputPlaceholder:"ex., Salade de thon",sendButton:"Accorder",poweredBy:"Propulsé par",price:"Prix",region:"Région",type:"Type",reason:"Suggestion",moreInfo:"Plus d'infos",tryAgain:"Réessayer",similarWines:"Vins similaires",byTheGlass:"Au verre",winePairingIntro:"Pour ce vin, voici quelques suggestions de plats :",askForDinner:"Que voulez-vous manger ce soir?",clearChatButton:"Effacer le chat",widgetTitle:"TROUVEZ VOTRE VIN PARFAIT",widgetSubtitle:"Partagez tout ce que vous avez en tête—votre repas, humeur, budget ou occasion—et notre sommelier IA vous recommandera le vin parfait en quelques secondes",searchPlaceholder:"Entrez un mot-clé ou une description","wineDetails.reason":"Raison","wineDetails.price":"Prix","wineDetails.region":"Région","wineDetails.type":"Type","wineDetails.moreInfo":"Plus d'infos","wineDetails.code":"Code","wineDetails.buy":"Acheter",searchButton:"Rechercher",priceRange:"Gamme de prix",wineColor:"Couleur du vin",intensity:"Intensité",red:"Rouge",white:"Blanc",rose:"Rosé",light:"Léger",medium:"Moyen",full:"Puissant",barTitle:"Sélection du bar",barSubtitle:"Choisissez vos plats ci-dessous et cliquez sur «Envoyer»",barSendButton:"Envoyer",barResetButton:"Réinitialiser",barName:"Nom du bar",barNotesPlaceholder:"Entrez vos souhaits ici...",placeholderSuggestions:["Vin pour les pâtes","Parfait avec du poisson","Recommandé pour une soirée"],headerLine1:"Partagez tout ce qui vous passe par la tête —",headerLine2:"— et obtenez des recommandations de vin parfait en quelques secondes",headerMeal:"repas",headerMood:"humeur",headerBudget:"budget",headerOccasion:"occasion",headerOr:"ou",errorMessage:"Une erreur est survenue. Veuillez réessayer plus tard.",noResultsMessage:"Aucun résultat trouvé pour votre recherche. Veuillez essayer une autre requête.",ai_sommelier:"AI sommelier"},es:{lang:"es",welcomeMessage:"¿Qué vas a comer? Cuéntame tu plato y te recomendaré el maridaje perfecto.",noResultsFound:"No se encontraron resultados.",somethingWentWrong:"Lo sentimos, algo salió mal.",chatButton1:"Encuentra tu maridaje",chatButton2:"Combina vino ya",chatButton3:"Recibe asesoría ahora",chatTitle:"Maridaje de Vinos 🍷",chatSubtitle:"Describe tu comida y obtén una recomendación en 30 segundos",inputPlaceholder:"ej., Ensalada de atún",sendButton:"Combinar",poweredBy:"Desarrollado por",price:"Precio",region:"Región",type:"Tipo",reason:"Sugerencia",moreInfo:"Más info",tryAgain:"Probar otra vez",similarWines:"Vinos similares",byTheGlass:"Por copa",winePairingIntro:"Para este vino, aquí tienes algunas sugerencias de platos:",askForDinner:"¿Qué te gustaría cenar?",clearChatButton:"Limpiar el chat",widgetTitle:"ENCUENTRA TU VINO PERFECTO",widgetSubtitle:"Comparte cualquier cosa que tengas en mente—tu comida, estado de ánimo, presupuesto o evento—y nuestro sommelier de IA te recomendará el vino perfecto en segundos",searchPlaceholder:"Escribe una palabra clave o descripción","wineDetails.reason":"Razón","wineDetails.price":"Precio","wineDetails.region":"Región","wineDetails.type":"Tipo","wineDetails.code":"Código","wineDetails.moreInfo":"Más información","wineDetails.buy":"Comprar",searchButton:"Buscar",priceRange:"Rango de precios",wineColor:"Color del vino",intensity:"Intensidad",red:"Tinto",white:"Blanco",rose:"Rosado",light:"Ligero",medium:"Medio",full:"Intenso",barTitle:"Platos de Bar",barSubtitle:"Selecciona de la lista y presiona «Enviar»",barSendButton:"Enviar",barResetButton:"Reiniciar",barName:"Nombre del bar",barNotesPlaceholder:"Agrega tus comentarios aquí...",placeholderSuggestions:["Vino para pasta","Perfecto con pescado","Recomendado para una fiesta"],headerLine1:"Comparte cualquier cosa que tengas en mente —",headerLine2:"— y obtén recomendaciones del vino perfecto en cuestión de segundos",headerMeal:"comida",headerMood:"estado de ánimo",headerBudget:"presupuesto",headerOccasion:"ocasión",headerOr:"o",errorMessage:"Algo salió mal. Por favor, inténtalo de nuevo más tarde.",noResultsMessage:"No se encontraron resultados para tu búsqueda. Por favor, intenta con otra consulta.",ai_sommelier:"AI sommelier"},en:{lang:"en",welcomeMessage:"What are you planning to eat? Share your dish and I'll recommend the perfect wine pairing for your meal.",noResultsFound:"No results found.",somethingWentWrong:"Sorry, something went wrong.",chatButton1:"Find Your Pairing",chatButton2:"Pair Wine Now",chatButton3:"Get Wine Advice",chatTitle:"Wine Pairing Assistant 🍷",chatSubtitle:"Describe your meal and get a recommendation in 30 seconds",inputPlaceholder:"e.g., Tuna salad",sendButton:"Match",poweredBy:"Powered by",price:"Price",region:"Region",type:"Type",reason:"Suggestion",moreInfo:"More info",tryAgain:"Try again",similarWines:"Similar wines",byTheGlass:"By the glass",winePairingIntro:"For this wine, here are some suggested dishes:",askForDinner:"What would you like to have for dinner?",clearChatButton:"Clear Chat",widgetTitle:"FIND YOUR PERFECT WINE",widgetSubtitle:"Share anything on your mind—your meal, mood, budget, or occasion—and our AI sommelier will recommend the perfect wine in seconds",searchPlaceholder:"Enter a keyword or description","wineDetails.price":"Price","wineDetails.region":"Region","wineDetails.type":"Type","wineDetails.moreInfo":"More info","wineDetails.reason":"Reason","wineDetails.code":"Code","wineDetails.buy":"Buy",searchButton:"Search",priceRange:"Price Range",wineColor:"Wine Color",intensity:"Intensity",red:"Red",white:"White",rose:"Rosé",light:"Light",medium:"Medium",full:"Full",barTitle:"Bar Dishes",barSubtitle:"Select dishes below and click 'Send'",barSendButton:"Send",barResetButton:"Reset",barName:"Bar Name",barNotesPlaceholder:"Add your wishes here...",placeholderSuggestions:["Wine for pasta","Perfect with fish","Recommended for a party"],headerLine1:"Share anything on your mind —",headerLine2:"— and get recommendations of the perfect wine in seconds",headerMeal:"meal",headerMood:"mood",headerBudget:"budget",headerOccasion:"occasion",headerOr:"or",errorMessage:"Something went wrong. Please try again later.",noResultsMessage:"No results found for your search. Please try a different query.",ai_sommelier:"AI sommelier"},sr:{lang:"sr",welcomeMessage:"Šta planirate da jedete? Podelite svoje jelo i preporučiću vam savršeno vino uz obrok.",noResultsFound:"Nema rezultata.",somethingWentWrong:"Izvinite, nešto je pošlo po zlu.",chatButton1:"Pronađi vino",chatButton2:"Upari vino sada",chatButton3:"Zatraži preporuku",chatTitle:"Asistent za uparivanje vina 🍷",chatSubtitle:"Opišite svoj obrok i dobijte preporuku za 30 sekundi",inputPlaceholder:"npr. Tuna salata",sendButton:"Upari",poweredBy:"Pokreće",price:"Cena",region:"Regija",type:"Tip",reason:"Preporuka",moreInfo:"Više informacija",tryAgain:"Pokušaj ponovo",similarWines:"Slična vina",byTheGlass:"Na čašu",winePairingIntro:"Za ovo vino, preporučuju se sledeća jela:",askForDinner:"Šta biste želeli za večeru?",clearChatButton:"Obriši razgovor",widgetTitle:"PRONAĐITE SAVRŠENO VINO",widgetSubtitle:"Podelite bilo šta — obrok, raspoloženje, budžet ili priliku — i naš AI somelijer će vam za par sekundi preporučiti vino",searchPlaceholder:"Unesite ključnu reč ili opis","wineDetails.price":"Cena","wineDetails.region":"Regija","wineDetails.type":"Tip","wineDetails.moreInfo":"Više informacija","wineDetails.reason":"Razlog","wineDetails.code":"Šifra","wineDetails.buy":"Kupi",searchButton:"Pretraga",priceRange:"Cenovni raspon",wineColor:"Boja vina",intensity:"Intenzitet",red:"Crveno",white:"Belo",rose:"Roze",light:"Lako",medium:"Srednje",full:"Puno",barTitle:"Jela iz bara",barSubtitle:"Izaberite jela ispod i kliknite 'Pošalji'",barSendButton:"Pošalji",barResetButton:"Resetuj",barName:"Naziv bara",barNotesPlaceholder:"Dodajte svoje želje ovde...",placeholderSuggestions:["Vino uz pastu","Savršeno uz ribu","Preporuka za žurku"],headerLine1:"Podelite bilo šta što vam je na umu —",headerLine2:"— i dobijte preporuke za savršeno vino za par sekundi",headerMeal:"obrok",headerMood:"raspoloženje",headerBudget:"budžet",headerOccasion:"prilika",headerOr:"ili",errorMessage:"Nešto je pošlo po zlu. Molimo pokušajte ponovo kasnije.",noResultsMessage:"Nema rezultata za vašu pretragu. Molimo pokušajte sa drugačijim upitom.",ai_sommelier:"AI sommelier"},de:{lang:"de",welcomeMessage:"Was möchten Sie essen? Beschreiben Sie Ihr Gericht und ich empfehle Ihnen den perfekten Wein dazu.",noResultsFound:"Keine Ergebnisse gefunden.",somethingWentWrong:"Entschuldigung, etwas ist schief gelaufen.",chatButton1:"Finde Dein Pairing",chatButton2:"Wein jetzt wählen",chatButton3:"Erhalte Weinberatung",chatTitle:"Wein & Speisen 🍷",chatSubtitle:"Beschreiben Sie Ihr Gericht und erhalten Sie in 30 Sekunden eine Empfehlung",inputPlaceholder:"z.B., Thunfischsalat",sendButton:"Kombinieren",poweredBy:"Unterstützt von",price:"Preis",region:"Region",type:"Typ",reason:"Anregung",moreInfo:"Mehr Info",tryAgain:"Nochmal versuchen",similarWines:"Ähnliche Weine",byTheGlass:"Glasweise",winePairingIntro:"Für diesen Wein gibt es folgende Essensvorschläge:",askForDinner:"Was möchten Sie zum Abendessen essen?",clearChatButton:"Chat löschen",widgetTitle:"FINDEN SIE IHREN PERFEKTEN WEIN",widgetSubtitle:"Teilen Sie alles, was Ihnen in den Sinn kommt—Ihre Mahlzeit, Stimmung, Ihr Budget oder Anlass—und unser KI-Sommelier empfiehlt Ihnen in Sekunden den perfekten Wein",placeholderSuggestions:["Wein für Pasta","Perfekt zu Fisch","Empfohlen für eine Party"],searchPlaceholder:"Geben Sie ein Stichwort oder eine Beschreibung ein","wineDetails.price":"Preis","wineDetails.region":"Region","wineDetails.type":"Typ","wineDetails.moreInfo":"Mehr Info","wineDetails.reason":"Grund","wineDetails.code":"Code","wineDetails.buy":"Kaufen",searchButton:"Suche",priceRange:"Preisspanne",wineColor:"Weinfarbe",intensity:"Intensität",red:"Rot",white:"Weiß",rose:"Rosé",light:"Leicht",medium:"Mittel",full:"Voll",barTitle:"Bar-Auswahl",barSubtitle:"Wählen Sie Ihre Gerichte und klicken Sie auf 'Senden'",barSendButton:"Senden",barResetButton:"Zurücksetzen",barName:"Name der Bar",headerLine1:"Teilen Sie alles, was Ihnen durch den Kopf geht —",headerLine2:"— und erhalten Sie in Sekundenschnelle Empfehlungen für den perfekten Wein",headerMeal:"Mahlzeit",headerMood:"Stimmung",headerBudget:"Budget",headerOccasion:"Anlass",headerOr:"oder",errorMessage:"Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.",noResultsMessage:"Keine Ergebnisse für Ihre Suche gefunden. Bitte versuchen Sie es mit einer anderen Anfrage.",ai_sommelier:"AI sommelier"},ukr:{lang:"ukr",welcomeMessage:"Що ви збираєтесь їсти? Опишіть свою страву, і я порекомендую вам ідеальне вино.",noResultsFound:"Результатів не знайдено.",somethingWentWrong:"Вибачте, щось пішло не так.",chatButton1:"Знайти ідеальне поєднання",chatButton2:"Підібрати вино",chatButton3:"Отримати пораду",chatTitle:"Сомельє-помічник 🍷",chatSubtitle:"Опишіть свою страву і отримайте рекомендацію за 30 секунд",inputPlaceholder:"наприклад, Тунець із салатом",sendButton:"Підібрати",poweredBy:"Розроблено на основі",price:"Ціна",region:"Регіон",type:"Тип",reason:"Рекомендація",moreInfo:"Докладніше",tryAgain:"Спробувати ще",similarWines:"Схожі вина",byTheGlass:"На келих",winePairingIntro:"До цього вина підходять такі страви:",askForDinner:"Що ви хочете на вечерю?",clearChatButton:"Очистити чат",widgetTitle:"ЗНАЙДІТЬ ІДЕАЛЬНЕ ВИНО",widgetSubtitle:"Поділіться тим, що у вас на думці—їжа, настрій, бюджет чи подія—і наш AI-сомельє порекомендує вам ідеальне вино за секунди",searchPlaceholder:"Введіть ключове слово або опис","wineDetails.reason":"Причина","wineDetails.price":"Ціна","wineDetails.region":"Регіон","wineDetails.type":"Тип","wineDetails.moreInfo":"Докладніше","wineDetails.code":"Код","wineDetails.buy":"Купити",searchButton:"Пошук",priceRange:"Діапазон цін",wineColor:"Колір вина",intensity:"Інтенсивність",red:"Червоне",white:"Біле",rose:"Рожеве",light:"Легке",medium:"Середнє",full:"Повне",barTitle:"Закуски до вина",barSubtitle:"Виберіть страви нижче та натисніть «Надіслати»",barSendButton:"Надіслати",barResetButton:"Скинути",barName:"Назва бару",barNotesPlaceholder:"Додайте ваші побажання тут...",placeholderSuggestions:["Вино до пасти","Ідеально до риби","Рекомендуємо для вечірки"],headerLine1:"Поділіться будь-якими вашими думками —",headerLine2:"— і отримайте рекомендації щодо ідеального вина за секунди",headerMeal:"страва",headerMood:"настрій",headerBudget:"бюджет",headerOccasion:"подія",headerOr:"або",errorMessage:"Щось пішло не так. Будь ласка, спробуйте пізніше.",noResultsMessage:"За вашим запитом не знайдено результатів. Спробуйте інший запит.",ai_sommelier:"AI sommelier"},ru:{lang:"ru",welcomeMessage:"Что вы планируете поесть? Напишите ваше блюдо, и я подберу идеальное вино к нему.",noResultsFound:"Результаты не найдены.",somethingWentWrong:"Извините, что-то пошло не так.",chatButton1:"Найти сочетание",chatButton2:"Подобрать вино",chatButton3:"Получить совет",chatTitle:"Ассистент по подбору вина 🍷",chatSubtitle:"Опишите ваше блюдо и получите рекомендацию за 30 секунд",inputPlaceholder:"например, Тунец с салатом",sendButton:"Подобрать",poweredBy:"Powered by",price:"Цена",region:"Регион",type:"Тип",reason:"Рекомендация",moreInfo:"Подробнее",tryAgain:"Попробовать ещё",similarWines:"Похожие вина",byTheGlass:"По бокалам",winePairingIntro:"К этому вину подходят следующие блюда:",askForDinner:"Что бы вы хотели на ужин?",clearChatButton:"Очистить чат",widgetTitle:"НАЙДИТЬ ИДЕАЛЬНОЕ ВИНО",widgetSubtitle:"Поделитесь вашими предпочтениями — блюдом, настроением, бюджетом или случаем — и наш AI-сомелье подберёт идеальное вино за секунды",searchPlaceholder:"Введите ключевое слово или описание","wineDetails.price":"Цена","wineDetails.region":"Регион","wineDetails.type":"Тип","wineDetails.moreInfo":"Подробнее","wineDetails.reason":"Причина","wineDetails.code":"Код","wineDetails.buy":"Купить",searchButton:"Поиск",priceRange:"Диапазон цен",wineColor:"Цвет вина",intensity:"Интенсивность",red:"Красное",white:"Белое",rose:"Розовое",light:"Лёгкое",medium:"Среднее",full:"Полное",barTitle:"Закуски к вину",barSubtitle:"Выберите блюда ниже и нажмите 'Отправить'",barSendButton:"Отправить",barResetButton:"Сбросить",barName:"Название бара",barNotesPlaceholder:"Добавьте ваши пожелания здесь...",placeholderSuggestions:["Вино для пасты","Идеально к рыбе","Рекомендуем для вечеринки"],headerLine1:"Поделитесь любыми вашими мыслями —",headerLine2:"— и получите рекомендации по идеальному вину за считанные секунды",headerMeal:"блюдо",headerMood:"настроение",headerBudget:"бюджет",headerOccasion:"случай",headerOr:"или",errorMessage:"Что-то пошло не так. Пожалуйста, попробуйте позже.",noResultsMessage:"По вашему запросу не найдено результатов. Попробуйте другой запрос.",ai_sommelier:"AI sommelier"},kk:{lang:"kk",welcomeMessage:"Сіз не жегіңіз келеді? Тағамыңызды сипаттаңыз, мен оған керемет шарап ұсынамын.",noResultsFound:"Нәтижелер табылмады.",somethingWentWrong:"Кешіріңіз, бірдеңе дұрыс болмады.",chatButton1:"Сәйкестік табу",chatButton2:"Шарап таңдау",chatButton3:"Кеңес алу",chatTitle:"Шарап таңдаушы көмекші 🍷",chatSubtitle:"Тағамыңызды сипаттаңыз — 30 секундта ұсыныс алыңыз",inputPlaceholder:"мысалы, тунец салатымен",sendButton:"Таңдау",poweredBy:"Powered by",price:"Бағасы",region:"Өңір",type:"Түрі",reason:"Ұсыныс",moreInfo:"Толығырақ",tryAgain:"Қайта көру",similarWines:"Ұқсас шараптар",byTheGlass:"Бокалмен",winePairingIntro:"Бұл шарапқа келесі тағамдар сәйкес келеді:",askForDinner:"Кешкі асқа не қалайсыз?",clearChatButton:"Чатты тазалау",widgetTitle:"КЕРЕМЕТ ШАРАПТЫ ТАБЫҢЫЗ",widgetSubtitle:"Таңдауларыңызды бөлісіңіз — тағам, көңіл-күй, бюджет немесе жағдай — және біздің AI-сомелье сізге бірнеше секундта шарап ұсынады",searchPlaceholder:"Кілт сөзді немесе сипаттаманы енгізіңіз","wineDetails.price":"Бағасы","wineDetails.region":"Өңір","wineDetails.type":"Түрі","wineDetails.moreInfo":"Толығырақ","wineDetails.reason":"Себебі","wineDetails.code":"Код","wineDetails.buy":"Сатып алу",searchButton:"Іздеу",priceRange:"Баға диапазоны",wineColor:"Шарап түсі",intensity:"Қанықтылық",red:"Қызыл",white:"Ақ",rose:"Розалық",light:"Жеңіл",medium:"Орташа",full:"Толық",barTitle:"Шарапқа арналған тіскебасарлар",barSubtitle:"Төмендегі тағамдарды таңдаңыз және 'Жіберу' батырмасын басыңыз",barSendButton:"Жіберу",barResetButton:"Қалпына келтіру",barName:"Бар атауы",barNotesPlaceholder:"Мұнда өз тілектеріңізді жазыңыз...",placeholderSuggestions:["Пастаға арналған шарап","Балыққа тамаша үйлеседі","Кешке ұсынуға болады"],headerLine1:"Ойларыңызбен бөлісіңіз —",headerLine2:"— және бірнеше секундта мінсіз шарап ұсынысын алыңыз",headerMeal:"тағам",headerMood:"көңіл-күй",headerBudget:"бюджет",headerOccasion:"жағдай",headerOr:"немесе",errorMessage:"Бірдеңе дұрыс болмады. Кейінірек қайта көріңіз.",noResultsMessage:"Іздеуіңізге сәйкес нәтиже табылмады. Басқа сұрау қолданып көріңіз.",ai_sommelier:"AI sommelier"},pt:{lang:"pt",welcomeMessage:"O que você planeja comer? Descreva seu prato e eu recomendarei a harmonização perfeita.",noResultsFound:"Nenhum resultado encontrado.",somethingWentWrong:"Desculpe, algo deu errado.",chatButton1:"Encontre sua harmonização",chatButton2:"Harmonizar vinho agora",chatButton3:"Receber conselho de vinho",chatTitle:"Assistente de Harmonização de Vinhos 🍷",chatSubtitle:"Descreva sua refeição e receba uma recomendação em 30 segundos",inputPlaceholder:"ex., Salada de atum",sendButton:"Harmonizar",poweredBy:"Desenvolvido por",price:"Preço",region:"Região",type:"Tipo",reason:"Sugestão",moreInfo:"Mais informações",tryAgain:"Tentar de novo",similarWines:"Vinhos semelhantes",byTheGlass:"Por taça",winePairingIntro:"Para este vinho, aqui estão algumas sugestões de pratos:",askForDinner:"O que você gostaria de jantar?",clearChatButton:"Limpar chat",widgetTitle:"ENCONTRE SEU VINHO PERFEITO",widgetSubtitle:"Compartilhe o que tiver em mente — sua refeição, humor, orçamento ou ocasião — e nosso sommelier de IA recomendará o vinho perfeito em segundos",searchPlaceholder:"Digite uma palavra-chave ou descrição","wineDetails.reason":"Motivo","wineDetails.price":"Preço","wineDetails.region":"Região","wineDetails.type":"Tipo","wineDetails.moreInfo":"Mais informações","wineDetails.code":"Código","wineDetails.buy":"Comprar",searchButton:"Pesquisar",priceRange:"Faixa de preço",wineColor:"Cor do vinho",intensity:"Intensidade",red:"Tinto",white:"Branco",rose:"Rosé",light:"Leve",medium:"Médio",full:"Encorpado",barTitle:"Pratos do bar",barSubtitle:"Selecione os pratos abaixo e clique em 'Enviar'",barSendButton:"Enviar",barResetButton:"Resetar",barName:"Nome do bar",barNotesPlaceholder:"Adicione seus desejos aqui...",placeholderSuggestions:["Vinho para massa","Perfeito com peixe","Recomendado para uma festa"],headerLine1:"Compartilhe o que tiver em mente —",headerLine2:"— e receba recomendações do vinho perfeito em segundos",headerMeal:"refeição",headerMood:"humor",headerBudget:"orçamento",headerOccasion:"ocasião",headerOr:"ou",errorMessage:"Algo deu errado. Por favor, tente novamente mais tarde.",noResultsMessage:"Nenhum resultado encontrado para sua pesquisa. Por favor, tente uma consulta diferente.",ai_sommelier:"AI sommelier"}};function If(t){return{id:String(t.id),lang:t.lang,available_languages:t.available_languages?t.available_languages:[t.lang],open_ai_key:t.open_ai_key??null,currency:t.currency,title:t.title}}const Cf={0:{logoUrl:null,brandColor:"#7B2BEB"},29:{logoUrl:"https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media/plou_logo.jpg",brandColor:"#e6c6bb"},25:{logoUrl:null,brandColor:"#000000",wineaterColor:"#000000",buttonUppercase:!0,customCss:`
|
|
20
20
|
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;600;700&display=swap');
|
|
21
21
|
:root { --wineater-font-primary: 'Roboto', sans-serif; }
|
|
22
22
|
#wr-Custom {
|
|
@@ -91,7 +91,7 @@ We appreciate your time and valuable input.`),r=X("div","end_button_or",Sa,"Subm
|
|
|
91
91
|
background-color: #de4e2a;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
`,translations:{}},30:{logoUrl:null,brandColor:"#8bae98",wineaterColor:"#8bae98",titleText:"Looking for the perfect bottle? Ask our AI
|
|
94
|
+
`,translations:{}},30:{logoUrl:null,brandColor:"#8bae98",wineaterColor:"#8bae98",titleText:"Looking for the perfect bottle? Ask our AI Wine Geek for personalised recommendations, whatever the meal, mood or occasion.",customCss:`
|
|
95
95
|
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500&display=swap');
|
|
96
96
|
:root { --wineater-font-primary: 'Montserrat', Verdana, Helvetica, Arial, sans-serif; }
|
|
97
97
|
#wr-Custom {
|
|
@@ -117,10 +117,10 @@ We appreciate your time and valuable input.`),r=X("div","end_button_or",Sa,"Subm
|
|
|
117
117
|
background-color: #8bae98;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
`}};function
|
|
120
|
+
`}};function Nf(t){const e={logoUrl:null,brandColor:"#7B2BEB",wineaterColor:"#7B2BEB",customCss:`
|
|
121
121
|
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');
|
|
122
122
|
:root { --wineater-font-primary: 'Bricolage Grotesque', serif; }
|
|
123
|
-
`},n=
|
|
123
|
+
`},n=Cf[t]||{};return{...e,...n}}let de=ot({storeConfig:null,currentLanguage:"en",isConfigLoaded:!1,uiConfig:null});const me={getLanguageFromURL(){return new URLSearchParams(window.location.search).get("lang")},getAppLanguage(){return(de==null?void 0:de.currentLanguage)??"en"},getStoreLanguage(){var t;return((t=de.storeConfig)==null?void 0:t.lang)??null},getApiKey(){var t;return((t=de.storeConfig)==null?void 0:t.open_ai_key)??null},getStoreId(){var t;return((t=de.storeConfig)==null?void 0:t.id)??null},setStoreLanguage(t){if(de.storeConfig&&de.storeConfig.available_languages.includes(t)){de.currentLanguage=t;const e=new URLSearchParams(window.location.search);e.set("lang",t);const n=`${window.location.pathname}?${e.toString()}`;window.history.replaceState({},"",n)}else throw new Error(`Language ${t} is not available in store configuration.`)},getSupportedLanguages(){var t;return((t=de.storeConfig)==null?void 0:t.available_languages)??["en"]},getCurrency(){var t;return((t=de.storeConfig)==null?void 0:t.currency)??"USD"},async initializeStore(){try{const t=await ps.getStoreConfig();de.storeConfig=If(t),de.currentLanguage=de.storeConfig.lang;const e=this.getLanguageFromURL();e&&de.storeConfig.available_languages.includes(e)?this.setStoreLanguage(e):this.setStoreLanguage(de.storeConfig.lang),this.setUiConfig(Nf(de.storeConfig.id)),de.isConfigLoaded=!0}catch(t){console.error("Failed to initialize store:",t),de.isConfigLoaded=!1}},isInitialized(){return de.isConfigLoaded},getUiConfig(){return de.uiConfig},setUiConfig(t){de.uiConfig=t}},Rf={en:"en-US",de:"de-DE",fr:"fr-FR",es:"es-ES",it:"it-IT",ja:"ja-JP",zh:"zh-CN",ru:"ru-RU",kk:"kk-KZ",pt:"pt-PT"};function Df(t,e,n="en"){try{return new Intl.NumberFormat(Rf[n]||"en-US",{style:"currency",currency:e,currencyDisplay:"narrowSymbol"}).format(t)}catch{return t.toString()}}function be({key:t,lang:e}){const n=Ef,s=me.getUiConfig(),i=(s==null?void 0:s.translations)||{};if(i[e]&&i[e][t])return i[e][t];if(n[e]&&n[e][t])return n[e][t];throw new Error(`Translation for key "${t}" not found in language "${e}".`)}async function Af({sourceLang:t,targetLang:e,texts:n,apiKey:s}){var u,l,h,d;if(!s||!t||!e||t===e)return n;const i="https://api.openai.com/v1/chat/completions",r={"Content-Type":"application/json",Authorization:`Bearer ${s}`},o=Object.entries(n).map(([p,f])=>({key:p,text:f})),a=`
|
|
124
124
|
You are a professional translator.
|
|
125
125
|
|
|
126
126
|
The input texts are written in language with code "${t}". Your task is to translate them strictly to the target language with code "${e}".
|
|
@@ -145,18 +145,18 @@ Output:
|
|
|
145
145
|
|
|
146
146
|
Now translate the following input:
|
|
147
147
|
${JSON.stringify(o,null,2)}
|
|
148
|
-
`,c=JSON.stringify({model:"gpt-3.5-turbo",messages:[{role:"system",content:"You are a professional translator."},{role:"user",content:a}],temperature:.2,max_tokens:1e3});try{const
|
|
148
|
+
`,c=JSON.stringify({model:"gpt-3.5-turbo",messages:[{role:"system",content:"You are a professional translator."},{role:"user",content:a}],temperature:.2,max_tokens:1e3});try{const f=await(await fetch(i,{method:"POST",headers:r,body:c})).json(),m=(d=(h=(l=(u=f==null?void 0:f.choices)==null?void 0:u[0])==null?void 0:l.message)==null?void 0:h.content)==null?void 0:d.trim();if(!m)throw new Error("No response from OpenAI");const S=JSON.parse(m),x={};return S.forEach(T=>{T.key&&T.text!==void 0&&(x[T.key]=T.text)}),{...n,...x}}catch(p){return console.error("Error translating texts:",p),n}}uc();var Mf=As('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38" fill="none"><path d="M10.036 4.96326H28.2826L34.3648 14.0865L19.1593 33.8537L3.95381 14.0865L10.036 4.96326Z" stroke="currentColor" stroke-width="3.0411" stroke-linecap="round" stroke-linejoin="round"></path><path d="M17.6388 4.96326L13.0771 14.0865L19.1593 33.8537L25.2415 14.0865L20.6799 4.96326" stroke="currentColor" stroke-width="3.0411" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3.95381 14.0867H34.3648" stroke="currentColor" stroke-width="3.0411" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function wl(t,e){let n=ze(e,"className",8,""),s=ze(e,"size",8,20);var i=Mf();H(()=>{Kt(i,0,An(n())),Re(i,"width",s()),Re(i,"height",s())}),M(t,i)}var Of=As('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38" fill="none"><path d="M29.533 21.4034C31.7986 19.1834 34.0946 16.5224 34.0946 13.0404C34.0946 10.8224 33.2135 8.69521 31.6451 7.12684C30.0768 5.55847 27.9496 4.67737 25.7316 4.67737C23.0554 4.67737 21.1699 5.43764 18.8891 7.71847C16.6083 5.43764 14.7228 4.67737 12.0467 4.67737C9.82865 4.67737 7.70148 5.55847 6.13311 7.12684C4.56474 8.69521 3.68364 10.8224 3.68364 13.0404C3.68364 16.5376 5.96446 19.1986 8.24528 21.4034L18.8891 32.0472L29.533 21.4034Z" stroke="currentColor" stroke-width="3.0411" stroke-linecap="round" stroke-linejoin="round"></path><path d="M18.8891 19.8829L17.3686 18.3623L20.4097 15.3212L15.848 10.7596L18.8891 7.71851" stroke="currentColor" stroke-width="3.0411" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function bl(t,e){let n=ze(e,"className",8,""),s=ze(e,"size",8,20);var i=Of();H(()=>{Kt(i,0,An(n())),Re(i,"width",s()),Re(i,"height",s())}),M(t,i)}var Pf=As('<svg viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.041" d="M19.57 17.655a3.801 3.801 0 1 0 0-7.602 3.801 3.801 0 0 0 0 7.602Z"></path><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.041" d="M19.57 3.97a9.884 9.884 0 0 0-9.458 6.995c-1.673 4.76-1.186 5.93-4.835 9.245a4.562 4.562 0 0 0 2.889 8.09c6.082 0 12.772-2.738 17.334-6.54a9.885 9.885 0 0 0-5.93-17.79Z"></path><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.041" d="m28.693 10.053 3.33 6.842c.316.983.475 2.009.471 3.041a9.867 9.867 0 0 1-3.953 7.907c-4.562 3.801-11.252 6.538-17.334 6.538a4.562 4.562 0 0 1-4.075-2.524l-2.92-5.839"></path></svg>');function Rr(t,e){let n=ze(e,"className",8,""),s=ze(e,"size",8,20);var i=Pf();H(()=>{Kt(i,0,An(n())),Re(i,"width",s()),Re(i,"height",s())}),M(t,i)}var Lf=As('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 34" fill="none"><path d="M9.03846 17.0001C10.3456 12.1888 15.9077 8.65686 20.858 8.65686C25.8083 8.65686 29.2846 12.1888 30.5917 17.0001C29.2846 21.8252 25.8083 25.3432 20.858 25.3432C15.9077 25.3432 10.3456 21.8252 9.03846 17.0001Z" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path><path d="M25.0296 17V17.6953" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path><path d="M22.2485 25.2457C20.4397 22.8774 19.4599 19.98 19.4599 16.9999C19.4599 14.0198 20.4397 11.1224 22.2485 8.75403" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path><path d="M9.73372 15.1506C9.73372 11.4379 7.75916 8.6151 3.79615 7.96155C2.40562 10.0473 2.40562 14.9142 4.11597 17C2.39171 19.0858 2.39171 23.9527 3.79615 26.0385C7.75916 25.3849 9.73372 22.5621 9.73372 18.8494" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path><path d="M14.545 10.4089C14.1834 8.48998 12.7512 6.20951 11.1243 4.48525H19.1893C19.8491 4.4828 20.4883 4.71502 20.9927 5.14042C21.497 5.56582 21.8337 6.15668 21.9426 6.80744L22.2624 8.75418" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path><path d="M22.2624 25.2459L21.9426 27.1926C21.8337 27.8434 21.497 28.4342 20.9927 28.8596C20.4883 29.285 19.8491 29.5172 19.1893 29.5148H13.2101C14.5573 27.9873 15.2948 26.0172 15.2819 23.9805" stroke="currentColor" stroke-width="2.78106" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function yl(t,e){let n=ze(e,"className",8,""),s=ze(e,"size",8,20);var i=Lf();H(()=>{Kt(i,0,An(n())),Re(i,"width",s()),Re(i,"height",s())}),M(t,i)}var Bf=q('<span><!></span><span class="wr-Header-label svelte-oiwvqb"> </span>',1),Ff=q('<!><span class="wr-Header-label svelte-oiwvqb"> </span>',1),Wf=q('<!><span class="wr-Header-label svelte-oiwvqb"> </span>',1),zf=q('<h1 class="wr-Header-title svelte-oiwvqb"></h1>'),jf=q('<h1 class="wr-Header-title svelte-oiwvqb"> <span><!></span> <span class="wr-Header-label svelte-oiwvqb"> </span>, <!> <span class="wr-Header-label svelte-oiwvqb"> </span> <br/> <!> <span class="wr-Header-label svelte-oiwvqb"> </span> </h1>'),Uf=q('<div class="wr-Header"><!></div>');const Hf={hash:"svelte-oiwvqb",code:`.wr-Header-title.svelte-oiwvqb {font-weight:600;font-size:24px;margin:0 auto;line-height:1.3;color:#333;text-align:center;
|
|
149
149
|
|
|
150
150
|
/* TODO: add wineater-color to svg */}.wr-Header-icon {display:inline-block;vertical-align:middle;color:var(--wr-wineater-color);}.wr-Header-label.svelte-oiwvqb {color:var(--wr-wineater-color);font-weight:500;}
|
|
151
151
|
|
|
152
152
|
@media screen and (max-width: 768px) {.wr-Header-title.svelte-oiwvqb {display:none;}
|
|
153
|
-
}`};function
|
|
153
|
+
}`};function qf(t,e){Ft(e,!0),Gt(t,Hf);let n=oe(()=>me.getAppLanguage()),s=oe(()=>me.getUiConfig()),i=oe(()=>{var d,p;return((d=window==null?void 0:window.wineaterData)==null?void 0:d.TITLE_TEXT)||((p=v(s))==null?void 0:p.titleText)||null}),r=re(ot(Rr));function o(d){return d.split(/(meal|mood|occasion)/gi).map(p=>({keyword:/^(meal|mood|occasion)$/i.test(p)?p.toLowerCase():null,text:p}))}let a=oe(()=>v(i)?o(v(i)):null);var c=Uf(),u=O(c);{var l=d=>{var p=zf();Dn(p,21,()=>v(a),Rn,(f,m)=>{var S=Ms(),x=xt(S);{var T=E=>{var b=Bf(),y=xt(b),k=O(y);jo(k,()=>v(r),(F,Q)=>{Q(F,{className:"wr-Header-icon",size:"28"})});var P=W(y),V=O(P);H(()=>Y(V,v(m).text)),It("mouseenter",y,()=>C(r,yl,!0)),It("mouseleave",y,()=>C(r,Rr,!0)),M(E,b)},I=E=>{var b=Ff(),y=xt(b);bl(y,{className:"wr-Header-icon",size:"28"});var k=W(y),P=O(k);H(()=>Y(P,v(m).text)),M(E,b)},g=E=>{var b=Wf(),y=xt(b);wl(y,{className:"wr-Header-icon",size:"28"});var k=W(y),P=O(k);H(()=>Y(P,v(m).text)),M(E,b)},_=E=>{var b=Nn();H(()=>Y(b,v(m).text)),M(E,b)};ae(x,E=>{v(m).keyword==="meal"?E(T):v(m).keyword==="mood"?E(I,1):v(m).keyword==="occasion"?E(g,2):E(_,!1)})}M(f,S)}),M(d,p)},h=d=>{var p=jf(),f=O(p),m=W(f),S=O(m);jo(S,()=>v(r),(V,F)=>{F(V,{className:"wr-Header-icon",size:"28"})});var x=W(m,2),T=O(x),I=W(x,2);bl(I,{className:"wr-Header-icon",size:"28"});var g=W(I,2),_=O(g),E=W(g,3),b=W(E);wl(b,{className:"wr-Header-icon",size:"28"});var y=W(b,2),k=O(y),P=W(y);H((V,F,Q,z,B,J)=>{Y(f,`${V??""} `),Y(T,F),Y(_,Q),Y(E,` ${z??""} `),Y(k,B),Y(P,` ${J??""}`)},[()=>be({key:"headerLine1",lang:v(n)}),()=>be({key:"headerMeal",lang:v(n)}),()=>be({key:"headerMood",lang:v(n)}),()=>be({key:"headerOr",lang:v(n)}),()=>be({key:"headerOccasion",lang:v(n)}),()=>be({key:"headerLine2",lang:v(n)})]),It("mouseenter",m,()=>C(r,yl,!0)),It("mouseleave",m,()=>C(r,Rr,!0)),M(d,p)};ae(u,d=>{v(a)?d(l):d(h,!1)})}M(t,c),Wt()}var Vf=q('<option class="wr-Footer-lang"> </option>'),Gf=q('<select class="wr-Footer-dropdown svelte-1sr6y3t"></select>'),Kf=q('<footer class="wr-Footer svelte-1sr6y3t"><div class="wr-Footer-center svelte-1sr6y3t"><a href="https://wineater.com" class="wr-Footer-link svelte-1sr6y3t" target="_blank"><span class="wr-Footer-text"> </span> <img class="wr-Footer-logo svelte-1sr6y3t" alt="Wineater Logo"/> <span class="wr-Footer-text wr-Footer-text--sommelier svelte-1sr6y3t"> </span></a></div> <!></footer>');const Xf={hash:"svelte-1sr6y3t",code:`.wr-Footer.svelte-1sr6y3t {position:relative;border-top:2px solid #f6f7fd;font-weight:200;padding:12px 24px;min-height:40px;}.wr-Footer-center.svelte-1sr6y3t {position:absolute;left:50%;transform:translateX(-50%);text-align:center;}.wr-Footer-dropdown.svelte-1sr6y3t {position:absolute;right:0px;top:50%;transform:translateY(-50%);padding:4px;border-radius:6px;border:2px solid var(--wr-brand-color);background-color:white;color:var(--wr-brand-color);font-weight:500;font-size:12px;cursor:pointer;transition:all 0.2s ease;}.wr-Footer-dropdown.svelte-1sr6y3t:hover {box-shadow:0 4px 8px rgba(123, 43, 235, 0.2);}.wr-Footer-link.svelte-1sr6y3t {text-decoration:none;display:flex;align-items:center;white-space:nowrap;gap:8px;color:#a8a8a8;font-size:12px;line-height:16px;transition:opacity 0.2s ease;}.wr-Footer-link.svelte-1sr6y3t:hover {opacity:0.8;}.wr-Footer-logo.svelte-1sr6y3t {height:16px;width:auto;color:#a8a8a8;}
|
|
154
154
|
|
|
155
155
|
@media screen and (max-width: 768px) {.wr-Footer-text--sommelier.svelte-1sr6y3t {display:none;}
|
|
156
|
-
}`};function
|
|
156
|
+
}`};function Yf(t,e){Ft(e,!0),Gt(t,Xf);let n=ze(e,"countryCode",3,null),s=oe(()=>me.getAppLanguage()),i=oe(()=>me.getSupportedLanguages()),r=oe(()=>me.getStoreId());function o(x){const I=x.target.value;je(Ue.LANGUAGE_CHANGED,v(r),{from_language:v(s),to_language:I}),me.setStoreLanguage(I)}var a=Kf(),c=O(a),u=O(c),l=O(u),h=O(l),d=W(l,2),p=W(d,2),f=O(p),m=W(c,2);{var S=x=>{var T=Gf();Dn(T,21,()=>v(i),Rn,(g,_)=>{var E=Vf(),b=O(E),y={};H(k=>{ru(E,v(_)===v(s)),Y(b,k),y!==(y=v(_))&&(E.value=(E.__value=v(_))??"")},[()=>v(_).toUpperCase()]),M(g,E)});var I;nu(T),H(()=>{I!==(I=v(s))&&(T.value=(T.__value=v(s))??"",Ho(T,v(s)))}),fn("change",T,o),M(x,T)};ae(m,x=>{v(i).length>1&&x(S)})}H((x,T)=>{Y(h,x),Re(d,"src",n()==="ru"?"https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media/divino_logo.svg?x=5":"https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media/logo_medium_gray.svg"),Y(f,T)},[()=>be({key:"poweredBy",lang:v(s)}),()=>be({key:"ai_sommelier",lang:v(s)})]),M(t,a),Wt()}Ds(["change"]);var Jf=q('<a rel="noopener noreferrer"><!></a>'),Qf=q("<button><!></button>");const Zf={hash:"svelte-8cxv3l",code:`.wr-Action.svelte-8cxv3l {background:transparent;border:none;font-family:inherit;cursor:pointer;display:block;text-decoration:none;transition:background 0.2s,
|
|
157
157
|
color 0.2s,
|
|
158
|
-
box-shadow 0.2s;}.wr-Action.primary.svelte-8cxv3l {background:var(--wr-brand-color);color:#fff;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;&:hover {opacity:0.8;}}.wr-Action.outlined.svelte-8cxv3l {background:transparent;color:var(--wr-brand-color);border:2px solid var(--wr-brand-color);border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;&:hover {box-shadow:0 4px 8px rgba(123, 43, 235, 0.25);background-color:var(--wr-brand-color);color:#fff;}}.wr-Action--uppercase.svelte-8cxv3l {text-transform:uppercase;}`};function
|
|
159
|
-
opacity 0.3s ease-in-out;}.wr-Search-input.svelte-1wah7ro:focus {border-color:var(--wr-brand-color);}.wr-Search-input.svelte-1wah7ro:focus::placeholder {opacity:0.5;}`};function
|
|
158
|
+
box-shadow 0.2s;}.wr-Action.primary.svelte-8cxv3l {background:var(--wr-brand-color);color:#fff;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;&:hover {opacity:0.8;}}.wr-Action.outlined.svelte-8cxv3l {background:transparent;color:var(--wr-brand-color);border:2px solid var(--wr-brand-color);border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;&:hover {box-shadow:0 4px 8px rgba(123, 43, 235, 0.25);background-color:var(--wr-brand-color);color:#fff;}}.wr-Action--uppercase.svelte-8cxv3l {text-transform:uppercase;}`};function gs(t,e){Ft(e,!0),Gt(t,Zf);let n=ze(e,"type",3,"button"),s=ze(e,"variant",3,"primary"),i=ze(e,"target",3,"_self"),r=me.getUiConfig(),o=`wr-Action ${s()} ${e.className||""} ${r.buttonUppercase?"wr-Action--uppercase":""}`.trim();var a=Ms(),c=xt(a);{var u=h=>{var d=Jf(),p=O(d);zo(p,e,"default",{}),H(()=>{Kt(d,1,An(o),"svelte-8cxv3l"),Re(d,"href",e.href),Re(d,"id",e.id),Re(d,"target",i())}),fn("click",d,function(...f){var m;(m=e.handleClick)==null||m.apply(this,f)}),M(h,d)},l=h=>{var d=Qf(),p=O(d);zo(p,e,"default",{}),H(()=>{Kt(d,1,An(o),"svelte-8cxv3l"),Re(d,"type",n()),Re(d,"id",e.id)}),fn("click",d,function(...f){var m;(m=e.handleClick)==null||m.apply(this,f)}),M(h,d)};ae(c,h=>{e.href?h(u):h(l,!1)})}M(t,a),Wt()}Ds(["click"]);var $f=q('<form class="wr-Search svelte-1wah7ro"><span class="wr-Search-icon svelte-1wah7ro"></span> <input class="wr-Search-input svelte-1wah7ro" type="text"/> <!></form>');const ep={hash:"svelte-1wah7ro",code:`.wr-Search.svelte-1wah7ro {position:relative;margin:12px auto;padding:0 6px;display:flex;align-items:center;border:2px solid #d5d9ee;border-radius:10px;}.wr-Search-icon.svelte-1wah7ro {left:12px;width:24px;height:24px;flex:0 0 auto;background-image:url('https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media//search.svg?x=1');background-repeat:no-repeat;background-size:contain;z-index:2;}.wr-Search-input.svelte-1wah7ro {flex:1 1 0%;min-width:0;padding:12px;font-size:16px;border:none;border-radius:10px;outline:none;transition:border 0.2s ease;}.wr-Search-input.svelte-1wah7ro::placeholder {color:var(--wr-wineater-color);opacity:1;transition:color 0.3s ease,
|
|
159
|
+
opacity 0.3s ease-in-out;}.wr-Search-input.svelte-1wah7ro:focus {border-color:var(--wr-brand-color);}.wr-Search-input.svelte-1wah7ro:focus::placeholder {opacity:0.5;}`};function tp(t,e){Ft(e,!0),Gt(t,ep);let n=ze(e,"searchQuery",15),s,i=re(!1),r=re(0),o=re(0),a=re(!0),c=re(!1),u=oe(()=>me.getAppLanguage()),l=0;function h(){return s}function d(){const g=++l,_=be({key:"placeholderSuggestions",lang:v(u)});if(!s||!_.length)return;C(c,!0);const E=()=>{if(g!==l||!s||!v(c)||v(i)||n().length)return;const b=_[v(r)];if(v(a)){if(s.placeholder=b.substring(0,lo(o)),v(o)>b.length){C(a,!1),setTimeout(E,1600);return}setTimeout(E,90)}else{if(s.placeholder=b.substring(0,lo(o,-1)),v(o)<0){C(a,!0),C(r,(v(r)+1)%_.length),setTimeout(E,450);return}setTimeout(E,45)}};E()}function p(){C(c,!1)}function f(){C(i,!0),p(),s&&(s.placeholder="")}function m(){C(i,!1),C(o,0),C(a,!0),C(c,!1)}ss(()=>{if(!s||n().length>0)return;l++,C(c,!1),C(r,0),C(o,0),C(a,!0);const g=be({key:"placeholderSuggestions",lang:v(u)});g&&g.length?s.placeholder=g[0]:s.placeholder=be({key:"searchPlaceholder",lang:v(u)})}),ss(()=>{s&&e.initialized&&!v(i)&&!n().length&&!v(c)&&d(),n().length>0&&v(c)&&(C(c,!1),l++)}),Bi(()=>{});var S={getSearchElement:h},x=$f(),T=W(O(x),2);cu(T,g=>s=g,()=>s);var I=W(T,2);return gs(I,{className:"wr-Search-button",type:"submit",variant:"primary",children:(g,_)=>{var E=Nn();H(b=>Y(E,b),[()=>be({key:"searchButton",lang:v(u)})]),M(g,E)},$$slots:{default:!0}}),It("submit",x,function(...g){var _;(_=e.onSubmit)==null||_.apply(this,g)}),It("focus",T,f),It("blur",T,m),lu(T,n),M(t,x),Wt(S)}var np=q('<div class="wr-Loader svelte-li6gfl"><div class="wr-Loader-indicator svelte-li6gfl"><span class="svelte-li6gfl"></span> <span class="svelte-li6gfl"></span> <span class="svelte-li6gfl"></span></div></div>');const sp={hash:"svelte-li6gfl",code:`.wr-Loader.svelte-li6gfl {position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);z-index:10000;text-align:center;}.wr-Loader-indicator.svelte-li6gfl {display:flex;justify-content:center;align-items:center;height:40px;visibility:visible;background-color:white;}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl) {display:block;width:8px;height:8px;margin:0 3px;border-radius:50%;background:linear-gradient(90deg, var(--wr-brand-color), var(--wineater-corp-color));opacity:0.7;
|
|
160
160
|
animation: svelte-li6gfl-typing 1s infinite;}
|
|
161
161
|
|
|
162
162
|
@keyframes svelte-li6gfl-typing {
|
|
@@ -169,12 +169,13 @@ ${JSON.stringify(o,null,2)}
|
|
|
169
169
|
transform: translateY(-8px);
|
|
170
170
|
opacity: 1;
|
|
171
171
|
}
|
|
172
|
-
}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(1) {animation-delay:0s;}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(2) {animation-delay:0.15s;}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(3) {animation-delay:0.3s;}`};function
|
|
172
|
+
}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(1) {animation-delay:0s;}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(2) {animation-delay:0.15s;}.wr-Loader-indicator.svelte-li6gfl span:where(.svelte-li6gfl):nth-child(3) {animation-delay:0.3s;}`};function ip(t){Gt(t,sp);var e=np();M(t,e)}var rp=q('<p class="wr-WinePopup-desc wr-WinePopup-text svelte-17gehox"> </p>'),op=q('<div class="wr-WinePopup-reason svelte-17gehox"> </div>'),ap=q('<p class="wr-WinePopup-pairing wr-WinePopup-text svelte-17gehox"> </p>'),lp=q('<span class="wr-WinePopup-tag svelte-17gehox"> </span>'),cp=q('<div class="wr-WinePopup-tags svelte-17gehox"></div>'),up=q('<div class="wr-WinePopupMobile svelte-17gehox"><div class="wr-WinePopupMobile-overlay svelte-17gehox"></div> <div class="wr-WinePopupMobile-wrapper svelte-17gehox"><div class="wr-WinePopup js-WinePopup svelte-17gehox"><div class="wr-WinePopup-header svelte-17gehox"><h2 class="wr-WinePopup-title svelte-17gehox"> </h2> <button class="wr-WinePopup-close js-WinePopupClose svelte-17gehox">×</button></div> <!> <!> <!></div></div></div>'),hp=q('<p class="wr-WinePopup-desc wr-WinePopup-text svelte-17gehox"> </p>'),dp=q('<div class="wr-WinePopup-reason svelte-17gehox"> </div>'),fp=q('<p class="wr-WinePopup-pairing wr-WinePopup-text svelte-17gehox"> </p>'),pp=q('<span class="wr-WinePopup-tag svelte-17gehox"> </span>'),gp=q('<div class="wr-WinePopup-tags svelte-17gehox"></div>'),mp=q('<div class="wr-WinePopup svelte-17gehox"><div class="wr-WinePopup-header svelte-17gehox"><h2 class="wr-WinePopup-title svelte-17gehox"> </h2> <button class="wr-WinePopup-close svelte-17gehox">×</button></div> <!> <!> <!></div>');const vp={hash:"svelte-17gehox",code:".wr-WinePopup.svelte-17gehox {position:absolute;width:100%;background-color:white;padding:16px;border-radius:16px;box-shadow:0 6px 30px rgba(0, 0, 0, 0.2);text-align:left;font-size:14px;box-sizing:border-box;display:flex;flex-direction:column;}.wr-WinePopup-text.svelte-17gehox {margin:5px 0;}.wr-WinePopup-header.svelte-17gehox {display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}.wr-WinePopup-title.svelte-17gehox {font-size:16px;font-weight:600;margin:0;flex:1;line-height:1.3;}.wr-WinePopup-close.svelte-17gehox {font-size:20px;font-weight:bold;cursor:pointer;color:#999;border:none;background:transparent;line-height:1;}.wr-WinePopup-close.svelte-17gehox:hover {color:#000;}.wr-WinePopup-desc.svelte-17gehox {margin-top:8px;}.wr-WinePopup-reason.svelte-17gehox {font-size:14px;font-weight:400;color:#333;margin-top:8px;}.wr-WinePopup-pairing.svelte-17gehox {margin-top:8px;}.wr-WinePopup-tags.svelte-17gehox {display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;justify-content:center;}.wr-WinePopup-tag.svelte-17gehox {display:inline-block;padding:4px 8px;border-radius:12px;background-color:#f5f0ff;border:1px solid #ddd;font-size:13px;color:#333;text-transform:capitalize;}.wr-WinePopupMobile.svelte-17gehox {position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;}.wr-WinePopupMobile-overlay.svelte-17gehox {position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0, 0, 0, 0.5);}.wr-WinePopupMobile-wrapper.svelte-17gehox {position:absolute;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%, -50%);max-width:90%;max-height:80%;overflow-y:auto;background:transparent;}"};function Sl(t,e){Ft(e,!0),Gt(t,vp);const n=!!e.isMobile;var s=Ms(),i=xt(s);{var r=a=>{var c=up(),u=O(c),l=W(u,2),h=O(l),d=O(h),p=O(d),f=O(p),m=W(p,2),S=W(d,2);{var x=b=>{var y=rp(),k=O(y);H(()=>Y(k,e.shortDescription)),M(b,y)};ae(S,b=>{e.shortDescription&&b(x)})}var T=W(S,2);{var I=b=>{var y=op(),k=O(y);H(()=>Y(k,e.reason)),M(b,y)},g=b=>{var y=ap(),k=O(y);H(()=>Y(k,e.pairing)),M(b,y)};ae(T,b=>{e.reason?b(I):e.pairing&&b(g,1)})}var _=W(T,2);{var E=b=>{var y=cp();Dn(y,21,()=>e.tags,Rn,(k,P)=>{var V=lp(),F=O(V);H(()=>Y(F,v(P))),M(k,V)}),M(b,y)};ae(_,b=>{e.tags&&e.tags.length&&b(E)})}H(()=>Y(f,e.title)),fn("click",u,function(...b){var y;(y=e.onClose)==null||y.apply(this,b)}),fn("click",m,function(...b){var y;(y=e.onClose)==null||y.apply(this,b)}),M(a,c)},o=a=>{var c=mp(),u=O(c),l=O(u),h=O(l),d=W(l,2),p=W(u,2);{var f=g=>{var _=hp(),E=O(_);H(()=>Y(E,e.shortDescription)),M(g,_)};ae(p,g=>{e.shortDescription&&g(f)})}var m=W(p,2);{var S=g=>{var _=dp(),E=O(_);H(()=>Y(E,e.reason)),M(g,_)},x=g=>{var _=fp(),E=O(_);H(()=>Y(E,e.pairing)),M(g,_)};ae(m,g=>{e.reason?g(S):e.pairing&&g(x,1)})}var T=W(m,2);{var I=g=>{var _=gp();Dn(_,21,()=>e.tags,Rn,(E,b)=>{var y=pp(),k=O(y);H(()=>Y(k,v(b))),M(E,y)}),M(g,_)};ae(T,g=>{e.tags&&e.tags.length&&g(I)})}H(()=>Y(h,e.title)),fn("click",d,function(...g){var _;(_=e.onClose)==null||_.apply(this,g)}),M(a,c)};ae(i,a=>{n?a(r):a(o,!1)})}M(t,s),Wt()}Ds(["click"]);var wp=q('<img class="wr-WineTile-image svelte-yk3emv"/>'),bp=q('<div class="wr-WineTile-price svelte-yk3emv"> </div>'),yp=q('<div class="wr-WineTile-glass svelte-yk3emv"> </div>'),Sp=q('<div class="wr-WineTile-params svelte-yk3emv"> </div>'),_p=q('<div class="wr-WineTilePopup-reason svelte-yk3emv"> </div>'),kp=q('<span class="wr-WineTilePopup-tag svelte-yk3emv"> </span>'),Tp=q('<div class="wr-WineTilePopup-tags svelte-yk3emv"></div>'),xp=q("<div><!> <!></div>"),Ep=q('<article><header class="wr-WineTile-header svelte-yk3emv"><!> <!> <!> <h3 class="wr-WineTile-title svelte-yk3emv"> </h3></header> <!> <footer class="wr-WineTile-footer svelte-yk3emv"><div class="wr-WineTile-actions svelte-yk3emv"><!> <!></div></footer> <!> <!></article> <!>',1);const Ip={hash:"svelte-yk3emv",code:`.wr-WineTile.svelte-yk3emv {display:flex;flex-direction:column;align-items:center;text-align:center;box-sizing:border-box;padding:16px 8px;border-right:2px solid #f6f7fd;position:relative;transform:translateY(0);opacity:1;transition:transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1),
|
|
173
173
|
opacity 180ms cubic-bezier(0.22, 0.61, 0.36, 1);will-change:transform, opacity;}.wr-WineTile.svelte-yk3emv:last-child {border-right:none;}.wr-WineTile.ww-slide-up.svelte-yk3emv {transform:translateY(-28px);opacity:0;}.wr-WineTile-header.svelte-yk3emv {display:flex;flex-direction:column;align-items:center;justify-content:flex-start;}.wr-WineTile-image.svelte-yk3emv {height:200px;width:100%;max-width:100%;object-fit:contain;margin:0 auto 16px;display:block;}.wr-WineTile-title.svelte-yk3emv {font-size:15px;font-weight:500;margin:0 0 8px;min-height:3rem;line-height:1.2;text-align:center;color:#000;}.wr-WineTile-params.svelte-yk3emv {font-size:14px;color:#666;white-space:normal;text-align:center;}.wr-WineTile-footer.svelte-yk3emv {margin-top:auto;display:flex;align-items:center;gap:12px;justify-content:center;}.wr-WineTile-price.svelte-yk3emv {font-size:16px;font-weight:400;margin-bottom:8px;color:#333;}.wr-WineTile-glass.svelte-yk3emv {font-size:12px;font-weight:500;color:var(--wr-brand-color, #7b2beb);margin-bottom:8px;}.wr-WineTile-actions.svelte-yk3emv {margin:16px auto 0;display:flex;flex-direction:column;align-items:center;gap:8px;}
|
|
174
174
|
|
|
175
175
|
/* :global обязателен — класс уезжает внутрь <Action>, а скоуп Svelte
|
|
176
176
|
действует только на разметку этого компонента, иначе правило отбрасывается
|
|
177
|
-
как неиспользуемое. Цвет тот же, что у Buy; подчёркивание выезжает слева. */.wr-WineTile-action--similar {
|
|
177
|
+
как неиспользуемое. Цвет тот же, что у Buy; подчёркивание выезжает слева. */.wr-WineTile-action--similar {
|
|
178
|
+
/* Заметно легче кнопки Buy (14px/500) — это вторичное действие, не кнопка */font-size:12px;font-weight:400;color:var(--wr-brand-color, #7b2beb);text-decoration:none;background:transparent;border:none;padding:0;position:relative;}.wr-WineTile-action--similar::after {content:'';position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1);}.wr-WineTile-action--similar:hover::after,
|
|
178
179
|
.wr-WineTile-action--similar:focus-visible::after {transform:scaleX(1);}
|
|
179
180
|
|
|
180
181
|
/* Hover popup inside tile */.wr-WineTilePopup.svelte-yk3emv {display:none;position:absolute;top:0;left:0;width:100%;padding:12px;background-color:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px rgba(0, 0, 0, 0.1);transition:transform 0.3s ease;z-index:999;}.wr-WineTilePopup.visible.svelte-yk3emv {display:block;}.wr-WineTilePopup.slide-in.svelte-yk3emv {
|
|
@@ -192,7 +193,7 @@ ${JSON.stringify(o,null,2)}
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
@media screen and (max-width: 768px) {.wr-WineTile.svelte-yk3emv {flex:0 0 auto;scroll-snap-align:center;width:240px;text-align:center;}
|
|
195
|
-
}`};function
|
|
196
|
+
}`};function Cp(t,e){Ft(e,!0),Gt(t,Ip);let n=oe(()=>me.getAppLanguage());const s=(N,A)=>N[A]||N[A.charAt(0).toUpperCase()+A.slice(1)],i=(N,A)=>A.map(Z=>s(N,Z)).filter(Boolean).join(" • ");function r(N){var A;return Df(N,((A=me.getCurrency)==null?void 0:A.call(me))||"USD",v(n))}function o(N){return e.selectedWineId===N}function a(N){return!!(N.reason||N.shortDescription||N.tags)}function c(N,A){let Z=(N==null?void 0:N.tags)||A.tags;return Z?(Array.isArray(Z)&&(Z=Z.join(",")),typeof Z!="string"?[]:Z.split(",").map(le=>le.trim()).filter(Boolean)):[]}let u=re(!1);Bi(()=>{const N=()=>{C(u,window.innerWidth<=768)};return N(),window.addEventListener("resize",N),()=>{window.removeEventListener("resize",N)}});var l=Ep(),h=xt(l),d=O(h),p=O(d);{var f=N=>{var A=wp();H(()=>{Re(A,"src",e.wine.image),Re(A,"alt",e.wine.title)}),M(N,A)};ae(p,N=>{e.wine.image&&N(f)})}var m=W(p,2);{var S=N=>{var A=bp(),Z=O(A);H(le=>Y(Z,le),[()=>r(e.wine.total)]),M(N,A)};ae(m,N=>{e.wine.total&&N(S)})}var x=W(m,2);{var T=N=>{var A=yp(),Z=O(A);H((le,ke)=>Y(Z,`${le??""}${ke??""}`),[()=>be({key:"byTheGlass",lang:v(n)}),()=>e.wine.glassPrice?` — ${r(e.wine.glassPrice)}`:""]),M(N,A)};ae(x,N=>{e.wine.byTheGlass&&N(T)})}var I=W(x,2),g=O(I),_=W(d,2);{var E=N=>{var A=Sp(),Z=O(A);H(le=>Y(Z,le),[()=>i(e.wine,["type","country","region","grape"])]),M(N,A)},b=oe(()=>i(e.wine,["type","country","region","grape"]));ae(_,N=>{v(b)&&N(E)})}var y=W(_,2),k=O(y),P=O(k);{var V=N=>{gs(N,{get href(){return e.wine.url},handleClick:()=>e.onBuyLinkClick(e.wine,e.index),className:"wr-WineTile-action wr-WineTile-action--link js-WineTileAction",target:"_blank",variant:"outlined",children:(A,Z)=>{var le=Nn();H(ke=>Y(le,ke),[()=>be({key:"wineDetails.buy",lang:v(n)})]),M(A,le)},$$slots:{default:!0}})},F=N=>{gs(N,{handleClick:()=>e.onBuyClick(e.wine,e.index),variant:"outlined",className:"wr-WineTile-action wr-WineTile-action--button js-WineTileAction",children:(A,Z)=>{var le=Nn();H(ke=>Y(le,ke),[()=>be({key:"moreInfo",lang:v(n)})]),M(A,le)},$$slots:{default:!0}})};ae(P,N=>{e.wine.url?N(V):N(F,!1)})}var Q=W(P,2);{var z=N=>{gs(N,{handleClick:()=>e.onSimilarClick(e.wine),variant:"text",className:"wr-WineTile-action wr-WineTile-action--similar js-WineTileAction",children:(A,Z)=>{var le=Nn();H(ke=>Y(le,ke),[()=>be({key:"similarWines",lang:v(n)})]),M(A,le)},$$slots:{default:!0}})};ae(Q,N=>{e.onSimilarClick&&N(z)})}var B=W(y,2);{var J=N=>{{let A=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.shortDescription)||e.wine.shortDescription}),Z=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.reason)||e.wine.reason}),le=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.pairingRecommendation)||e.wine.pairingRecommendation}),ke=oe(()=>c(e.translatedPopup,e.wine));Sl(N,{get title(){return e.wine.title},get shortDescription(){return v(A)},get reason(){return v(Z)},get pairing(){return v(le)},get tags(){return v(ke)},get onClose(){return e.onPopupClose},isMobile:!1})}},ee=oe(()=>o(e.wine.id)&&!v(u));ae(B,N=>{v(ee)&&N(J)})}var D=W(B,2);{var te=N=>{var A=xp(),Z=O(A);{var le=Ge=>{var De=_p(),R=O(De);H(()=>{var L,ne;return Y(R,((L=e.translatedPopup)==null?void 0:L.reason)||((ne=e.translatedPopup)==null?void 0:ne.shortDescription)||e.wine.reason||e.wine.shortDescription)}),M(Ge,De)};ae(Z,Ge=>{var De,R;((De=e.translatedPopup)!=null&&De.reason||(R=e.translatedPopup)!=null&&R.shortDescription||e.wine.reason||e.wine.shortDescription)&&Ge(le)})}var ke=W(Z,2);{var ue=Ge=>{var De=Tp();Dn(De,21,()=>c(e.translatedPopup,e.wine),Rn,(R,L)=>{var ne=kp(),Ot=O(ne);H(()=>Y(Ot,v(L))),M(R,ne)}),M(Ge,De)};ae(ke,Ge=>{var De,R;((De=e.translatedPopup)!=null&&De.tags||(R=e.translatedPopup)!=null&&R.Tags||e.wine.tags)&&Ge(ue)})}H(()=>Kt(A,1,`wr-WineTilePopup ${e.hoveredWineId===e.wine.id?"slide-in visible":""}`,"svelte-yk3emv")),M(N,A)},Ae=oe(()=>a(e.wine));ae(D,N=>{v(Ae)&&N(te)})}var _e=W(h,2);{var Mt=N=>{{let A=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.shortDescription)||e.wine.shortDescription}),Z=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.reason)||e.wine.reason}),le=oe(()=>{var ue;return((ue=e.translatedPopup)==null?void 0:ue.pairingRecommendation)||e.wine.pairingRecommendation}),ke=oe(()=>c(e.translatedPopup,e.wine));Sl(N,{get title(){return e.wine.title},get shortDescription(){return v(A)},get reason(){return v(Z)},get pairing(){return v(le)},get tags(){return v(ke)},get onClose(){return e.onPopupClose},isMobile:!0})}},yt=oe(()=>o(e.wine.id)&&v(u));ae(_e,N=>{v(yt)&&N(Mt)})}H(()=>{Kt(h,1,`wr-WineTile ${e.isAnimating?"ww-slide-up":""}`,"svelte-yk3emv"),Y(g,`${(e.wine.producer?e.wine.producer:"")??""} ${e.wine.title??""}`)}),It("mouseenter",h,()=>e.onTileEnter(e.wine)),It("mouseleave",h,()=>e.onTileLeave(e.wine)),fn("click",h,N=>e.onTileClick(N,e.wine)),M(t,l),Wt()}Ds(["click"]);function Np(t){if(!t)return"";const e="custom-ui-config-style";if(document.getElementById(e))return;const n=document.createElement("style");return n.id=e,n.innerHTML=t,document.head.appendChild(n),e}var Rp=q('<div class="wr-App-picture svelte-1n46o8q"><img class="wr-App-logo svelte-1n46o8q" alt=""/></div>'),Dp=q('<div class="wr-App-error svelte-1n46o8q"><p> </p></div>'),Ap=q('<div class="wr-App-showMore svelte-1n46o8q"><!></div>'),Mp=q('<div class="wr-App-placeholder svelte-1n46o8q"></div> <!>',1),Op=q('<div id="wr-Custom" class="wr-App svelte-1n46o8q"><!> <!> <!> <!> <div class="wr-App-content svelte-1n46o8q"><!></div> <!></div>');const Pp={hash:"svelte-1n46o8q",code:`
|
|
196
197
|
/* ===================== 1) CSS Variables ===================== */:root {--wineater-corp-color: #0044ff;
|
|
197
198
|
/* --wr-brand-color is set dynamically from uiConfig.brandColor */--wr-brand-color: #7b2beb; /* fallback value */}
|
|
198
199
|
|
|
@@ -204,4 +205,4 @@ ${JSON.stringify(o,null,2)}
|
|
|
204
205
|
|
|
205
206
|
/* ===================== 13) Mobile Styles ===================== */
|
|
206
207
|
@media screen and (max-width: 768px) {.wr-App.svelte-1n46o8q {flex-direction:column;padding:0px 16px;min-width:100vw;}.wr-App-placeholder.svelte-1n46o8q {display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0;width:calc(100vw - 32px);min-width:calc(100vw - 32px);}
|
|
207
|
-
}`};function
|
|
208
|
+
}`};function Lp(t,e){var ue,Ge,De;Ft(e,!0),Gt(t,Pp);function n(){var R;ji("chatbotToken",((R=window.wineaterData)==null?void 0:R.CLIENT_TOKEN)||s,365),Xo()}const s="HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG";new Sf({projectKey:"PA8j9fAi49i6g2QnvpNs",__DISABLE_SECURE_MODE:!0}).start(),n();const r=((ue=window==null?void 0:window.wineaterData)==null?void 0:ue.WIDGET_TYPE)||"store",o=((Ge=window==null?void 0:window.wineaterData)==null?void 0:Ge.COUNTRY_CODE)||null;(De=window==null?void 0:window.wineaterData)!=null&&De.WIDGET_WRAPPER;let a=re(!1),c=re(!1),u=re(!1),l=re(ot([])),h=re(null),d=re(""),p=re(null),f=re(!1),m=re(null),S=re(ot([])),x=re(""),T=re(!1),I=re(ot([])),g=oe(()=>me.getAppLanguage()),_=oe(()=>me.getStoreLanguage()),E=oe(()=>me.getApiKey()),b=oe(()=>me.getStoreId()),y=oe(()=>me.isInitialized()),k=oe(()=>me.getUiConfig());function P(){C(p,be({key:"errorMessage",lang:v(g)}),!0)}const V=()=>C(p,null);async function F(R){if(v(g)===v(_)||r!=="bar")return R.map(()=>({}));const L=["shortDescription","reason","pairingRecommendation","tags"],ne=R[0];if(!ne)return R.map(()=>({}));const Ot=L.filter(Pt=>Pt in ne),bs=4,ys=[];for(let Pt=0;Pt<R.length;Pt+=bs){const ui=R.slice(Pt,Pt+bs).map(async hi=>{const di=Ot.map(he=>{const Ke=hi[he]||hi[he.toLowerCase()];return Ke?{key:he,text:Array.isArray(Ke)?Ke.join(", "):Ke}:null}).filter(Boolean);return di.length===0?{}:await Af({sourceLang:v(_),targetLang:v(g),texts:Object.fromEntries(di.map(he=>[he.key,he.text])),apiKey:v(E)})}),Mr=await Promise.all(ui);ys.push(...Mr)}return ys}async function Q(){C(c,!0);try{C(l,await ps.getInstantRecommendations(),!0)}catch(R){console.error("[wineater] instant recommendations error:",R),P()}finally{C(c,!1)}}function z(R=220){return!v(l)||v(l).length===0?Promise.resolve():(C(f,!0),new Promise(L=>{setTimeout(()=>{L()},R)}))}async function B(R){R.preventDefault();let L="";try{C(c,!0),V(),await z(220),C(l,[],!0),C(f,!1),C(T,!1),C(I,[],!0),L=v(d).trim()+";",C(x,L,!0);try{je(Ue.SEARCH_PERFORMED,v(b),{query:L})}catch(Ot){console.error("Error tracking search event:",Ot)}const ne=await ps.getWineRecommendationsSearch(L);!ne||ne.length===0?(C(l,[],!0),C(S,[],!0),C(p,be({key:"noResultsMessage",lang:v(g)}),!0),je(Ue.NO_RESULTS_FOUND,v(b),{query:L})):(C(l,ne,!0),C(T,vl==="2"&&ne.length>=4,!0),je(Ue.SEARCH_RESULTS_DISPLAYED,v(b),{results_count:ne.length,results:ne,query:L}))}catch(ne){C(l,[],!0),console.error("[wineater] search error:",ne),je(Ue.ERROR_OCCURRED,v(b),{error_message:ne==null?void 0:ne.message,query:L}),P()}finally{C(c,!1)}}async function J(){if(v(u)||!v(T))return;const R=v(l);try{C(u,!0),C(c,!0),C(I,[...new Set([...v(I),...v(l).map(Ot=>Ot.id)])],!0),await z(220),C(l,[],!0),C(f,!1);const{recommendations:L,hasMore:ne}=await ps.getMoreWineRecommendations(v(x),v(I));je(Ue.SHOW_MORE_CLICKED,v(b),{query:v(x),results_count:L.length}),C(l,L.length>0?L:R,!0),C(T,ne,!0)}catch(L){console.error("[wineater] try again error:",L),C(l,R,!0),C(T,!1)}finally{C(u,!1),C(c,!1)}}async function ee(R){try{C(c,!0),V(),je(Ue.SIMILAR_WINES_CLICKED,v(b),{wine_id:R.id,wine_title:R.title}),await z(220),C(l,[],!0),C(f,!1),C(T,!1),C(h,null);const L=await ps.getSimilarWines(R.id);C(d,R.title,!0),C(x,""),!L||L.length===0?(C(l,[],!0),C(S,[],!0),C(p,be({key:"noResultsMessage",lang:v(g)}),!0)):C(l,L,!0)}catch(L){C(l,[],!0),console.error("[wineater] similar wines error:",L),P()}finally{C(c,!1)}}ss(async()=>{if(!v(l)||v(l).length===0){C(S,[],!0);return}try{const R=await F(v(l));v(l)&&v(l).length>0&&C(S,R,!0)}catch(R){console.error("translatePopupContent failed",R)}});function D(R,L){v(h)&&v(h)!==R.id&&C(h,null),C(h,R.id,!0),je(Ue.WINE_DETAILS_VIEWED,v(b),{wine_id:R.id,wine_title:R.title,is_mobile:window.innerWidth<=768})}function te(R,L){je(Ue.BUY_BUTTON_CLICKED,v(b),{wine_id:R.id,wine_title:R.title,wine_url:R.url,is_mobile:window.innerWidth<=768})}function Ae(){const R=v(l).find(L=>L.id===v(h));je(Ue.WINE_DETAILS_CLOSED,v(b),{wine_id:v(h),wine_title:R.title}),C(h,null)}function _e(R){return!!(R.reason||R.shortDescription||R.tags)}function Mt(R){r==="store"&&_e(R)&&(C(m,R.id,!0),je(Ue.WINE_CARD_HOVER,v(b),{wine_id:R.id,wine_title:R.title}))}function yt(R){r==="store"&&v(m)===R.id&&C(m,null)}function N(R,L){R.target.closest(".js-WineTileAction")||R.target.closest(".js-WinePopupClose")||je(Ue.WINE_CARD_CLICK,v(b),{wine_id:L.id,wine_title:L.title})}function A(R){const L=R.target;L.closest(".js-WinePopup")||L.closest(".js-WineTileAction")||C(h,null)}ss(()=>{var R,L;(R=v(k))!=null&&R.brandColor&&document.documentElement.style.setProperty("--wr-brand-color",v(k).brandColor),(L=v(k))!=null&&L.wineaterColor&&document.documentElement.style.setProperty("--wr-wineater-color",v(k).wineaterColor)}),Bi(async()=>{if(await me.initializeStore(),!!v(y))return C(k,me.getUiConfig()),v(k).customCss&&Np(v(k).customCss),await Q(),je(Ue.WIDGET_INITIALIZED,v(b)),C(a,!0),document.addEventListener("click",A),()=>{document.removeEventListener("click",A)}});var Z=Ms(),le=xt(Z);{var ke=R=>{var L=Op(),ne=O(L);{var Ot=he=>{var Ke=Rp(),Qn=O(Ke);H(()=>Re(Qn,"src",v(k).logoUrl)),M(he,Ke)};ae(ne,he=>{v(k).logoUrl&&he(Ot)})}var bs=W(ne,2);qf(bs,{});var ys=W(bs,2);tp(ys,{onSubmit:B,get initialized(){return v(a)},get searchQuery(){return v(d)},set searchQuery(he){C(d,he,!0)}});var Pt=W(ys,2);{var El=he=>{ip(he)};ae(Pt,he=>{v(c)&&he(El)})}var ui=W(Pt,2),Mr=O(ui);{var hi=he=>{var Ke=Dp(),Qn=O(Ke),Or=O(Qn);H(()=>Y(Or,v(p))),M(he,Ke)},di=he=>{var Ke=Mp(),Qn=xt(Ke);Dn(Qn,21,()=>v(l),Rn,(Ss,fi,pi)=>{Cp(Ss,{get wine(){return v(fi)},index:pi,get hoveredWineId(){return v(m)},get selectedWineId(){return v(h)},get isAnimating(){return v(f)},get translatedPopup(){return v(S)[pi]},onBuyClick:D,onBuyLinkClick:te,onPopupClose:Ae,onSimilarClick:ee,onTileEnter:Mt,onTileLeave:yt,onTileClick:N})});var Or=W(Qn,2);{var Bp=Ss=>{var fi=Ap(),pi=O(fi);gs(pi,{handleClick:J,variant:"outlined",children:(Fp,ng)=>{var Cl=Nn();H(Wp=>Y(Cl,Wp),[()=>be({key:"tryAgain",lang:v(g)})]),M(Fp,Cl)},$$slots:{default:!0}}),M(Ss,fi)};ae(Or,Ss=>{v(T)&&Ss(Bp)})}M(he,Ke)};ae(Mr,he=>{v(p)?he(hi):v(l)&&v(l).length>0&&he(di,1)})}var Il=W(ui,2);Yf(Il,{get countryCode(){return o}}),M(R,L)};ae(le,R=>{v(y)&&R(ke)})}M(t,Z),Wt()}return Kc(Lp,{target:document.getElementById("wineater-widget-conteiner")})});
|