wineater-bot 4.1.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wineater-chatbot.mjs +3957 -3747
- package/dist/wineater-chatbot.umd.js +81 -36
- package/package.json +1 -1
|
@@ -1,22 +1,68 @@
|
|
|
1
|
-
(function(Q,$){typeof exports=="object"&&typeof module<"u"?module.exports=$():typeof define=="function"&&define.amd?define($):(Q=typeof globalThis<"u"?globalThis:Q||self,Q.WineaterChatbot=$())})(this,function(){"use strict";var Lf=Object.defineProperty;var Ua=Q=>{throw TypeError(Q)};var Bf=(Q,$,fe)=>$ in Q?Lf(Q,$,{enumerable:!0,configurable:!0,writable:!0,value:fe}):Q[$]=fe;var Ot=(Q,$,fe)=>Bf(Q,typeof $!="symbol"?$+"":$,fe),lr=(Q,$,fe)=>$.has(Q)||Ua("Cannot "+fe);var b=(Q,$,fe)=>(lr(Q,$,"read from private field"),fe?fe.call(Q):$.get(Q)),K=(Q,$,fe)=>$.has(Q)?Ua("Cannot add the same private member more than once"):$ instanceof WeakSet?$.add(Q):$.set(Q,fe),B=(Q,$,fe,Js)=>(lr(Q,$,"write to private field"),Js?Js.call(Q,fe):$.set(Q,fe),fe),ae=(Q,$,fe)=>(lr(Q,$,"access private method"),fe);var Ba,_s,ks,Ts,Xt,Ks,xs,Es,ye,cr,ts,ur,qa,je,Ue,rr,rt,Yt,ot,qe,Oe,at,vt,It,Jt,Ct,Qt,Nt,Un,qn,ve,Ff,zf,hr,Hn,Vn,dr,bt,lt,Xe,Xs,Ys,Is,Zt,Fa;const Q="5";typeof window<"u"&&((Ba=window.__svelte??(window.__svelte={})).v??(Ba.v=new Set)).add(Q);const $=1,fe=2,Js=16,Wa=1,Ha=2,Va=4,Ga=8,Ka=16,Xa=1,Ya=2,we=Symbol(),Ja="http://www.w3.org/1999/xhtml",fr=!1;var Qs=Array.isArray,Qa=Array.prototype.indexOf,Gn=Array.from,Kn=Object.defineProperty,ss=Object.getOwnPropertyDescriptor,Za=Object.getOwnPropertyDescriptors,$a=Object.prototype,el=Array.prototype,pr=Object.getPrototypeOf,gr=Object.isExtensible;function tl(t){for(var e=0;e<t.length;e++)t[e]()}function mr(){var t,e,s=new Promise((n,i)=>{t=n,e=i});return{promise:s,resolve:t,reject:e}}const Se=2,Xn=4,Yn=8,ct=16,ut=32,Mt=64,Zs=128,Te=1024,Ce=2048,St=4096,Me=8192,ht=16384,Jn=32768,ns=65536,vr=1<<17,sl=1<<18,is=1<<19,nl=1<<20,Le=256,$s=512,en=32768,Qn=1<<21,Zn=1<<22,At=1<<23,Pt=Symbol("$state"),il=Symbol("legacy props"),rl=Symbol(""),rs=new class extends Error{constructor(){super(...arguments);Ot(this,"name","StaleReactionError");Ot(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function ol(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function al(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function ll(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function cl(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ul(t){throw new Error("https://svelte.dev/e/effect_orphan")}function hl(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function dl(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function fl(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function pl(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function gl(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ml(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function vl(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function bl(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let yl=!1;function br(t){return t===this.v}function wl(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function yr(t){return!wl(t,this.v)}let os=!1,Sl=!1;function _l(){os=!0}let ue=null;function as(t){ue=t}function Lt(t,e=!1,s){ue={p:ue,c:null,e:null,s:t,x:null,l:os&&!e?{s:null,u:null,$:[]}:null}}function Bt(t){var e=ue,s=e.e;if(s!==null){e.e=null;for(var n of s)Fr(n)}return t!==void 0&&(e.x=t),ue=e.p,t??{}}function Ds(){return!os||ue!==null&&ue.l===null}let Ft=[];function wr(){var t=Ft;Ft=[],tl(t)}function Rs(t){if(Ft.length===0&&!Os){var e=Ft;queueMicrotask(()=>{e===Ft&&wr()})}Ft.push(t)}function kl(){for(;Ft.length>0;)wr()}const Tl=new WeakMap;function Sr(t){var e=W;if(e===null)return U.f|=At,t;if(e.f&Jn)ls(t,e);else{if(!(e.f&Zs))throw!e.parent&&t instanceof Error&&_r(t),t;e.b.error(t)}}function ls(t,e){for(;e!==null;){if(e.f&Zs)try{e.b.error(t);return}catch(s){t=s}e=e.parent}throw t instanceof Error&&_r(t),t}function _r(t){const e=Tl.get(t);e&&(Kn(t,"message",{value:e.message}),Kn(t,"stack",{value:e.stack}))}const tn=new Set;let ee=null,sn=null,be=null,$n=new Set,Je=[],nn=null,ei=!1,Os=!1;const jn=class jn{constructor(){K(this,ye);Ot(this,"committed",!1);Ot(this,"current",new Map);K(this,_s,new Map);K(this,ks,new Set);K(this,Ts,0);K(this,Xt,0);K(this,Ks,null);K(this,xs,[]);K(this,Es,[]);Ot(this,"skipped_effects",new Set)}process(e){Je=[],sn=null,this.apply();var s={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const n of e)ae(this,ye,cr).call(this,n,s);ae(this,ye,ur).call(this),b(this,Xt)>0?(ae(this,ye,ts).call(this,s.effects),ae(this,ye,ts).call(this,s.render_effects),ae(this,ye,ts).call(this,s.block_effects)):(sn=this,ee=null,Tr(s.render_effects),Tr(s.effects),sn=null),be=null}capture(e,s){b(this,_s).has(e)||b(this,_s).set(e,s),this.current.set(e,e.v),be==null||be.set(e,e.v)}activate(){ee=this}deactivate(){ee=null,be=null}flush(){if(Je.length>0){if(this.activate(),kr(),ee!==null&&ee!==this)return}else ae(this,ye,ur).call(this);this.deactivate();for(const e of $n)if($n.delete(e),e(),ee!==null)break}increment(e){B(this,Ts,b(this,Ts)+1),e&&B(this,Xt,b(this,Xt)+1)}decrement(e){B(this,Ts,b(this,Ts)-1),e&&B(this,Xt,b(this,Xt)-1);for(const s of b(this,xs))Ie(s,Ce),zt(s);for(const s of b(this,Es))Ie(s,St),zt(s);B(this,xs,[]),B(this,Es,[]),this.flush()}add_callback(e){b(this,ks).add(e)}settled(){return(b(this,Ks)??B(this,Ks,mr())).promise}static ensure(){if(ee===null){const e=ee=new jn;tn.add(ee),Os||jn.enqueue(()=>{ee===e&&e.flush()})}return ee}static enqueue(e){Rs(e)}apply(){}};_s=new WeakMap,ks=new WeakMap,Ts=new WeakMap,Xt=new WeakMap,Ks=new WeakMap,xs=new WeakMap,Es=new WeakMap,ye=new WeakSet,cr=function(e,s){var l;e.f^=Te;for(var n=e.first;n!==null;){var i=n.f,r=(i&(ut|Mt))!==0,o=r&&(i&Te)!==0,a=o||(i&Me)!==0||this.skipped_effects.has(n);if(n.f&Zs&&((l=n.b)!=null&&l.is_pending())&&(s={parent:s,effect:n,effects:[],render_effects:[],block_effects:[]}),!a&&n.fn!==null){r?n.f^=Te:i&Xn?s.effects.push(n):cn(n)&&(n.f&ct&&s.block_effects.push(n),hn(n));var c=n.first;if(c!==null){n=c;continue}}var u=n.parent;for(n=n.next;n===null&&u!==null;)u===s.effect&&(ae(this,ye,ts).call(this,s.effects),ae(this,ye,ts).call(this,s.render_effects),ae(this,ye,ts).call(this,s.block_effects),s=s.parent),n=u.next,u=u.parent}},ts=function(e){for(const s of e)(s.f&Ce?b(this,xs):b(this,Es)).push(s),Ie(s,Te)},ur=function(){if(b(this,Xt)===0){for(const e of b(this,ks))e();b(this,ks).clear()}b(this,Ts)===0&&ae(this,ye,qa).call(this)},qa=function(){var i,r;if(tn.size>1){b(this,_s).clear();var e=be,s=!0,n={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const o of tn){if(o===this){s=!1;continue}const a=[];for(const[u,l]of this.current){if(o.current.has(u))if(s&&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){const u=new Set,l=new Map;for(const h of a)xr(h,c,u,l);if(Je.length>0){ee=o,o.apply();for(const h of Je)ae(i=o,ye,cr).call(i,h,n);Je=[],o.deactivate()}}}ee=null,be=e}this.committed=!0,tn.delete(this),(r=b(this,Ks))==null||r.resolve()};let dt=jn;function xl(t){var e=Os;Os=!0;try{for(var s;;){if(kl(),Je.length===0&&(ee==null||ee.flush(),Je.length===0))return nn=null,s;kr()}}finally{Os=e}}function kr(){var t=hs;ei=!0;try{var e=0;for(Gr(!0);Je.length>0;){var s=dt.ensure();if(e++>1e3){var n,i;El()}s.process(Je),_t.clear()}}finally{ei=!1,Gr(t),nn=null}}function El(){try{hl()}catch(t){ls(t,nn)}}let He=null;function Tr(t){var e=t.length;if(e!==0){for(var s=0;s<e;){var n=t[s++];if(!(n.f&(ht|Me))&&cn(n)&&(He=new Set,hn(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null&&n.ac===null?qr(n):n.fn=null),(He==null?void 0:He.size)>0)){_t.clear();for(const i of He){if(i.f&(ht|Me))continue;const r=[i];let o=i.parent;for(;o!==null;)He.has(o)&&(He.delete(o),r.push(o)),o=o.parent;for(let a=r.length-1;a>=0;a--){const c=r[a];c.f&(ht|Me)||hn(c)}}He.clear()}}He=null}}function xr(t,e,s,n){if(!s.has(t)&&(s.add(t),t.reactions!==null))for(const i of t.reactions){const r=i.f;r&Se?xr(i,e,s,n):r&(Zn|ct)&&!(r&Ce)&&Er(i,e,n)&&(Ie(i,Ce),zt(i))}}function Er(t,e,s){const n=s.get(t);if(n!==void 0)return n;if(t.deps!==null)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&Se&&Er(i,e,s))return s.set(i,!0),!0}return s.set(t,!1),!1}function zt(t){for(var e=nn=t;e.parent!==null;){e=e.parent;var s=e.f;if(ei&&e===W&&s&ct)return;if(s&(Mt|ut)){if(!(s&Te))return;e.f^=Te}}Je.push(e)}function Il(t){let e=0,s=jt(0),n;return()=>{Wl()&&(w(s),ri(()=>(e===0&&(n=Bs(()=>t(()=>As(s)))),e+=1,()=>{Rs(()=>{e-=1,e===0&&(n==null||n(),n=void 0,As(s))})})))}}var Cl=ns|is|Zs;function Nl(t,e,s){new Dl(t,e,s)}class Dl{constructor(e,s,n){K(this,ve);Ot(this,"parent");K(this,je,!1);K(this,Ue);K(this,rr,null);K(this,rt);K(this,Yt);K(this,ot);K(this,qe,null);K(this,Oe,null);K(this,at,null);K(this,vt,null);K(this,It,null);K(this,Jt,0);K(this,Ct,0);K(this,Qt,!1);K(this,Nt,null);K(this,Un,()=>{b(this,Nt)&&Ms(b(this,Nt),b(this,Jt))});K(this,qn,Il(()=>(B(this,Nt,jt(b(this,Jt))),()=>{B(this,Nt,null)})));B(this,Ue,e),B(this,rt,s),B(this,Yt,n),this.parent=W.b,B(this,je,!!b(this,rt).pending),B(this,ot,oi(()=>{W.b=this;{var i=ae(this,ve,hr).call(this);try{B(this,qe,Ve(()=>n(i)))}catch(r){this.error(r)}b(this,Ct)>0?ae(this,ve,Vn).call(this):B(this,je,!1)}return()=>{var r;(r=b(this,It))==null||r.remove()}},Cl))}is_pending(){return b(this,je)||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!b(this,rt).pending}update_pending_count(e){ae(this,ve,dr).call(this,e),B(this,Jt,b(this,Jt)+e),$n.add(b(this,Un))}get_effect_pending(){return b(this,qn).call(this),w(b(this,Nt))}error(e){var s=b(this,rt).onerror;let n=b(this,rt).failed;if(b(this,Qt)||!s&&!n)throw e;b(this,qe)&&(Ne(b(this,qe)),B(this,qe,null)),b(this,Oe)&&(Ne(b(this,Oe)),B(this,Oe,null)),b(this,at)&&(Ne(b(this,at)),B(this,at,null));var i=!1,r=!1;const o=()=>{if(i){bl();return}i=!0,r&&ml(),dt.ensure(),B(this,Jt,0),b(this,at)!==null&&us(b(this,at),()=>{B(this,at,null)}),B(this,je,this.has_pending_snippet()),B(this,qe,ae(this,ve,Hn).call(this,()=>(B(this,Qt,!1),Ve(()=>b(this,Yt).call(this,b(this,Ue)))))),b(this,Ct)>0?ae(this,ve,Vn).call(this):B(this,je,!1)};var a=U;try{De(null),r=!0,s==null||s(e,o),r=!1}catch(c){ls(c,b(this,ot)&&b(this,ot).parent)}finally{De(a)}n&&Rs(()=>{B(this,at,ae(this,ve,Hn).call(this,()=>{dt.ensure(),B(this,Qt,!0);try{return Ve(()=>{n(b(this,Ue),()=>e,()=>o)})}catch(c){return ls(c,b(this,ot).parent),null}finally{B(this,Qt,!1)}}))})}}je=new WeakMap,Ue=new WeakMap,rr=new WeakMap,rt=new WeakMap,Yt=new WeakMap,ot=new WeakMap,qe=new WeakMap,Oe=new WeakMap,at=new WeakMap,vt=new WeakMap,It=new WeakMap,Jt=new WeakMap,Ct=new WeakMap,Qt=new WeakMap,Nt=new WeakMap,Un=new WeakMap,qn=new WeakMap,ve=new WeakSet,Ff=function(){try{B(this,qe,Ve(()=>b(this,Yt).call(this,b(this,Ue))))}catch(e){this.error(e)}B(this,je,!1)},zf=function(){const e=b(this,rt).pending;e&&(B(this,Oe,Ve(()=>e(b(this,Ue)))),dt.enqueue(()=>{var s=ae(this,ve,hr).call(this);B(this,qe,ae(this,ve,Hn).call(this,()=>(dt.ensure(),Ve(()=>b(this,Yt).call(this,s))))),b(this,Ct)>0?ae(this,ve,Vn).call(this):(us(b(this,Oe),()=>{B(this,Oe,null)}),B(this,je,!1))}))},hr=function(){var e=b(this,Ue);return b(this,je)&&(B(this,It,Ut()),b(this,Ue).before(b(this,It)),e=b(this,It)),e},Hn=function(e){var s=W,n=U,i=ue;Qe(b(this,ot)),De(b(this,ot)),as(b(this,ot).ctx);try{return e()}catch(r){return Sr(r),null}finally{Qe(s),De(n),as(i)}},Vn=function(){const e=b(this,rt).pending;b(this,qe)!==null&&(B(this,vt,document.createDocumentFragment()),b(this,vt).append(b(this,It)),Vr(b(this,qe),b(this,vt))),b(this,Oe)===null&&B(this,Oe,Ve(()=>e(b(this,Ue))))},dr=function(e){var s;if(!this.has_pending_snippet()){this.parent&&ae(s=this.parent,ve,dr).call(s,e);return}B(this,Ct,b(this,Ct)+e),b(this,Ct)===0&&(B(this,je,!1),b(this,Oe)&&us(b(this,Oe),()=>{B(this,Oe,null)}),b(this,vt)&&(b(this,Ue).before(b(this,vt)),B(this,vt,null)))};function Rl(t,e,s){const n=Ds()?rn:si;if(e.length===0){s(t.map(n));return}var i=ee,r=W,o=Ol();Promise.all(e.map(a=>Ml(a))).then(a=>{o();try{s([...t.map(n),...a])}catch(c){r.f&ht||ls(c,r)}i==null||i.deactivate(),ti()}).catch(a=>{ls(a,r)})}function Ol(){var t=W,e=U,s=ue,n=ee;return function(){Qe(t),De(e),as(s),n==null||n.activate()}}function ti(){Qe(null),De(null),as(null)}function rn(t){var e=Se|Ce,s=U!==null&&U.f&Se?U:null;return W===null||s!==null&&s.f&Le?e|=Le:W.f|=is,{ctx:ue,deps:null,effects:null,equals:br,f:e,fn:t,reactions:null,rv:0,v:we,wv:0,parent:s??W,ac:null}}function Ml(t,e){let s=W;s===null&&al();var n=s.b,i=void 0,r=jt(we),o=!U,a=new Map;return Vl(()=>{var d;var c=mr();i=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).then(()=>{u===ee&&u.committed&&u.deactivate(),ti()})}catch(f){c.reject(f),ti()}var u=ee;if(o){var l=!n.is_pending();n.update_pending_count(1),u.increment(l),(d=a.get(u))==null||d.reject(rs),a.delete(u),a.set(u,c)}const h=(f,p=void 0)=>{if(u.activate(),p)p!==rs&&(r.f|=At,Ms(r,p));else{r.f&At&&(r.f^=At),Ms(r,f);for(const[m,_]of a){if(a.delete(m),m===u)break;_.reject(rs)}}o&&(n.update_pending_count(-1),u.decrement(l))};c.promise.then(h,f=>h(null,f||"unknown"))}),ii(()=>{for(const c of a.values())c.reject(rs)}),new Promise(c=>{function u(l){function h(){l===i?c(r):u(i)}l.then(h,h)}u(i)})}function pe(t){const e=rn(t);return Xr(e),e}function si(t){const e=rn(t);return e.equals=yr,e}function Ir(t){var e=t.effects;if(e!==null){t.effects=null;for(var s=0;s<e.length;s+=1)Ne(e[s])}}function Al(t){for(var e=t.parent;e!==null;){if(!(e.f&Se))return e;e=e.parent}return null}function ni(t){var e,s=W;Qe(Al(t));try{t.f&=~en,Ir(t),e=$r(t)}finally{Qe(s)}return e}function Cr(t){var e=ni(t);if(t.equals(e)||(t.v=e,t.wv=Qr()),!qt)if(be!==null)be.set(t,t.v);else{var s=(kt||t.f&Le)&&t.deps!==null?St:Te;Ie(t,s)}}const _t=new Map;function jt(t,e){var s={f:0,v:t,reactions:null,equals:br,rv:0,wv:0};return s}function oe(t,e){const s=jt(t);return Xr(s),s}function Pl(t,e=!1,s=!0){var i;const n=jt(t);return e||(n.equals=yr),os&&s&&ue!==null&&ue.l!==null&&((i=ue.l).s??(i.s=[])).push(n),n}function M(t,e,s=!1){U!==null&&(!Ge||U.f&vr)&&Ds()&&U.f&(Se|ct|Zn|vr)&&!(xe!=null&&xe.includes(t))&&gl();let n=s?ft(e):e;return Ms(t,n)}function Ms(t,e){if(!t.equals(e)){var s=t.v;qt?_t.set(t,e):_t.set(t,s),t.v=e;var n=dt.ensure();n.capture(t,s),t.f&Se&&(t.f&Ce&&ni(t),Ie(t,t.f&Le?St:Te)),t.wv=Qr(),Dr(t,Ce),Ds()&&W!==null&&W.f&Te&&!(W.f&(ut|Mt))&&(Be===null?Xl([t]):Be.push(t))}return e}function Nr(t,e=1){var s=w(t),n=e===1?s++:s--;return M(t,s),n}function As(t){M(t,t.v+1)}function Dr(t,e){var s=t.reactions;if(s!==null)for(var n=Ds(),i=s.length,r=0;r<i;r++){var o=s[r],a=o.f;if(!(!n&&o===W)){var c=(a&Ce)===0;c&&Ie(o,e),a&Se?a&en||(o.f|=en,Dr(o,St)):c&&(a&ct&&He!==null&&He.add(o),zt(o))}}}function ft(t){if(typeof t!="object"||t===null||Pt in t)return t;const e=pr(t);if(e!==$a&&e!==el)return t;var s=new Map,n=Qs(t),i=oe(0),r=Wt,o=a=>{if(Wt===r)return a();var c=U,u=Wt;De(null),Jr(r);var l=a();return De(c),Jr(u),l};return n&&s.set("length",oe(t.length)),new Proxy(t,{defineProperty(a,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&fl();var l=s.get(c);return l===void 0?l=o(()=>{var h=oe(u.value);return s.set(c,h),h}):M(l,u.value,!0),!0},deleteProperty(a,c){var u=s.get(c);if(u===void 0){if(c in a){const l=o(()=>oe(we));s.set(c,l),As(i)}}else M(u,we),As(i);return!0},get(a,c,u){var f;if(c===Pt)return t;var l=s.get(c),h=c in a;if(l===void 0&&(!h||(f=ss(a,c))!=null&&f.writable)&&(l=o(()=>{var p=ft(h?a[c]:we),m=oe(p);return m}),s.set(c,l)),l!==void 0){var d=w(l);return d===we?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=s.get(c);l&&(u.value=w(l))}else if(u===void 0){var h=s.get(c),d=h==null?void 0:h.v;if(h!==void 0&&d!==we)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(a,c){var d;if(c===Pt)return!0;var u=s.get(c),l=u!==void 0&&u.v!==we||Reflect.has(a,c);if(u!==void 0||W!==null&&(!l||(d=ss(a,c))!=null&&d.writable)){u===void 0&&(u=o(()=>{var f=l?ft(a[c]):we,p=oe(f);return p}),s.set(c,u));var h=w(u);if(h===we)return!1}return l},set(a,c,u,l){var y;var h=s.get(c),d=c in a;if(n&&c==="length")for(var f=u;f<h.v;f+=1){var p=s.get(f+"");p!==void 0?M(p,we):f in a&&(p=o(()=>oe(we)),s.set(f+"",p))}if(h===void 0)(!d||(y=ss(a,c))!=null&&y.writable)&&(h=o(()=>oe(void 0)),M(h,ft(u)),s.set(c,h));else{d=h.v!==we;var m=o(()=>ft(u));M(h,m)}var _=Reflect.getOwnPropertyDescriptor(a,c);if(_!=null&&_.set&&_.set.call(l,u),!d){if(n&&typeof c=="string"){var I=s.get("length"),T=Number(c);Number.isInteger(T)&&T>=I.v&&M(I,T+1)}As(i)}return!0},ownKeys(a){w(i);var c=Reflect.ownKeys(a).filter(h=>{var d=s.get(h);return d===void 0||d.v!==we});for(var[u,l]of s)l.v!==we&&!(u in a)&&c.push(u);return c},setPrototypeOf(){pl()}})}function Rr(t){try{if(t!==null&&typeof t=="object"&&Pt in t)return t[Pt]}catch{}return t}function Ll(t,e){return Object.is(Rr(t),Rr(e))}var Or,Mr,Ar,Pr;function Bl(){if(Or===void 0){Or=window,Mr=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,s=Text.prototype;Ar=ss(e,"firstChild").get,Pr=ss(e,"nextSibling").get,gr(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),gr(s)&&(s.__t=void 0)}}function Ut(t=""){return document.createTextNode(t)}function on(t){return Ar.call(t)}function Ps(t){return Pr.call(t)}function L(t,e){return on(t)}function cs(t,e=!1){{var s=on(t);return s instanceof Comment&&s.data===""?Ps(s):s}}function J(t,e=1,s=!1){let n=t;for(;e--;)n=Ps(n);return n}function Fl(t){t.textContent=""}function Lr(){return!1}let Br=!1;function zl(){Br||(Br=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(const s of t.target.elements)(e=s.__on_r)==null||e.call(s)})},{capture:!0}))}function an(t){var e=U,s=W;De(null),Qe(null);try{return t()}finally{De(e),Qe(s)}}function jl(t,e,s,n=s){t.addEventListener(e,()=>an(s));const i=t.__on_r;i?t.__on_r=()=>{i(),n(!0)}:t.__on_r=()=>n(!0),zl()}function Ul(t){W===null&&U===null&&ul(),U!==null&&U.f&Le&&W===null&&cl(),qt&&ll()}function ql(t,e){var s=e.last;s===null?e.last=e.first=t:(s.next=t,t.prev=s,e.last=t)}function pt(t,e,s,n=!0){var i=W;i!==null&&i.f&Me&&(t|=Me);var r={ctx:ue,deps:null,nodes_start:null,nodes_end:null,f:t|Ce,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(s)try{hn(r),r.f|=Jn}catch(c){throw Ne(r),c}else e!==null&&zt(r);if(n){var o=r;if(s&&o.deps===null&&o.teardown===null&&o.nodes_start===null&&o.first===o.last&&!(o.f&is)&&(o=o.first,t&ct&&t&ns&&o!==null&&(o.f|=ns)),o!==null&&(o.parent=i,i!==null&&ql(o,i),U!==null&&U.f&Se&&!(t&Mt))){var a=U;(a.effects??(a.effects=[])).push(o)}}return r}function Wl(){return U!==null&&!Ge}function ii(t){const e=pt(Yn,null,!1);return Ie(e,Te),e.teardown=t,e}function ln(t){Ul();var e=W.f,s=!U&&(e&ut)!==0&&(e&Jn)===0;if(s){var n=ue;(n.e??(n.e=[])).push(t)}else return Fr(t)}function Fr(t){return pt(Xn|nl,t,!1)}function Hl(t){dt.ensure();const e=pt(Mt|is,t,!0);return(s={})=>new Promise(n=>{s.outro?us(e,()=>{Ne(e),n(void 0)}):(Ne(e),n(void 0))})}function zr(t){return pt(Xn,t,!1)}function Vl(t){return pt(Zn|is,t,!0)}function ri(t,e=0){return pt(Yn|e,t,!0)}function te(t,e=[],s=[]){Rl(e,s,n=>{pt(Yn,()=>t(...n.map(w)),!0)})}function oi(t,e=0){var s=pt(ct|e,t,!0);return s}function Ve(t,e=!0){return pt(ut|is,t,!0,e)}function jr(t){var e=t.teardown;if(e!==null){const s=qt,n=U;Kr(!0),De(null);try{e.call(null)}finally{Kr(s),De(n)}}}function Ur(t,e=!1){var s=t.first;for(t.first=t.last=null;s!==null;){const i=s.ac;i!==null&&an(()=>{i.abort(rs)});var n=s.next;s.f&Mt?s.parent=null:Ne(s,e),s=n}}function Gl(t){for(var e=t.first;e!==null;){var s=e.next;e.f&ut||Ne(e),e=s}}function Ne(t,e=!0){var s=!1;(e||t.f&sl)&&t.nodes_start!==null&&t.nodes_end!==null&&(Kl(t.nodes_start,t.nodes_end),s=!0),Ur(t,e&&!s),un(t,0),Ie(t,ht);var n=t.transitions;if(n!==null)for(const r of n)r.stop();jr(t);var i=t.parent;i!==null&&i.first!==null&&qr(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function Kl(t,e){for(;t!==null;){var s=t===e?null:Ps(t);t.remove(),t=s}}function qr(t){var e=t.parent,s=t.prev,n=t.next;s!==null&&(s.next=n),n!==null&&(n.prev=s),e!==null&&(e.first===t&&(e.first=n),e.last===t&&(e.last=s))}function us(t,e,s=!0){var n=[];ai(t,n,!0),Wr(n,()=>{s&&Ne(t),e&&e()})}function Wr(t,e){var s=t.length;if(s>0){var n=()=>--s||e();for(var i of t)i.out(n)}else e()}function ai(t,e,s){if(!(t.f&Me)){if(t.f^=Me,t.transitions!==null)for(const o of t.transitions)(o.is_global||s)&&e.push(o);for(var n=t.first;n!==null;){var i=n.next,r=(n.f&ns)!==0||(n.f&ut)!==0&&(t.f&ct)!==0;ai(n,e,r?s:!1),n=i}}}function li(t){Hr(t,!0)}function Hr(t,e){if(t.f&Me){t.f^=Me,t.f&Te||(Ie(t,Ce),zt(t));for(var s=t.first;s!==null;){var n=s.next,i=(s.f&ns)!==0||(s.f&ut)!==0;Hr(s,i?e:!1),s=n}if(t.transitions!==null)for(const r of t.transitions)(r.is_global||e)&&r.in()}}function Vr(t,e){for(var s=t.nodes_start,n=t.nodes_end;s!==null;){var i=s===n?null:Ps(s);e.append(s),s=i}}let hs=!1;function Gr(t){hs=t}let qt=!1;function Kr(t){qt=t}let U=null,Ge=!1;function De(t){U=t}let W=null;function Qe(t){W=t}let xe=null;function Xr(t){U!==null&&(xe===null?xe=[t]:xe.push(t))}let Ee=null,Ae=0,Be=null;function Xl(t){Be=t}let Yr=1,Ls=0,Wt=Ls;function Jr(t){Wt=t}let kt=!1;function Qr(){return++Yr}function cn(t){var h;var e=t.f;if(e&Ce)return!0;if(e&St){var s=t.deps,n=(e&Le)!==0;if(e&Se&&(t.f&=~en),s!==null){var i,r,o=(e&$s)!==0,a=n&&W!==null&&!kt,c=s.length;if((o||a)&&(W===null||!(W.f&ht))){var u=t,l=u.parent;for(i=0;i<c;i++)r=s[i],(o||!((h=r==null?void 0:r.reactions)!=null&&h.includes(u)))&&(r.reactions??(r.reactions=[])).push(u);o&&(u.f^=$s),a&&l!==null&&!(l.f&Le)&&(u.f^=Le)}for(i=0;i<c;i++)if(r=s[i],cn(r)&&Cr(r),r.wv>t.wv)return!0}(!n||W!==null&&!kt)&&Ie(t,Te)}return!1}function Zr(t,e,s=!0){var n=t.reactions;if(n!==null&&!(xe!=null&&xe.includes(t)))for(var i=0;i<n.length;i++){var r=n[i];r.f&Se?Zr(r,e,!1):e===r&&(s?Ie(r,Ce):r.f&Te&&Ie(r,St),zt(r))}}function $r(t){var m;var e=Ee,s=Ae,n=Be,i=U,r=kt,o=xe,a=ue,c=Ge,u=Wt,l=t.f;Ee=null,Ae=0,Be=null,kt=(l&Le)!==0&&(Ge||!hs||U===null),U=l&(ut|Mt)?null:t,xe=null,as(t.ctx),Ge=!1,Wt=++Ls,t.ac!==null&&(an(()=>{t.ac.abort(rs)}),t.ac=null);try{t.f|=Qn;var h=t.fn,d=h(),f=t.deps;if(Ee!==null){var p;if(un(t,Ae),f!==null&&Ae>0)for(f.length=Ae+Ee.length,p=0;p<Ee.length;p++)f[Ae+p]=Ee[p];else t.deps=f=Ee;if(!kt||l&Se&&t.reactions!==null)for(p=Ae;p<f.length;p++)((m=f[p]).reactions??(m.reactions=[])).push(t)}else f!==null&&Ae<f.length&&(un(t,Ae),f.length=Ae);if(Ds()&&Be!==null&&!Ge&&f!==null&&!(t.f&(Se|St|Ce)))for(p=0;p<Be.length;p++)Zr(Be[p],t);return i!==null&&i!==t&&(Ls++,Be!==null&&(n===null?n=Be:n.push(...Be))),t.f&At&&(t.f^=At),d}catch(_){return Sr(_)}finally{t.f^=Qn,Ee=e,Ae=s,Be=n,U=i,kt=r,xe=o,as(a),Ge=c,Wt=u}}function Yl(t,e){let s=e.reactions;if(s!==null){var n=Qa.call(s,t);if(n!==-1){var i=s.length-1;i===0?s=e.reactions=null:(s[n]=s[i],s.pop())}}s===null&&e.f&Se&&(Ee===null||!Ee.includes(e))&&(Ie(e,St),e.f&(Le|$s)||(e.f^=$s),Ir(e),un(e,0))}function un(t,e){var s=t.deps;if(s!==null)for(var n=e;n<s.length;n++)Yl(t,s[n])}function hn(t){var e=t.f;if(!(e&ht)){Ie(t,Te);var s=W,n=hs;W=t,hs=!0;try{e&ct?Gl(t):Ur(t),jr(t);var i=$r(t);t.teardown=typeof i=="function"?i:null,t.wv=Yr;var r;fr&&Sl&&t.f&Ce&&t.deps}finally{hs=n,W=s}}}async function Jl(){await Promise.resolve(),xl()}function w(t){var e=t.f,s=(e&Se)!==0;if(U!==null&&!Ge){var n=W!==null&&(W.f&ht)!==0;if(!n&&!(xe!=null&&xe.includes(t))){var i=U.deps;if(U.f&Qn)t.rv<Ls&&(t.rv=Ls,Ee===null&&i!==null&&i[Ae]===t?Ae++:Ee===null?Ee=[t]:(!kt||!Ee.includes(t))&&Ee.push(t));else{(U.deps??(U.deps=[])).push(t);var r=t.reactions;r===null?t.reactions=[U]:r.includes(U)||r.push(U)}}}else if(s&&t.deps===null&&t.effects===null){var o=t,a=o.parent;a!==null&&!(a.f&Le)&&(o.f^=Le)}if(qt){if(_t.has(t))return _t.get(t);if(s){o=t;var c=o.v;return(!(o.f&Te)&&o.reactions!==null||eo(o))&&(c=ni(o)),_t.set(o,c),c}}else if(s){if(o=t,be!=null&&be.has(o))return be.get(o);cn(o)&&Cr(o)}if(be!=null&&be.has(t))return be.get(t);if(t.f&At)throw t.v;return t.v}function eo(t){if(t.v===we)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(_t.has(e)||e.f&Se&&eo(e))return!0;return!1}function Bs(t){var e=Ge;try{return Ge=!0,t()}finally{Ge=e}}const Ql=-7169;function Ie(t,e){t.f=t.f&Ql|e}const to=new Set,ci=new Set;function Zl(t,e,s,n={}){function i(r){if(n.capture||zs.call(e,r),!r.cancelBubble)return an(()=>s==null?void 0:s.call(this,r))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?Rs(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function Fs(t,e,s,n,i){var r={capture:n,passive:i},o=Zl(t,e,s,r);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ii(()=>{e.removeEventListener(t,o,r)})}function ui(t){for(var e=0;e<t.length;e++)to.add(t[e]);for(var s of ci)s(t)}let so=null;function zs(t){var T;var e=this,s=e.ownerDocument,n=t.type,i=((T=t.composedPath)==null?void 0:T.call(t))||[],r=i[0]||t.target;so=t;var o=0,a=so===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){Kn(t,"currentTarget",{configurable:!0,get(){return r||s}});var l=U,h=W;De(null),Qe(null);try{for(var d,f=[];r!==null;){var p=r.assignedSlot||r.parentNode||r.host||null;try{var m=r["__"+n];if(m!=null&&(!r.disabled||t.target===r))if(Qs(m)){var[_,...I]=m;_.apply(r,[t,...I])}else m.call(r,t)}catch(y){d?f.push(y):d=y}if(t.cancelBubble||p===e||p===null)break;r=p}if(d){for(let y of f)queueMicrotask(()=>{throw y});throw d}}finally{t.__root=e,delete t.currentTarget,De(l),Qe(h)}}}function $l(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("<!>","<!---->"),e.content}function hi(t,e){var s=W;s.nodes_start===null&&(s.nodes_start=t,s.nodes_end=e)}function X(t,e){var s=(e&Xa)!==0,n=(e&Ya)!==0,i,r=!t.startsWith("<!>");return()=>{i===void 0&&(i=$l(r?t:"<!>"+t),s||(i=on(i)));var o=n||Mr?document.importNode(i,!0):i.cloneNode(!0);if(s){var a=on(o),c=o.lastChild;hi(a,c)}else hi(o,o);return o}}function js(){var t=document.createDocumentFragment(),e=document.createComment(""),s=Ut();return t.append(e,s),hi(e,s),t}function q(t,e){t!==null&&t.before(e)}const ec=["touchstart","touchmove"];function tc(t){return ec.includes(t)}function Z(t,e){var s=e==null?"":typeof e=="object"?e+"":e;s!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=s,t.nodeValue=s+"")}function sc(t,e){return nc(t,e)}const ds=new Map;function nc(t,{target:e,anchor:s,props:n={},events:i,context:r,intro:o=!0}){Bl();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=tc(f);e.addEventListener(f,zs,{passive:p});var m=ds.get(f);m===void 0?(document.addEventListener(f,zs,{passive:p}),ds.set(f,1)):ds.set(f,m+1)}}};c(Gn(to)),ci.add(c);var u=void 0,l=Hl(()=>{var h=s??e.appendChild(Ut());return Nl(h,{pending:()=>{}},d=>{if(r){Lt({});var f=ue;f.c=r}i&&(n.$$events=i),u=t(d,n)||{},r&&Bt()}),()=>{var p;for(var d of a){e.removeEventListener(d,zs);var f=ds.get(d);--f===0?(document.removeEventListener(d,zs),ds.delete(d)):ds.set(d,f)}ci.delete(c),h!==s&&((p=h.parentNode)==null||p.removeChild(h))}});return ic.set(u,l),u}let ic=new WeakMap;class rc{constructor(e,s=!0){Ot(this,"anchor");K(this,bt,new Map);K(this,lt,new Map);K(this,Xe,new Map);K(this,Xs,!0);K(this,Ys,()=>{var e=ee;if(b(this,bt).has(e)){var s=b(this,bt).get(e),n=b(this,lt).get(s);if(n)li(n);else{var i=b(this,Xe).get(s);i&&(b(this,lt).set(s,i.effect),b(this,Xe).delete(s),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[r,o]of b(this,bt)){if(b(this,bt).delete(r),r===e)break;const a=b(this,Xe).get(o);a&&(Ne(a.effect),b(this,Xe).delete(o))}for(const[r,o]of b(this,lt)){if(r===s)continue;const a=()=>{if(Array.from(b(this,bt).values()).includes(r)){var u=document.createDocumentFragment();Vr(o,u),u.append(Ut()),b(this,Xe).set(r,{effect:o,fragment:u})}else Ne(o);b(this,lt).delete(r)};b(this,Xs)||!n?us(o,a,!1):a()}}});this.anchor=e,B(this,Xs,s)}ensure(e,s){var n=ee,i=Lr();if(s&&!b(this,lt).has(e)&&!b(this,Xe).has(e))if(i){var r=document.createDocumentFragment(),o=Ut();r.append(o),b(this,Xe).set(e,{effect:Ve(()=>s(o)),fragment:r})}else b(this,lt).set(e,Ve(()=>s(this.anchor)));if(b(this,bt).set(n,e),i){for(const[a,c]of b(this,lt))a===e?n.skipped_effects.delete(c):n.skipped_effects.add(c);for(const[a,c]of b(this,Xe))a===e?n.skipped_effects.delete(c.effect):n.skipped_effects.add(c.effect);n.add_callback(b(this,Ys))}else b(this,Ys).call(this)}}bt=new WeakMap,lt=new WeakMap,Xe=new WeakMap,Xs=new WeakMap,Ys=new WeakMap;function di(t){ue===null&&ol(),os&&ue.l!==null?oc(ue).m.push(t):ln(()=>{const e=Bs(t);if(typeof e=="function")return e})}function oc(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}function ie(t,e,s=!1){var n=new rc(t),i=s?ns:0;function r(o,a){n.ensure(o,a)}oi(()=>{var o=!1;e((a,c=!0)=>{o=!0,r(c,a)}),o||r(!1,null)},i)}function Us(t,e){return e}function ac(t,e,s){for(var n=t.items,i=[],r=e.length,o=0;o<r;o++)ai(e[o].e,i,!0);var a=r>0&&i.length===0&&s!==null;if(a){var c=s.parentNode;Fl(c),c.append(s),n.clear(),Ze(t,e[0].prev,e[r-1].next)}Wr(i,()=>{for(var u=0;u<r;u++){var l=e[u];a||(n.delete(l.k),Ze(t,l.prev,l.next)),Ne(l.e,!a)}})}function qs(t,e,s,n,i,r=null){var o=t,a={flags:e,items:new Map,first:null};{var c=t;o=c.appendChild(Ut())}var u=null,l=!1,h=new Map,d=si(()=>{var _=s();return Qs(_)?_:_==null?[]:Gn(_)}),f,p;function m(){lc(p,f,a,h,o,i,e,n,s),r!==null&&(f.length===0?u?li(u):u=Ve(()=>r(o)):u!==null&&us(u,()=>{u=null}))}oi(()=>{p??(p=W),f=w(d);var _=f.length;if(!(l&&_===0)){l=_===0;var I,T,y,g;if(Lr()){var v=new Set,E=ee;for(T=0;T<_;T+=1){y=f[T],g=n(y,T);var C=a.items.get(g)??h.get(g);C?no(C,y,T):(I=io(null,a,null,null,y,g,T,i,e,s,!0),h.set(g,I)),v.add(g)}for(const[S,k]of a.items)v.has(S)||E.skipped_effects.add(k.e);E.add_callback(m)}else m();w(d)}})}function lc(t,e,s,n,i,r,o,a,c){var u=e.length,l=s.items,h=s.first,d=h,f,p=null,m=[],_=[],I,T,y,g;for(g=0;g<u;g+=1){if(I=e[g],T=a(I,g),y=l.get(T),y===void 0){var v=n.get(T);if(v!==void 0){n.delete(T),l.set(T,v);var E=p?p.next:d;Ze(s,p,v),Ze(s,v,E),fi(v,E,i),p=v}else{var C=d?d.e.nodes_start:i;p=io(C,s,p,p===null?s.first:p.next,I,T,g,r,o,c)}l.set(T,p),m=[],_=[],d=p.next;continue}if(no(y,I,g),y.e.f&Me&&li(y.e),y!==d){if(f!==void 0&&f.has(y)){if(m.length<_.length){var S=_[0],k;p=S.prev;var A=m[0],z=m[m.length-1];for(k=0;k<m.length;k+=1)fi(m[k],S,i);for(k=0;k<_.length;k+=1)f.delete(_[k]);Ze(s,A.prev,z.next),Ze(s,p,A),Ze(s,z,S),d=S,p=z,g-=1,m=[],_=[]}else f.delete(y),fi(y,d,i),Ze(s,y.prev,y.next),Ze(s,y,p===null?s.first:p.next),Ze(s,p,y),p=y;continue}for(m=[],_=[];d!==null&&d.k!==T;)d.e.f&Me||(f??(f=new Set)).add(d),_.push(d),d=d.next;if(d===null)continue;y=d}m.push(y),p=y,d=y.next}if(d!==null||f!==void 0){for(var F=f===void 0?[]:Gn(f);d!==null;)d.e.f&Me||F.push(d),d=d.next;var G=F.length;if(G>0){var j=u===0?i:null;ac(s,F,j)}}t.first=s.first&&s.first.e,t.last=p&&p.e;for(var x of n.values())Ne(x.e);n.clear()}function no(t,e,s,n){Ms(t.v,e),t.i=s}function io(t,e,s,n,i,r,o,a,c,u,l){var h=(c&$)!==0,d=(c&Js)===0,f=h?d?Pl(i,!1,!1):jt(i):i,p=c&fe?jt(o):o,m={i:p,v:f,k:r,a:null,e:null,prev:s,next:n};try{if(t===null){var _=document.createDocumentFragment();_.append(t=Ut())}return m.e=Ve(()=>a(t,f,p,u),yl),m.e.prev=s&&s.e,m.e.next=n&&n.e,s===null?l||(e.first=m):(s.next=m,s.e.next=m.e),n!==null&&(n.prev=m,n.e.prev=m.e),m}finally{}}function fi(t,e,s){for(var n=t.next?t.next.e.nodes_start:s,i=e?e.e.nodes_start:s,r=t.e.nodes_start;r!==null&&r!==n;){var o=Ps(r);i.before(r),r=o}}function Ze(t,e,s){e===null?t.first=s:(e.next=s,e.e.next=s&&s.e),s!==null&&(s.prev=e,s.e.prev=e&&e.e)}function Ht(t,e){zr(()=>{var s=t.getRootNode(),n=s.host?s:s.head??s.ownerDocument.head;if(!n.querySelector("#"+e.hash)){const i=document.createElement("style");i.id=e.hash,i.textContent=e.code,n.appendChild(i)}})}function cc(t,e,s){var n=t==null?"":""+t;return n=n?n+" "+e:e,n===""?null:n}function ro(t,e,s,n,i,r){var o=t.__className;if(o!==s||o===void 0){var a=cc(s,n);a==null?t.removeAttribute("class"):t.className=a,t.__className=s}return r}function oo(t,e,s=!1){if(t.multiple){if(e==null)return;if(!Qs(e))return vl();for(var n of t.options)n.selected=e.includes(ao(n));return}for(n of t.options){var i=ao(n);if(Ll(i,e)){n.selected=!0;return}}(!s||e!==void 0)&&(t.selectedIndex=-1)}function uc(t){var e=new MutationObserver(()=>{oo(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ii(()=>{e.disconnect()})}function ao(t){return"__value"in t?t.__value:t.value}const hc=Symbol("is custom element"),dc=Symbol("is html");function fc(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function dn(t,e,s,n){var i=pc(t);i[e]!==(i[e]=s)&&(e==="loading"&&(t[rl]=s),s==null?t.removeAttribute(e):typeof s!="string"&&gc(t).includes(e)?t[e]=s:t.setAttribute(e,s))}function pc(t){return t.__attributes??(t.__attributes={[hc]:t.nodeName.includes("-"),[dc]:t.namespaceURI===Ja})}var lo=new Map;function gc(t){var e=t.getAttribute("is")||t.nodeName,s=lo.get(e);if(s)return s;lo.set(e,s=[]);for(var n,i=t,r=Element.prototype;r!==i;){n=Za(i);for(var o in n)n[o].set&&s.push(o);i=pr(i)}return s}function mc(t,e,s=e){var n=new WeakSet;jl(t,"input",async i=>{var r=i?t.defaultValue:t.value;if(r=pi(t)?gi(r):r,s(r),ee!==null&&n.add(ee),await Jl(),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))}}}),Bs(e)==null&&t.value&&(s(pi(t)?gi(t.value):t.value),ee!==null&&n.add(ee)),ri(()=>{var i=e();if(t===document.activeElement){var r=sn??ee;if(n.has(r))return}pi(t)&&i===gi(t.value)||t.type==="date"&&!i&&!t.value||i!==t.value&&(t.value=i??"")})}function pi(t){var e=t.type;return e==="number"||e==="range"}function gi(t){return t===""?null:+t}function co(t,e){return t===e||(t==null?void 0:t[Pt])===e}function vc(t={},e,s,n){return zr(()=>{var i,r;return ri(()=>{i=r,r=[],Bs(()=>{t!==s(...r)&&(e(t,...r),i&&co(s(...i),t)&&e(null,...i))})}),()=>{Rs(()=>{r&&co(s(...r),t)&&e(null,...r)})}}),t}let fn=!1;function bc(t){var e=fn;try{return fn=!1,[t(),fn]}finally{fn=e}}function uo(t,e,s,n){var y;var i=!os||(s&Ha)!==0,r=(s&Ga)!==0,o=(s&Ka)!==0,a=n,c=!0,u=()=>(c&&(c=!1,a=o?Bs(n):n),a),l;if(r){var h=Pt in t||il in t;l=((y=ss(t,e))==null?void 0:y.set)??(h&&e in t?g=>t[e]=g:void 0)}var d,f=!1;r?[d,f]=bc(()=>t[e]):d=t[e],d===void 0&&n!==void 0&&(d=u(),l&&(i&&dl(),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&&!(s&Va))return p;if(l){var m=t.$$legacy;return function(g,v){return arguments.length>0?((!i||!v||m||f)&&l(v?p():g),g):p()}}var _=!1,I=(s&Wa?rn:si)(()=>(_=!1,p()));r&&w(I);var T=W;return function(g,v){if(arguments.length>0){const E=v?w(I):i&&r?ft(g):g;return M(I,E),_=!0,a!==void 0&&(a=E),g}return qt&&_||T.f&ht?I.v:w(I)}}function ho(){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 mi(t,e,s){let n="";if(s){const i=new Date;i.setTime(i.getTime()+s*24*60*60*1e3),n="; expires="+i.toUTCString()}document.cookie=t+"="+(e||"")+n+"; path=/; secure; samesite=strict"}function vi(t){const e=t+"=",s=document.cookie.split(";");for(let n=0;n<s.length;n++){let i=s[n];for(;i.charAt(0)===" ";)i=i.substring(1,i.length);if(i.indexOf(e)===0)return i.substring(e.length,i.length)}return null}function fo(){const t="uniqueUserID";let e=vi(t);return e||(e=ho(),mi(t,e,365)),e}function $e(t,e,s={},n={}){const i="https://admin-api.wineater.com/api/widget-events";let r=vi("uniqueUserID");r||(r=fo());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=vi("sessionID");c||(c=ho(),mi("sessionID",c,1));const u={event_type:t,store_id:e,session_id:c,event_time:a,data:s,meta:{...n,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={},yc=function(t,e,s,n,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(s,n),r},Fe=Uint8Array,Re=Uint16Array,pn=Int32Array,gn=new Fe([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]),mn=new Fe([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]),bi=new Fe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),go=function(t,e){for(var s=new Re(31),n=0;n<31;++n)s[n]=e+=1<<t[n-1];for(var i=new pn(s[30]),n=1;n<30;++n)for(var r=s[n];r<s[n+1];++r)i[r]=r-s[n]<<5|n;return{b:s,r:i}},mo=go(gn,2),wc=mo.b,vn=mo.r;wc[28]=258,vn[258]=28;for(var Sc=go(mn,0),yi=Sc.r,bn=new Re(32768),ne=0;ne<32768;++ne){var Tt=(ne&43690)>>1|(ne&21845)<<1;Tt=(Tt&52428)>>2|(Tt&13107)<<2,Tt=(Tt&61680)>>4|(Tt&3855)<<4,bn[ne]=((Tt&65280)>>8|(Tt&255)<<8)>>1}for(var fs=function(t,e,s){for(var n=t.length,i=0,r=new Re(e);i<n;++i)t[i]&&++r[t[i]-1];var o=new Re(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var a;if(s){a=new Re(1<<e);var c=15-e;for(i=0;i<n;++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[bn[h]>>c]=u}else for(a=new Re(n),i=0;i<n;++i)t[i]&&(a[i]=bn[o[t[i]-1]++]>>15-t[i]);return a},xt=new Fe(288),ne=0;ne<144;++ne)xt[ne]=8;for(var ne=144;ne<256;++ne)xt[ne]=9;for(var ne=256;ne<280;++ne)xt[ne]=7;for(var ne=280;ne<288;++ne)xt[ne]=8;for(var Ws=new Fe(32),ne=0;ne<32;++ne)Ws[ne]=5;var vo=fs(xt,9,0),bo=fs(Ws,5,0),wi=function(t){return(t+7)/8|0},yo=function(t,e,s){return(e==null||e<0)&&(e=0),(s==null||s>t.length)&&(s=t.length),new Fe(t.subarray(e,s))},_c=["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"],wo=function(t,e,s){var n=new Error(e||_c[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,wo),!s)throw n;return n},et=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8},ps=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8,t[n+2]|=s>>16},yn=function(t,e){for(var s=[],n=0;n<t.length;++n)t[n]&&s.push({s:n,f:t[n]});var i=s.length,r=s.slice();if(!i)return{t:Ti,l:0};if(i==1){var o=new Fe(s[0].s+1);return o[s[0].s]=1,{t:o,l:1}}s.sort(function(v,E){return v.f-E.f}),s.push({s:-1,f:25001});var a=s[0],c=s[1],u=0,l=1,h=2;for(s[0]={s:-1,f:a.f+c.f,l:a,r:c};l!=i-1;)a=s[s[u].f<s[h].f?u++:h++],c=s[u!=l&&s[u].f<s[h].f?u++:h++],s[l++]={s:-1,f:a.f+c.f,l:a,r:c};for(var d=r[0].s,n=1;n<i;++n)r[n].s>d&&(d=r[n].s);var f=new Re(d+1),p=wn(s[l-1],f,0);if(p>e){var n=0,m=0,_=p-e,I=1<<_;for(r.sort(function(E,C){return f[C.s]-f[E.s]||E.f-C.f});n<i;++n){var T=r[n].s;if(f[T]>e)m+=I-(1<<p-f[T]),f[T]=e;else break}for(m>>=_;m>0;){var y=r[n].s;f[y]<e?m-=1<<e-f[y]++-1:++n}for(;n>=0&&m;--n){var g=r[n].s;f[g]==e&&(--f[g],++m)}p=e}return{t:new Fe(f),l:p}},wn=function(t,e,s){return t.s==-1?Math.max(wn(t.l,e,s+1),wn(t.r,e,s+1)):e[t.s]=s},Si=function(t){for(var e=t.length;e&&!t[--e];);for(var s=new Re(++e),n=0,i=t[0],r=1,o=function(c){s[n++]=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:s.subarray(0,n),n:e}},gs=function(t,e){for(var s=0,n=0;n<e.length;++n)s+=t[n]*e[n];return s},_i=function(t,e,s){var n=s.length,i=wi(e+2);t[i]=n&255,t[i+1]=n>>8,t[i+2]=t[i]^255,t[i+3]=t[i+1]^255;for(var r=0;r<n;++r)t[i+r+4]=s[r];return(i+4+n)*8},ki=function(t,e,s,n,i,r,o,a,c,u,l){et(e,l++,s),++i[256];for(var h=yn(i,15),d=h.t,f=h.l,p=yn(r,15),m=p.t,_=p.l,I=Si(d),T=I.c,y=I.n,g=Si(m),v=g.c,E=g.n,C=new Re(19),S=0;S<T.length;++S)++C[T[S]&31];for(var S=0;S<v.length;++S)++C[v[S]&31];for(var k=yn(C,7),A=k.t,z=k.l,F=19;F>4&&!A[bi[F-1]];--F);var G=u+5<<3,j=gs(i,xt)+gs(r,Ws)+o,x=gs(i,d)+gs(r,m)+o+14+3*F+gs(C,A)+2*C[16]+3*C[17]+7*C[18];if(c>=0&&G<=j&&G<=x)return _i(e,l,t.subarray(c,c+u));var D,O,N,V;if(et(e,l,1+(x<j)),l+=2,x<j){D=fs(d,f,0),O=d,N=fs(m,_,0),V=m;var Y=fs(A,z,0);et(e,l,y-257),et(e,l+5,E-1),et(e,l+10,F-4),l+=14;for(var S=0;S<F;++S)et(e,l+3*S,A[bi[S]]);l+=3*F;for(var se=[T,v],de=0;de<2;++de)for(var me=se[de],S=0;S<me.length;++S){var R=me[S]&31;et(e,l,Y[R]),l+=A[R],R>15&&(et(e,l,me[S]>>5&127),l+=me[S]>>12)}}else D=vo,O=xt,N=bo,V=Ws;for(var S=0;S<a;++S){var P=n[S];if(P>255){var R=P>>18&31;ps(e,l,D[R+257]),l+=O[R+257],R>7&&(et(e,l,P>>23&31),l+=gn[R]);var re=P&31;ps(e,l,N[re]),l+=V[re],re>3&&(ps(e,l,P>>5&8191),l+=mn[re])}else ps(e,l,D[P]),l+=O[P]}return ps(e,l,D[256]),l+O[256]},So=new pn([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ti=new Fe(0),_o=function(t,e,s,n,i,r){var o=r.z||t.length,a=new Fe(n+o+5*(1+Math.ceil(o/7e3))+i),c=a.subarray(n,a.length-i),u=r.l,l=(r.r||0)&7;if(e){l&&(c[0]=r.r>>3);for(var h=So[e-1],d=h>>13,f=h&8191,p=(1<<s)-1,m=r.p||new Re(32768),_=r.h||new Re(p+1),I=Math.ceil(s/3),T=2*I,y=function(Dt){return(t[Dt]^t[Dt+1]<<I^t[Dt+2]<<T)&p},g=new pn(25e3),v=new Re(288),E=new Re(32),C=0,S=0,k=r.i||0,A=0,z=r.w||0,F=0;k+2<o;++k){var G=y(k),j=k&32767,x=_[G];if(m[j]=x,_[G]=j,z<=k){var D=o-k;if((C>7e3||A>24576)&&(D>423||!u)){l=ki(t,c,0,g,v,E,S,A,F,k-F,l),A=C=S=0,F=k;for(var O=0;O<286;++O)v[O]=0;for(var O=0;O<30;++O)E[O]=0}var N=2,V=0,Y=f,se=j-x&32767;if(D>2&&G==y(k-se))for(var de=Math.min(d,D)-1,me=Math.min(32767,k),R=Math.min(258,D);se<=me&&--Y&&j!=x;){if(t[k+N]==t[k+N-se]){for(var P=0;P<R&&t[k+P]==t[k+P-se];++P);if(P>N){if(N=P,V=se,P>de)break;for(var re=Math.min(se,P-2),yt=0,O=0;O<re;++O){var wt=k-se+O&32767,$t=m[wt],Ye=wt-$t&32767;Ye>yt&&(yt=Ye,x=wt)}}}j=x,x=m[j],se+=j-x&32767}if(V){g[A++]=268435456|vn[N]<<18|yi[V];var Cs=vn[N]&31,Ns=yi[V]&31;S+=gn[Cs]+mn[Ns],++v[257+Cs],++E[Ns],z=k+N,++C}else g[A++]=t[k],++v[t[k]]}}for(k=Math.max(k,z);k<o;++k)g[A++]=t[k],++v[t[k]];l=ki(t,c,u,g,v,E,S,A,F,k-F,l),u||(r.r=l&7|c[l/8|0]<<3,l-=7,r.h=_,r.p=m,r.i=k,r.w=z)}else{for(var k=r.w||0;k<o+u;k+=65535){var es=k+65535;es>=o&&(c[l/8|0]=u,es=o),l=_i(c,l+1,t.subarray(k,es))}r.i=o}return yo(a,0,n+wi(l)+i)},ko=function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var s=e,n=9;--n;)s=(s&1&&-306674912)^s>>>1;t[e]=s}return t}(),To=function(){var t=-1;return{p:function(e){for(var s=t,n=0;n<e.length;++n)s=ko[s&255^e[n]]^s>>>8;t=s},d:function(){return~t}}},xi=function(t,e,s,n,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new Fe(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return _o(t,e.level==null?6:e.level,e.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+e.mem,s,n,i)},kc=function(t,e){var s={};for(var n in t)s[n]=t[n];for(var n in e)s[n]=e[n];return s},xo=function(t,e,s){for(var n=t(),i=t.toString(),r=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<n.length;++o){var a=n[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 s[c]=a}return e},Sn=[],Tc=function(t){var e=[];for(var s in t)t[s].buffer&&e.push((t[s]=new t[s].constructor(t[s])).buffer);return e},xc=function(t,e,s,n){if(!Sn[s]){for(var i="",r={},o=t.length-1,a=0;a<o;++a)i=xo(t[a],i,r);Sn[s]={c:xo(t[o],i,r),e:r}}var c=kc({},Sn[s].e);return yc(Sn[s].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",s,c,Tc(c),n)},Ec=function(){return[Fe,Re,pn,gn,mn,bi,vn,yi,vo,xt,bo,Ws,bn,So,Ti,fs,et,ps,yn,wn,Si,gs,_i,ki,wi,yo,_o,xi,Nc,Eo]},Ic=function(){return[Io,Co,_n,To,ko]},Eo=function(t){return postMessage(t,[t.buffer])},Cc=function(t,e,s,n,i,r){var o=xc(s,n,i,function(a,c){o.terminate(),r(a,c)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},_n=function(t,e,s){for(;s;++e)t[e]=s,s>>>=8},Io=function(t,e){var s=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e.level<2?4:e.level==9?2:0,t[9]=3,e.mtime!=0&&_n(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),s){t[3]=8;for(var n=0;n<=s.length;++n)t[n+10]=s.charCodeAt(n)}},Co=function(t){return 10+(t.filename?t.filename.length+1:0)};function Nc(t,e){return xi(t,e||{},0,0)}function Dc(t,e,s){return s||(s=e,e={}),typeof s!="function"&&wo(7),Cc(t,e,[Ec,Ic,function(){return[No]}],function(n){return Eo(No(n.data[0],n.data[1]))},2,s)}function No(t,e){e||(e={});var s=To(),n=t.length;s.p(t);var i=xi(t,e,Co(e),8),r=i.length;return Io(i,e),_n(i,r-8,s.d()),_n(i,r-4,n),i}var Rc=typeof TextDecoder<"u"&&new TextDecoder,Oc=0;try{Rc.decode(Ti,{stream:!0}),Oc=1}catch{}class Do{constructor(){this.idx=1,this.backDict={}}getKey(e){let s=!1;return this.backDict[e]||(s=!0,this.backDict[e]=this.idx++),[this.backDict[e],s]}}class Mc{constructor(e){this.dict=new Do,this.app=e.app,this.isDictDisabled=e.isDictDisabled}sendSetAttribute(e,s,n){if(this.isDictDisabled){const i=[12,e,s,n];return this.app.send(i)}else{const i=[51,e,this.applyDict(s),this.applyDict(n)];return this.app.send(i)}}applyDict(e){const[s,n]=this.dict.getKey(e);return n&&this.app.send([50,s,e]),s}clear(){this.dict=new Do}}class Ac{constructor(e,s){this.app=e,this.startParams=s,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=n=>{if(n.value.length){const i=Pc(n);if(i.type)return i}},this.durationInt=null}setConditions(e){this.conditions=e}async fetchConditions(e,s){try{const n=await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${e}`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}),{conditions:i}=await n.json(),r=[];i.forEach(o=>{o.filters.forEach(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(s){this.app.debug.error(s)}}processMessage(e){if(!this.hasStarted)switch(e[0]){case 78:this.jsExceptionEvent(e);break;case 27:this.customEvent(e);break;case 68:this.clickEvent(e);break;case 122:this.pageLocationEvent(e);break;case 83:this.networkRequest(e);break}}processFlags(e){const s=this.conditions.filter(n=>n.type==="feature_flag");s.length&&s.forEach(n=>{const i=ms[n.operator];i&&e.find(r=>i(r.key,n.value))&&this.trigger(n.name)})}processDuration(e,s){this.durationInt=setInterval(()=>{performance.now()>e&&this.trigger(s)},1e3),this.app.attachStopCallback(()=>{this.durationInt&&clearInterval(this.durationInt)})}networkRequest(e){const s=this.conditions.filter(n=>n.type==="network_request");s.length&&s.forEach(n=>{const i=n.subConditions.filter(r=>r.operator!=="isAny");i.length?i.every(o=>{let 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=ms[o.operator];if(c&&c(a,o.value))return!0})&&this.trigger(n.name):i.length===0&&n.subConditions.length&&this.trigger(n.name)})}customEvent(e){const s=this.conditions.filter(n=>n.type==="custom_event");s.length&&s.forEach(n=>{const i=ms[n.operator];i&&(i(e[1],n.value)||i(e[2],n.value))&&this.trigger(n.name)})}clickEvent(e){const s=this.conditions.filter(n=>n.type==="click");s.length&&s.forEach(n=>{const i=ms[n.operator];i&&(i(e[3],n.value)||i(e[4],n.value))&&this.trigger(n.name)})}pageLocationEvent(e){const s=this.conditions.filter(n=>n.type==="visited_url");s&&s.forEach(n=>{const i=ms[n.operator];i&&i(e[1],n.value)&&this.trigger(n.name)})}jsExceptionEvent(e){const s=[e[1],e[2],e[3]],n=this.conditions.filter(i=>i.type==="exception");n&&n.forEach(i=>{const r=ms[i.operator];r&&s.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const ms={is:(t,e)=>e.some(s=>t.includes(s)),isAny:()=>!0,isNot:(t,e)=>!e.some(s=>t.includes(s)),contains:(t,e)=>e.some(s=>t.includes(s)),notContains:(t,e)=>!e.some(s=>t.includes(s)),startsWith:(t,e)=>e.some(s=>t.startsWith(s)),endsWith:(t,e)=>e.some(s=>t.endsWith(s)),greaterThan:(t,e)=>t>e,greaterOrEqual:(t,e)=>t>=e,lessOrEqual:(t,e)=>t<=e,lessThan:(t,e)=>t<e},Pc=t=>{const e={on:"is",notOn:"isNot",">":"greaterThan","<":"lessThan","=":"is","<=":"lessOrEqual",">=":"greaterOrEqual"},s=i=>{if(Object.keys(e).includes(i))return e[i]};let n={type:"",operator:"",value:t.value,key:""};switch(t.type){case"click":n={type:"click",operator:s(t.operator),value:t.value,key:""};break;case"location":n={type:"visited_url",operator:t.operator,value:t.value,key:""};break;case"custom":n={type:"custom_event",operator:t.operator,value:t.value,key:""};break;case"metadata":n={type:t.source==="featureFlag"?"feature_flag":t.type,operator:t.operator,value:t.value,key:""};break;case"error":n={type:"exception",operator:t.operator,value:t.value,key:""};break;case"duration":n={type:"session_duration",value:t.value[0],key:""};break;case"fetchUrl":n={type:"network_request",key:"url",operator:t.operator,value:t.value};break;case"fetchStatusCode":n={type:"network_request",key:"status",operator:s(t.operator),value:t.value};break;case"fetchMethod":n={type:"network_request",key:"method",operator:s(t.operator),value:t.value};break;case"fetchDuration":n={type:"network_request",key:"duration",operator:s(t.operator),value:t.value};break}return n};class Lc{constructor(e){this.app=e,this.flags=[],this.storageKey="__openreplay_flags";const s=this.app.sessionStorage.getItem(this.storageKey);if(s){const n=s.split(";").filter(Boolean);this.flags=n.map(i=>JSON.parse(i))}}getFeatureFlag(e){return this.flags.find(s=>s.key===e)}isFlagEnabled(e){return this.flags.findIndex(s=>s.key===e)!==-1}onFlagsLoad(e){this.onFlagsCb=e}async reloadFlags(e){const s=this.app.sessionStorage.getItem(this.storageKey),n={};s&&s.split(";").filter(Boolean).forEach(l=>{const h=JSON.parse(l);n[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:n},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 s=[];e.forEach(o=>{o.is_persist&&s.push(o)});let n="";return this.diffPersist(s).forEach(o=>{n+=`${JSON.stringify(o)};`}),this.app.sessionStorage.setItem(this.storageKey,n),this.flags=e,(r=this.onFlagsCb)==null?void 0:r.call(this,e)}clearPersistFlags(){this.app.sessionStorage.removeItem(this.storageKey)}diffPersist(e){const s=this.app.sessionStorage.getItem(this.storageKey);if(!s)return e;const i=s.split(";").filter(Boolean).map(r=>JSON.parse(r));return e.filter(r=>i.findIndex(o=>o.key===r.key)===-1)}}const Ro={htmlmasked:"hidden",masked:"obscured"},tt=!(typeof window>"u"),Bc=tt&&navigator.userAgent.match(/firefox|fxios/i),Fc=1e5;let Ei=tt?Date.now()-performance.now():0;function Ii(){Ei=Date.now()-performance.now()}function vs(){return Ei}const Ke=tt&&performance.now?()=>Math.round(performance.now()+Ei):()=>Date.now(),Ci="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function Oo(t){return t.trim().replace(/\s+/g," ")}function Mo(t){return t.startsWith("https://")||t.startsWith("http://")}const kn="https://docs.openreplay.com",Ao={};function Et(t,e,s="/"){Ao[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${kn}${s} for more information.`),Ao[t]=!0)}function Ni(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&Et('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function Vt(t,e){const s=`data-openreplay-${e}`;return t.hasAttribute(s)?(Ro[e]&&Et(`"${s}" attribute`,`"${Ro[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function zc(t){try{return!!t.contentDocument}catch{return!1}}function Po(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 Lo(t){return t.toString(16).padStart(2,"0")}function jc(t){const e=new Uint8Array(t/2),s=window.crypto||window.msCrypto;return s?(s.getRandomValues(e),Array.from(e,Lo).join("")):Array.from({length:t},()=>Lo(Math.floor(Math.random()*16))).join("")}function Bo(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function Di(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function Fo(t,e){if(e)return new MutationObserver(t);{const s=Di("MutationObserver");return new window[s](t)}}function zo(t,e,s,n,i){if(!Po(t))return;let r="addEventListener";i||(r=Di("addEventListener"));try{t[r]?t[r](e,s,n):t.addEventListener(e,s,n)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}function jo(t,e,s,n,i){if(!Po(t))return;let r="removeEventListener";i||(r=Di("removeEventListener"));try{t[r]?t[r](e,s,n):t.removeEventListener(e,s,n)}catch(o){const a=o.message;console.error(`Openreplay: ${a}; if this error is caused by an IframeObserver, ignore it`,e,t)}}class Uc{constructor(){this.taskQueue=[],this.isRunning=!1}addTask(e){this.taskQueue.push(e),this.runTasks()}runTasks(){if(this.isRunning||this.taskQueue.length===0)return;this.isRunning=!0;const e=()=>{if(this.taskQueue.length===0){this.isRunning=!1;return}const s=this.taskQueue.shift();Promise.resolve(s()).then(()=>{requestAnimationFrame(()=>e())})};e()}}const qc=new Uc;function Wc(t){qc.addTask(t)}function Uo(t,e){const s={...t};for(const n in e)if(e.hasOwnProperty(n)){const i=e[n],r=t[n];typeof i=="object"&&!Array.isArray(i)&&i!==null?s[n]=Uo(r||{},i):s[n]=i}return s}function Gt(t){return[0,t]}function Hc(t,e){return[5,t,e]}function Vc(t,e){return[6,t,e]}function Gc(){return[7]}function Kc(t,e,s,n,i){return[8,t,e,s,n,i]}function Xc(t,e,s){return[9,t,e,s]}function Yc(t,e,s){return[10,t,e,s]}function Jc(t){return[11,t]}function qo(t,e){return[13,t,e]}function Qc(t,e){return[14,t,e]}function Zc(t,e,s){return[16,t,e,s]}function $c(t,e,s){return[18,t,e,s]}function eu(t,e){return[19,t,e]}function tu(t,e){return[20,t,e]}function su(t,e){return[22,t,e]}function nu(t,e,s,n,i,r,o,a,c){return[23,t,e,s,n,i,r,o,a,c]}function iu(t,e,s){return[24,t,e,s]}function ru(t,e){return[27,t,e]}function ou(t){return[28,t]}function au(t){return[29,t]}function Wo(t,e){return[30,t,e]}function lu(t,e,s,n){return[49,t,e,s,n]}function cu(t,e){return[54,t,e]}function uu(t){return[55,t]}function Ho(t,e,s,n){return[57,t,e,s,n]}function Vo(t){return[58,t]}function Ri(t,e,s,n){return[60,t,e,s,n]}function hu(t,e,s){return[61,t,e,s]}function du(t,e){return[63,t,e]}function fu(t,e){return[64,t,e]}function pu(t,e,s,n,i,r){return[68,t,e,s,n,i,r]}function Oi(t,e){return[70,t,e]}function Go(t,e,s){return[71,t,e,s]}function Mi(t,e,s,n){return[73,t,e,s,n]}function Ko(t,e){return[75,t,e]}function Xo(t,e){return[76,t,e]}function gu(t,e){return[77,t,e]}function Ai(t,e,s,n){return[78,t,e,s,n]}function Tn(t,e,s,n,i,r,o,a,c){return[83,t,e,s,n,i,r,o,a,c]}function mu(t,e,s,n,i,r){return[84,t,e,s,n,i,r]}function vu(t,e,s,n,i,r){return[112,t,e,s,n,i,r]}function Yo(t,e,s){return[113,t,e,s]}function bu(t){return[114,t]}function Jo(t){return[115,t]}function Qo(t,e,s,n,i,r,o,a,c,u){return[116,t,e,s,n,i,r,o,a,c,u]}function xn(t){return[117,t]}function Kt(t){return[118,t]}function yu(t,e){return[119,t,e]}function wu(t){return[120,t]}function Su(t,e,s,n){return[122,t,e,s,n]}const Pi=tt&&"performance"in window&&"memory"in performance?performance:{memory:{}},Li=tt?(navigator.deviceMemory||0)*1024:0,Bi=Pi.memory.jsHeapSizeLimit||0;function _u(t,e){if(!Object.assign({capturePerformance:!0},e).capturePerformance)return;let n,i;const r=()=>{n===void 0||n===-1||(n++,requestAnimationFrame(r))};t.ticker.attach(()=>{i===void 0||i===-1||i++},0,!1);const o=()=>{n===void 0||i===void 0||(t.send(lu(n,i,Pi.memory.totalJSHeapSize||0,Pi.memory.usedJSHeapSize||0)),i=n=document.hidden?-1:0)};t.attachStartCallback(()=>{i=n=-1,o(),r()}),t.attachStopCallback(()=>{i=n=void 0}),t.ticker.attach(o,40,!1),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",o,!1,!1)}const Zo="__or__watched_tags__";class ku{constructor(e){this.intervals={},this.tags=[],this.sessionStorage=e.sessionStorage,this.errLog=e.errLog,this.onTag=e.onTag;const s=JSON.parse(e.sessionStorage.getItem(Zo)??"[]");this.setTags(s),this.observer=new IntersectionObserver(n=>{n.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,s){return fetch(`${e}/v1/web/tags`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}).then(n=>n.json()).then(({tags:n})=>{if(n&&n.length){this.setTags(n);const i=JSON.stringify(n);this.sessionStorage.setItem(Zo,i||"")}}).catch(n=>this.errLog(n))}setTags(e){this.tags=e,this.intervals={},e.forEach(s=>{this.intervals[s.id]=setInterval(()=>{const n=document.querySelectorAll(s.selector);if(n.length>0){const i=n[0];i.__or_watcher_tagname=s.id,this.observer.observe(i)}},500)})}onTagRendered(e){this.intervals[e]&&clearInterval(this.intervals[e]),this.onTag(e)}clear(){this.tags.forEach(e=>{clearInterval(this.intervals[e.id])}),this.tags=[],this.intervals={},this.observer.disconnect()}}const Tu={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"'},xu={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},En={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"},Eu={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},Iu={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"},Cu={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"},$o={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},bs={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},Nu={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"},ys={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"},Du={...ys,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},ea={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},ta={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"},sa={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},Ru={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},na={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},Ou={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"},ia={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"},ra={fontWeight:"bold"},Mu={fontSize:"13px",lineHeight:"auto"},oa={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},Au={...oa,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},Pu={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},Lu={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},aa={Standard:{width:1280,height:720}};class Bu{constructor(e){this.app=e,this.mediaRecorder=null,this.recordedChunks=[],this.stream=null,this.recStartTs=null}async startRecording(e,s,n,i){this.recStartTs=this.app.timestamp();const r=s;try{this.stream=await navigator.mediaDevices.getUserMedia({video:i?{...r,frameRate:{ideal:e}}:!1,audio:n}),this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm;codecs=vp9"}),this.recordedChunks=[],this.mediaRecorder.ondataavailable=o=>{o.data.size>0&&this.recordedChunks.push(o.data)},this.mediaRecorder.start()}catch(o){console.error(o)}}async stopRecording(){return new Promise(e=>{this.mediaRecorder&&(this.mediaRecorder.onstop=()=>{const s=new Blob(this.recordedChunks,{type:"video/webm"});e(s)},this.mediaRecorder.stop())})}async sendToAPI(){const e=await this.stopRecording();return fetch(`${this.app.options.ingestPoint}/v1/web/uxt/upload-url`,{headers:{Authorization:`Bearer ${this.app.session.getSessionToken()}`}}).then(s=>{if(s.ok)return s.json();throw new Error("Failed to get upload url")}).then(({url:s})=>fetch(s,{method:"PUT",headers:{"Content-Type":"video/webm"},body:e})).catch(console.error).finally(()=>{this.discard()})}async saveToFile(e="recorded-video.webm"){const s=await this.stopRecording(),n=URL.createObjectURL(s),i=document.createElement("a");i.style.display="none",i.href=n,i.download=e,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(n),document.body.removeChild(i)}discard(){var e,s;(e=this.mediaRecorder)==null||e.stop(),(s=this.stream)==null||s.getTracks().forEach(n=>n.stop())}}function Fu(t,e){e.onmousedown=function(s){const n=t.getBoundingClientRect(),i=s.clientX-n.left,r=s.clientY-n.top;t.style.position="fixed",t.style.zIndex=99999999999999,o(s.pageX,s.pageY);function o(u,l){let h=u-i,d=l-r;h<=5&&(h=5),d<=5&&(d=5),h>=window.innerWidth-n.width&&(h=window.innerWidth-n.width),d>=window.innerHeight-n.height&&(d=window.innerHeight-n.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 zu(){const t=document.createElement("div");t.className="grid";for(let e=0;e<16;e++){const s=document.createElement("div");Object.assign(s.style,{width:"2px",height:"2px",borderRadius:"10px",background:"white"}),s.className="cell",t.appendChild(s)}return Object.assign(t.style,{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gridTemplateRows:"repeat(4, 1fr)",gap:"2px",cursor:"grab"}),t}function ju(){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 Uu(){const t=document.createElement("style");t.type="text/css",t.innerText=`@keyframes spin {
|
|
1
|
+
(function(Z,te){typeof exports=="object"&&typeof module<"u"?module.exports=te():typeof define=="function"&&define.amd?define(te):(Z=typeof globalThis<"u"?globalThis:Z||self,Z.WineaterChatbot=te())})(this,function(){"use strict";var Vf=Object.defineProperty;var Ka=Z=>{throw TypeError(Z)};var Gf=(Z,te,we)=>te in Z?Vf(Z,te,{enumerable:!0,configurable:!0,writable:!0,value:we}):Z[te]=we;var ht=(Z,te,we)=>Gf(Z,typeof te!="symbol"?te+"":te,we),pr=(Z,te,we)=>te.has(Z)||Ka("Cannot "+we);var v=(Z,te,we)=>(pr(Z,te,"read from private field"),we?we.call(Z):te.get(Z)),G=(Z,te,we)=>te.has(Z)?Ka("Cannot add the same private member more than once"):te instanceof WeakSet?te.add(Z):te.set(Z,we),L=(Z,te,we,ns)=>(pr(Z,te,"write to private field"),ns?ns.call(Z,we):te.set(Z,we),we),le=(Z,te,we)=>(pr(Z,te,"access private method"),we);var Ua,In,Cn,Qt,Zt,Qn,Nn,Rn,ye,gr,an,mr,Xa,Ya,qe,Ve,hr,at,$t,lt,Ge,Me,ct,kt,Mt,en,Pt,tn,Lt,Gs,Se,Kf,Xf,vr,Js,Qs,br,Qe,ut,Fe,nn,Zn,$n,Ks,Dn,sn,Ha;const Z="5";typeof window<"u"&&((Ua=window.__svelte??(window.__svelte={})).v??(Ua.v=new Set)).add(Z);const te=1,we=2,ns=16,Ja=1,Qa=2,Za=4,$a=8,el=16,tl=1,nl=2,ke=Symbol(),sl="http://www.w3.org/1999/xhtml",Zs=!1;var $s=Array.isArray,il=Array.prototype.indexOf,ei=Array.from,rl=Object.defineProperty,ln=Object.getOwnPropertyDescriptor,ol=Object.getOwnPropertyDescriptors,al=Object.prototype,ll=Array.prototype,wr=Object.getPrototypeOf,yr=Object.isExtensible;function cl(t){for(var e=0;e<t.length;e++)t[e]()}function Sr(){var t,e,n=new Promise((s,i)=>{t=s,e=i});return{promise:n,resolve:t,reject:e}}const _e=2,ti=4,ni=8,dt=16,ft=32,Wt=64,ss=128,Xe=512,Te=1024,Re=2048,pt=4096,Pe=8192,gt=16384,si=32768,cn=65536,_r=1<<17,kr=1<<18,un=1<<19,ul=1<<20,jt=32768,ii=1<<21,ri=1<<22,xt=1<<23,zt=Symbol("$state"),hl=Symbol("legacy props"),dl=Symbol(""),hn=new class extends Error{constructor(){super(...arguments);ht(this,"name","StaleReactionError");ht(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function fl(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function pl(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function gl(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ml(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function vl(t){throw new Error("https://svelte.dev/e/effect_orphan")}function bl(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function wl(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function yl(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Sl(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function _l(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function kl(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Tl(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function xl(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Tr(t){return t===this.v}function El(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function xr(t){return!El(t,this.v)}let dn=!1,Il=!1;function Cl(){dn=!0}let pe=null;function fn(t){pe=t}function Et(t,e=!1,n){pe={p:pe,i:!1,c:null,e:null,s:t,x:null,l:dn&&!e?{s:null,u:null,$:[]}:null}}function It(t){var e=pe,n=e.e;if(n!==null){e.e=null;for(var s of n)qr(s)}return t!==void 0&&(e.x=t),e.i=!0,pe=e.p,t??{}}function On(){return!dn||pe!==null&&pe.l===null}let Ut=[];function Er(){var t=Ut;Ut=[],cl(t)}function An(t){if(Ut.length===0&&!Mn){var e=Ut;queueMicrotask(()=>{e===Ut&&Er()})}Ut.push(t)}function Nl(){for(;Ut.length>0;)Er()}function Ir(t){var e=Q;if(e===null)return V.f|=xt,t;if(e.f&si)pn(t,e);else{if(!(e.f&ss))throw t;e.b.error(t)}}function pn(t,e){for(;e!==null;){if(e.f&ss)try{e.b.error(t);return}catch(n){t=n}e=e.parent}throw t}const is=new Set;let J=null,rs=null,ge=null,We=[],os=null,oi=!1,Mn=!1;const Vs=class Vs{constructor(){G(this,ye);ht(this,"committed",!1);ht(this,"current",new Map);ht(this,"previous",new Map);G(this,In,new Set);G(this,Cn,new Set);G(this,Qt,0);G(this,Zt,0);G(this,Qn,null);G(this,Nn,[]);G(this,Rn,[]);ht(this,"skipped_effects",new Set);ht(this,"is_fork",!1)}is_deferred(){return this.is_fork||v(this,Zt)>0}process(e){var s;We=[],rs=null,this.apply();var n={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const i of e)le(this,ye,gr).call(this,i,n);this.is_fork||le(this,ye,Xa).call(this),this.is_deferred()?(le(this,ye,an).call(this,n.effects),le(this,ye,an).call(this,n.render_effects),le(this,ye,an).call(this,n.block_effects)):(rs=this,J=null,Nr(n.render_effects),Nr(n.effects),rs=null,(s=v(this,Qn))==null||s.resolve()),ge=null}capture(e,n){this.previous.has(e)||this.previous.set(e,n),e.f&xt||(this.current.set(e,e.v),ge==null||ge.set(e,e.v))}activate(){J=this,this.apply()}deactivate(){J===this&&(J=null,ge=null)}flush(){if(this.activate(),We.length>0){if(Cr(),J!==null&&J!==this)return}else v(this,Qt)===0&&this.process([]);this.deactivate()}discard(){for(const e of v(this,Cn))e(this);v(this,Cn).clear()}increment(e){L(this,Qt,v(this,Qt)+1),e&&L(this,Zt,v(this,Zt)+1)}decrement(e){L(this,Qt,v(this,Qt)-1),e&&L(this,Zt,v(this,Zt)-1),this.revive()}revive(){for(const e of v(this,Nn))xe(e,Re),Ht(e);for(const e of v(this,Rn))xe(e,pt),Ht(e);L(this,Nn,[]),L(this,Rn,[]),this.flush()}oncommit(e){v(this,In).add(e)}ondiscard(e){v(this,Cn).add(e)}settled(){return(v(this,Qn)??L(this,Qn,Sr())).promise}static ensure(){if(J===null){const e=J=new Vs;is.add(J),Mn||Vs.enqueue(()=>{J===e&&e.flush()})}return J}static enqueue(e){An(e)}apply(){}};In=new WeakMap,Cn=new WeakMap,Qt=new WeakMap,Zt=new WeakMap,Qn=new WeakMap,Nn=new WeakMap,Rn=new WeakMap,ye=new WeakSet,gr=function(e,n){var l;e.f^=Te;for(var s=e.first;s!==null;){var i=s.f,r=(i&(ft|Wt))!==0,o=r&&(i&Te)!==0,a=o||(i&Pe)!==0||this.skipped_effects.has(s);if(s.f&ss&&((l=s.b)!=null&&l.is_pending())&&(n={parent:n,effect:s,effects:[],render_effects:[],block_effects:[]}),!a&&s.fn!==null){r?s.f^=Te:i&ti?n.effects.push(s):zn(s)&&(s.f&dt&&n.block_effects.push(s),Un(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&&(le(this,ye,an).call(this,n.effects),le(this,ye,an).call(this,n.render_effects),le(this,ye,an).call(this,n.block_effects),n=n.parent),s=u.next,u=u.parent}},an=function(e){for(const n of e)(n.f&Re?v(this,Nn):v(this,Rn)).push(n),le(this,ye,mr).call(this,n.deps),xe(n,Te)},mr=function(e){if(e!==null)for(const n of e)!(n.f&_e)||!(n.f&jt)||(n.f^=jt,le(this,ye,mr).call(this,n.deps))},Xa=function(){if(v(this,Zt)===0){for(const e of v(this,In))e();v(this,In).clear()}v(this,Qt)===0&&le(this,ye,Ya).call(this)},Ya=function(){var r;if(is.size>1){this.previous.clear();var e=ge,n=!0,s={parent:null,effect:null,effects:[],render_effects:[],block_effects:[]};for(const o of is){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=We;We=[];const u=new Set,l=new Map;for(const h of a)Rr(h,c,u,l);if(We.length>0){J=o,o.apply();for(const h of We)le(r=o,ye,gr).call(r,h,s);o.deactivate()}We=i}}J=null,ge=e}this.committed=!0,is.delete(this)};let mt=Vs;function Rl(t){var e=Mn;Mn=!0;try{for(var n;;){if(Nl(),We.length===0&&(J==null||J.flush(),We.length===0))return os=null,n;Cr()}}finally{Mn=e}}function Cr(){var t=Nt;oi=!0;var e=null;try{var n=0;for(fs(!0);We.length>0;){var s=mt.ensure();if(n++>1e3){var i,r;Dl()}s.process(We),Ct.clear()}}finally{oi=!1,fs(t),os=null}}function Dl(){try{bl()}catch(t){pn(t,os)}}let Ye=null;function Nr(t){var e=t.length;if(e!==0){for(var n=0;n<e;){var s=t[n++];if(!(s.f&(gt|Pe))&&zn(s)&&(Ye=new Set,Un(s),s.deps===null&&s.first===null&&s.nodes_start===null&&(s.teardown===null&&s.ac===null?Xr(s):s.fn=null),(Ye==null?void 0:Ye.size)>0)){Ct.clear();for(const i of Ye){if(i.f&(gt|Pe))continue;const r=[i];let o=i.parent;for(;o!==null;)Ye.has(o)&&(Ye.delete(o),r.push(o)),o=o.parent;for(let a=r.length-1;a>=0;a--){const c=r[a];c.f&(gt|Pe)||Un(c)}}Ye.clear()}}Ye=null}}function Rr(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&_e?Rr(i,e,n,s):r&(ri|dt)&&!(r&Re)&&Dr(i,e,s)&&(xe(i,Re),Ht(i))}}function Dr(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&_e&&Dr(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function Ht(t){for(var e=os=t;e.parent!==null;){e=e.parent;var n=e.f;if(oi&&e===Q&&n&dt&&!(n&kr))return;if(n&(Wt|ft)){if(!(n&Te))return;e.f^=Te}}We.push(e)}function Ol(t){let e=0,n=qt(0),s;return()=>{hs()&&(b(n),di(()=>(e===0&&(s=Hn(()=>t(()=>Bn(n)))),e+=1,()=>{An(()=>{e-=1,e===0&&(s==null||s(),s=void 0,Bn(n))})})))}}var Al=cn|un|ss;function Ml(t,e,n){new Pl(t,e,n)}class Pl{constructor(e,n,s){G(this,Se);ht(this,"parent");G(this,qe,!1);G(this,Ve);G(this,hr,null);G(this,at);G(this,$t);G(this,lt);G(this,Ge,null);G(this,Me,null);G(this,ct,null);G(this,kt,null);G(this,Mt,null);G(this,en,0);G(this,Pt,0);G(this,tn,!1);G(this,Lt,null);G(this,Gs,Ol(()=>(L(this,Lt,qt(v(this,en))),()=>{L(this,Lt,null)})));L(this,Ve,e),L(this,at,n),L(this,$t,s),this.parent=Q.b,L(this,qe,!!v(this,at).pending),L(this,lt,fi(()=>{Q.b=this;{var i=le(this,Se,vr).call(this);try{L(this,Ge,je(()=>s(i)))}catch(r){this.error(r)}v(this,Pt)>0?le(this,Se,Qs).call(this):L(this,qe,!1)}return()=>{var r;(r=v(this,Mt))==null||r.remove()}},Al))}is_pending(){return v(this,qe)||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!v(this,at).pending}update_pending_count(e){le(this,Se,br).call(this,e),L(this,en,v(this,en)+e),v(this,Lt)&&Fn(v(this,Lt),v(this,en))}get_effect_pending(){return v(this,Gs).call(this),b(v(this,Lt))}error(e){var n=v(this,at).onerror;let s=v(this,at).failed;if(v(this,tn)||!n&&!s)throw e;v(this,Ge)&&(De(v(this,Ge)),L(this,Ge,null)),v(this,Me)&&(De(v(this,Me)),L(this,Me,null)),v(this,ct)&&(De(v(this,ct)),L(this,ct,null));var i=!1,r=!1;const o=()=>{if(i){xl();return}i=!0,r&&kl(),mt.ensure(),L(this,en,0),v(this,ct)!==null&&gn(v(this,ct),()=>{L(this,ct,null)}),L(this,qe,this.has_pending_snippet()),L(this,Ge,le(this,Se,Js).call(this,()=>(L(this,tn,!1),je(()=>v(this,$t).call(this,v(this,Ve)))))),v(this,Pt)>0?le(this,Se,Qs).call(this):L(this,qe,!1)};var a=V;try{Oe(null),r=!0,n==null||n(e,o),r=!1}catch(c){pn(c,v(this,lt)&&v(this,lt).parent)}finally{Oe(a)}s&&An(()=>{L(this,ct,le(this,Se,Js).call(this,()=>{mt.ensure(),L(this,tn,!0);try{return je(()=>{s(v(this,Ve),()=>e,()=>o)})}catch(c){return pn(c,v(this,lt).parent),null}finally{L(this,tn,!1)}}))})}}qe=new WeakMap,Ve=new WeakMap,hr=new WeakMap,at=new WeakMap,$t=new WeakMap,lt=new WeakMap,Ge=new WeakMap,Me=new WeakMap,ct=new WeakMap,kt=new WeakMap,Mt=new WeakMap,en=new WeakMap,Pt=new WeakMap,tn=new WeakMap,Lt=new WeakMap,Gs=new WeakMap,Se=new WeakSet,Kf=function(){try{L(this,Ge,je(()=>v(this,$t).call(this,v(this,Ve))))}catch(e){this.error(e)}L(this,qe,!1)},Xf=function(){const e=v(this,at).pending;e&&(L(this,Me,je(()=>e(v(this,Ve)))),mt.enqueue(()=>{var n=le(this,Se,vr).call(this);L(this,Ge,le(this,Se,Js).call(this,()=>(mt.ensure(),je(()=>v(this,$t).call(this,n))))),v(this,Pt)>0?le(this,Se,Qs).call(this):(gn(v(this,Me),()=>{L(this,Me,null)}),L(this,qe,!1))}))},vr=function(){var e=v(this,Ve);return v(this,qe)&&(L(this,Mt,bt()),v(this,Ve).before(v(this,Mt)),e=v(this,Mt)),e},Js=function(e){var n=Q,s=V,i=pe;et(v(this,lt)),Oe(v(this,lt)),fn(v(this,lt).ctx);try{return e()}catch(r){return Ir(r),null}finally{et(n),Oe(s),fn(i)}},Qs=function(){const e=v(this,at).pending;v(this,Ge)!==null&&(L(this,kt,document.createDocumentFragment()),v(this,kt).append(v(this,Mt)),Qr(v(this,Ge),v(this,kt))),v(this,Me)===null&&L(this,Me,je(()=>e(v(this,Ve))))},br=function(e){var n;if(!this.has_pending_snippet()){this.parent&&le(n=this.parent,Se,br).call(n,e);return}L(this,Pt,v(this,Pt)+e),v(this,Pt)===0&&(L(this,qe,!1),v(this,Me)&&gn(v(this,Me),()=>{L(this,Me,null)}),v(this,kt)&&(v(this,Ve).before(v(this,kt)),L(this,kt,null)))};function Pn(t,e){return e}function Ll(t,e,n){for(var s=[],i=e.length,r=0;r<i;r++)pi(e[r].e,s,!0);Yr(s,()=>{var o=s.length===0&&n!==null;if(o){var a=n,c=a.parentNode;Kl(c),c.append(a),t.items.clear(),Ze(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),Ze(t,l.prev,l.next)),De(l.e,!o)}t.first===e[0]&&(t.first=e[0].prev)})}function Ln(t,e,n,s,i,r=null){var o=t,a=new Map,c=null;{var u=t;o=u.appendChild(bt())}var l=null,h=li(()=>{var _=n();return $s(_)?_:_==null?[]:ei(_)}),d,f=!0;function p(){Fl(E,d,o,e,s),l!==null&&(d.length===0?(l.fragment?(o.before(l.fragment),l.fragment=null):gi(l.effect),m.first=l.effect):gn(l.effect,()=>{l=null}))}var m=fi(()=>{d=b(h);for(var _=d.length,x=new Set,T=J,g=null,w=Ur(),k=0;k<_;k+=1){var I=d[k],y=s(I,k),S=f?null:a.get(y);S?(Fn(S.v,I),S.i=k,w&&T.skipped_effects.delete(S.e)):(S=Bl(f?o:null,g,I,y,k,i,e,n),f&&(S.o=!0,g===null?c=S:g.next=S,g=S),a.set(y,S)),x.add(y)}if(_===0&&r&&!l)if(f)l={fragment:null,effect:je(()=>r(o))};else{var A=document.createDocumentFragment(),j=bt();A.append(j),l={fragment:A,effect:je(()=>r(j))}}if(!f)if(w){for(const[B,X]of a)x.has(B)||T.skipped_effects.add(X.e);T.oncommit(p),T.ondiscard(()=>{})}else p();b(h)}),E={effect:m,items:a,first:c};f=!1}function Fl(t,e,n,s,i){var r=e.length,o=t.items,a=t.first,c,u=null,l=[],h=[],d,f,p,m;for(m=0;m<r;m+=1){if(d=e[m],f=i(d,m),p=o.get(f),t.first??(t.first=p),!p.o){p.o=!0;var E=u?u.next:a;Ze(t,u,p),Ze(t,p,E),ai(p,E,n),u=p,l=[],h=[],a=u.next;continue}if(p.e.f&Pe&&gi(p.e),p!==a){if(c!==void 0&&c.has(p)){if(l.length<h.length){var _=h[0],x;u=_.prev;var T=l[0],g=l[l.length-1];for(x=0;x<l.length;x+=1)ai(l[x],_,n);for(x=0;x<h.length;x+=1)c.delete(h[x]);Ze(t,T.prev,g.next),Ze(t,u,T),Ze(t,g,_),a=_,u=g,m-=1,l=[],h=[]}else c.delete(p),ai(p,a,n),Ze(t,p.prev,p.next),Ze(t,p,u===null?t.first:u.next),Ze(t,u,p),u=p;continue}for(l=[],h=[];a!==null&&a.k!==f;)a.e.f&Pe||(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 w=c===void 0?[]:ei(c);a!==null;)a.e.f&Pe||w.push(a),a=a.next;var k=w.length;if(k>0){var I=r===0?n:null;Ll(t,w,I)}}}function Bl(t,e,n,s,i,r,o,a){var c=(o&te)!==0,u=(o&ns)===0,l=c?u?Hl(n,!1,!1):qt(n):n,h=o&we?qt(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=bt())}return d.e=je(()=>r(t,l,h,a)),e!==null&&(e.next=d),d}finally{}}function ai(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=Wn(r);i.before(r),r=o}}function Ze(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 Wl(t,e,n,s){const i=On()?ls:li;if(n.length===0&&t.length===0){s(e.map(i));return}var r=J,o=Q,a=jl();function c(){Promise.all(n.map(u=>zl(u))).then(u=>{a();try{s([...e.map(i),...u])}catch(l){o.f>||pn(l,o)}r==null||r.deactivate(),as()}).catch(u=>{pn(u,o)})}t.length>0?Promise.all(t).then(()=>{a();try{return c()}finally{r==null||r.deactivate(),as()}}):c()}function jl(){var t=Q,e=V,n=pe,s=J;return function(r=!0){et(t),Oe(e),fn(n),r&&(s==null||s.activate())}}function as(){et(null),Oe(null),fn(null)}function ls(t){var e=_e|Re,n=V!==null&&V.f&_e?V:null;return Q!==null&&(Q.f|=un),{ctx:pe,deps:null,effects:null,equals:Tr,f:e,fn:t,reactions:null,rv:0,v:ke,wv:0,parent:n??Q,ac:null}}function zl(t,e){let n=Q;n===null&&pl();var s=n.b,i=void 0,r=qt(ke),o=!V,a=new Map;return $l(()=>{var d;var c=Sr();i=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).then(()=>{u===J&&u.committed&&u.deactivate(),as()})}catch(f){c.reject(f),as()}var u=J;if(o){var l=!s.is_pending();s.update_pending_count(1),u.increment(l),(d=a.get(u))==null||d.reject(hn),a.delete(u),a.set(u,c)}const h=(f,p=void 0)=>{if(u.activate(),p)p!==hn&&(r.f|=xt,Fn(r,p));else{r.f&xt&&(r.f^=xt),Fn(r,f);for(const[m,E]of a){if(a.delete(m),m===u)break;E.reject(hn)}}o&&(s.update_pending_count(-1),u.decrement(l))};c.promise.then(h,f=>h(null,f||"unknown"))}),hi(()=>{for(const c of a.values())c.reject(hn)}),new Promise(c=>{function u(l){function h(){l===i?c(r):u(i)}l.then(h,h)}u(i)})}function me(t){const e=ls(t);return $r(e),e}function li(t){const e=ls(t);return e.equals=xr,e}function Or(t){var e=t.effects;if(e!==null){t.effects=null;for(var n=0;n<e.length;n+=1)De(e[n])}}function Ul(t){for(var e=t.parent;e!==null;){if(!(e.f&_e))return e.f>?null:e;e=e.parent}return null}function ci(t){var e,n=Q;et(Ul(t));try{t.f&=~jt,Or(t),e=io(t)}finally{et(n)}return e}function Ar(t){var e=ci(t);if(t.equals(e)||(J!=null&&J.is_fork||(t.v=e),t.wv=no()),!Gt)if(ge!==null)hs()&&ge.set(t,e);else{var n=t.f&Xe?Te:pt;xe(t,n)}}let ui=new Set;const Ct=new Map;let Mr=!1;function qt(t,e){var n={f:0,v:t,reactions:null,equals:Tr,rv:0,wv:0};return n}function ie(t,e){const n=qt(t);return $r(n),n}function Hl(t,e=!1,n=!0){var i;const s=qt(t);return e||(s.equals=xr),dn&&n&&pe!==null&&pe.l!==null&&((i=pe.l).s??(i.s=[])).push(s),s}function O(t,e,n=!1){V!==null&&(!$e||V.f&_r)&&On()&&V.f&(_e|dt|ri|_r)&&!(Ce!=null&&Ce.includes(t))&&_l();let s=n?vt(e):e;return Fn(t,s)}function Fn(t,e){if(!t.equals(e)){var n=t.v;Gt?Ct.set(t,e):Ct.set(t,n),t.v=e;var s=mt.ensure();s.capture(t,n),t.f&_e&&(t.f&Re&&ci(t),xe(t,t.f&Xe?Te:pt)),t.wv=no(),Lr(t,Re),On()&&Q!==null&&Q.f&Te&&!(Q.f&(ft|Wt))&&(ze===null?nc([t]):ze.push(t)),!s.is_fork&&ui.size>0&&!Mr&&ql()}return e}function ql(){Mr=!1;var t=Nt;fs(!0);const e=Array.from(ui);try{for(const n of e)n.f&Te&&xe(n,pt),zn(n)&&Un(n)}finally{fs(t)}ui.clear()}function Pr(t,e=1){var n=b(t),s=e===1?n++:n--;return O(t,n),s}function Bn(t){O(t,t.v+1)}function Lr(t,e){var n=t.reactions;if(n!==null)for(var s=On(),i=n.length,r=0;r<i;r++){var o=n[r],a=o.f;if(!(!s&&o===Q)){var c=(a&Re)===0;if(c&&xe(o,e),a&_e){var u=o;ge==null||ge.delete(u),a&jt||(a&Xe&&(o.f|=jt),Lr(u,pt))}else c&&(a&dt&&Ye!==null&&Ye.add(o),Ht(o))}}}function vt(t){if(typeof t!="object"||t===null||zt in t)return t;const e=wr(t);if(e!==al&&e!==ll)return t;var n=new Map,s=$s(t),i=ie(0),r=Kt,o=a=>{if(Kt===r)return a();var c=V,u=Kt;Oe(null),to(r);var l=a();return Oe(c),to(u),l};return s&&n.set("length",ie(t.length)),new Proxy(t,{defineProperty(a,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&yl();var l=n.get(c);return l===void 0?l=o(()=>{var h=ie(u.value);return n.set(c,h),h}):O(l,u.value,!0),!0},deleteProperty(a,c){var u=n.get(c);if(u===void 0){if(c in a){const l=o(()=>ie(ke));n.set(c,l),Bn(i)}}else O(u,ke),Bn(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=ln(a,c))!=null&&f.writable)&&(l=o(()=>{var p=vt(h?a[c]:ke),m=ie(p);return m}),n.set(c,l)),l!==void 0){var d=b(l);return d===ke?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=b(l))}else if(u===void 0){var h=n.get(c),d=h==null?void 0:h.v;if(h!==void 0&&d!==ke)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!==ke||Reflect.has(a,c);if(u!==void 0||Q!==null&&(!l||(d=ln(a,c))!=null&&d.writable)){u===void 0&&(u=o(()=>{var f=l?vt(a[c]):ke,p=ie(f);return p}),n.set(c,u));var h=b(u);if(h===ke)return!1}return l},set(a,c,u,l){var T;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?O(p,ke):f in a&&(p=o(()=>ie(ke)),n.set(f+"",p))}if(h===void 0)(!d||(T=ln(a,c))!=null&&T.writable)&&(h=o(()=>ie(void 0)),O(h,vt(u)),n.set(c,h));else{d=h.v!==ke;var m=o(()=>vt(u));O(h,m)}var E=Reflect.getOwnPropertyDescriptor(a,c);if(E!=null&&E.set&&E.set.call(l,u),!d){if(s&&typeof c=="string"){var _=n.get("length"),x=Number(c);Number.isInteger(x)&&x>=_.v&&O(_,x+1)}Bn(i)}return!0},ownKeys(a){b(i);var c=Reflect.ownKeys(a).filter(h=>{var d=n.get(h);return d===void 0||d.v!==ke});for(var[u,l]of n)l.v!==ke&&!(u in a)&&c.push(u);return c},setPrototypeOf(){Sl()}})}function Fr(t){try{if(t!==null&&typeof t=="object"&&zt in t)return t[zt]}catch{}return t}function Vl(t,e){return Object.is(Fr(t),Fr(e))}var Br,Wr,jr,zr;function Gl(){if(Br===void 0){Br=window,Wr=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;jr=ln(e,"firstChild").get,zr=ln(e,"nextSibling").get,yr(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),yr(n)&&(n.__t=void 0)}}function bt(t=""){return document.createTextNode(t)}function cs(t){return jr.call(t)}function Wn(t){return zr.call(t)}function P(t,e){return cs(t)}function Vt(t,e=!1){{var n=cs(t);return n instanceof Comment&&n.data===""?Wn(n):n}}function Y(t,e=1,n=!1){let s=t;for(;e--;)s=Wn(s);return s}function Kl(t){t.textContent=""}function Ur(){return!1}let Hr=!1;function Xl(){Hr||(Hr=!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 us(t){var e=V,n=Q;Oe(null),et(null);try{return t()}finally{Oe(e),et(n)}}function Yl(t,e,n,s=n){t.addEventListener(e,()=>us(n));const i=t.__on_r;i?t.__on_r=()=>{i(),s(!0)}:t.__on_r=()=>s(!0),Xl()}function Jl(t){Q===null&&(V===null&&vl(),ml()),Gt&&gl()}function Ql(t,e){var n=e.last;n===null?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}function wt(t,e,n){var s=Q;s!==null&&s.f&Pe&&(t|=Pe);var i={ctx:pe,deps:null,nodes_start:null,nodes_end:null,f:t|Re|Xe,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{Un(i),i.f|=si}catch(a){throw De(i),a}else e!==null&&Ht(i);var r=i;if(n&&r.deps===null&&r.teardown===null&&r.nodes_start===null&&r.first===r.last&&!(r.f&un)&&(r=r.first,t&dt&&t&cn&&r!==null&&(r.f|=cn)),r!==null&&(r.parent=s,s!==null&&Ql(r,s),V!==null&&V.f&_e&&!(t&Wt))){var o=V;(o.effects??(o.effects=[])).push(r)}return i}function hs(){return V!==null&&!$e}function hi(t){const e=wt(ni,null,!1);return xe(e,Te),e.teardown=t,e}function ds(t){Jl();var e=Q.f,n=!V&&(e&ft)!==0&&(e&si)===0;if(n){var s=pe;(s.e??(s.e=[])).push(t)}else return qr(t)}function qr(t){return wt(ti|ul,t,!1)}function Zl(t){mt.ensure();const e=wt(Wt|un,t,!0);return(n={})=>new Promise(s=>{n.outro?gn(e,()=>{De(e),s(void 0)}):(De(e),s(void 0))})}function Vr(t){return wt(ti,t,!1)}function $l(t){return wt(ri|un,t,!0)}function di(t,e=0){return wt(ni|e,t,!0)}function $(t,e=[],n=[],s=[]){Wl(s,e,n,i=>{wt(ni,()=>t(...i.map(b)),!0)})}function fi(t,e=0){var n=wt(dt|e,t,!0);return n}function je(t){return wt(ft|un,t,!0)}function Gr(t){var e=t.teardown;if(e!==null){const n=Gt,s=V;Zr(!0),Oe(null);try{e.call(null)}finally{Zr(n),Oe(s)}}}function Kr(t,e=!1){var n=t.first;for(t.first=t.last=null;n!==null;){const i=n.ac;i!==null&&us(()=>{i.abort(hn)});var s=n.next;n.f&Wt?n.parent=null:De(n,e),n=s}}function ec(t){for(var e=t.first;e!==null;){var n=e.next;e.f&ft||De(e),e=n}}function De(t,e=!0){var n=!1;(e||t.f&kr)&&t.nodes_start!==null&&t.nodes_end!==null&&(tc(t.nodes_start,t.nodes_end),n=!0),Kr(t,e&&!n),ps(t,0),xe(t,gt);var s=t.transitions;if(s!==null)for(const r of s)r.stop();Gr(t);var i=t.parent;i!==null&&i.first!==null&&Xr(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:Wn(t);t.remove(),t=n}}function Xr(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 gn(t,e,n=!0){var s=[];pi(t,s,!0),Yr(s,()=>{n&&De(t),e&&e()})}function Yr(t,e){var n=t.length;if(n>0){var s=()=>--n||e();for(var i of t)i.out(s)}else e()}function pi(t,e,n){if(!(t.f&Pe)){if(t.f^=Pe,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&cn)!==0||(s.f&ft)!==0&&(t.f&dt)!==0;pi(s,e,r?n:!1),s=i}}}function gi(t){Jr(t,!0)}function Jr(t,e){if(t.f&Pe){t.f^=Pe,t.f&Te||(xe(t,Re),Ht(t));for(var n=t.first;n!==null;){var s=n.next,i=(n.f&cn)!==0||(n.f&ft)!==0;Jr(n,i?e:!1),n=s}if(t.transitions!==null)for(const r of t.transitions)(r.is_global||e)&&r.in()}}function Qr(t,e){for(var n=t.nodes_start,s=t.nodes_end;n!==null;){var i=n===s?null:Wn(n);e.append(n),n=i}}let Nt=!1;function fs(t){Nt=t}let Gt=!1;function Zr(t){Gt=t}let V=null,$e=!1;function Oe(t){V=t}let Q=null;function et(t){Q=t}let Ce=null;function $r(t){V!==null&&(Ce===null?Ce=[t]:Ce.push(t))}let Ne=null,Le=0,ze=null;function nc(t){ze=t}let eo=1,jn=0,Kt=jn;function to(t){Kt=t}function no(){return++eo}function zn(t){var e=t.f;if(e&Re)return!0;if(e&_e&&(t.f&=~jt),e&pt){var n=t.deps;if(n!==null)for(var s=n.length,i=0;i<s;i++){var r=n[i];if(zn(r)&&Ar(r),r.wv>t.wv)return!0}e&Xe&&ge===null&&xe(t,Te)}return!1}function so(t,e,n=!0){var s=t.reactions;if(s!==null&&!(Ce!=null&&Ce.includes(t)))for(var i=0;i<s.length;i++){var r=s[i];r.f&_e?so(r,e,!1):e===r&&(n?xe(r,Re):r.f&Te&&xe(r,pt),Ht(r))}}function io(t){var p;var e=Ne,n=Le,s=ze,i=V,r=Ce,o=pe,a=$e,c=Kt,u=t.f;Ne=null,Le=0,ze=null,V=u&(ft|Wt)?null:t,Ce=null,fn(t.ctx),$e=!1,Kt=++jn,t.ac!==null&&(us(()=>{t.ac.abort(hn)}),t.ac=null);try{t.f|=ii;var l=t.fn,h=l(),d=t.deps;if(Ne!==null){var f;if(ps(t,Le),d!==null&&Le>0)for(d.length=Le+Ne.length,f=0;f<Ne.length;f++)d[Le+f]=Ne[f];else t.deps=d=Ne;if(Nt&&hs()&&t.f&Xe)for(f=Le;f<d.length;f++)((p=d[f]).reactions??(p.reactions=[])).push(t)}else d!==null&&Le<d.length&&(ps(t,Le),d.length=Le);if(On()&&ze!==null&&!$e&&d!==null&&!(t.f&(_e|pt|Re)))for(f=0;f<ze.length;f++)so(ze[f],t);return i!==null&&i!==t&&(jn++,ze!==null&&(s===null?s=ze:s.push(...ze))),t.f&xt&&(t.f^=xt),h}catch(m){return Ir(m)}finally{t.f^=ii,Ne=e,Le=n,ze=s,V=i,Ce=r,fn(o),$e=a,Kt=c}}function sc(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&_e&&(Ne===null||!Ne.includes(e))&&(xe(e,pt),e.f&Xe&&(e.f^=Xe,e.f&=~jt),Or(e),ps(e,0))}function ps(t,e){var n=t.deps;if(n!==null)for(var s=e;s<n.length;s++)sc(t,n[s])}function Un(t){var e=t.f;if(!(e>)){xe(t,Te);var n=Q,s=Nt;Q=t,Nt=!0;try{e&dt?ec(t):Kr(t),Gr(t);var i=io(t);t.teardown=typeof i=="function"?i:null,t.wv=eo;var r;Zs&&Il&&t.f&Re&&t.deps}finally{Nt=s,Q=n}}}async function ic(){await Promise.resolve(),Rl()}function b(t){var e=t.f,n=(e&_e)!==0;if(V!==null&&!$e){var s=Q!==null&&(Q.f>)!==0;if(!s&&!(Ce!=null&&Ce.includes(t))){var i=V.deps;if(V.f&ii)t.rv<jn&&(t.rv=jn,Ne===null&&i!==null&&i[Le]===t?Le++:Ne===null?Ne=[t]:Ne.includes(t)||Ne.push(t));else{(V.deps??(V.deps=[])).push(t);var r=t.reactions;r===null?t.reactions=[V]:r.includes(V)||r.push(V)}}}if(Gt){if(Ct.has(t))return Ct.get(t);if(n){var o=t,a=o.v;return(!(o.f&Te)&&o.reactions!==null||oo(o))&&(a=ci(o)),Ct.set(o,a),a}}else n&&!(ge!=null&&ge.has(t))&&(o=t,zn(o)&&Ar(o),Nt&&hs()&&!(o.f&Xe)&&ro(o));if(ge!=null&&ge.has(t))return ge.get(t);if(t.f&xt)throw t.v;return t.v}function ro(t){if(t.deps!==null){t.f^=Xe;for(const e of t.deps)(e.reactions??(e.reactions=[])).push(t),e.f&_e&&!(e.f&Xe)&&ro(e)}}function oo(t){if(t.v===ke)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(Ct.has(e)||e.f&_e&&oo(e))return!0;return!1}function Hn(t){var e=$e;try{return $e=!0,t()}finally{$e=e}}const rc=-7169;function xe(t,e){t.f=t.f&rc|e}const ao=new Set,mi=new Set;function oc(t,e,n,s={}){function i(r){if(s.capture||Vn.call(e,r),!r.cancelBubble)return us(()=>n==null?void 0:n.call(this,r))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?An(()=>{e.addEventListener(t,i,s)}):e.addEventListener(t,i,s),i}function qn(t,e,n,s,i){var r={capture:s,passive:i},o=oc(t,e,n,r);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&hi(()=>{e.removeEventListener(t,o,r)})}function gs(t){for(var e=0;e<t.length;e++)ao.add(t[e]);for(var n of mi)n(t)}let lo=null;function Vn(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;lo=t;var o=0,a=lo===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){rl(t,"currentTarget",{configurable:!0,get(){return r||n}});var l=V,h=Q;Oe(null),et(null);try{for(var d,f=[];r!==null;){var p=r.assignedSlot||r.parentNode||r.host||null;try{var m=r["__"+s];m!=null&&(!r.disabled||t.target===r)&&m.call(r,t)}catch(_){d?f.push(_):d=_}if(t.cancelBubble||p===e||p===null)break;r=p}if(d){for(let _ of f)queueMicrotask(()=>{throw _});throw d}}finally{t.__root=e,delete t.currentTarget,Oe(l),et(h)}}}function ac(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("<!>","<!---->"),e.content}function ms(t,e){var n=Q;n.nodes_start===null&&(n.nodes_start=t,n.nodes_end=e)}function K(t,e){var n=(e&tl)!==0,s=(e&nl)!==0,i,r=!t.startsWith("<!>");return()=>{i===void 0&&(i=ac(r?t:"<!>"+t),n||(i=cs(i)));var o=s||Wr?document.importNode(i,!0):i.cloneNode(!0);if(n){var a=cs(o),c=o.lastChild;ms(a,c)}else ms(o,o);return o}}function vi(t=""){{var e=bt(t+"");return ms(e,e),e}}function mn(){var t=document.createDocumentFragment(),e=document.createComment(""),n=bt();return t.append(e,n),ms(e,n),t}function F(t,e){t!==null&&t.before(e)}const lc=["touchstart","touchmove"];function cc(t){return lc.includes(t)}function ee(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 uc(t,e){return hc(t,e)}const vn=new Map;function hc(t,{target:e,anchor:n,props:s={},events:i,context:r,intro:o=!0}){Gl();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=cc(f);e.addEventListener(f,Vn,{passive:p});var m=vn.get(f);m===void 0?(document.addEventListener(f,Vn,{passive:p}),vn.set(f,1)):vn.set(f,m+1)}}};c(ei(ao)),mi.add(c);var u=void 0,l=Zl(()=>{var h=n??e.appendChild(bt());return Ml(h,{pending:()=>{}},d=>{if(r){Et({});var f=pe;f.c=r}i&&(s.$$events=i),u=t(d,s)||{},r&&It()}),()=>{var p;for(var d of a){e.removeEventListener(d,Vn);var f=vn.get(d);--f===0?(document.removeEventListener(d,Vn),vn.delete(d)):vn.set(d,f)}mi.delete(c),h!==n&&((p=h.parentNode)==null||p.removeChild(h))}});return dc.set(u,l),u}let dc=new WeakMap;class fc{constructor(e,n=!0){ht(this,"anchor");G(this,Qe,new Map);G(this,ut,new Map);G(this,Fe,new Map);G(this,nn,new Set);G(this,Zn,!0);G(this,$n,()=>{var e=J;if(v(this,Qe).has(e)){var n=v(this,Qe).get(e),s=v(this,ut).get(n);if(s)gi(s),v(this,nn).delete(n);else{var i=v(this,Fe).get(n);i&&(v(this,ut).set(n,i.effect),v(this,Fe).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),s=i.effect)}for(const[r,o]of v(this,Qe)){if(v(this,Qe).delete(r),r===e)break;const a=v(this,Fe).get(o);a&&(De(a.effect),v(this,Fe).delete(o))}for(const[r,o]of v(this,ut)){if(r===n||v(this,nn).has(r))continue;const a=()=>{if(Array.from(v(this,Qe).values()).includes(r)){var u=document.createDocumentFragment();Qr(o,u),u.append(bt()),v(this,Fe).set(r,{effect:o,fragment:u})}else De(o);v(this,nn).delete(r),v(this,ut).delete(r)};v(this,Zn)||!s?(v(this,nn).add(r),gn(o,a,!1)):a()}}});G(this,Ks,e=>{v(this,Qe).delete(e);const n=Array.from(v(this,Qe).values());for(const[s,i]of v(this,Fe))n.includes(s)||(De(i.effect),v(this,Fe).delete(s))});this.anchor=e,L(this,Zn,n)}ensure(e,n){var s=J,i=Ur();if(n&&!v(this,ut).has(e)&&!v(this,Fe).has(e))if(i){var r=document.createDocumentFragment(),o=bt();r.append(o),v(this,Fe).set(e,{effect:je(()=>n(o)),fragment:r})}else v(this,ut).set(e,je(()=>n(this.anchor)));if(v(this,Qe).set(s,e),i){for(const[a,c]of v(this,ut))a===e?s.skipped_effects.delete(c):s.skipped_effects.add(c);for(const[a,c]of v(this,Fe))a===e?s.skipped_effects.delete(c.effect):s.skipped_effects.add(c.effect);s.oncommit(v(this,$n)),s.ondiscard(v(this,Ks))}else v(this,$n).call(this)}}Qe=new WeakMap,ut=new WeakMap,Fe=new WeakMap,nn=new WeakMap,Zn=new WeakMap,$n=new WeakMap,Ks=new WeakMap;function bi(t){pe===null&&fl(),dn&&pe.l!==null?pc(pe).m.push(t):ds(()=>{const e=Hn(t);if(typeof e=="function")return e})}function pc(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}function ne(t,e,n=!1){var s=new fc(t),i=n?cn:0;function r(o,a){s.ensure(o,a)}fi(()=>{var o=!1;e((a,c=!0)=>{o=!0,r(c,a)}),o||r(!1,null)},i)}function co(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 Rt(t,e){Vr(()=>{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 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 gc(){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 ho(t){return typeof t=="object"?gc(t):t??""}function mc(t,e,n){var s=t==null?"":""+t;return e&&(s=s?s+" "+e:e),s===""?null:s}function vs(t,e,n,s,i,r){var o=t.__className;if(o!==n||o===void 0){var a=mc(n,s);a==null?t.removeAttribute("class"):t.className=a,t.__className=n}return r}function fo(t,e,n=!1){if(t.multiple){if(e==null)return;if(!$s(e))return Tl();for(var s of t.options)s.selected=e.includes(po(s));return}for(s of t.options){var i=po(s);if(Vl(i,e)){s.selected=!0;return}}(!n||e!==void 0)&&(t.selectedIndex=-1)}function vc(t){var e=new MutationObserver(()=>{fo(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),hi(()=>{e.disconnect()})}function po(t){return"__value"in t?t.__value:t.value}const bc=Symbol("is custom element"),wc=Symbol("is html");function yc(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function yt(t,e,n,s){var i=Sc(t);i[e]!==(i[e]=n)&&(e==="loading"&&(t[dl]=n),n==null?t.removeAttribute(e):typeof n!="string"&&_c(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function Sc(t){return t.__attributes??(t.__attributes={[bc]:t.nodeName.includes("-"),[wc]:t.namespaceURI===sl})}var go=new Map;function _c(t){var e=t.getAttribute("is")||t.nodeName,n=go.get(e);if(n)return n;go.set(e,n=[]);for(var s,i=t,r=Element.prototype;r!==i;){s=ol(i);for(var o in s)s[o].set&&n.push(o);i=wr(i)}return n}function kc(t,e,n=e){var s=new WeakSet;Yl(t,"input",async i=>{var r=i?t.defaultValue:t.value;if(r=wi(t)?yi(r):r,n(r),J!==null&&s.add(J),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))}}}),Hn(e)==null&&t.value&&(n(wi(t)?yi(t.value):t.value),J!==null&&s.add(J)),di(()=>{var i=e();if(t===document.activeElement){var r=rs??J;if(s.has(r))return}wi(t)&&i===yi(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 yi(t){return t===""?null:+t}function mo(t,e){return t===e||(t==null?void 0:t[zt])===e}function Tc(t={},e,n,s){return Vr(()=>{var i,r;return di(()=>{i=r,r=[],Hn(()=>{t!==n(...r)&&(e(t,...r),i&&mo(n(...i),t)&&e(null,...i))})}),()=>{An(()=>{r&&mo(n(...r),t)&&e(null,...r)})}}),t}let bs=!1;function xc(t){var e=bs;try{return bs=!1,[t(),bs]}finally{bs=e}}function Gn(t,e,n,s){var T;var i=!dn||(n&Qa)!==0,r=(n&$a)!==0,o=(n&el)!==0,a=s,c=!0,u=()=>(c&&(c=!1,a=o?Hn(s):s),a),l;if(r){var h=zt in t||hl in t;l=((T=ln(t,e))==null?void 0:T.set)??(h&&e in t?g=>t[e]=g:void 0)}var d,f=!1;r?[d,f]=xc(()=>t[e]):d=t[e],d===void 0&&s!==void 0&&(d=u(),l&&(i&&wl(),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&Za))return p;if(l){var m=t.$$legacy;return function(g,w){return arguments.length>0?((!i||!w||m||f)&&l(w?p():g),g):p()}}var E=!1,_=(n&Ja?ls:li)(()=>(E=!1,p()));r&&b(_);var x=Q;return function(g,w){if(arguments.length>0){const k=w?b(_):i&&r?vt(g):g;return O(_,k),E=!0,a!==void 0&&(a=k),g}return Gt&&E||x.f>?_.v:b(_)}}function vo(){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 Si(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 _i(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 bo(){const t="uniqueUserID";let e=_i(t);return e||(e=vo(),Si(t,e,365)),e}function tt(t,e,n={},s={}){const i="https://admin-api.wineater.com/api/widget-events";let r=_i("uniqueUserID");r||(r=bo());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=_i("sessionID");c||(c=vo(),Si("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 wo={},Ec=function(t,e,n,s,i){var r=new Worker(wo[e]||(wo[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},Ue=Uint8Array,Ae=Uint16Array,ws=Int32Array,ys=new Ue([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]),Ss=new Ue([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]),ki=new Ue([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),yo=function(t,e){for(var n=new Ae(31),s=0;s<31;++s)n[s]=e+=1<<t[s-1];for(var i=new ws(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}},So=yo(ys,2),Ic=So.b,_s=So.r;Ic[28]=258,_s[258]=28;for(var Cc=yo(Ss,0),Ti=Cc.r,ks=new Ae(32768),se=0;se<32768;++se){var Dt=(se&43690)>>1|(se&21845)<<1;Dt=(Dt&52428)>>2|(Dt&13107)<<2,Dt=(Dt&61680)>>4|(Dt&3855)<<4,ks[se]=((Dt&65280)>>8|(Dt&255)<<8)>>1}for(var bn=function(t,e,n){for(var s=t.length,i=0,r=new Ae(e);i<s;++i)t[i]&&++r[t[i]-1];var o=new Ae(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var a;if(n){a=new Ae(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[ks[h]>>c]=u}else for(a=new Ae(s),i=0;i<s;++i)t[i]&&(a[i]=ks[o[t[i]-1]++]>>15-t[i]);return a},Ot=new Ue(288),se=0;se<144;++se)Ot[se]=8;for(var se=144;se<256;++se)Ot[se]=9;for(var se=256;se<280;++se)Ot[se]=7;for(var se=280;se<288;++se)Ot[se]=8;for(var Kn=new Ue(32),se=0;se<32;++se)Kn[se]=5;var _o=bn(Ot,9,0),ko=bn(Kn,5,0),xi=function(t){return(t+7)/8|0},To=function(t,e,n){return(e==null||e<0)&&(e=0),(n==null||n>t.length)&&(n=t.length),new Ue(t.subarray(e,n))},Nc=["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"],xo=function(t,e,n){var s=new Error(e||Nc[t]);if(s.code=t,Error.captureStackTrace&&Error.captureStackTrace(s,xo),!n)throw s;return s},nt=function(t,e,n){n<<=e&7;var s=e/8|0;t[s]|=n,t[s+1]|=n>>8},wn=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},Ts=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:Ni,l:0};if(i==1){var o=new Ue(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(w,k){return w.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 Ae(d+1),p=xs(n[l-1],f,0);if(p>e){var s=0,m=0,E=p-e,_=1<<E;for(r.sort(function(k,I){return f[I.s]-f[k.s]||k.f-I.f});s<i;++s){var x=r[s].s;if(f[x]>e)m+=_-(1<<p-f[x]),f[x]=e;else break}for(m>>=E;m>0;){var T=r[s].s;f[T]<e?m-=1<<e-f[T]++-1:++s}for(;s>=0&&m;--s){var g=r[s].s;f[g]==e&&(--f[g],++m)}p=e}return{t:new Ue(f),l:p}},xs=function(t,e,n){return t.s==-1?Math.max(xs(t.l,e,n+1),xs(t.r,e,n+1)):e[t.s]=n},Ei=function(t){for(var e=t.length;e&&!t[--e];);for(var n=new Ae(++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}},yn=function(t,e){for(var n=0,s=0;s<e.length;++s)n+=t[s]*e[s];return n},Ii=function(t,e,n){var s=n.length,i=xi(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},Ci=function(t,e,n,s,i,r,o,a,c,u,l){nt(e,l++,n),++i[256];for(var h=Ts(i,15),d=h.t,f=h.l,p=Ts(r,15),m=p.t,E=p.l,_=Ei(d),x=_.c,T=_.n,g=Ei(m),w=g.c,k=g.n,I=new Ae(19),y=0;y<x.length;++y)++I[x[y]&31];for(var y=0;y<w.length;++y)++I[w[y]&31];for(var S=Ts(I,7),A=S.t,j=S.l,B=19;B>4&&!A[ki[B-1]];--B);var X=u+5<<3,U=yn(i,Ot)+yn(r,Kn)+o,W=yn(i,d)+yn(r,m)+o+14+3*B+yn(I,A)+2*I[16]+3*I[17]+7*I[18];if(c>=0&&X<=U&&X<=W)return Ii(e,l,t.subarray(c,c+u));var C,D,N,M;if(nt(e,l,1+(W<U)),l+=2,W<U){C=bn(d,f,0),D=d,N=bn(m,E,0),M=m;var re=bn(A,j,0);nt(e,l,T-257),nt(e,l+5,k-1),nt(e,l+10,B-4),l+=14;for(var y=0;y<B;++y)nt(e,l+3*y,A[ki[y]]);l+=3*B;for(var H=[x,w],Ie=0;Ie<2;++Ie)for(var de=H[Ie],y=0;y<de.length;++y){var oe=de[y]&31;nt(e,l,re[oe]),l+=A[oe],oe>15&&(nt(e,l,de[y]>>5&127),l+=de[y]>>12)}}else C=_o,D=Ot,N=ko,M=Kn;for(var y=0;y<a;++y){var R=s[y];if(R>255){var oe=R>>18&31;wn(e,l,C[oe+257]),l+=D[oe+257],oe>7&&(nt(e,l,R>>23&31),l+=ys[oe]);var z=R&31;wn(e,l,N[z]),l+=M[z],z>3&&(wn(e,l,R>>5&8191),l+=Ss[z])}else wn(e,l,C[R]),l+=D[R]}return wn(e,l,C[256]),l+D[256]},Eo=new ws([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ni=new Ue(0),Io=function(t,e,n,s,i,r){var o=r.z||t.length,a=new Ue(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=Eo[e-1],d=h>>13,f=h&8191,p=(1<<n)-1,m=r.p||new Ae(32768),E=r.h||new Ae(p+1),_=Math.ceil(n/3),x=2*_,T=function(on){return(t[on]^t[on+1]<<_^t[on+2]<<x)&p},g=new ws(25e3),w=new Ae(288),k=new Ae(32),I=0,y=0,S=r.i||0,A=0,j=r.w||0,B=0;S+2<o;++S){var X=T(S),U=S&32767,W=E[X];if(m[U]=W,E[X]=U,j<=S){var C=o-S;if((I>7e3||A>24576)&&(C>423||!u)){l=Ci(t,c,0,g,w,k,y,A,B,S-B,l),A=I=y=0,B=S;for(var D=0;D<286;++D)w[D]=0;for(var D=0;D<30;++D)k[D]=0}var N=2,M=0,re=f,H=U-W&32767;if(C>2&&X==T(S-H))for(var Ie=Math.min(d,C)-1,de=Math.min(32767,S),oe=Math.min(258,C);H<=de&&--re&&U!=W;){if(t[S+N]==t[S+N-H]){for(var R=0;R<oe&&t[S+R]==t[S+R-H];++R);if(R>N){if(N=R,M=H,R>Ie)break;for(var z=Math.min(H,R-2),fe=0,D=0;D<z;++D){var Tt=S-H+D&32767,rn=m[Tt],Ft=Tt-rn&32767;Ft>fe&&(fe=Ft,W=Tt)}}}U=W,W=m[U],H+=U-W&32767}if(M){g[A++]=268435456|_s[N]<<18|Ti[M];var Ke=_s[N]&31,es=Ti[M]&31;y+=ys[Ke]+Ss[es],++w[257+Ke],++k[es],j=S+N,++I}else g[A++]=t[S],++w[t[S]]}}for(S=Math.max(S,j);S<o;++S)g[A++]=t[S],++w[t[S]];l=Ci(t,c,u,g,w,k,y,A,B,S-B,l),u||(r.r=l&7|c[l/8|0]<<3,l-=7,r.h=E,r.p=m,r.i=S,r.w=j)}else{for(var S=r.w||0;S<o+u;S+=65535){var Bt=S+65535;Bt>=o&&(c[l/8|0]=u,Bt=o),l=Ii(c,l+1,t.subarray(S,Bt))}r.i=o}return To(a,0,s+xi(l)+i)},Co=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}(),No=function(){var t=-1;return{p:function(e){for(var n=t,s=0;s<e.length;++s)n=Co[n&255^e[s]]^n>>>8;t=n},d:function(){return~t}}},Ri=function(t,e,n,s,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new Ue(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return Io(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)},Rc=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},Ro=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},Es=[],Dc=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},Oc=function(t,e,n,s){if(!Es[n]){for(var i="",r={},o=t.length-1,a=0;a<o;++a)i=Ro(t[a],i,r);Es[n]={c:Ro(t[o],i,r),e:r}}var c=Rc({},Es[n].e);return Ec(Es[n].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",n,c,Dc(c),s)},Ac=function(){return[Ue,Ae,ws,ys,Ss,ki,_s,Ti,_o,Ot,ko,Kn,ks,Eo,Ni,bn,nt,wn,Ts,xs,Ei,yn,Ii,Ci,xi,To,Io,Ri,Lc,Do]},Mc=function(){return[Oo,Ao,Is,No,Co]},Do=function(t){return postMessage(t,[t.buffer])},Pc=function(t,e,n,s,i,r){var o=Oc(n,s,i,function(a,c){o.terminate(),r(a,c)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},Is=function(t,e,n){for(;n;++e)t[e]=n,n>>>=8},Oo=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&&Is(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)}},Ao=function(t){return 10+(t.filename?t.filename.length+1:0)};function Lc(t,e){return Ri(t,e||{},0,0)}function Fc(t,e,n){return n||(n=e,e={}),typeof n!="function"&&xo(7),Pc(t,e,[Ac,Mc,function(){return[Mo]}],function(s){return Do(Mo(s.data[0],s.data[1]))},2,n)}function Mo(t,e){e||(e={});var n=No(),s=t.length;n.p(t);var i=Ri(t,e,Ao(e),8),r=i.length;return Oo(i,e),Is(i,r-8,n.d()),Is(i,r-4,s),i}var Bc=typeof TextDecoder<"u"&&new TextDecoder,Wc=0;try{Bc.decode(Ni,{stream:!0}),Wc=1}catch{}class Po{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 jc{constructor(e){this.dict=new Po,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 Po}}class zc{constructor(e,n){this.app=e,this.startParams=n,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=s=>{if(s.value.length){const i=Uc(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=Sn[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=Sn[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=Sn[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=Sn[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=Sn[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=Sn[i.operator];r&&n.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const Sn={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},Uc=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 Hc{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 Lo={htmlmasked:"hidden",masked:"obscured"},st=!(typeof window>"u"),qc=st&&navigator.userAgent.match(/firefox|fxios/i),Vc=1e5;let Di=st?Date.now()-performance.now():0;function Oi(){Di=Date.now()-performance.now()}function _n(){return Di}const Je=st&&performance.now?()=>Math.round(performance.now()+Di):()=>Date.now(),Ai="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function Fo(t){return t.trim().replace(/\s+/g," ")}function Bo(t){return t.startsWith("https://")||t.startsWith("http://")}const Cs="https://docs.openreplay.com",Wo={};function At(t,e,n="/"){Wo[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${Cs}${n} for more information.`),Wo[t]=!0)}function Mi(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&At('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function Xt(t,e){const n=`data-openreplay-${e}`;return t.hasAttribute(n)?(Lo[e]&&At(`"${n}" attribute`,`"${Lo[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function Gc(t){try{return!!t.contentDocument}catch{return!1}}function jo(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 zo(t){return t.toString(16).padStart(2,"0")}function Kc(t){const e=new Uint8Array(t/2),n=window.crypto||window.msCrypto;return n?(n.getRandomValues(e),Array.from(e,zo).join("")):Array.from({length:t},()=>zo(Math.floor(Math.random()*16))).join("")}function Uo(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function Pi(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function Ho(t,e){if(e)return new MutationObserver(t);{const n=Pi("MutationObserver");return new window[n](t)}}function qo(t,e,n,s,i){if(!jo(t))return;let r="addEventListener";i||(r=Pi("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 Vo(t,e,n,s,i){if(!jo(t))return;let r="removeEventListener";i||(r=Pi("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 Xc{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 Yc=new Xc;function Jc(t){Yc.addTask(t)}function Go(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]=Go(r||{},i):n[s]=i}return n}function Yt(t){return[0,t]}function Qc(t,e){return[5,t,e]}function Zc(t,e){return[6,t,e]}function $c(){return[7]}function eu(t,e,n,s,i){return[8,t,e,n,s,i]}function tu(t,e,n){return[9,t,e,n]}function nu(t,e,n){return[10,t,e,n]}function su(t){return[11,t]}function Ko(t,e){return[13,t,e]}function iu(t,e){return[14,t,e]}function ru(t,e,n){return[16,t,e,n]}function ou(t,e,n){return[18,t,e,n]}function au(t,e){return[19,t,e]}function lu(t,e){return[20,t,e]}function cu(t,e){return[22,t,e]}function uu(t,e,n,s,i,r,o,a,c){return[23,t,e,n,s,i,r,o,a,c]}function hu(t,e,n){return[24,t,e,n]}function du(t,e){return[27,t,e]}function fu(t){return[28,t]}function pu(t){return[29,t]}function Xo(t,e){return[30,t,e]}function gu(t,e,n,s){return[49,t,e,n,s]}function mu(t,e){return[54,t,e]}function vu(t){return[55,t]}function Yo(t,e,n,s){return[57,t,e,n,s]}function Jo(t){return[58,t]}function Li(t,e,n,s){return[60,t,e,n,s]}function bu(t,e,n){return[61,t,e,n]}function wu(t,e){return[63,t,e]}function yu(t,e){return[64,t,e]}function Su(t,e,n,s,i,r){return[68,t,e,n,s,i,r]}function Fi(t,e){return[70,t,e]}function Qo(t,e,n){return[71,t,e,n]}function Bi(t,e,n,s){return[73,t,e,n,s]}function Zo(t,e){return[75,t,e]}function $o(t,e){return[76,t,e]}function _u(t,e){return[77,t,e]}function Wi(t,e,n,s){return[78,t,e,n,s]}function Ns(t,e,n,s,i,r,o,a,c){return[83,t,e,n,s,i,r,o,a,c]}function ku(t,e,n,s,i,r){return[84,t,e,n,s,i,r]}function Tu(t,e,n,s,i,r){return[112,t,e,n,s,i,r]}function ea(t,e,n){return[113,t,e,n]}function xu(t){return[114,t]}function ta(t){return[115,t]}function na(t,e,n,s,i,r,o,a,c,u){return[116,t,e,n,s,i,r,o,a,c,u]}function Rs(t){return[117,t]}function Jt(t){return[118,t]}function Eu(t,e){return[119,t,e]}function Iu(t){return[120,t]}function Cu(t,e,n,s){return[122,t,e,n,s]}const ji=st&&"performance"in window&&"memory"in performance?performance:{memory:{}},zi=st?(navigator.deviceMemory||0)*1024:0,Ui=ji.memory.jsHeapSizeLimit||0;function Nu(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(gu(s,i,ji.memory.totalJSHeapSize||0,ji.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 sa="__or__watched_tags__";class Ru{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(sa)??"[]");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(sa,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 Du={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"'},Ou={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},Ds={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"},Au={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},Mu={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"},Pu={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"},ia={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},kn={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},Lu={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"},Tn={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"},Fu={...Tn,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},ra={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},oa={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"},aa={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},Bu={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},la={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},Wu={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"},ca={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"},ua={fontWeight:"bold"},ju={fontSize:"13px",lineHeight:"auto"},ha={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},zu={...ha,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},Uu={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},Hu={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},da={Standard:{width:1280,height:720}};class qu{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 Vu(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 Gu(){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 Ku(){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 Xu(){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 Yu(){Xu();const t=document.createElement("div");return t.classList.add("spinner"),Object.assign(t.style,Hu),t}function q(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 Os="or_uxt_test_start",Hi="or_uxt_task_index",qi="or_uxt_session_id",Ju="or_uxt_test_id";class Qu{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,f)=>{if(!h)return console.error("User Testing: No Task ID Given");const p=this.durations.tasks.find(_=>_.taskId===h),m=this.getTimestamp(),E=p?m-p.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:E,timestamp:m,taskAnswer:f})})},this.signalTest=h=>{const d=this.getTimestamp();if(h==="begin"&&this.testId){const m=this.getSessionId();this.setStorageKey(qi,m),this.setStorageKey(this.storageKey,this.testId.toString()),this.setStorageKey(Os,d.toString())}else this.removeStorageKey(this.storageKey),this.removeStorageKey(Hi),this.removeStorageKey(Os);const f=this.durations.testStart||d,p=d-f;return fetch(`${this.ingestPoint}/v1/web/uxt/signals/test`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`},body:JSON.stringify({testId:this.testId,status:h,duration:p,timestamp:d})})};const l=this.getStorageKey(Os);l&&(this.durations.testStart=parseInt(l,10))}}class Zu{constructor(e,n){this.app=e,this.storageKey=n,this.bg=q("div","bg",Du,void 0,"__or_ut_bg"),this.container=q("div","container",Ou,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 Qu(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,da.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 qu(e);const s=this.app.getSessionID(),i=this.app.localStorage.getItem(qi);s!==i&&(this.app.localStorage.removeItem(this.storageKey),this.app.localStorage.removeItem(qi),this.app.localStorage.removeItem(Ju),this.app.localStorage.removeItem(Hi),this.app.localStorage.removeItem(Os));const r=this.app.localStorage.getItem(Hi);r&&(this.currentTaskIndex=parseInt(r,10))}getTestId(){return this.testId}createGreeting(e,n,s){const i=q("div","title",Au,e),r=q("div","description",Mu,`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=
|
|
7
|
+
🎤 Please enable mic and camera if asked, to give us a complete picture.`),o=q("div","button",Pu,"Read guidelines to begin");this.removeGreeting=()=>((n||s)&&this.userRecorder.startRecording(30,da.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,Ds),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,Ds);const r=this.createDescriptionSection(e),o=this.createTasksSection(n),a=q("div","stop_bn_or",aa,"Abort Session"),c=q("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=q("div","title",Lu),n=Gu(),s=q("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=Ku();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?Ds:{border:"none",background:"none",padding:0}),this.taskSection&&Object.assign(this.taskSection.style,this.widgetVisible?Tn:{display:"none"}),this.descriptionSection&&Object.assign(this.descriptionSection.style,this.widgetVisible?Tn:{display:"none"}),this.endSection&&Object.assign(this.endSection.style,this.widgetVisible?Tn:{display:"none"}),this.stopButton&&Object.assign(this.stopButton.style,this.widgetVisible?aa:{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,Vu(this.bg,n),this.collapseWidget=()=>r(!1),e}createDescriptionSection(e){const n=q("div","description_section_or",Tn),s=q("div","description_s_title_or",ia),i=q("div","title",{fontSize:13,fontWeight:500,lineHeight:"auto"},"Introduction & Guidelines"),r=q("div","icon",ra,"-"),o=q("div","content",kn),a=q("div","text_description",{maxHeight:"250px",overflowY:"auto",whiteSpace:"pre-wrap",fontSize:13,color:"#454545",lineHeight:"auto"});a.innerHTML=e;const c=q("div","button_begin_or",oa,"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?kn:{display:"none"})};return s.onclick=u,this.toggleDescriptionVisibility=()=>{this.widgetGuidelinesVisible=!1,r.textContent=this.widgetGuidelinesVisible?"-":"+",Object.assign(o.style,this.widgetGuidelinesVisible?kn:{display:"none"}),o.removeChild(c)},c.onclick=()=>{var l,h,d;if(u(),this.test){const f=(l=this.signalManager)==null?void 0:l.getDurations(),p=f?f.tasks.findIndex(m=>this.test&&m.taskId===this.test.tasks[0].task_id):null;f&&p===-1&&(f.tasks.push({taskId:this.test.tasks[0].task_id,started:this.app.timestamp()}),(h=this.signalManager)==null||h.setDurations(f)),(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,Ds);const n=q("div","task_section_or",Tn),s=q("div","description_t_title_or",ia),i=q("div","title",{fontSize:"13px",fontWeight:"500",lineHeight:"auto"},"Tasks"),r=q("div","icon",ra,"-"),o=q("div","content",kn),a=q("div","pagination",Bu),c=q("div","taskCard",ca),u=q("div","taskText",ua),l=q("div","taskDescription",ju),h=q("div","taskButtons",Uu),d=q("div","taskText",ua);d.textContent="Your answer";const f=q("textarea","taskDescription",{resize:"vertical"}),p=q("div","inputArea",ca);p.append(d,f);const m=q("div","closePanelButton",ha,"Collapse Panel"),E=q("div","nextButton",zu,"Done, Next");s.append(i,r),c.append(u,l),h.append(m,E),o.append(a,c,p,h),n.append(s,o);const _=()=>{const g=e[this.currentTaskIndex];u.textContent=g.title,l.textContent=g.description,g.allow_typing?p.style.display="flex":p.style.display="none"};e.forEach((g,w)=>{const k=q("span",`or_task_${w}`,{outline:"1px solid #efefef",fontSize:"13px",height:"24px",width:"24px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em"},(w+1).toString());k.id=`or_task_${w}`,a.append(k)});const x=()=>{this.widgetTasksVisible=!this.widgetTasksVisible,r.textContent=this.widgetTasksVisible?"-":"+",Object.assign(o.style,this.widgetTasksVisible?kn:{display:"none"})};this.hideTaskSection=()=>(r.textContent="+",Object.assign(o.style,{display:"none"}),this.widgetTasksVisible=!1,!1),this.showTaskSection=()=>(r.textContent="-",Object.assign(o.style,kn),this.widgetTasksVisible=!0,!0);const T=()=>{const g=document.getElementById(`or_task_${this.currentTaskIndex}`);g&&Object.assign(g.style,la);for(let w=0;w<this.currentTaskIndex;w++){const k=document.getElementById(`or_task_${w}`);k&&Object.assign(k.style,Wu)}};return s.onclick=x,m.onclick=this.collapseWidget,E.onclick=()=>{var w,k,I,y;const g=e[this.currentTaskIndex].allow_typing?f.value:void 0;if(f.value="",(w=this.signalManager)==null||w.signalTask(e[this.currentTaskIndex].task_id,"done",g),this.currentTaskIndex<e.length-1){this.currentTaskIndex++,_();const S=(k=this.signalManager)==null?void 0:k.getDurations();S&&S.tasks.findIndex(A=>A.taskId===e[this.currentTaskIndex].task_id)===-1&&(S.tasks.push({taskId:e[this.currentTaskIndex].task_id,started:this.app.timestamp()}),(I=this.signalManager)==null||I.setDurations(S)),(y=this.signalManager)==null||y.signalTask(e[this.currentTaskIndex].task_id,"begin"),T()}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,la),_(),T()},1),n}showEndSection(){var a,c,u,l;let e=!0;(a=this.signalManager)==null||a.signalTest("done");const n=q("div","end_section_or",Fu),s=q("div","end_title_or",{fontSize:"1.25rem",fontWeight:"500"},"Thank you! 👍"),i=q("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=H("div","end_button_or",ta,"Submitting Feedback"),o=qu();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))},s.append(n,i,r),this.endSection=s,this.container.append(s)}}function la(t){return!!t&&t.nodeType!=null}function ji(t){return t.namespaceURI==="http://www.w3.org/2000/svg"}function gt(t){return t.nodeType===Node.ELEMENT_NODE}function Gu(t){return t.nodeType===Node.COMMENT_NODE}function Ui(t){return t.nodeType===Node.TEXT_NODE}function Cn(t){return t.nodeType===Node.DOCUMENT_NODE}function Nn(t){return t.nodeType===Node.DOCUMENT_NODE||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function he(t,e){return t.localName===e}class Ku{constructor(e,s){this.app=e,this.options=s,this.snapshots={},this.intervals=[],this.restartTracking=()=>{this.clear(),this.app.nodes.scanTree(this.captureCanvas)},this.captureCanvas=n=>{const i=this.app.nodes.getID(n);if(!i||!he(n,"canvas")||this.app.sanitizer.isObscured(i)||this.app.sanitizer.isHidden(i)||!he(n,"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(n)},this.recordCanvas=(n,i)=>{const r=this.app.timestamp();this.snapshots[i]={images:[],createdAt:r,paused:!1,dummy:document.createElement("canvas")};const o=yu(i.toString(),r);this.app.send(o);const a=u=>{Xu(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(n),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||!he(l,"canvas")||l!==n){this.app.debug.log("Canvas element not in sync",l,n),clearInterval(c);return}else this.snapshots[i].paused||(this.options.useAnimationFrame?requestAnimationFrame(()=>{a(l)}):a(l))},this.interval);this.intervals.push(c)},this.fileExt=s.fileExt??"webp",this.interval=1e3/s.fps}startTracking(){setTimeout(()=>{this.app.nodes.scanTree(this.captureCanvas),this.app.nodes.attachNodeCallback(this.captureCanvas)},250)}sendSnaps(e,s,n){if(Object.keys(this.snapshots).length===0)return;const i=new FormData;e.forEach(o=>{const a=o.data;a&&(i.append("snapshot",a,`${n}_${s}_${o.id}.${this.fileExt}`),this.options.isDebug&&Yu(a,`${n}_${s}_${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 ca={low:.35,medium:.55,high:.8};function Xu(t,e="medium",s,n=!1,i,r){const o=`image/${i}`;if(n){const a=window.devicePixelRatio||1;s.width=t.width/a,s.height=t.height/a;const c=s.getContext("2d");if(!c)return"";c.clearRect(0,0,s.width,s.height),c.drawImage(t,0,0,s.width,s.height),s.toBlob(r,o,ca[e])}else t.toBlob(r,o,ca[e])}function Yu(t,e){const s=URL.createObjectURL(t),n=document.createElement("a");n.href=s,n.download=e,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}const ws={Verbose:5,Log:4,Warnings:3,Errors:2,Silent:0};class Ju{constructor(e=ws.Silent){this.shouldLog=s=>this.level>=s,this.info=(...s)=>{this.shouldLog(ws.Verbose)&&console.info(...s)},this.log=(...s)=>{this.shouldLog(ws.Log)&&console.log(...s)},this.warn=(...s)=>{this.shouldLog(ws.Warnings)&&console.warn(...s)},this.error=(...s)=>{this.shouldLog(ws.Errors)&&console.error(...s)},this.level=e}}const Qu=1e3;function Zu(t,e,s){const n=t.entries();function i(){const r=[];let o=n.next();for(;!o.done&&r.length<e;)r.push(o.value),o=n.next();r.length>0&&(r.forEach(([a,c])=>{c&&s(c)}),setTimeout(i,50))}i()}function $u(t){var e;try{if(!t.isConnected)return[!1,"not connected"];const s=t.nodeType===Node.DOCUMENT_NODE,n=s?t.defaultView:(e=t.ownerDocument)==null?void 0:e.defaultView,i=s?t:t.ownerDocument;return n?n.closed?[!1,"window closed"]:i!=null&&i.documentElement.isConnected?[!0,"ok"]:[!1,"documentElement not connected"]:[!1,"no window"]}catch(s){return[!1,s]}}const eh={interval:Qu*30,batchSize:2500,enabled:!0};class th{constructor(e,s,n){this.nodes=e,this.unregisterNode=s,this.start=()=>{this.options.enabled&&(this.stop(),this.interval=setInterval(()=>{Zu(this.nodes,this.options.batchSize,i=>{$u(i)[0]||this.unregisterNode(i)})},this.options.interval))},this.stop=()=>{this.interval&&clearInterval(this.interval)},this.options={...eh,...n}}}class sh{constructor(e){this.nodes=new Map,this.totalNodeAmount=0,this.nodeCallbacks=[],this.elementListeners=new Map,this.nextNodeId=0,this.scanTree=s=>{this.nodes.forEach(n=>n?s(n):void 0)},this.attachNodeListener=(s,n,i,r=!0)=>{const o=this.getID(s);if(o===void 0)return;zo(s,n,i,r,this.forceNgOff);let a=this.elementListeners.get(o);a===void 0&&(a=[],this.elementListeners.set(o,a)),a.push([n,i,r])},this.unregisterNode=s=>{const n=s[this.node_id];if(n!==void 0){s[this.node_id]=void 0,delete s[this.node_id],this.nodes.delete(n);const i=this.elementListeners.get(n);i!==void 0&&(this.elementListeners.delete(n),i.forEach(r=>jo(s,r[0],r[1],r[2],this.forceNgOff))),this.totalNodeAmount--}return n},this.node_id=e.node_id,this.forceNgOff=e.forceNgOff,this.maintainer=new th(this.nodes,this.unregisterNode,e.maintainer),this.maintainer.start()}syntheticMode(e){const s=Number.MAX_SAFE_INTEGER,i=99999999*e;if(i>s)throw new Error("Placeholder id overflow");this.nextNodeId=i}attachNodeCallback(e){return this.nodeCallbacks.push(e)}registerNode(e){let s=e[this.node_id];const n=s===void 0;return n&&(s=this.nextNodeId,this.totalNodeAmount++,this.nextNodeId++,this.nodes.set(s,e),e[this.node_id]=s),[s,n]}cleanTree(){for(const[e,s]of this.nodes)s&&!document.contains(s)&&this.unregisterNode(s)}callNodeCallbacks(e,s){this.nodeCallbacks.forEach(n=>n(e,s))}getID(e){if(e)return e[this.node_id]}getNode(e){return this.nodes.get(e)}getNodeCount(){return this.totalNodeAmount}clear(){for(const[e,s]of this.nodes)s&&this.unregisterNode(s);this.nextNodeId=0,this.nodes.clear()}}function Dn(t){if(Gu(t))return!0;if(Ui(t))return!1;if(!gt(t))return!0;const e=t.tagName.toUpperCase();if(e==="LINK"){const s=t.getAttribute("rel"),n=t.getAttribute("as");return!(s!=null&&s.includes("stylesheet")||n==="style"||n==="font")}return e==="SCRIPT"||e==="NOSCRIPT"||e==="META"||e==="TITLE"||e==="BASE"}function qi(t){return Nn(t)?!0:!Dn(t)}var st;(function(t){t[t.New=0]="New",t[t.Removed=1]="Removed",t[t.Changed=2]="Changed"})(st||(st={}));class Wi{constructor(e,s=!1){this.app=e,this.isTopContext=s,this.commited=[],this.recents=new Map,this.indexes=[],this.attributesMap=new Map,this.textSet=new Set,this.observer=Fo(this.app.safe(n=>{for(const i of n){const r=i.target,o=i.type;if(!qi(r))continue;if(o==="childList"){for(let c=0;c<i.removedNodes.length;c++)qi(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,st.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 s=e.contentDocument;if(s&&this.app.nodes.getID(s)!==void 0){const i=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:c=>Dn(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(Jo(a))}}sendNodeAttribute(e,s,n,i){if(ji(s)){n.substring(0,6)==="xlink:"&&(n=n.substring(6)),i===null?this.app.send(qo(e,n)):n==="href"?(i.length>1e5&&(i=""),this.app.send(Ri(e,n,i,this.app.getBaseHref()))):this.app.attributeSender.sendSetAttribute(e,n,i);return}if(!(n==="src"||n==="srcset"||n==="integrity"||n==="crossorigin"||n==="autocomplete"||n.substring(0,2)==="on")&&!(n==="value"&&he(s,"input")&&s.type!=="button"&&s.type!=="reset"&&s.type!=="submit")){if(i===null){this.app.send(qo(e,n));return}if(n==="style"||n==="href"&&he(s,"link")){this.app.send(Ri(e,n,i,this.app.getBaseHref()));return}(n==="href"||i.length>1e5)&&(i=""),this.app.attributeSender.sendSetAttribute(e,n,i)}}sendNodeData(e,s,n){if(he(s,"style")){this.app.send(hu(e,n,this.app.getBaseHref()));return}n=this.app.sanitizer.sanitize(e,n),this.app.send(Qc(e,n))}bindNode(e){const[s,n]=this.app.nodes.registerNode(e);n?this.recents.set(s,st.New):this.recents.get(s)!==st.New&&this.recents.set(s,st.Removed)}bindTree(e){if(!qi(e))return;this.bindNode(e);const s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:n=>(this.app.nodes.getID(n)!==void 0&&this.app.debug.error("! Node is already bound",n),Dn(n)||this.app.nodes.getID(n)!==void 0?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT)},!1);for(;s.nextNode();)this.bindNode(s.currentNode)}unbindTree(e){const s=this.app.nodes.unregisterNode(e);if(s!==void 0&&this.recents.get(s)===st.Removed){this.app.send(Jc(s));const n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:a=>Dn(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(;n.nextNode();)i+=1,this.app.nodes.unregisterNode(n.currentNode);const o=Math.floor(i/r*100);o>30&&this.app.send(Jo(o))}}_commitNode(e,s){if(Nn(s))return!0;const n=s.parentNode;let i;if(!he(s,"html")||!this.isTopContext){if(n===null)return this.unbindTree(s),!1;if(i=this.app.nodes.getID(n),i===void 0)return this.unbindTree(s),!1;if(!this.commitNode(i))return this.unbindTree(s),!1;if(this.app.sanitizer.handleNode(e,i,s),this.app.sanitizer.isHidden(i))return!1}let r=s.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===st.New,c=this.indexes[e];if(c===void 0)throw"commitNode: missing node index";if(a){if(gt(s)){let l=s;if(i!==void 0){if(this.app.sanitizer.isHidden(e)){const h=l.clientWidth,d=l.clientHeight;l=s.cloneNode(),l.style.width=`${h}px`,l.style.height=`${d}px`}this.app.send(Kc(e,i,c,l.tagName,ji(s)))}for(let h=0;h<l.attributes.length;h++){const d=l.attributes[h];this.sendNodeAttribute(e,l,d.nodeName,d.value)}}else Ui(s)&&(this.app.send(Xc(e,i,c)),this.sendNodeData(e,n,s.data));return!0}o===st.Removed&&i!==void 0&&this.app.send(Yc(e,i,c));const u=this.attributesMap.get(e);if(u!==void 0){if(!gt(s))throw"commitNode: node is not an element";for(const l of u)this.sendNodeAttribute(e,s,l,s.getAttribute(l))}if(this.textSet.has(e)){if(!Ui(s))throw"commitNode: node is not a text";this.sendNodeData(e,n,s.data)}return!0}commitNode(e){const s=this.app.nodes.getNode(e);if(s===void 0)return!1;const n=this.commited[e];return n!==void 0?n:this.commited[e]=this._commitNode(e,s)}commitNodes(e=!1){let s;this.recents.forEach((n,i)=>{this.commitNode(i),n===st.New&&(s=this.app.nodes.getNode(i))&&this.app.nodes.callNodeCallbacks(s,e)}),this.clear()}observeRoot(e,s,n=e){this.observer.observe(e,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1}),this.bindTree(n),s(this.app.nodes.getID(e)),this.commitNodes(!0)}disconnect(){this.observer.disconnect(),this.clear()}}class ua extends Wi{observe(e){const s=e.contentDocument,n=this.app.nodes.getID(e);!s||n===void 0||this.observeRoot(s,i=>{if(i===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.docId=i,this.app.send(Oi(n,i))})}syntheticObserve(e,s){this.observeRoot(s,n=>{if(n===void 0){this.app.debug.log("OpenReplay: Iframe document not bound");return}this.app.send(Oi(e,n))})}}class nh extends Wi{observe(e){const s=e.shadowRoot,n=this.app.nodes.getID(e);!s||n===void 0||this.observeRoot(s,i=>{if(i===void 0){this.app.debug.error("OpenReplay: Shadow Root was not bound");return}this.app.send(Oi(n,i))})}}class ih{constructor(){this.states=new WeakMap}calcOffset(e){let s=0,n=0;if(e.parent&&([s,n]=this.calcOffset(e.parent)),!e.offset){const{left:o,top:a}=e.iFrame.getBoundingClientRect();e.offset=[o,a]}const[i,r]=e.offset;return[s+i,n+r]}getDocumentOffset(e){const s=this.states.get(e);return s?this.calcOffset(s):[0,0]}observe(e){var a;const s=e.contentDocument;if(!s)return;const n=e.ownerDocument,i=this.states.get(n),r={offset:null,iFrame:e,parent:i||null,clear:()=>{var c;n.removeEventListener("scroll",o),(c=n.defaultView)==null||c.removeEventListener("resize",o)}},o=()=>{r.offset=null};n.addEventListener("scroll",o),(a=n.defaultView)==null||a.addEventListener("resize",o),this.states.set(s,r)}clear(){this.states=new WeakMap}}const Hi=tt?Element.prototype.attachShadow:()=>new ShadowRoot;class rh extends Wi{constructor(e){super(e.app,!0),this.iframeOffsets=new ih,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(s=>{he(s,"iframe")&&(this.options.captureIFrames&&!Vt(s,"obscured")||Vt(s,"capture"))&&this.handleIframe(s)}),this.app.nodes.attachNodeCallback(s=>{gt(s)&&s.shadowRoot!==null&&this.handleShadowRoot(s.shadowRoot)})}attachContextCallback(e){this.contextCallbacks.push(e)}getDocumentOffset(e){return this.iframeOffsets.getDocumentOffset(e)}handleIframe(e){const s=this.app.safe(()=>setTimeout(()=>{const n=this.app.nodes.getID(e);if(n===void 0||!zc(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",n);return}const o=new ua(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",s),s()}handleShadowRoot(e){const s=new nh(this.app);this.shadowRootObservers.set(e,s),s.observe(e.host)}observe(){const e=this;Element.prototype.attachShadow=function(){const s=Hi.apply(this,arguments);return e.handleShadowRoot(s),s},this.app.nodes.clear(),this.observeRoot(window.document,()=>{this.app.send(Gc()),this.app.nodes.callNodeCallbacks(document,!0)},window.document.documentElement)}crossdomainObserve(e,s){const n=this;Element.prototype.attachShadow=function(){const r=Hi.apply(this,arguments);return n.handleShadowRoot(r),r},this.app.nodes.clear(),this.app.nodes.syntheticMode(s);const i=new ua(this.app);this.iframeObservers.set(window.document,i),i.syntheticObserve(e,window.document)}disconnect(){this.iframeOffsets.clear(),Element.prototype.attachShadow=Hi,this.iframeObserversArr.forEach(e=>e.disconnect()),this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.docObservers=new WeakMap,super.disconnect()}}var Rn;(function(t){t[t.Plain=0]="Plain",t[t.Obscured=1]="Obscured",t[t.Hidden=2]="Hidden"})(Rn||(Rn={}));const oh=t=>t.trim().replace(/[^\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/g,"█");class ah{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,s,n){if((this.obscured.has(s)||gt(n)&&(Vt(n,"masked")||Vt(n,"obscured")))&&this.obscured.add(e),(this.hidden.has(s)||gt(n)&&(Vt(n,"htmlmasked")||Vt(n,"hidden")))&&this.hidden.add(e),this.options.domSanitizer!==void 0&>(n)){const i=this.options.domSanitizer(n);i===Rn.Obscured&&this.obscured.add(e),i===Rn.Hidden&&this.hidden.add(e)}}sanitize(e,s){return this.obscured.has(e)?oh(s):(this.options.obscureTextNumbers&&(s=s.replace(/\d/g,"0")),this.options.obscureTextEmails&&(s=s.replace(/^\w+([+.-]\w+)*@\w+([.-]\w+)*\.\w{2,3}$/g,n=>{const[i,r]=n.split("@"),[o,a]=r.split(".");return`${Ci(i)}@${Ci(o)}.${Ci(a)}`})),s)}isObscured(e){return this.obscured.has(e)}isHidden(e){return this.hidden.has(e)}getInnerTextSecure(e){const s=this.app.nodes.getID(e);return s?this.sanitize(s,e.innerText):""}clear(){this.obscured.clear(),this.hidden.clear()}}class lh{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(s=>s(e))}assign(e){e.userID!==void 0&&(this.userID=e.userID),e.metadata!==void 0&&Object.entries(e.metadata).forEach(([s,n])=>this.metadata[s]=n),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,s){this.metadata[e]=s,this.handleUpdate({metadata:{[e]:s}})}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 s=decodeURI(e).split("&");let n=e,i="100500";s.length==2&&([i,n]=s),!(!i||!n)&&(this.app.sessionStorage.setItem(this.options.session_token_key,n),this.app.sessionStorage.setItem(this.options.session_pageno_key,i))}getSessionHash(){const e=this.getPageNumber(),s=this.getSessionToken();if(!(e===void 0||s===void 0))return encodeURI(String(e)+"&"+s)}getTabId(){return this.tabId||this.createTabId(),this.tabId}regenerateTabId(){const e=jc(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 ch(t,e){let s=0;return()=>{s++>=e&&(s=0,t())}}class uh{constructor(e){this.app=e,this.timer=null,this.callbacks=[]}attach(e,s=0,n=!0,i){i&&(e=e.bind(i)),n&&(e=this.app.safe(e)),this.callbacks.unshift(s?ch(e,s):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 hh='!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",ha="or_uxt_active",Vi="or_buffer_1",mt=t=>({reason:t,success:!1}),da=t=>({...t,success:!0});var le;(function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Active=2]="Active",t[t.ColdStart=3]="ColdStart"})(le||(le={}));const fa="https://api.openreplay.com/ingest";function Gi(){const t=new Date().getTimezoneOffset()*-1,e=t>=0?"+":"-",s=Math.floor(Math.abs(t)/60),n=Math.abs(t)%60;return`UTC${e}${String(s).padStart(2,"0")}:${String(n).padStart(2,"0")}`}const dh=t=>new Promise(e=>setTimeout(e,t)),ce={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 fh=class{constructor(e,s,n,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=le.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===ce.startIframe){if(this.active())return;try{this.allowAppStart(),this.start()}catch(d){console.error("children frame restart failed:",d)}}h.line===ce.parentAlive&&(this.parentActive=!0),h.line===ce.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===ce.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===ce.iframeSignal&&((d=l.source)==null||d.postMessage({ping:!0,line:ce.parentAlive},"*"),(async()=>{var _;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 I=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 y={line:ce.iframeId,id:m,token:I,frameOrderNumber:T};this.debug.log("Got child frame signal; nodeId",m,l.source,y),(_=l.source)==null||_.postMessage(y,"*")}catch(I){console.error(I)}})()),h.line===ce.iframeBatch){const m=h.messages.map(_=>{if(_[0]===20){let I=_;return this.pageFrames.forEach(T=>{if(T.contentWindow===l.source){const[y,g,v]=_,{left:E,top:C}=T.getBoundingClientRect();I=[y,g+E,v+C]}}),I}if(_[0]===68){let I=_;return this.pageFrames.forEach(T=>{if(T.contentWindow===l.source){const[y,g,v,E,C,S,k]=_,{left:A,top:z,width:F,height:G}=T.getBoundingClientRect(),j=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,D=S/100*F+A,O=k/100*G+z,N=D/j,V=O/x;I=[y,g,v,E,C,Math.round(N*1e3)/10,Math.round(V*1e3)/10]}}),I}return _});this.messages.push(...m)}if(h.line===ce.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(m=>m!==p);return}this.pollingQueue[p].includes(h.context)&&(this.pollingQueue[p]=this.pollingQueue[p].filter(m=>m!==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(ce.startIframe)},this.killChildrenFrames=()=>{this.addCommand(ce.killIframe)},this.signalIframeTracker=()=>{var I;const l=this.session.getTabId();window.parent.postMessage({line:ce.iframeSignal,source:l,context:this.contextId},((I=this.options.crossdomain)==null?void 0:I.parentDomain)??"*");const h=10;let d=0,f=250,p=0,m=!1;const _=()=>{var T;if(m||this.checkStatus()){m=!0;return}window.parent.postMessage({line:ce.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}p+=f,setTimeout(()=>{_()},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 m=()=>l?zo(l,h,d,p,this.options.forceNgOff):null,_=()=>l?jo(l,h,d,p,this.options.forceNgOff):null;this.attachStartCallback(m,f),this.attachStopCallback(_,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(n).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.'),n={...n,canvas:{__save_canvas_locally:n.__save_canvas_locally,fixedCanvasScaling:n.fixedCanvasScaling,disableCanvas:n.disableCanvas}}),this.networkOptions=n.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:fa,resourceBaseHref:null,__is_snippet:!1,__debug_report_edp:null,__debug__:ws.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=Uo(o,n),!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 ah({app:this,options:n}),this.nodes=new sh({node_id:this.options.node_id,forceNgOff:!!n.forceNgOff,maintainer:(c=this.options.nodes)==null?void 0:c.maintainer}),this.observer=new rh({app:this,options:n}),this.ticker=new uh(this),this.ticker.attach(()=>this.commit()),this.debug=new Ju(this.options.__debug__),this.session=new lh({app:this,options:this.options}),this.attributeSender=new Mc({app:this,isDictDisabled:!!(this.options.disableStringDict||(u=this.options.crossdomain)!=null&&u.enabled)}),this.featureFlags=new Lc(this),this.tagWatcher=new ku({sessionStorage:this.sessionStorage,errLog:this.debug.error,onTag:l=>this.send(wu(l))}),this.session.attachUpdateCallback(({userID:l,metadata:h})=>{l!=null&&this.send(ou(l)),h!=null&&Object.entries(h).forEach(([d,f])=>this.send(Wo(d,f)))}),s!=null&&this.session.applySessionHash(s);const a=this.session.getTabId();this.insideIframe?(window.addEventListener("message",this.parentCrossDomainFrameListener),setInterval(()=>{var l;document.hidden||window.parent.postMessage({line:ce.polling,context:this.contextId},((l=n.crossdomain)==null?void 0:l.parentDomain)??"*")},250)):(this.initWorker(),window.addEventListener("message",this.crossDomainIframeListener)),this.bc!==null&&(this.bc.postMessage({line:ce.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===ce.resp){const h=l.data.token;this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===ce.reg){const h=l.data.token;this.session.regenerateTabId(),this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===ce.ask){const h=this.session.getSessionToken();h&&this.bc&&this.bc.postMessage({line:l.data.source===a?ce.reg:ce.resp,token:h,source:a,context:this.contextId})}}})}allowAppStart(){this.canStart=!0,this.startTimeout&&(clearTimeout(this.startTimeout),this.startTimeout=null)}async checkNodeId(e){let s;if(this.pageFrames.length>0&&(s=this.pageFrames.find(i=>i.contentWindow===e)),!s||!this.pageFrames.length){const i=Array.from(document.querySelectorAll("iframe"));this.pageFrames=i,s=i.find(r=>r.contentWindow===e)}if(!s)return null;let n=0;for(;n<100;){const i=s[this.options.node_id];if(i!==void 0)return n=100,i;n++,await dh(100)}return null}initWorker(){try{this.worker=new Worker(URL.createObjectURL(new Blob([hh],{type:"text/javascript"}))),this.worker.onerror=s=>{this._debug("webworker_error",s)},this.worker.onmessage=({data:s})=>{this.handleWorkerMsg(s)};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 s;if(e==="a_stop")this.stop(!1);else if(e==="a_start")this.waitStatus(le.NotActive).then(()=>{this.allowAppStart(),this.start(this.prevOpts,!0).then(n=>{this.debug.info("Worker restarted, session was too long",n)}).catch(n=>{this.debug.error("Worker restart failed",n)})});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 n=e.batch;n.byteLength>this.compressionThreshold?Dc(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:n})):(c=this.worker)==null||c.postMessage({type:"compressed",batch:o})}):(s=this.worker)==null||s.postMessage({type:"uncompressed",batch:n})}else e.type==="queue_empty"&&this.onSessionSent()}_debug(e,s){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:`${s}`})}),this.debug.error("OpenReplay error: ",e,s)}send(e,s=!1){var n;this.activityState!==le.NotActive&&(this.activityState===le.ColdStart?(this.bufferedMessages1.push(e),this.singleBuffer||this.bufferedMessages2.push(e),(n=this.conditionsManager)==null||n.processMessage(e)):this.messages.push(e),this.activityState===le.Active&&s&&this.commit())}_nCommit(){var e;if(this.socketMode){this.messages.unshift(Kt(this.session.getTabId())),this.messages.unshift(Gt(this.timestamp())),this.commitCallbacks.forEach(s=>s(this.messages)),this.messages.length=0;return}if(this.insideIframe){window.parent.postMessage({line:ce.iframeBatch,messages:this.messages},((e=this.options.crossdomain)==null?void 0:e.parentDomain)??"*"),this.commitCallbacks.forEach(s=>s(this.messages)),this.messages.length=0;return}if(!(this.worker===void 0||!this.messages.length))try{Wc(()=>{var s;this.messages.unshift(Kt(this.session.getTabId())),this.messages.unshift(Gt(this.timestamp())),(s=this.worker)==null||s.postMessage(this.messages),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0})}catch(s){this._debug("worker_commit",s),this.stop(!0),setTimeout(()=>{this.start()},500)}}_cStartCommit(){this.coldStartCommitN+=1,this.coldStartCommitN===2&&(this.bufferedMessages1.push(Gt(this.timestamp())),this.bufferedMessages1.push(Kt(this.session.getTabId())),this.bufferedMessages2.push(Gt(this.timestamp())),this.bufferedMessages2.push(Kt(this.session.getTabId())),this.coldStartCommitN=0)}commit(){this.activityState===le.ColdStart?this._cStartCommit():this._nCommit()}postToWorker(e){var s;(s=this.worker)==null||s.postMessage(e),this.commitCallbacks.forEach(n=>n(e)),e.length=0}timestamp(){return Ke()+this.delay}safe(e){const s=this;return function(...n){try{e.apply(this,n)}catch(i){s._debug("safe_fn_call",i)}}}attachCommitCallback(e){this.commitCallbacks.push(e)}checkRequiredVersion(e){const s=e.split(/[.-]/),n=this.version.split(/[.-]/);for(let i=0;i<3;i++){if(isNaN(Number(n[i]))||isNaN(Number(s[i])))return!1;if(Number(n[i])>Number(s[i]))return!0;if(Number(n[i])<Number(s[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:s,sessionID:n,timestamp:i}=this.session.getInfo();if(!s||!n){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$/,`${s}/session/${n}`);if(e!=null&&e.withCurrentTime){const u=Ke()-i;return`${c}?jumpto=${u}`}return c}getHost(){return new URL(this.options.ingestPoint).host}getProjectKey(){return this.projectKey}getBaseHref(){var e,s;return typeof this.options.resourceBaseHref=="string"?this.options.resourceBaseHref:(this.options.resourceBaseHref,document.baseURI?document.baseURI:((s=(e=document.head)==null?void 0:e.getElementsByTagName("base")[0])==null?void 0:s.getAttribute("href"))||location.origin+location.pathname)}resolveResourceURL(e){const s=new URL(this.getBaseHref());return s.pathname+="/"+new URL(e).pathname,s.pathname.replace(/\/+/g,"/"),s.toString()}isServiceURL(e){return e.startsWith(this.options.ingestPoint)}active(){return this.activityState===le.Active}resetNextPageSession(e){e?this.sessionStorage.setItem(this.options.session_reset_key,"t"):this.sessionStorage.removeItem(this.options.session_reset_key)}checkSessionToken(e){const s=this.sessionStorage.getItem(this.options.session_reset_key)!==null,n=e||s,i=this.session.getSessionToken();return n||!i}async coldStart(e={},s){this.singleBuffer=!1;const n=1e3,i=this.checkSessionToken(e.forceNew);s&&await this.setupConditionalStart(e);const r=()=>{this.orderNumber+=1,Ii(),this.coldStartTs=Ke(),this.orderNumber%2===0?(this.bufferedMessages1.length=0,this.bufferedMessages1.push(Gt(this.timestamp())),this.bufferedMessages1.push(Kt(this.session.getTabId()))):(this.bufferedMessages2.length=0,this.bufferedMessages2.push(Gt(this.timestamp())),this.bufferedMessages2.push(Kt(this.session.getTabId()))),this.stop(!1),this.activityState=le.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(xn(this.session.getTabId()))),this.observer.observe(),this.ticker.start()};this.coldInterval=setInterval(()=>{r()},30*n),r()}async setupConditionalStart(e){var f,p;this.conditionsManager=new Ac(this,e);const s=await fetch(this.options.ingestPoint+"/v1/web/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...this.getTrackerInfo(),timestamp:Ke(),doNotRecord:!0,bufferDiff:0,userID:this.session.getInfo().userID,token:void 0,deviceMemory:Li,jsHeapSizeLimit:Bi,timezone:Gi(),width:window.screen.width,height:window.screen.height})}),{token:n,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,projectID:l,features:h}=await s.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:n,userUUID:"",sessionID:""};this.startCallbacks.forEach(m=>m(d)),await((f=this.conditionsManager)==null?void 0:f.fetchConditions(l,n)),this.features["feature-flags"]&&(await this.featureFlags.reloadFlags(n),(p=this.conditionsManager)==null||p.processFlags(this.featureFlags.flags)),await this.tagWatcher.fetchTags(this.options.ingestPoint,n)}offlineRecording(e={},s){this.onSessionSent=s,this.singleBuffer=!0;const n=this.checkSessionToken(e.forceNew);Ii(),this.coldStartTs=Ke();const i=this.localStorage.getItem(Vi);if(i){const o=JSON.parse(i);this.bufferedMessages1=Array.isArray(o)?o:this.bufferedMessages1,this.localStorage.removeItem(Vi)}this.bufferedMessages1.push(Gt(this.timestamp())),this.bufferedMessages1.push(Kt(this.session.getTabId())),this.activityState=le.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)),n||this.send(xn(this.session.getTabId())),this.observer.observe(),this.ticker.start(),{saveBuffer:this.saveBuffer,getBuffer:this.getBuffer,setBuffer:this.setBuffer}}saveBuffer(){this.localStorage.setItem(Vi,JSON.stringify(this.bufferedMessages1))}getBuffer(){return this.bufferedMessages1}setBuffer(e){this.bufferedMessages1=e}async uploadOfflineRecording(){var d,f;this.stop(!1);const e=Ke();(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 s=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:Li,jsHeapSizeLimit:Bi,timezone:Gi()})}),{token:n,userBrowser:i,userCity:r,userCountry:o,userDevice:a,userOS:c,userState:u,beaconSizeLimit:l,projectID:h}=await s.json();for((f=this.worker)==null||f.postMessage({type:"auth",token:n,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={},s=!1,n){var c,u,l,h,d;Object.keys(e).length!==0&&(this.prevOpts=e);const i=this.activityState===le.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(mt(f))}if(this.activityState===le.Active||this.activityState===le.Starting)return Promise.resolve(mt("OpenReplay: trying to call `start()` on the instance that has been started already."));this.activityState=le.Starting,i||Ii(),e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r=Ke();(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:Li,jsHeapSizeLimit:Bi,timezone:Gi(),condition:n,assistOnly:e.assistOnly??this.socketMode,width:window.screen.width,height:window.screen.height})});if(f.status!==200){const N=await f.text(),V=N===Hs?Hs:`Server error: ${f.status}. ${N}`;return mt(V)}if(!this.worker&&!this.insideIframe){const N="no worker found after start request (this should not happen in real world)";return this.signalError(N,[]),mt(N)}const{token:p,userUUID:m,projectID:_,beaconSizeLimit:I,compressionThreshold:T,delay:y,sessionID:g,startTimestamp:v,userBrowser:E,userCity:C,userCountry:S,userDevice:k,userOS:A,userState:z,canvasEnabled:F,canvasQuality:G,canvasFPS:j,assistOnly:x,features:D}=await f.json();if(this.features=D||this.features,typeof p!="string"||typeof m!="string"||typeof v!="number"&&typeof v<"u"||typeof g!="string"||typeof y!="number"||typeof I!="number"&&typeof I<"u"){const N=`Incorrect server response: ${JSON.stringify(f)}`;return this.signalError(N,[]),mt(N)}this.delay=y,this.session.setSessionToken(p),this.session.setUserInfo({userBrowser:E,userCity:C,userCountry:S,userDevice:k,userOS:A,userState:z}),this.session.assign({sessionID:g,timestamp:v||r,projectID:_}),x?(this.socketMode=!0,(u=this.worker)==null||u.postMessage("stop")):(l=this.worker)==null||l.postMessage({type:"auth",token:p,beaconSizeLimit:I}),!a&&p===o&&(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(xn(this.session.getTabId()))),Object.entries(this.session.getInfo().metadata).forEach(([N,V])=>this.send(Wo(N,V))),this.localStorage.setItem(this.options.local_uuid_key,m),this.compressionThreshold=T;const O={sessionToken:p,userUUID:m,sessionID:g};if(this.startCallbacks.forEach(N=>N(O)),e.startCallback&&e.startCallback(da(O)),this.features["feature-flags"]&&this.featureFlags.reloadFlags(),await this.tagWatcher.fetchTags(this.options.ingestPoint,p),this.activityState=le.Active,(h=this.options.crossdomain)!=null&&h.enabled&&!this.insideIframe&&this.bootChildrenFrames(),F&&!this.options.canvas.disableCanvas&&(this.canvasRecorder=this.canvasRecorder??new Ku(this,{fps:j,quality:G,isDebug:this.options.canvas.__save_canvas_locally,fixedScaling:this.options.canvas.fixedCanvasScaling,useAnimationFrame:this.options.canvas.useAnimationFrame})),i){const N=this.bufferedMessages1.length>this.bufferedMessages2.length?this.bufferedMessages1:this.bufferedMessages2;for(;N.length>0;)await this.flushBuffer(N);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 Vu(this,ha);let N;const V=this.localStorage.getItem(ha);if(V&&(N=parseInt(V,10)),location!=null&&location.search){const Y=new URLSearchParams(location.search);if(Y.has("oruxt")){const se=Y.get("oruxt");N=se?parseInt(se,10):void 0}}N&&(this.uxtManager.isActive?this.onUxtCb.forEach(Y=>Y(N)):this.uxtManager.getTest(N,p,!!V).then(Y=>{Y&&this.onUxtCb.forEach(se=>se(Y))}))}return da(O)}catch(f){if(this.stop(),this.session.reset(),!f)return console.error("Unknown error during start"),this.signalError("Unknown error",[]),mt("Unknown error");if(f===Hs)return this.signalError(Hs,[]),mt(Hs);this._debug("session_start",f);const p=f instanceof Error?f.message:f.toString();return this.signalError(p,[]),mt(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 s=setInterval(()=>{this.canStart&&(clearInterval(s),e(!0))},100)})}async waitStarted(){return this.waitStatus(le.Active)}async waitStatus(e){return new Promise(s=>{const n=()=>{this.activityState===e?s(!0):setTimeout(n,25)};n()})}async start(...e){return this.activityState===le.Active||this.activityState===le.Starting?Promise.resolve(mt("OpenReplay: trying to call `start()` on the instance that has been started already.")):(this.insideIframe&&this.signalIframeTracker(),document.hidden?new Promise(s=>{const n=async()=>{document.hidden||(await this.waitStart(),document.removeEventListener("visibilitychange",n),s(this._start(...e)))};document.addEventListener("visibilitychange",n)}):(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 s=e;return(n,i,r="down")=>{typeof n!="string"||typeof i!="string"||i.length>5*1024*1024||n.length>255||this.send(mu("websocket",s,i,this.timestamp(),r,n))}}stop(e=!0){var s,n;if(this.activityState!==le.NotActive)try{!this.insideIframe&&((s=this.options.crossdomain)!=null&&s.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"),(n=this.canvasRecorder)==null||n.clear(),this.messages.length=0,this.parentActive=!1}finally{this.activityState=le.NotActive,this.debug.log("OpenReplay tracking stopped.")}}};function ph(t){const e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(e===void 0)return;const s=()=>t.send(cu(Math.round(e.downlink*1e3),e.type||"unknown"));s(),e.addEventListener("change",s)}const pa=tt&&"InstallTrigger"in window?t=>t.message+`
|
|
10
|
-
`+t.stack:t=>t.stack||t.message;function
|
|
11
|
-
`).filter(
|
|
12
|
-
`).filter(
|
|
9
|
+
We appreciate your time and valuable input.`),r=q("div","end_button_or",oa,"Submitting Feedback"),o=Yu();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 fa(t){return!!t&&t.nodeType!=null}function Vi(t){return t.namespaceURI==="http://www.w3.org/2000/svg"}function St(t){return t.nodeType===Node.ELEMENT_NODE}function $u(t){return t.nodeType===Node.COMMENT_NODE}function Gi(t){return t.nodeType===Node.TEXT_NODE}function As(t){return t.nodeType===Node.DOCUMENT_NODE}function Ms(t){return t.nodeType===Node.DOCUMENT_NODE||t.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function ve(t,e){return t.localName===e}class eh{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||!ve(s,"canvas")||this.app.sanitizer.isObscured(i)||this.app.sanitizer.isHidden(i)||!ve(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=Eu(i.toString(),r);this.app.send(o);const a=u=>{th(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||!ve(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&&nh(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 pa={low:.35,medium:.55,high:.8};function th(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,pa[e])}else t.toBlob(r,o,pa[e])}function nh(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 xn={Verbose:5,Log:4,Warnings:3,Errors:2,Silent:0};class sh{constructor(e=xn.Silent){this.shouldLog=n=>this.level>=n,this.info=(...n)=>{this.shouldLog(xn.Verbose)&&console.info(...n)},this.log=(...n)=>{this.shouldLog(xn.Log)&&console.log(...n)},this.warn=(...n)=>{this.shouldLog(xn.Warnings)&&console.warn(...n)},this.error=(...n)=>{this.shouldLog(xn.Errors)&&console.error(...n)},this.level=e}}const ih=1e3;function rh(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 oh(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 ah={interval:ih*30,batchSize:2500,enabled:!0};class lh{constructor(e,n,s){this.nodes=e,this.unregisterNode=n,this.start=()=>{this.options.enabled&&(this.stop(),this.interval=setInterval(()=>{rh(this.nodes,this.options.batchSize,i=>{oh(i)[0]||this.unregisterNode(i)})},this.options.interval))},this.stop=()=>{this.interval&&clearInterval(this.interval)},this.options={...ah,...s}}}class ch{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;qo(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=>Vo(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 lh(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 Ps(t){if($u(t))return!0;if(Gi(t))return!1;if(!St(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 Ki(t){return Ms(t)?!0:!Ps(t)}var it;(function(t){t[t.New=0]="New",t[t.Removed=1]="Removed",t[t.Changed=2]="Changed"})(it||(it={}));class Xi{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=Ho(this.app.safe(s=>{for(const i of s){const r=i.target,o=i.type;if(!Ki(r))continue;if(o==="childList"){for(let c=0;c<i.removedNodes.length;c++)Ki(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,it.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=>Ps(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(ta(a))}}sendNodeAttribute(e,n,s,i){if(Vi(n)){s.substring(0,6)==="xlink:"&&(s=s.substring(6)),i===null?this.app.send(Ko(e,s)):s==="href"?(i.length>1e5&&(i=""),this.app.send(Li(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"&&ve(n,"input")&&n.type!=="button"&&n.type!=="reset"&&n.type!=="submit")){if(i===null){this.app.send(Ko(e,s));return}if(s==="style"||s==="href"&&ve(n,"link")){this.app.send(Li(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(ve(n,"style")){this.app.send(bu(e,s,this.app.getBaseHref()));return}s=this.app.sanitizer.sanitize(e,s),this.app.send(iu(e,s))}bindNode(e){const[n,s]=this.app.nodes.registerNode(e);s?this.recents.set(n,it.New):this.recents.get(n)!==it.New&&this.recents.set(n,it.Removed)}bindTree(e){if(!Ki(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),Ps(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)===it.Removed){this.app.send(su(n));const s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_TEXT,{acceptNode:a=>Ps(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(ta(o))}}_commitNode(e,n){if(Ms(n))return!0;const s=n.parentNode;let i;if(!ve(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===it.New,c=this.indexes[e];if(c===void 0)throw"commitNode: missing node index";if(a){if(St(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(eu(e,i,c,l.tagName,Vi(n)))}for(let h=0;h<l.attributes.length;h++){const d=l.attributes[h];this.sendNodeAttribute(e,l,d.nodeName,d.value)}}else Gi(n)&&(this.app.send(tu(e,i,c)),this.sendNodeData(e,s,n.data));return!0}o===it.Removed&&i!==void 0&&this.app.send(nu(e,i,c));const u=this.attributesMap.get(e);if(u!==void 0){if(!St(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(!Gi(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===it.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 ga extends Xi{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(Fi(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(Fi(e,s))})}}class uh extends Xi{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(Fi(s,i))})}}class hh{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 Yi=st?Element.prototype.attachShadow:()=>new ShadowRoot;class dh extends Xi{constructor(e){super(e.app,!0),this.iframeOffsets=new hh,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=>{ve(n,"iframe")&&(this.options.captureIFrames&&!Xt(n,"obscured")||Xt(n,"capture"))&&this.handleIframe(n)}),this.app.nodes.attachNodeCallback(n=>{St(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||!Gc(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 ga(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 uh(this.app);this.shadowRootObservers.set(e,n),n.observe(e.host)}observe(){const e=this;Element.prototype.attachShadow=function(){const n=Yi.apply(this,arguments);return e.handleShadowRoot(n),n},this.app.nodes.clear(),this.observeRoot(window.document,()=>{this.app.send($c()),this.app.nodes.callNodeCallbacks(document,!0)},window.document.documentElement)}crossdomainObserve(e,n){const s=this;Element.prototype.attachShadow=function(){const r=Yi.apply(this,arguments);return s.handleShadowRoot(r),r},this.app.nodes.clear(),this.app.nodes.syntheticMode(n);const i=new ga(this.app);this.iframeObservers.set(window.document,i),i.syntheticObserve(e,window.document)}disconnect(){this.iframeOffsets.clear(),Element.prototype.attachShadow=Yi,this.iframeObserversArr.forEach(e=>e.disconnect()),this.iframeObserversArr=[],this.iframeObservers=new WeakMap,this.shadowRootObservers=new WeakMap,this.docObservers=new WeakMap,super.disconnect()}}var Ls;(function(t){t[t.Plain=0]="Plain",t[t.Obscured=1]="Obscured",t[t.Hidden=2]="Hidden"})(Ls||(Ls={}));const fh=t=>t.trim().replace(/[^\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/g,"█");class ph{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)||St(s)&&(Xt(s,"masked")||Xt(s,"obscured")))&&this.obscured.add(e),(this.hidden.has(n)||St(s)&&(Xt(s,"htmlmasked")||Xt(s,"hidden")))&&this.hidden.add(e),this.options.domSanitizer!==void 0&&St(s)){const i=this.options.domSanitizer(s);i===Ls.Obscured&&this.obscured.add(e),i===Ls.Hidden&&this.hidden.add(e)}}sanitize(e,n){return this.obscured.has(e)?fh(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`${Ai(i)}@${Ai(o)}.${Ai(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 gh{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=Kc(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 mh(t,e){let n=0;return()=>{n++>=e&&(n=0,t())}}class vh{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?mh(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 bh='!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',Xn="canceled",ma="or_uxt_active",Ji="or_buffer_1",_t=t=>({reason:t,success:!1}),va=t=>({...t,success:!0});var ue;(function(t){t[t.NotActive=0]="NotActive",t[t.Starting=1]="Starting",t[t.Active=2]="Active",t[t.ColdStart=3]="ColdStart"})(ue||(ue={}));const ba="https://api.openreplay.com/ingest";function Qi(){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 wh=t=>new Promise(e=>setTimeout(e,t)),he={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 yh=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=ue.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===he.startIframe){if(this.active())return;try{this.allowAppStart(),this.start()}catch(d){console.error("children frame restart failed:",d)}}h.line===he.parentAlive&&(this.parentActive=!0),h.line===he.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===he.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===he.iframeSignal&&((d=l.source)==null||d.postMessage({ping:!0,line:he.parentAlive},"*"),(async()=>{var E;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 _=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 T={line:he.iframeId,id:m,token:_,frameOrderNumber:x};this.debug.log("Got child frame signal; nodeId",m,l.source,T),(E=l.source)==null||E.postMessage(T,"*")}catch(_){console.error(_)}})()),h.line===he.iframeBatch){const m=h.messages.map(E=>{if(E[0]===20){let _=E;return this.pageFrames.forEach(x=>{if(x.contentWindow===l.source){const[T,g,w]=E,{left:k,top:I}=x.getBoundingClientRect();_=[T,g+k,w+I]}}),_}if(E[0]===68){let _=E;return this.pageFrames.forEach(x=>{if(x.contentWindow===l.source){const[T,g,w,k,I,y,S]=E,{left:A,top:j,width:B,height:X}=x.getBoundingClientRect(),U=document.documentElement.scrollWidth,W=document.documentElement.scrollHeight,C=y/100*B+A,D=S/100*X+j,N=C/U,M=D/W;_=[T,g,w,k,I,Math.round(N*1e3)/10,Math.round(M*1e3)/10]}}),_}return E});this.messages.push(...m)}if(h.line===he.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(m=>m!==p);return}this.pollingQueue[p].includes(h.context)&&(this.pollingQueue[p]=this.pollingQueue[p].filter(m=>m!==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(he.startIframe)},this.killChildrenFrames=()=>{this.addCommand(he.killIframe)},this.signalIframeTracker=()=>{var _;const l=this.session.getTabId();window.parent.postMessage({line:he.iframeSignal,source:l,context:this.contextId},((_=this.options.crossdomain)==null?void 0:_.parentDomain)??"*");const h=10;let d=0,f=250,p=0,m=!1;const E=()=>{var x;if(m||this.checkStatus()){m=!0;return}window.parent.postMessage({line:he.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()){m=!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 m=()=>l?qo(l,h,d,p,this.options.forceNgOff):null,E=()=>l?Vo(l,h,d,p,this.options.forceNgOff):null;this.attachStartCallback(m,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:ba,resourceBaseHref:null,__is_snippet:!1,__debug_report_edp:null,__debug__:xn.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=Go(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 ph({app:this,options:s}),this.nodes=new ch({node_id:this.options.node_id,forceNgOff:!!s.forceNgOff,maintainer:(c=this.options.nodes)==null?void 0:c.maintainer}),this.observer=new dh({app:this,options:s}),this.ticker=new vh(this),this.ticker.attach(()=>this.commit()),this.debug=new sh(this.options.__debug__),this.session=new gh({app:this,options:this.options}),this.attributeSender=new jc({app:this,isDictDisabled:!!(this.options.disableStringDict||(u=this.options.crossdomain)!=null&&u.enabled)}),this.featureFlags=new Hc(this),this.tagWatcher=new Ru({sessionStorage:this.sessionStorage,errLog:this.debug.error,onTag:l=>this.send(Iu(l))}),this.session.attachUpdateCallback(({userID:l,metadata:h})=>{l!=null&&this.send(fu(l)),h!=null&&Object.entries(h).forEach(([d,f])=>this.send(Xo(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:he.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:he.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===he.resp){const h=l.data.token;this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===he.reg){const h=l.data.token;this.session.regenerateTabId(),this.session.setSessionToken(h),this.allowAppStart()}if(l.data.line===he.ask){const h=this.session.getSessionToken();h&&this.bc&&this.bc.postMessage({line:l.data.source===a?he.reg:he.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 wh(100)}return null}initWorker(){try{this.worker=new Worker(URL.createObjectURL(new Blob([bh],{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(ue.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?Fc(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!==ue.NotActive&&(this.activityState===ue.ColdStart?(this.bufferedMessages1.push(e),this.singleBuffer||this.bufferedMessages2.push(e),(s=this.conditionsManager)==null||s.processMessage(e)):this.messages.push(e),this.activityState===ue.Active&&n&&this.commit())}_nCommit(){var e;if(this.socketMode){this.messages.unshift(Jt(this.session.getTabId())),this.messages.unshift(Yt(this.timestamp())),this.commitCallbacks.forEach(n=>n(this.messages)),this.messages.length=0;return}if(this.insideIframe){window.parent.postMessage({line:he.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{Jc(()=>{var n;this.messages.unshift(Jt(this.session.getTabId())),this.messages.unshift(Yt(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(Yt(this.timestamp())),this.bufferedMessages1.push(Jt(this.session.getTabId())),this.bufferedMessages2.push(Yt(this.timestamp())),this.bufferedMessages2.push(Jt(this.session.getTabId())),this.coldStartCommitN=0)}commit(){this.activityState===ue.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 Je()+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=Je()-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===ue.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,Oi(),this.coldStartTs=Je(),this.orderNumber%2===0?(this.bufferedMessages1.length=0,this.bufferedMessages1.push(Yt(this.timestamp())),this.bufferedMessages1.push(Jt(this.session.getTabId()))):(this.bufferedMessages2.length=0,this.bufferedMessages2.push(Yt(this.timestamp())),this.bufferedMessages2.push(Jt(this.session.getTabId()))),this.stop(!1),this.activityState=ue.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(Rs(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 zc(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:Je(),doNotRecord:!0,bufferDiff:0,userID:this.session.getInfo().userID,token:void 0,deviceMemory:zi,jsHeapSizeLimit:Ui,timezone:Qi(),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((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);Oi(),this.coldStartTs=Je();const i=this.localStorage.getItem(Ji);if(i){const o=JSON.parse(i);this.bufferedMessages1=Array.isArray(o)?o:this.bufferedMessages1,this.localStorage.removeItem(Ji)}this.bufferedMessages1.push(Yt(this.timestamp())),this.bufferedMessages1.push(Jt(this.session.getTabId())),this.activityState=ue.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(Rs(this.session.getTabId())),this.observer.observe(),this.ticker.start(),{saveBuffer:this.saveBuffer,getBuffer:this.getBuffer,setBuffer:this.setBuffer}}saveBuffer(){this.localStorage.setItem(Ji,JSON.stringify(this.bufferedMessages1))}getBuffer(){return this.bufferedMessages1}setBuffer(e){this.bufferedMessages1=e}async uploadOfflineRecording(){var d,f;this.stop(!1);const e=Je();(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:zi,jsHeapSizeLimit:Ui,timezone:Qi()})}),{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===ue.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(_t(f))}if(this.activityState===ue.Active||this.activityState===ue.Starting)return Promise.resolve(_t("OpenReplay: trying to call `start()` on the instance that has been started already."));this.activityState=ue.Starting,i||Oi(),e.sessionHash&&this.session.applySessionHash(e.sessionHash),e.forceNew&&this.session.reset(),this.session.assign({userID:e.userID,metadata:e.metadata});const r=Je();(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:zi,jsHeapSizeLimit:Ui,timezone:Qi(),condition:s,assistOnly:e.assistOnly??this.socketMode,width:window.screen.width,height:window.screen.height})});if(f.status!==200){const N=await f.text(),M=N===Xn?Xn:`Server error: ${f.status}. ${N}`;return _t(M)}if(!this.worker&&!this.insideIframe){const N="no worker found after start request (this should not happen in real world)";return this.signalError(N,[]),_t(N)}const{token:p,userUUID:m,projectID:E,beaconSizeLimit:_,compressionThreshold:x,delay:T,sessionID:g,startTimestamp:w,userBrowser:k,userCity:I,userCountry:y,userDevice:S,userOS:A,userState:j,canvasEnabled:B,canvasQuality:X,canvasFPS:U,assistOnly:W,features:C}=await f.json();if(this.features=C||this.features,typeof p!="string"||typeof m!="string"||typeof w!="number"&&typeof w<"u"||typeof g!="string"||typeof T!="number"||typeof _!="number"&&typeof _<"u"){const N=`Incorrect server response: ${JSON.stringify(f)}`;return this.signalError(N,[]),_t(N)}this.delay=T,this.session.setSessionToken(p),this.session.setUserInfo({userBrowser:k,userCity:I,userCountry:y,userDevice:S,userOS:A,userState:j}),this.session.assign({sessionID:g,timestamp:w||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:_}),!a&&p===o&&(this.debug.log("continuing session on new tab",this.session.getTabId()),this.send(Rs(this.session.getTabId()))),Object.entries(this.session.getInfo().metadata).forEach(([N,M])=>this.send(Xo(N,M))),this.localStorage.setItem(this.options.local_uuid_key,m),this.compressionThreshold=x;const D={sessionToken:p,userUUID:m,sessionID:g};if(this.startCallbacks.forEach(N=>N(D)),e.startCallback&&e.startCallback(va(D)),this.features["feature-flags"]&&this.featureFlags.reloadFlags(),await this.tagWatcher.fetchTags(this.options.ingestPoint,p),this.activityState=ue.Active,(h=this.options.crossdomain)!=null&&h.enabled&&!this.insideIframe&&this.bootChildrenFrames(),B&&!this.options.canvas.disableCanvas&&(this.canvasRecorder=this.canvasRecorder??new eh(this,{fps:U,quality:X,isDebug:this.options.canvas.__save_canvas_locally,fixedScaling:this.options.canvas.fixedCanvasScaling,useAnimationFrame:this.options.canvas.useAnimationFrame})),i){const N=this.bufferedMessages1.length>this.bufferedMessages2.length?this.bufferedMessages1:this.bufferedMessages2;for(;N.length>0;)await this.flushBuffer(N);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 Zu(this,ma);let N;const M=this.localStorage.getItem(ma);if(M&&(N=parseInt(M,10)),location!=null&&location.search){const re=new URLSearchParams(location.search);if(re.has("oruxt")){const H=re.get("oruxt");N=H?parseInt(H,10):void 0}}N&&(this.uxtManager.isActive?this.onUxtCb.forEach(re=>re(N)):this.uxtManager.getTest(N,p,!!M).then(re=>{re&&this.onUxtCb.forEach(H=>H(re))}))}return va(D)}catch(f){if(this.stop(),this.session.reset(),!f)return console.error("Unknown error during start"),this.signalError("Unknown error",[]),_t("Unknown error");if(f===Xn)return this.signalError(Xn,[]),_t(Xn);this._debug("session_start",f);const p=f instanceof Error?f.message:f.toString();return this.signalError(p,[]),_t(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(ue.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===ue.Active||this.activityState===ue.Starting?Promise.resolve(_t("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(ku("websocket",n,i,this.timestamp(),r,s))}}stop(e=!0){var n,s;if(this.activityState!==ue.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=ue.NotActive,this.debug.log("OpenReplay tracking stopped.")}}};function Sh(t){const e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(e===void 0)return;const n=()=>t.send(mu(Math.round(e.downlink*1e3),e.type||"unknown"));n(),e.addEventListener("change",n)}const wa=st&&"InstallTrigger"in window?t=>t.message+`
|
|
10
|
+
`+t.stack:t=>t.stack||t.message;function Zi(t){return t===void 0?"undefined":t===null?"null":t instanceof Error?wa(t):Array.isArray(t)?`Array(${t.length})`:String(t)}function _h(t){return typeof t!="number"?"NaN":t.toString()}function kh(t){return typeof t!="number"?"NaN":Math.floor(t).toString()}function ya(t){if(t===void 0)return"undefined";if(t===null)return"null";if(t instanceof Error)return wa(t);if(Array.isArray(t)){const e=t.length,n=t.slice(0,10).map(Zi).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+": "+Zi(i))}return"{"+e.join(", ")+"}"}return t.toString()}function Th(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 ya(s);case"s":return Zi(s);case"f":return _h(s);case"d":case"i":return kh(s);default:return e}})),t.map(ya).join(" ")}const Sa=["log","info","warn","error","debug","assert"];function xh(t,e){const n=Object.assign({consoleMethods:Sa,consoleThrottling:30},e);if(!Array.isArray(n.consoleMethods)||n.consoleMethods.length===0)return;const s=t.safe((c,u)=>t.send(cu(c,Th(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,f){Reflect.apply(h,u,f),i=i+1,!(i>n.consoleThrottling)&&s(h.name,f)}};n.consoleMethods.forEach(h=>{if(Sa.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 Eh=/(^|@)\S+:\d+/,_a=/^\s*at .*(\S+:\d+|\(native\))/m,Ih=/^(eval@)?(\[native code\])?$/;function Ch(t,e){if(typeof t.stacktrace<"u"||typeof t["opera#sourceloc"]<"u")return Ah(t);if(t.stack&&t.stack.match(_a))return Nh(t);if(t.stack)return Dh(t);throw new Error("Cannot parse given Error object")}function $i(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 Yn(t,e){return t}function Nh(t,e){return Rh(t.stack)}function Rh(t,e){return Yn(t.split(`
|
|
11
|
+
`).filter(s=>!!s.match(_a))).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=$i(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 Dh(t,e){return Oh(t.stack)}function Oh(t,e){return Yn(t.split(`
|
|
12
|
+
`).filter(s=>!s.match(Ih))).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=$i(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 Ah(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=
|
|
17
|
-
`),i=[];for(let r=0,o=
|
|
18
|
-
`).filter(n=>!!n.match(yh)&&!n.match(/^Error created at/))).map(n=>{const i=n.split("@"),r=Xi(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:n}})}function Dh(t){return t.map(e=>({functionName:e.function,args:e.args,fileName:e.file,lineNumber:e.line,columnNumber:e.col,source:e.raw}))}function Rh(t,e){return Dh(Sh(t))}function ba(t){return[{columnNumber:t.colno,lineNumber:t.lineno,fileName:t.filename,functionName:"",source:""}]}function On(t,e,s={}){let n=e;try{n=Rh(t)}catch{}return Ai(t.name,t.message,JSON.stringify(n),JSON.stringify(s))}function ya(t,e=window,s={}){if(t instanceof ErrorEvent){if(t.error instanceof Error)return On(t.error,ba(t),s);{let[n,i]=t.message.split(":");return i||(n="Error",i=t.message),Ai(n,i,JSON.stringify(ba(t)),JSON.stringify(s))}}else if("PromiseRejectionEvent"in e&&t instanceof e.PromiseRejectionEvent){if(t.reason instanceof Error)return On(t.reason,[],s);{let n;try{n=JSON.stringify(t.reason)}catch{n=String(t.reason)}return Ai("Unhandled Promise Rejection",n,"[]",JSON.stringify(s))}}return null}function Oh(t,e){const s=Object.assign({captureExceptions:!0},e);function n(i){function r(o){const a=ya(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)}}s.captureExceptions&&(t.observer.attachContextCallback(n),n(window))}function wa(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 Mh(t){return Bc&&(t.startsWith("data:image/svg+xml")||t.match(/.svg$|/i))}const Ah="https://static.openreplay.com/tracker/placeholder.jpeg";function Ph(t){function e(a,c){t.attributeSender.sendSetAttribute(a,"src",Ah);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 s=function(a,c){const{srcset:u}=c;if(!u)return;const l=u.split(u.match(/,\s+/)?/,\s+/:",").map(h=>wa(h)).join(", ");t.attributeSender.sendSetAttribute(a,"srcset",l)},n=function(a,c){c.src.length>Fc&&e(a,c),t.send(Ri(a,"src",c.src,t.getBaseHref()))},i=t.safe(function(a){const c=wa(a.src||"");Mo(c)&&t.send(Qo(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&&!Mh(a.src)?i(a):t.sanitizer.isHidden(c)||t.sanitizer.isObscured(c)?e(c,a):(n(c,a),s(c,a)))}),o=Fo(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"&&n(l,u),c.attributeName==="srcset"&&s(l,u)}}),t.options.forceNgOff);t.attachStopCallback(()=>{o.disconnect()}),t.nodes.attachNodeCallback(a=>{he(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 Lh=["text","password","email","search","number","range","date","tel","time"];function Bh(t){return he(t,"textarea")?!0:he(t,"input")?Lh.includes(t.type):!1}function Fh(t){if(!he(t,"input"))return!1;const e=t.type;return e==="checkbox"||e==="radio"}const zh=tt&&"labels"in HTMLInputElement.prototype?t=>{let e=t;for(;(e=e.parentNode)!==null;)if(he(e,"label"))return e;const s=t.labels;if(s!==null&&s.length===1)return s[0]}:t=>{let e=t;for(;(e=e.parentNode)!==null;)if(he(e,"label"))return e;const s=t.id;if(s){const n=t.ownerDocument.querySelectorAll('label[for="'+s+'"]');if(n!==null&&n.length===1)return n[0]}};function Sa(t){let e=Ni(t);if(e===null){const s=zh(t);e=s&&s.innerText||t.placeholder||t.name||t.id||t.className||t.type}return Oo(e).slice(0,100)}const Ss={Plain:0,Obscured:1,Hidden:2};function jh(t,e){const s=Object.assign({obscureInputNumbers:!0,obscureInputEmails:!0,defaultInputMode:Ss.Obscured,obscureInputDates:!1},e);function n(l,h){let d=h.value,f=s.defaultInputMode;h.type==="password"||t.sanitizer.isHidden(l)?f=Ss.Hidden:(t.sanitizer.isObscured(l)||f===Ss.Plain&&(s.obscureInputNumbers&&h.type!=="date"&&/\d\d\d\d/.test(d)||s.obscureInputDates&&h.type==="date"||s.obscureInputEmails&&(h.type==="email"||~d.indexOf("@"))))&&(f=Ss.Obscured);let p=0;switch(f){case Ss.Hidden:p=-1,d="";break;case Ss.Obscured:p=d.length,d="";break}return{value:d,mask:p}}function i(l,h){const{value:d,mask:f}=n(l,h);t.send($c(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(eu(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:m}=n(l,h),_=Sa(h);t.send(vu(l,p,m!==0,_,d,f))}t.nodes.attachNodeCallback(t.safe(l=>{const h=t.nodes.getID(l);if(h!==void 0){if(he(l,"select")&&(i(h,l),t.nodes.attachNodeListener(l,"change",()=>i(h,l))),Bh(l)){a(h,l);let d=0,f=0,p=0;const m=()=>{d=Ke()},_=()=>{f===0&&d!==0&&(f=Ke()-d)},I=()=>{d!==0&&(p=Ke()-d),u(h,l,f,p),f=0,p=0,d=0};t.nodes.attachNodeListener(l,"focus",m),t.nodes.attachNodeListener(l,"input",_),t.nodes.attachNodeListener(l,"change",I);return}if(Fh(l)){c(h,l.checked),t.nodes.attachNodeListener(l,"change",()=>c(h,l.checked));return}}}))}let ze,Yi,_a;function Uh(t,e){if(_a=new Date,t.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if(t.tagName.toLowerCase()==="html")return"html";const s={root:document.body,idName:i=>!0,className:i=>!0,tagName:i=>!0,attr:(i,r)=>!1,seedMinLength:1,optimizedMinLength:2,threshold:1e3,maxNumberOfTries:1e4,timeoutMs:void 0};ze={...s,...e},Yi=qh(ze.root,s);let n=Mn(t,"all",()=>Mn(t,"two",()=>Mn(t,"one",()=>Mn(t,"none"))));if(n){const i=Ca(Na(n,t));return i.length>0&&(n=i[0]),An(n)}else throw new Error("Selector was not found.")}function qh(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function Mn(t,e,s){let n=null,i=[],r=t,o=0;for(;r;){const a=new Date().getTime()-_a.getTime();if(ze.timeoutMs!==void 0&&a>ze.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${a}ms`);let c=Ln(Wh(r))||Ln(...Hh(r))||Ln(...Vh(r))||Ln(Gh(r))||[Ea()];const u=Kh(r);if(e=="all")u&&(c=c.concat(c.filter(Ji).map(l=>Pn(l,u))));else if(e=="two")c=c.slice(0,1),u&&(c=c.concat(c.filter(Ji).map(l=>Pn(l,u))));else if(e=="one"){const[l]=c=c.slice(0,1);u&&Ji(l)&&(c=[Pn(l,u)])}else e=="none"&&(c=[Ea()],u&&(c=[Pn(c[0],u)]));for(let l of c)l.level=o;if(i.push(c),i.length>=ze.seedMinLength&&(n=ka(i,s),n))break;r=r.parentElement,o++}return n||(n=ka(i,s)),!n&&s?s():n}function ka(t,e){const s=Ca(Ia(t));if(s.length>ze.threshold)return e?e():null;for(let n of s)if(xa(n))return n;return null}function An(t){let e=t[0],s=e.name;for(let n=1;n<t.length;n++){const i=t[n].level||0;e.level===i-1?s=`${t[n].name} > ${s}`:s=`${t[n].name} ${s}`,e=t[n]}return s}function Ta(t){return t.map(e=>e.penalty).reduce((e,s)=>e+s,0)}function xa(t){const e=An(t);switch(Yi.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 Wh(t){const e=t.getAttribute("id");return e&&ze.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function Hh(t){return Array.from(t.attributes).filter(s=>ze.attr(s.name,s.value)).map(s=>({name:`[${CSS.escape(s.name)}="${CSS.escape(s.value)}"]`,penalty:.5}))}function Vh(t){return Array.from(t.classList).filter(ze.className).map(s=>({name:"."+CSS.escape(s),penalty:1}))}function Gh(t){const e=t.tagName.toLowerCase();return ze.tagName(e)?{name:e,penalty:2}:null}function Ea(){return{name:"*",penalty:3}}function Kh(t){const e=t.parentNode;if(!e)return null;let s=e.firstChild;if(!s)return null;let n=0;for(;s&&(s.nodeType===Node.ELEMENT_NODE&&n++,s!==t);)s=s.nextSibling;return n}function Pn(t,e){return{name:t.name+`:nth-child(${e})`,penalty:t.penalty+1}}function Ji(t){return t.name!=="html"&&!t.name.startsWith("#")}function Ln(...t){const e=t.filter(Xh);return e.length>0?e:null}function Xh(t){return t!=null}function*Ia(t,e=[]){if(t.length>0)for(let s of t[0])yield*Ia(t.slice(1,t.length),e.concat(s));else yield e}function Ca(t){return[...t].sort((e,s)=>Ta(e)-Ta(s))}function*Na(t,e,s={counter:0,visited:new Map}){if(t.length>2&&t.length>ze.optimizedMinLength)for(let n=1;n<t.length-1;n++){if(s.counter>ze.maxNumberOfTries)return;s.counter+=1;const i=[...t];i.splice(n,1);const r=An(i);if(s.visited.has(r))return;xa(i)&&Yh(i,e)&&(yield i,s.visited.set(r,!0),yield*Na(i,e,s))}}function Yh(t,e){return Yi.querySelector(An(t))===e}function Jh(t,e,s){return Uh(t,{root:e.body,seedMinLength:3,optimizedMinLength:(s==null?void 0:s.minSelectorDepth)||2,threshold:(s==null?void 0:s.nthThreshold)||1e3,maxNumberOfTries:(s==null?void 0:s.maxOptimiseTries)||1e4})}function Qi(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 Da(t,e){return t instanceof Element?Qh(t,e):null}function Qh(t,e){let s=t;for(;s!==null&&s!==e.documentElement;){if(Vt(s,"masked"))return null;s=s.parentElement}if(ji(t)){let n=t.ownerSVGElement;for(;n!==null;)t=n,n=n.ownerSVGElement}for(s=t;s!==null&&s!==e.documentElement;){const n=s.tagName.toUpperCase();if(n==="LABEL")return null;if(n==="INPUT"||Qi(s)||Ni(s)!==null)return s;s=s.parentElement}return t===e.documentElement?null:t}function Zh(t,e){const{disableClickmaps:s=!1}=e||{};function n(g){const v=Ni(g);if(v!==null)return v;if(he(g,"input"))return Sa(g);if(Qi(g)){let E="";return g instanceof HTMLElement&&(E=t.sanitizer.getInnerTextSecure(g)),E=E||g.id||g.className,Oo(E).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 m=.008,_=225;function I(){const g=f/_;if(!l){l=g;return}const v=(g-l)/_;d>4&&v>m&&t.send(bu(Ke())),f=0,d=0,l=g}t.attachStartCallback(()=>{p=setInterval(()=>I(),_)}),t.attachStopCallback(()=>{i=-1,r=-1,o=!1,a=null,u={},p&&clearInterval(p)});const T=()=>{o&&(t.send(tu(i,r)),o=!1)},y=(g,v=!1)=>{function E(S,k,A){return u[S]=u[S]||Jh(k,g,A)}const C=v?t.attachEventListener.bind(t):t.nodes.attachNodeListener.bind(t.nodes);C(g.documentElement,"mouseover",S=>{const k=Da(S.target,g);k!==a&&(a=k,c=performance.now())}),C(g,"mousemove",S=>{const[k,A]=t.observer.getDocumentOffset(g);i=S.clientX+k,r=S.clientY+A,o=!0;const z=Math.sign(S.movementX);f+=Math.abs(S.movementX)+Math.abs(S.movementY),z!==h&&(h=z,d++)},!1),C(g,"click",S=>{const k=Da(S.target,g);if(!S.clientX&&!S.clientY||k===null)return;const A=t.nodes.getID(k);if(A!==void 0){const z=S.pageX,F=S.pageY,G=g.documentElement.scrollWidth,j=g.documentElement.scrollHeight,x=Ra(z/G),D=Ra(F/j);T(),t.send(pu(A,a===k?Math.round(performance.now()-c):0,n(k),Qi(k)&&!s?E(A,k,e):"",x,D),!0)}a=null})};t.nodes.attachNodeCallback(g=>{Cn(g)&&y(g)}),y(document,!0),t.ticker.attach(T,(e==null?void 0:e.trackingOffset)||7)}function Ra(t){return Math.round(t*1e4)}function $h(t){const e=[],s=document.getElementsByTagName("*"),n=/url\(("[^"]*"|'[^']*'|[^)]*)\)/i;for(let i=0;i<s.length;i++){const r=s[i];let o="";if(he(r,"img")&&(o=r.currentSrc||r.src),!o){const p=getComputedStyle(r).getPropertyValue("background-image");if(p){const m=n.exec(p);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 f=(h-u)*(d-l);e.push({time:a,area:f})}return e}function ed(t,e){let s=Math.max(document.documentElement&&document.documentElement.clientWidth||0,window.innerWidth||0)*Math.max(document.documentElement&&document.documentElement.clientHeight||0,window.innerHeight||0)/10,n=s*t;for(let i=0;i<e.length;i++){const{time:r,area:o}=e[i];s+=o,n+=o*(r>t?r:t)}return s===0?0:n/s}function td(t,e){const s=Object.assign({captureResourceTimings:!0,capturePageLoadTimings:!0,capturePageRenderTimings:!0,excludedResourceUrls:[]},e);if("PerformanceObserver"in window||(s.captureResourceTimings=!1),!s.captureResourceTimings)return;let n={};function i(u){var h;if(u.duration<0||!Mo(u.name)||t.isServiceURL(u.name))return;n!==null&&(n[u.name]=u.startTime+u.duration);let l=!1;(h=s.excludedResourceUrls)==null||h.forEach(d=>{if(u.name.startsWith(d)){l=!0;return}}),!l&&t.send(Qo(u.startTime+vs(),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(s.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:m,loadEventStart:_,loadEventEnd:I}=performance.timing;t.send(nu(h-l||0,d-l||0,f-l||0,p-l||0,m-l||0,_-l||0,I-l||0,a,c))}},30)}if(s.capturePageRenderTimings){let u=0,l=0,h=0,d=null,f=!1;t.ticker.attach(()=>{if(f)return;const p=performance.now();if(n!==null&&(u=Math.max.apply(null,Object.keys(n).map(m=>n[m])),p-u>1e3&&(d=$h(n),n=null)),h!==null&&(p-h>50&&(l=p),h=p-l>5e3?null:p),d!==null&&h===null||p>3e4){f=!0,n=null;const m=d===null?0:ed(c||a,d),{domContentLoadedEventEnd:_,navigationStart:I}=performance.timing,T=h===null?Math.max(l,c,_-I||0):0;t.send(iu(m,c>u?c:u,T))}})}}function Zi(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 sd(t,e){let s=!1;const n=new Map;function i(a){la(a)&&(gt(a)&&n.set(a,[a.scrollLeft,a.scrollTop]),Cn(a)&&n.set(a,Zi(a)))}const r=t.safe(()=>{e||t.send(Vc(...Zi(document)))}),o=t.safe((a,c)=>{const u=t.nodes.getID(c);u!==void 0&&t.send(Zc(u,a[0],a[1]))});t.attachStartCallback(r),t.attachStopCallback(()=>{s=!1,n.clear()}),t.nodes.attachNodeCallback((a,c)=>{c&&(gt(a)&&a.scrollLeft+a.scrollTop>0?n.set(a,[a.scrollLeft,a.scrollTop]):Cn(a)&&n.set(a,Zi(a))),Nn(a)&&t.nodes.attachNodeListener(a,"scroll",u=>{i(u.target)})}),t.attachEventListener(document,"scroll",a=>{const c=a.target;if(c===document){s=!0;return}i(c)}),t.ticker.attach(()=>{s&&(r(),s=!1),n.forEach(o),n.clear()},5,!1)}function nd(t){let e,s,n,i,r=document.referrer;const o=t.safe(()=>{const{URL:u}=document;u!==e&&(e=u,t.send(Su(e,r,i,document.title)),i=0,r=e)}),a=t.safe(()=>{const{innerWidth:u,innerHeight:l}=window;(u!==s||l!==n)&&(s=u,n=l,t.send(Hc(s,n)))}),c=document.hidden===void 0?Function.prototype:t.safe(()=>t.send(uu(document.hidden)));t.attachStartCallback(()=>{e=null,i=vs(),s=n=-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 Oa(t){return Nn(t)&&!!t.adoptedStyleSheets}let id=15;function Ma(){return id++}const Bn=new Map;function rd(t){if(t===null||!Oa(document))return;const e=new Map,s=new Map,n=o=>setTimeout(()=>{let a=t.nodes.getID(o);if(o===document&&(a=0),a===void 0)return;let c=s.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=Ma(),e.set(h,d)),c.includes(d)||t.send(Xo(d,a)),f){const p=h.cssRules;for(let m=0;m<p.length;m++)t.send(Mi(d,p[m].cssText,m,t.getBaseHref()))}u.push(d)}if(Symbol.iterator in c)for(const h of c)u.includes(h)||t.send(gu(h,a));s.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 n(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(Go(h,u,t.getBaseHref())),l})},o.CSSStyleSheet.prototype.replaceSync=function(u){const l=e.get(this);return l&&t.send(Go(l,u,t.getBaseHref())),c.call(this,u)}};r(window),t.observer.attachContextCallback(t.safe(r)),t.attachStopCallback(()=>{e.clear(),s.clear()}),t.attachStartCallback(()=>{n(document)}),t.nodes.attachNodeCallback(o=>{Oa(o)&&n(o)})}function od(t){if(t===null)return;if(!window.CSSStyleSheet){t.send(du("no_stylesheet_prototype_in_window",""));return}const e=t.safe((i,r,o)=>{const a=Bn.get(i);a&&(typeof o=="string"?t.send(Mi(a,o,r,t.getBaseHref())):t.send(Ko(a,r)))}),s=t.safe(i=>{let r=i;for(;r.parentRule;)r=r.parentRule;const o=r.parentStyleSheet;if(!o){t.debug.warn("No parent StyleSheet found for",r,i);return}const a=Bn.get(o);if(!a){t.debug.warn("No sheedID found for",o,Bn);return}const c=r.cssText,u=o.cssRules,l=Array.from(u).indexOf(r);l>=0?(t.send(Mi(a,c,l,t.getBaseHref())),t.send(Ko(a,l+1))):t.debug.warn("Rule index not found in",o,r)}),n=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 s(this),h},i.CSSGroupingRule.prototype.deleteRule=function(u=0){const l=c.call(this,u);return s(this),l}});n(window),t.observer.attachContextCallback(n),t.nodes.attachNodeCallback(i=>{if(!he(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=Ma();Bn.set(o,a),t.send(Xo(a,r));const c=o.cssRules;for(let u=0;u<c.length;u++)e(o,u,c[u].cssText)})}function ad(t){function e(n){const i=t.nodes.getID(n);i!==void 0&&t.send(Vo(i))}let s=!1;t.nodes.attachNodeCallback(n=>{he(n,"body")&&(t.nodes.attachNodeListener(n,"focus",i=>{la(i.target)&&(e(i.target),s=!1)}),t.nodes.attachNodeListener(n,"blur",i=>{i.relatedTarget===null&&(s=!0,setTimeout(()=>{s&&t.send(Vo(-1))},0))}))}),t.attachStartCallback(()=>{let n=document.activeElement;for(;n&&he(n,"iframe")&&n.contentDocument;)n=n.contentDocument.activeElement;n&&n!==n.ownerDocument.body&&e(n)},!0)}function ld(t){if(!window.FontFace)return;const e=new Map,s=n=>{class i extends n.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(n.document)||[];u.push(c),e.set(n.document,u);const l=n===window?0:t.nodes.getID(n.document);if(l===void 0)return;t.active()&&t.send(Ho(l,...c))}super(...o)}}n.FontFace=i};t.observer.attachContextCallback(s),s(window),t.nodes.attachNodeCallback(t.safe(n=>{if(!Cn(n))return;const i=e.get(n);if(!i)return;const r=n.defaultView===window?0:t.nodes.getID(n);r!==void 0&&i.forEach(o=>{t.send(Ho(r,...o))})}))}function cd(t,e,s,n,i){t.debug.log("Openreplay: attaching axios spy to instance",e);function r(d){t.debug.log("Openreplay: capturing axios response data",d);const{headers:f,data:p,method:m,url:_,baseURL:I}=d.config,{data:T,headers:y,status:g,response:v}=d,{data:E,headers:C,status:S}=v||{},k=s.ignoreHeaders,A=Array.isArray(k)?N=>k.includes(N):()=>k;function z(N,V){A(V[0])||(N[V[0]]=V[1])}let F={},G={};f.toJSON?F=f.toJSON():f instanceof Headers?f.forEach((N,V)=>z(F,[V,N])):Array.isArray(f)?f.forEach(N=>z(F,N)):typeof f=="object"&&Object.entries(f).forEach(N=>z(F,N));const j=C||y;j.toJSON?G=j.toJSON():j instanceof Headers?j.forEach((N,V)=>z(G,[V,N])):Array.isArray(j)?j.forEach(N=>z(G,N)):typeof j=="object"&&Object.entries(j).forEach(([N,V])=>{A(N)||(G[N]=V)});const x=n({url:_,method:m||"",status:g||S||0,request:{headers:F,body:p},response:{headers:G,body:E||T}});if(!x){t.debug.log("Openreplay: empty request/response info, skipping");return}const D=d.config.__openreplay_timing,O=performance.now()-D;t.debug.log("Openreplay: final req object",x),t.send(Tn("xhr",String(m),String(x.url),i(x.request),i(x.response),x.status,D+vs(),O,0))}function o(d){if(t.debug.log("Openreplay: capturing API request",d),d.__openreplay_timing=performance.now(),s.sessionTokenHeader){const f=typeof s.sessionTokenHeader=="string"?s.sessionTokenHeader:"X-OpenReplay-Session-Token",p=t.getSessionToken();p&&d.headers.set(f,p)}return d}function a(d){return s.failuresOnly||r(d),d}function c(d){return t.debug.log("Openreplay: capturing API request error",d),ud(d)&&d.response?r(d.response):d instanceof Error&&t.send(On(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,m;(f=(d=e.interceptors.request).eject)==null||f.call(d,l),(m=(p=e.interceptors.response).eject)==null||m.call(p,h)})}function ud(t){return hd(t)&&t.isAxiosError===!0}function hd(t){return t!==null&&typeof t=="object"}class $i{constructor(e=[],s,n){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header={},this.responseType="",this.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:s}=this.writeHeaders(),n={headers:e,body:this.method==="GET"?JSON.stringify(this.getData):this.requestData},i={headers:s,body:this.response},r=this.sanitize({url:this.url,method:this.method,status:this.status,request:n,response:i});if(!r)return 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(([n,i])=>{this.isHeaderIgnored(n)||(e[n]=i)}),this.setSessionTokenHeader((n,i)=>{e[n]=i});const s={};return Object.entries(this.header).forEach(([n,i])=>{this.isHeaderIgnored(n)||(s[n]=i)}),{reqHs:e,resHs:s}}isHeaderIgnored(e){return Array.isArray(this.ignoredHeaders)?this.ignoredHeaders.map(s=>s.toLowerCase()).includes(e.toLowerCase()):this.ignoredHeaders}}const Gs=(t,e)=>{let s="";switch(t){case"":case"text":case"json":typeof e=="string"?s=e:tr(e)||Array.isArray(e)?s=JSON.stringify(e):typeof e<"u"&&(s=Object.prototype.toString.call(e));break;case"blob":case"document":case"arraybuffer":default:typeof e<"u"&&(s=Object.prototype.toString.call(e));break}return s},er=t=>{if(!t)return null;let e;if(typeof t=="string"){(t[0]==="{"||t[0]==="[")&&(e=t);const s=t.split("&");s.length===1?e=t:e=s.join(",")}else if(fd(t)){const s=[];for(const[n,i]of t)s.push(`${n}=${typeof i=="string"?i:"[object Object]"}`);e=s.join(",")}else t instanceof Blob||t instanceof ReadableStream||t instanceof ArrayBuffer?e="byte data":tr(t)?e=t:e=`can't parse body ${typeof t}`;return e},dd=(t,e={})=>{tr(e)||(e={});let s=t?t.split("?"):[];if(s.shift(),s.length>0){s=s.join("?").split("&");for(const n of s){const i=n.split("=");try{e[i[0]]=decodeURIComponent(i[1])}catch{e[i[0]]=i[1]}}}return e};function tr(t){return t!==null&&typeof t=="object"}function fd(t){return t==null||ArrayBuffer.isView(t)?!1:typeof Symbol<"u"&&typeof t[Symbol.iterator]=="function"}function Fn(t){return t<=0?"":t>=1e3*1e3?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":`${t}B`}const sr=t=>(t.startsWith("//")&&(t=`${new URL(window.location.href).protocol}${t}`),t.startsWith("http")?new URL(t):new URL(t,window.location.href)),pd=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 gd{constructor(e,s,n,i,r){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.sendMessage=i,this.isServiceUrl=r}apply(e,s,n){const i=n[0],r=n[1],o=new $i(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);if(this.isServiceUrl(i))return e.apply(s,n);const a=sr(i);if(o.method="POST",o.url=i,o.name=(a.pathname.split("/").pop()||"")+a.search,o.requestType="beacon",o.requestHeader={"Content-Type":pd(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=er(r),o.startTime||(o.startTime=performance.now());const c=e.apply(s,n);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 md{static create(e,s,n,i,r,o){if(e)return new Proxy(e,new gd(s,n,i,r,o))}}var nt;(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"})(nt||(nt={}));class vd{constructor(e,s){this.resp=e,this.item=s,this.mockReader()}set(e,s,n){return Reflect.set(e,s,n)}get(e,s){const n=Reflect.get(e,s);switch(s){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return()=>(this.item.responseType=s.toLowerCase(),n.apply(e).then(i=>(this.item.response=Gs(this.item.responseType,i),i)))}return typeof n=="function"?n.bind(e):n}mockReader(){let e;if(!this.resp.body||typeof this.resp.body.getReader!="function")return;const s=this.resp.body.getReader;this.resp.body.getReader=()=>{const n=s.apply(this.resp.body);if(this.item.readyState===nt.DONE)return n;const i=n.read,r=n.cancel;return this.item.responseType="arraybuffer",n.read=()=>i.apply(n).then(o=>{if(!e)e=new Uint8Array(o.value);else{const 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=Fn(this.item.responseSize),o.done&&(this.item.response=Gs(this.item.responseType,e)),o}),n.cancel=(...o)=>(this.item.cancelState=2,this.item.statusText="Cancel",this.item.endTime=performance.now(),this.item.duration=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.response=Gs(this.item.responseType,e),r.apply(n,o)),n}}}class bd{constructor(e,s,n,i,r,o){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.sendMessage=i,this.isServiceUrl=r,this.tokenUrlMatcher=o}apply(e,s,n){const i=n[0],r=n[1];if(!i||typeof i!="string"&&!(i!=null&&i.url)||(i instanceof URL||typeof i=="string"?this.isServiceUrl(String(i)):this.isServiceUrl(String(i.url))))return e.apply(window,n);const a=new $i(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(n[1]===void 0&&n[0]instanceof Request)return n[0].headers.append(c,u);n[1]||(n[1]={}),n[1].headers===void 0&&(n[1]=Object.assign(Object.assign({},n[1]),{headers:{}})),n[1].headers instanceof Headers?n[1].headers.append(c,u):Array.isArray(n[1].headers)?n[1].headers.push([c,u]):n[1].headers[c]=u}}),e.apply(window,n).then(this.afterFetch(a)).catch(c=>{throw a.endTime=performance.now(),a.duration=a.endTime-(a.startTime||a.endTime),c})}beforeFetch(e,s,n){let i,r="GET",o={};if(typeof s=="string"?(r=(n==null?void 0:n.method)||"GET",i=sr(s),o=(n==null?void 0:n.headers)||{}):(r=s.method||"GET",i=sr(s.url),o=s.headers),e.method=r,e.requestType="fetch",e.requestHeader=o,e.url=i.toString(),e.name=(i.pathname.split("/").pop()||"")+i.search,e.status=0,e.statusText="Pending",e.readyState=1,e.startTime||(e.startTime=performance.now()),Object.prototype.toString.call(o)==="[object Headers]"){e.requestHeader={};for(const[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}n!=null&&n.body&&(e.requestData=er(n.body))}afterFetch(e){return s=>{e.endTime=performance.now(),e.duration=e.endTime-(e.startTime||e.endTime),e.status=s.status,e.statusText=String(s.status);let n=!1;e.header={};for(const[i,r]of s.headers)e.header[i]=r,n=r.toLowerCase().indexOf("chunked")>-1?!0:n;return n?e.readyState=3:(e.readyState=4,this.handleResponseBody(s.clone(),e).then(i=>{e.responseSize=typeof i=="string"?i.length:i.byteLength,e.responseSizeText=Fn(e.responseSize),e.response=Gs(e.responseType,i);const r=e.getMessage();r&&this.sendMessage(r)}).catch(i=>{if(i.name!=="AbortError")throw i})),new Proxy(s,new vd(s,e))}}handleResponseBody(e,s){const n=e.headers.get("content-type");return n&&n.includes("application/json")?(s.responseType="json",e.text()):n&&(n.includes("text/html")||n.includes("text/plain"))?(s.responseType="text",e.text()):(s.responseType="arraybuffer",e.arrayBuffer())}}class yd{static create(e,s,n,i,r,o){return new Proxy(fetch,new bd(e,s,n,i,r,o))}}class wd{constructor(e,s,n,i,r,o,a){this.ignoredHeaders=s,this.setSessionTokenHeader=n,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 $i(s,n,i),this.item.requestType="xhr"}get(e,s){switch(s){case"open":return this.getOpen(e);case"send":return this.setSessionTokenHeader((i,r)=>{this.tokenUrlMatcher!==void 0&&!this.tokenUrlMatcher(this.item.url)||e.setRequestHeader(i,r)}),this.getSend(e);case"setRequestHeader":return this.getSetRequestHeader(e);default:const n=Reflect.get(e,s);return typeof n=="function"?n.bind(e):n}}set(e,s,n){switch(s){case"onreadystatechange":return this.setOnReadyStateChange(e,s,n);case"onabort":return this.setOnAbort(e,s,n);case"ontimeout":return this.setOnTimeout(e,s,n)}return Reflect.set(e,s,n)}onReadyStateChange(){if(!(this.item.url&&this.isServiceUrl(this.item.url))&&(this.item.readyState=this.XMLReq.readyState,this.item.responseType=this.XMLReq.responseType,this.item.endTime=performance.now(),this.item.duration=this.item.endTime-this.item.startTime,this.updateItemByReadyState(),setTimeout(()=>{this.item.response=Gs(this.item.responseType,this.item.response)},0),this.XMLReq.readyState===nt.DONE)){const e=this.item.getMessage();e&&this.sendMessage(e)}}onAbort(){this.item.cancelState=1,this.item.statusText="Abort";const e=this.item.getMessage();e&&this.sendMessage(e)}onTimeout(){this.item.cancelState=3,this.item.statusText="Timeout";const e=this.item.getMessage();e&&this.sendMessage(e)}getOpen(e){const s=Reflect.get(e,"open");return(...n)=>{var i,r,o;const a=n[0],c=n[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=dd(this.item.url,{}),s.apply(e,n)}}getSend(e){const s=Reflect.get(e,"send");return(...n)=>{const i=n[0];return this.item.requestData=er(i),s.apply(e,n)}}getSetRequestHeader(e){const s=Reflect.get(e,"setRequestHeader");return(...n)=>(this.item.requestHeader||(this.item.requestHeader={}),this.item.requestHeader[n[0]]=n[1],s.apply(e,n))}setOnReadyStateChange(e,s,n){return Reflect.set(e,s,(...i)=>{this.onReadyStateChange(),n==null||n.apply(e,i)})}setOnAbort(e,s,n){return Reflect.set(e,s,(...i)=>{this.onAbort(),n.apply(e,i)})}setOnTimeout(e,s,n){return Reflect.set(e,s,(...i)=>{this.onTimeout(),n.apply(e,i)})}updateItemByReadyState(){switch(this.XMLReq.readyState){case nt.UNSENT:case nt.OPENED:this.item.status=nt.UNSENT,this.item.statusText="Pending",this.item.startTime||(this.item.startTime=performance.now());break;case nt.HEADERS_RECEIVED:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};const e=this.XMLReq.getAllResponseHeaders()||"",s=e.split(`
|
|
19
|
-
`);for(let n=0;n<s.length;n++){const i=s[n];if(!i)continue;const r=i.split(": "),o=r[0];this.item.header[o]=r.slice(1).join(": ")}break;case nt.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=Fn(this.item.responseSize));break;case nt.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=Fn(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown";break}}}class Sd{static create(e,s,n,i,r,o){return new Proxy(XMLHttpRequest,{construct(a){const c=new a;return new Proxy(c,new wd(c,e,s,n,i,r,o))}})}}const Aa=t=>{const e=`Openreplay: Can't find ${t} in global context.`;console.warn(e)};function _d(t,e,s,n,i,r,o={xhr:!0,fetch:!0,beacon:!0},a){var c;if(t&&(o.xhr&&(t.XMLHttpRequest?t.XMLHttpRequest=Sd.create(e,s,n,i,r,a):Aa("XMLHttpRequest")),o.fetch&&(t.fetch?t.fetch=yd.create(e,s,n,i,r,a):Aa("fetch")),o.beacon&&!((c=t.navigator)===null||c===void 0)&&c.sendBeacon)){const u=t.navigator.sendBeacon;t.navigator.sendBeacon=md.create(u,e,s,n,i,r)}}function nr(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function Pa(t){return typeof t=="string"?t.toUpperCase():"GET"}function kd(t,e={}){const s=Object.assign({failuresOnly:!1,ignoreHeaders:["cookie","set-cookie","authorization"],capturePayload:!1,sessionTokenHeader:!1,captureInIframes:!0,axiosInstances:void 0,useProxy:!0},e);s.useProxy===!1&&t.debug.warn("Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true");const n=s.ignoreHeaders,i=Array.isArray(n)?l=>n.includes(l):()=>n,r=s.sessionTokenHeader===!0?"X-OpenReplay-SessionToken":s.sessionTokenHeader;function o(l){if(r){const h=t.getSessionToken();h&&t.safe(l)(r,h)}}function a(l){if(s.capturePayload||(delete l.request.body,delete l.response.body),s.sanitizer){const h=l.response.body;if(typeof h=="string")try{l.response.body=JSON.parse(h)}catch{}return s.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(s.useProxy)return _d(l,s.ignoreHeaders,o,a,y=>{t.send(Tn(y.requestType,y.method,y.url,y.request,y.response,y.status,y.startTime+vs(),y.duration,y.responseSize))},y=>t.isServiceURL(y),{xhr:!0,fetch:!0,beacon:!0},s.tokenUrlMatcher);const h=l.fetch.bind(l),d=(y,g={})=>{if(!(typeof y=="string"||y instanceof URL)||t.isServiceURL(String(y)))return h(y,g);o(function(E,C){g.headers===void 0&&(g.headers={}),g.headers instanceof Headers?g.headers.append(E,C):Array.isArray(g.headers)?g.headers.push([E,C]):g.headers[E]=C});const v=performance.now();return h(y,g).then(E=>{const C=performance.now()-v;if(s.failuresOnly&&E.status<400)return E;const S=E.clone();return S.text().then(k=>{const A={},z={};if(n!==!0){const j=([x,D])=>{i(x)||(A[x]=D)};g.headers instanceof Headers?g.headers.forEach((x,D)=>j([D,x])):Array.isArray(g.headers)?g.headers.forEach(j):typeof g.headers=="object"&&Object.entries(g.headers).forEach(j),S.headers.forEach((x,D)=>{i(D)||(z[D]=x)})}const F=Pa(g.method),G=a({url:String(y),method:F,status:S.status,request:{headers:A,body:g.body||null},response:{headers:z,body:k}});G&&t.send(Tn("fetch",F,String(G.url),c(G.request),c(G.response),S.status,v+vs(),C,0))}).catch(k=>t.debug.error("Could not process Fetch response:",k)),E})};l.fetch=d;const f=l.XMLHttpRequest.prototype.open,p=l.XMLHttpRequest.prototype.setRequestHeader,m=l.XMLHttpRequest.prototype.send;function _(y,g){const v=this;o((C,S)=>v.setRequestHeader(C,S));let E=0;return v.addEventListener("loadstart",C=>{E=C.timeStamp}),v.addEventListener("load",t.safe(C=>{const{headers:S,body:k}=nr(v),A=E>0?C.timeStamp-E:0,F=(v.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),G={};F.forEach(function(D){const O=D.split(": "),N=O.shift();i(N)||(G[N]=O.join(": "))});const j=Pa(y),x=a({url:String(g),method:j,status:v.status,request:{headers:S,body:k||null},response:{headers:G,body:v.response}});x&&t.send(Tn("xhr",j,String(x.url),c(x.request),c(x.response),v.status,E+vs(),A,0))})),f.apply(this,arguments)}function I(y){const g=nr(this);return g.body=y,m.apply(this,arguments)}function T(y,g){if(!i(y)){const v=nr(this);v.headers[y]=g}return p.apply(this,arguments)}s.axiosInstances||(l.XMLHttpRequest.prototype.open=_,l.XMLHttpRequest.prototype.send=I,l.XMLHttpRequest.prototype.setRequestHeader=T)};u(window),s.axiosInstances&&s.axiosInstances.forEach(l=>{cd(t,l,s,a,c)}),s.captureInIframes&&t.observer.attachContextCallback(t.safe(u))}function Td(t){t.attachEventListener(document,"selectionchange",()=>{const e=document.getSelection();if(e!==null&&!e.isCollapsed){const s=t.nodes.getID(e.anchorNode),n=t.nodes.getID(e.focusNode),i=e.toString().replace(/\s+/g," ");s&&n&&t.send(Yo(s,n,i))}else t.send(Yo(-1,-1,""))})}function xd(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(xn(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const zn="/installation/javascript-sdk";function Ed(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${kn}${zn}`),!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 ${kn}${zn} for more information.`),!1;t.projectKey=t.projectID.toString(),Et("`projectID` option","`projectKey` option",zn)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&Et("`sessionToken` option","`sessionHash` start() option","/"),!0}const Id=()=>{try{return!!window.top}catch{return!1}};class Cd{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||fa;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=On(u,[],l);this.app.send(h)}else if(u instanceof ErrorEvent||"PromiseRejectionEvent"in window&&u instanceof PromiseRejectionEvent){const h=ya(u,void 0,l);h!=null&&this.app.send(h)}}},this.crossdomainMode=!!(Bo()&&((a=e.crossdomain)!=null&&a.enabled)),!tt||!Ed(e)){console.error("OpenReplay: tracker called in a non-browser environment or with invalid options");return}if(window.__OPENREPLAY__||!this.crossdomainMode&&Bo()&&Id()&&((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 s=this.checkDoNotTrack(),n=[],i=["Map","Set","MutationObserver","performance","timing","startsWith","Blob","Worker"];if(s)n.push("doNotTrack");else for(const u of i)if(u==="timing"){if("performance"in window&&!(u in performance)){n.push(u);break}}else if(u==="startsWith"){if(!(u in String.prototype)){n.push(u);break}}else if(!(u in window)){n.push(u);break}if(n.length>0){const u=n.join(",");console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${u}`),this.signalStartIssue("missing_api",n);return}const r=new fh(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(nd(r),ph(r),_u(r,e),xd(r)),Zh(r,e.mouse),sd(r,this.crossdomainMode),od(r),rd(r),bh(r,e),Oh(r,e),Ph(r),jh(r,e),td(r,e),ad(r),ld(r),kd(r,e.network),Td(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 s;(s=this.app)==null||s.featureFlags.onFlagsLoad(e)}clearPersistFlags(){var e;(e=this.app)==null||e.featureFlags.clearPersistFlags()}reloadFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.reloadFlags()}getFeatureFlag(e){var s;return(s=this.app)==null?void 0:s.featureFlags.getFeatureFlag(e)}getAllFeatureFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.flags}use(e){return e(this.app,this.options)}isActive(){return this.app===null?!1:this.app.active()}trackWs(e){if(this.app!==null)return this.app.trackWs(e)}start(e){return this.browserEnvCheck()?this.app===null?Promise.reject("Browser doesn't support required api, or doNotTrack is active."):this.app.start(e):Promise.reject("Trying to start not in browser.")}browserEnvCheck(){return tt?!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 ${kn}${zn}`),!1)}coldStart(e,s){if(this.browserEnvCheck()){if(this.app===null)return Promise.reject("Tracker not initialized");this.app.coldStart(e,s)}else return Promise.reject("Trying to start not in browser.")}startOfflineRecording(e,s){return this.browserEnvCheck()?this.app===null?Promise.reject("Tracker not initialized"):this.app.offlineRecording(e,s):Promise.reject("Trying to start not in browser.")}uploadOfflineRecording(){if(this.app!==null)return this.app.uploadOfflineRecording()}stop(){if(this.app!==null)return this.app.stop(),this.app.session.getSessionHash()}forceFlushBatch(){this.app!==null&&this.app.forceFlushBatch()}getSessionToken(){return this.app===null?null:this.app.getSessionToken()}getSessionInfo(){return this.app===null?null:this.app.session.getInfo()}getSessionID(){return this.app===null?null:this.app.getSessionID()}getTabId(){return this.app===null?null:this.app.getTabId()}getUxId(){return this.app===null?null:this.app.getUxtId()}sessionID(){return Et("'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){Et("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send(au(e))}userAnonymousID(e){Et("'userAnonymousID' method","'setUserAnonymousID' method","/"),this.setUserAnonymousID(e)}setMetadata(e,s){typeof e=="string"&&typeof s=="string"&&this.app!==null&&this.app.session.setMetadata(e,s)}metadata(e,s){Et("'metadata' method","'setMetadata' method","/"),this.setMetadata(e,s)}event(e,s=null,n=!1){if(typeof e=="string"&&this.app!==null){if(n)return this.issue(e,s);try{s=JSON.stringify(s)}catch{return}this.app.send(ru(e,s))}}issue(e,s=null){if(typeof e=="string"&&this.app!==null){try{s=JSON.stringify(s)}catch{return}this.app.send(fu(e,s))}}}function Nd(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}}function Dd(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)}}class Rd{constructor(e){K(this,Is,"https://wineater-backend.vercel.app/");K(this,Zt);B(this,Zt,e)}async getInstantRecommendations(){try{const e=await fetch(`${b(this,Is)}dish/recommendations/instant`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,Zt)}`}}),s=await e.json();if(!e.ok)throw new Error(`API call failed with status ${e.status}: ${s.message||"No additional error information"}`);return s.map(Nd)}catch(e){throw new Error(`Error in getInstantRecommendations: ${e.message}`)}}async getWineRecommendationsSearch(e){try{const s=await fetch(`${b(this,Is)}dish/recommendations/search`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,Zt)}`},body:JSON.stringify({text:e})}),n=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${n.message||"No additional error information"}`);return n.map(Dd)}catch(s){throw new Error(`Error in getWineRecommendations: ${s.message}`)}}async getStoreConfig(){try{const e=await fetch(`${b(this,Is)}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b(this,Zt)}`}});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}}}Is=new WeakMap,Zt=new WeakMap;const Od=((Fa=window==null?void 0:window.wineaterData)==null?void 0:Fa.CLIENT_TOKEN)||"HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG",ir=new Rd(Od),it={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",FILTER_APPLIED:"filter_applied",LANGUAGE_CHANGED:"language_changed",ERROR_OCCURRED:"error_occurred",MOBILE_VIEW_ACTIVATED:"mobile_view_activated"},Md={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",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",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",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",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",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:"Докладніше",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:"Подробнее",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:"Толығырақ",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"}},Ad={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 Pd(t,e,s="en"){try{return new Intl.NumberFormat(Ad[s]||"en-US",{style:"currency",currency:e,currencyDisplay:"narrowSymbol"}).format(t)}catch{return t.toString()}}function _e({key:t,lang:e}){const s=Md;if(s[e]&&s[e][t])return s[e][t];throw new Error(`Translation for key "${t}" not found in language "${e}".`)}async function Ld({sourceLang:t,targetLang:e,texts:s,apiKey:n}){var u,l,h,d;if(!n||!t||!e||t===e)return s;const i="https://api.openai.com/v1/chat/completions",r={"Content-Type":"application/json",Authorization:`Bearer ${n}`},o=Object.entries(s).map(([f,p])=>({key:f,text:p})),a=`
|
|
15
|
+
`).length?Mh(t):t.stack?Lh(t):Ph(t)}function Mh(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 Yn(i)}function Ph(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 Yn(i)}function Lh(t,e){return Yn(t.stack.split(`
|
|
18
|
+
`).filter(s=>!!s.match(Eh)&&!s.match(/^Error created at/))).map(s=>{const i=s.split("@"),r=$i(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 Fh(t){return t.map(e=>({functionName:e.function,args:e.args,fileName:e.file,lineNumber:e.line,columnNumber:e.col,source:e.raw}))}function Bh(t,e){return Fh(Ch(t))}function ka(t){return[{columnNumber:t.colno,lineNumber:t.lineno,fileName:t.filename,functionName:"",source:""}]}function Fs(t,e,n={}){let s=e;try{s=Bh(t)}catch{}return Wi(t.name,t.message,JSON.stringify(s),JSON.stringify(n))}function Ta(t,e=window,n={}){if(t instanceof ErrorEvent){if(t.error instanceof Error)return Fs(t.error,ka(t),n);{let[s,i]=t.message.split(":");return i||(s="Error",i=t.message),Wi(s,i,JSON.stringify(ka(t)),JSON.stringify(n))}}else if("PromiseRejectionEvent"in e&&t instanceof e.PromiseRejectionEvent){if(t.reason instanceof Error)return Fs(t.reason,[],n);{let s;try{s=JSON.stringify(t.reason)}catch{s=String(t.reason)}return Wi("Unhandled Promise Rejection",s,"[]",JSON.stringify(n))}}return null}function Wh(t,e){const n=Object.assign({captureExceptions:!0},e);function s(i){function r(o){const a=Ta(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 xa(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 jh(t){return qc&&(t.startsWith("data:image/svg+xml")||t.match(/.svg$|/i))}const zh="https://static.openreplay.com/tracker/placeholder.jpeg";function Uh(t){function e(a,c){t.attributeSender.sendSetAttribute(a,"src",zh);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=>xa(h)).join(", ");t.attributeSender.sendSetAttribute(a,"srcset",l)},s=function(a,c){c.src.length>Vc&&e(a,c),t.send(Li(a,"src",c.src,t.getBaseHref()))},i=t.safe(function(a){const c=xa(a.src||"");Bo(c)&&t.send(na(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&&!jh(a.src)?i(a):t.sanitizer.isHidden(c)||t.sanitizer.isObscured(c)?e(c,a):(s(c,a),n(c,a)))}),o=Ho(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=>{ve(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 Hh=["text","password","email","search","number","range","date","tel","time"];function qh(t){return ve(t,"textarea")?!0:ve(t,"input")?Hh.includes(t.type):!1}function Vh(t){if(!ve(t,"input"))return!1;const e=t.type;return e==="checkbox"||e==="radio"}const Gh=st&&"labels"in HTMLInputElement.prototype?t=>{let e=t;for(;(e=e.parentNode)!==null;)if(ve(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(ve(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 Ea(t){let e=Mi(t);if(e===null){const n=Gh(t);e=n&&n.innerText||t.placeholder||t.name||t.id||t.className||t.type}return Fo(e).slice(0,100)}const En={Plain:0,Obscured:1,Hidden:2};function Kh(t,e){const n=Object.assign({obscureInputNumbers:!0,obscureInputEmails:!0,defaultInputMode:En.Obscured,obscureInputDates:!1},e);function s(l,h){let d=h.value,f=n.defaultInputMode;h.type==="password"||t.sanitizer.isHidden(l)?f=En.Hidden:(t.sanitizer.isObscured(l)||f===En.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=En.Obscured);let p=0;switch(f){case En.Hidden:p=-1,d="";break;case En.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(ou(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(au(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:m}=s(l,h),E=Ea(h);t.send(Tu(l,p,m!==0,E,d,f))}t.nodes.attachNodeCallback(t.safe(l=>{const h=t.nodes.getID(l);if(h!==void 0){if(ve(l,"select")&&(i(h,l),t.nodes.attachNodeListener(l,"change",()=>i(h,l))),qh(l)){a(h,l);let d=0,f=0,p=0;const m=()=>{d=Je()},E=()=>{f===0&&d!==0&&(f=Je()-d)},_=()=>{d!==0&&(p=Je()-d),u(h,l,f,p),f=0,p=0,d=0};t.nodes.attachNodeListener(l,"focus",m),t.nodes.attachNodeListener(l,"input",E),t.nodes.attachNodeListener(l,"change",_);return}if(Vh(l)){c(h,l.checked),t.nodes.attachNodeListener(l,"change",()=>c(h,l.checked));return}}}))}let He,er,Ia;function Xh(t,e){if(Ia=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};He={...n,...e},er=Yh(He.root,n);let s=Bs(t,"all",()=>Bs(t,"two",()=>Bs(t,"one",()=>Bs(t,"none"))));if(s){const i=Aa(Ma(s,t));return i.length>0&&(s=i[0]),Ws(s)}else throw new Error("Selector was not found.")}function Yh(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function Bs(t,e,n){let s=null,i=[],r=t,o=0;for(;r;){const a=new Date().getTime()-Ia.getTime();if(He.timeoutMs!==void 0&&a>He.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${a}ms`);let c=zs(Jh(r))||zs(...Qh(r))||zs(...Zh(r))||zs($h(r))||[Da()];const u=ed(r);if(e=="all")u&&(c=c.concat(c.filter(tr).map(l=>js(l,u))));else if(e=="two")c=c.slice(0,1),u&&(c=c.concat(c.filter(tr).map(l=>js(l,u))));else if(e=="one"){const[l]=c=c.slice(0,1);u&&tr(l)&&(c=[js(l,u)])}else e=="none"&&(c=[Da()],u&&(c=[js(c[0],u)]));for(let l of c)l.level=o;if(i.push(c),i.length>=He.seedMinLength&&(s=Ca(i,n),s))break;r=r.parentElement,o++}return s||(s=Ca(i,n)),!s&&n?n():s}function Ca(t,e){const n=Aa(Oa(t));if(n.length>He.threshold)return e?e():null;for(let s of n)if(Ra(s))return s;return null}function Ws(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 Na(t){return t.map(e=>e.penalty).reduce((e,n)=>e+n,0)}function Ra(t){const e=Ws(t);switch(er.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 Jh(t){const e=t.getAttribute("id");return e&&He.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function Qh(t){return Array.from(t.attributes).filter(n=>He.attr(n.name,n.value)).map(n=>({name:`[${CSS.escape(n.name)}="${CSS.escape(n.value)}"]`,penalty:.5}))}function Zh(t){return Array.from(t.classList).filter(He.className).map(n=>({name:"."+CSS.escape(n),penalty:1}))}function $h(t){const e=t.tagName.toLowerCase();return He.tagName(e)?{name:e,penalty:2}:null}function Da(){return{name:"*",penalty:3}}function ed(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 js(t,e){return{name:t.name+`:nth-child(${e})`,penalty:t.penalty+1}}function tr(t){return t.name!=="html"&&!t.name.startsWith("#")}function zs(...t){const e=t.filter(td);return e.length>0?e:null}function td(t){return t!=null}function*Oa(t,e=[]){if(t.length>0)for(let n of t[0])yield*Oa(t.slice(1,t.length),e.concat(n));else yield e}function Aa(t){return[...t].sort((e,n)=>Na(e)-Na(n))}function*Ma(t,e,n={counter:0,visited:new Map}){if(t.length>2&&t.length>He.optimizedMinLength)for(let s=1;s<t.length-1;s++){if(n.counter>He.maxNumberOfTries)return;n.counter+=1;const i=[...t];i.splice(s,1);const r=Ws(i);if(n.visited.has(r))return;Ra(i)&&nd(i,e)&&(yield i,n.visited.set(r,!0),yield*Ma(i,e,n))}}function nd(t,e){return er.querySelector(Ws(t))===e}function sd(t,e,n){return Xh(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 nr(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 Pa(t,e){return t instanceof Element?id(t,e):null}function id(t,e){let n=t;for(;n!==null&&n!==e.documentElement;){if(Xt(n,"masked"))return null;n=n.parentElement}if(Vi(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"||nr(n)||Mi(n)!==null)return n;n=n.parentElement}return t===e.documentElement?null:t}function rd(t,e){const{disableClickmaps:n=!1}=e||{};function s(g){const w=Mi(g);if(w!==null)return w;if(ve(g,"input"))return Ea(g);if(nr(g)){let k="";return g instanceof HTMLElement&&(k=t.sanitizer.getInnerTextSecure(g)),k=k||g.id||g.className,Fo(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 m=.008,E=225;function _(){const g=f/E;if(!l){l=g;return}const w=(g-l)/E;d>4&&w>m&&t.send(xu(Je())),f=0,d=0,l=g}t.attachStartCallback(()=>{p=setInterval(()=>_(),E)}),t.attachStopCallback(()=>{i=-1,r=-1,o=!1,a=null,u={},p&&clearInterval(p)});const x=()=>{o&&(t.send(lu(i,r)),o=!1)},T=(g,w=!1)=>{function k(y,S,A){return u[y]=u[y]||sd(S,g,A)}const I=w?t.attachEventListener.bind(t):t.nodes.attachNodeListener.bind(t.nodes);I(g.documentElement,"mouseover",y=>{const S=Pa(y.target,g);S!==a&&(a=S,c=performance.now())}),I(g,"mousemove",y=>{const[S,A]=t.observer.getDocumentOffset(g);i=y.clientX+S,r=y.clientY+A,o=!0;const j=Math.sign(y.movementX);f+=Math.abs(y.movementX)+Math.abs(y.movementY),j!==h&&(h=j,d++)},!1),I(g,"click",y=>{const S=Pa(y.target,g);if(!y.clientX&&!y.clientY||S===null)return;const A=t.nodes.getID(S);if(A!==void 0){const j=y.pageX,B=y.pageY,X=g.documentElement.scrollWidth,U=g.documentElement.scrollHeight,W=La(j/X),C=La(B/U);x(),t.send(Su(A,a===S?Math.round(performance.now()-c):0,s(S),nr(S)&&!n?k(A,S,e):"",W,C),!0)}a=null})};t.nodes.attachNodeCallback(g=>{As(g)&&T(g)}),T(document,!0),t.ticker.attach(x,(e==null?void 0:e.trackingOffset)||7)}function La(t){return Math.round(t*1e4)}function od(t){const e=[],n=document.getElementsByTagName("*"),s=/url\(("[^"]*"|'[^']*'|[^)]*)\)/i;for(let i=0;i<n.length;i++){const r=n[i];let o="";if(ve(r,"img")&&(o=r.currentSrc||r.src),!o){const p=getComputedStyle(r).getPropertyValue("background-image");if(p){const m=s.exec(p);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 f=(h-u)*(d-l);e.push({time:a,area:f})}return e}function ad(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 ld(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||!Bo(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(na(u.startTime+_n(),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:m,loadEventStart:E,loadEventEnd:_}=performance.timing;t.send(uu(h-l||0,d-l||0,f-l||0,p-l||0,m-l||0,E-l||0,_-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(m=>s[m])),p-u>1e3&&(d=od(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 m=d===null?0:ad(c||a,d),{domContentLoadedEventEnd:E,navigationStart:_}=performance.timing,x=h===null?Math.max(l,c,E-_||0):0;t.send(hu(m,c>u?c:u,x))}})}}function sr(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 cd(t,e){let n=!1;const s=new Map;function i(a){fa(a)&&(St(a)&&s.set(a,[a.scrollLeft,a.scrollTop]),As(a)&&s.set(a,sr(a)))}const r=t.safe(()=>{e||t.send(Zc(...sr(document)))}),o=t.safe((a,c)=>{const u=t.nodes.getID(c);u!==void 0&&t.send(ru(u,a[0],a[1]))});t.attachStartCallback(r),t.attachStopCallback(()=>{n=!1,s.clear()}),t.nodes.attachNodeCallback((a,c)=>{c&&(St(a)&&a.scrollLeft+a.scrollTop>0?s.set(a,[a.scrollLeft,a.scrollTop]):As(a)&&s.set(a,sr(a))),Ms(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 ud(t){let e,n,s,i,r=document.referrer;const o=t.safe(()=>{const{URL:u}=document;u!==e&&(e=u,t.send(Cu(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(Qc(n,s)))}),c=document.hidden===void 0?Function.prototype:t.safe(()=>t.send(vu(document.hidden)));t.attachStartCallback(()=>{e=null,i=_n(),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 Fa(t){return Ms(t)&&!!t.adoptedStyleSheets}let hd=15;function Ba(){return hd++}const Us=new Map;function dd(t){if(t===null||!Fa(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=Ba(),e.set(h,d)),c.includes(d)||t.send($o(d,a)),f){const p=h.cssRules;for(let m=0;m<p.length;m++)t.send(Bi(d,p[m].cssText,m,t.getBaseHref()))}u.push(d)}if(Symbol.iterator in c)for(const h of c)u.includes(h)||t.send(_u(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(Qo(h,u,t.getBaseHref())),l})},o.CSSStyleSheet.prototype.replaceSync=function(u){const l=e.get(this);return l&&t.send(Qo(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=>{Fa(o)&&s(o)})}function fd(t){if(t===null)return;if(!window.CSSStyleSheet){t.send(wu("no_stylesheet_prototype_in_window",""));return}const e=t.safe((i,r,o)=>{const a=Us.get(i);a&&(typeof o=="string"?t.send(Bi(a,o,r,t.getBaseHref())):t.send(Zo(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=Us.get(o);if(!a){t.debug.warn("No sheedID found for",o,Us);return}const c=r.cssText,u=o.cssRules,l=Array.from(u).indexOf(r);l>=0?(t.send(Bi(a,c,l,t.getBaseHref())),t.send(Zo(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(!ve(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=Ba();Us.set(o,a),t.send($o(a,r));const c=o.cssRules;for(let u=0;u<c.length;u++)e(o,u,c[u].cssText)})}function pd(t){function e(s){const i=t.nodes.getID(s);i!==void 0&&t.send(Jo(i))}let n=!1;t.nodes.attachNodeCallback(s=>{ve(s,"body")&&(t.nodes.attachNodeListener(s,"focus",i=>{fa(i.target)&&(e(i.target),n=!1)}),t.nodes.attachNodeListener(s,"blur",i=>{i.relatedTarget===null&&(n=!0,setTimeout(()=>{n&&t.send(Jo(-1))},0))}))}),t.attachStartCallback(()=>{let s=document.activeElement;for(;s&&ve(s,"iframe")&&s.contentDocument;)s=s.contentDocument.activeElement;s&&s!==s.ownerDocument.body&&e(s)},!0)}function gd(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(Yo(l,...c))}super(...o)}}s.FontFace=i};t.observer.attachContextCallback(n),n(window),t.nodes.attachNodeCallback(t.safe(s=>{if(!As(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(Yo(r,...o))})}))}function md(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:m,url:E,baseURL:_}=d.config,{data:x,headers:T,status:g,response:w}=d,{data:k,headers:I,status:y}=w||{},S=n.ignoreHeaders,A=Array.isArray(S)?N=>S.includes(N):()=>S;function j(N,M){A(M[0])||(N[M[0]]=M[1])}let B={},X={};f.toJSON?B=f.toJSON():f instanceof Headers?f.forEach((N,M)=>j(B,[M,N])):Array.isArray(f)?f.forEach(N=>j(B,N)):typeof f=="object"&&Object.entries(f).forEach(N=>j(B,N));const U=I||T;U.toJSON?X=U.toJSON():U instanceof Headers?U.forEach((N,M)=>j(X,[M,N])):Array.isArray(U)?U.forEach(N=>j(X,N)):typeof U=="object"&&Object.entries(U).forEach(([N,M])=>{A(N)||(X[N]=M)});const W=s({url:E,method:m||"",status:g||y||0,request:{headers:B,body:p},response:{headers:X,body:k||x}});if(!W){t.debug.log("Openreplay: empty request/response info, skipping");return}const C=d.config.__openreplay_timing,D=performance.now()-C;t.debug.log("Openreplay: final req object",W),t.send(Ns("xhr",String(m),String(W.url),i(W.request),i(W.response),W.status,C+_n(),D,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),vd(d)&&d.response?r(d.response):d instanceof Error&&t.send(Fs(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,m;(f=(d=e.interceptors.request).eject)==null||f.call(d,l),(m=(p=e.interceptors.response).eject)==null||m.call(p,h)})}function vd(t){return bd(t)&&t.isAxiosError===!0}function bd(t){return t!==null&&typeof t=="object"}class ir{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 Jn=(t,e)=>{let n="";switch(t){case"":case"text":case"json":typeof e=="string"?n=e:or(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},rr=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(yd(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":or(t)?e=t:e=`can't parse body ${typeof t}`;return e},wd=(t,e={})=>{or(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 or(t){return t!==null&&typeof t=="object"}function yd(t){return t==null||ArrayBuffer.isView(t)?!1:typeof Symbol<"u"&&typeof t[Symbol.iterator]=="function"}function Hs(t){return t<=0?"":t>=1e3*1e3?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":`${t}B`}const ar=t=>(t.startsWith("//")&&(t=`${new URL(window.location.href).protocol}${t}`),t.startsWith("http")?new URL(t):new URL(t,window.location.href)),Sd=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 _d{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 ir(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);if(this.isServiceUrl(i))return e.apply(n,s);const a=ar(i);if(o.method="POST",o.url=i,o.name=(a.pathname.split("/").pop()||"")+a.search,o.requestType="beacon",o.requestHeader={"Content-Type":Sd(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=rr(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 kd{static create(e,n,s,i,r,o){if(e)return new Proxy(e,new _d(n,s,i,r,o))}}var rt;(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"})(rt||(rt={}));class Td{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=Jn(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===rt.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=Hs(this.item.responseSize),o.done&&(this.item.response=Jn(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=Jn(this.item.responseType,e),r.apply(s,o)),s}}}class xd{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 ir(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=ar(n),o=(s==null?void 0:s.headers)||{}):(r=n.method||"GET",i=ar(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=rr(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=Hs(e.responseSize),e.response=Jn(e.responseType,i);const r=e.getMessage();r&&this.sendMessage(r)}).catch(i=>{if(i.name!=="AbortError")throw i})),new Proxy(n,new Td(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 Ed{static create(e,n,s,i,r,o){return new Proxy(fetch,new xd(e,n,s,i,r,o))}}class Id{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 ir(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=Jn(this.item.responseType,this.item.response)},0),this.XMLReq.readyState===rt.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=wd(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=rr(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 rt.UNSENT:case rt.OPENED:this.item.status=rt.UNSENT,this.item.statusText="Pending",this.item.startTime||(this.item.startTime=performance.now());break;case rt.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 rt.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=Hs(this.item.responseSize));break;case rt.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=Hs(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown";break}}}class Cd{static create(e,n,s,i,r,o){return new Proxy(XMLHttpRequest,{construct(a){const c=new a;return new Proxy(c,new Id(c,e,n,s,i,r,o))}})}}const Wa=t=>{const e=`Openreplay: Can't find ${t} in global context.`;console.warn(e)};function Nd(t,e,n,s,i,r,o={xhr:!0,fetch:!0,beacon:!0},a){var c;if(t&&(o.xhr&&(t.XMLHttpRequest?t.XMLHttpRequest=Cd.create(e,n,s,i,r,a):Wa("XMLHttpRequest")),o.fetch&&(t.fetch?t.fetch=Ed.create(e,n,s,i,r,a):Wa("fetch")),o.beacon&&!((c=t.navigator)===null||c===void 0)&&c.sendBeacon)){const u=t.navigator.sendBeacon;t.navigator.sendBeacon=kd.create(u,e,n,s,i,r)}}function lr(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function ja(t){return typeof t=="string"?t.toUpperCase():"GET"}function Rd(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 Nd(l,n.ignoreHeaders,o,a,T=>{t.send(Ns(T.requestType,T.method,T.url,T.request,T.response,T.status,T.startTime+_n(),T.duration,T.responseSize))},T=>t.isServiceURL(T),{xhr:!0,fetch:!0,beacon:!0},n.tokenUrlMatcher);const h=l.fetch.bind(l),d=(T,g={})=>{if(!(typeof T=="string"||T instanceof URL)||t.isServiceURL(String(T)))return h(T,g);o(function(k,I){g.headers===void 0&&(g.headers={}),g.headers instanceof Headers?g.headers.append(k,I):Array.isArray(g.headers)?g.headers.push([k,I]):g.headers[k]=I});const w=performance.now();return h(T,g).then(k=>{const I=performance.now()-w;if(n.failuresOnly&&k.status<400)return k;const y=k.clone();return y.text().then(S=>{const A={},j={};if(s!==!0){const U=([W,C])=>{i(W)||(A[W]=C)};g.headers instanceof Headers?g.headers.forEach((W,C)=>U([C,W])):Array.isArray(g.headers)?g.headers.forEach(U):typeof g.headers=="object"&&Object.entries(g.headers).forEach(U),y.headers.forEach((W,C)=>{i(C)||(j[C]=W)})}const B=ja(g.method),X=a({url:String(T),method:B,status:y.status,request:{headers:A,body:g.body||null},response:{headers:j,body:S}});X&&t.send(Ns("fetch",B,String(X.url),c(X.request),c(X.response),y.status,w+_n(),I,0))}).catch(S=>t.debug.error("Could not process Fetch response:",S)),k})};l.fetch=d;const f=l.XMLHttpRequest.prototype.open,p=l.XMLHttpRequest.prototype.setRequestHeader,m=l.XMLHttpRequest.prototype.send;function E(T,g){const w=this;o((I,y)=>w.setRequestHeader(I,y));let k=0;return w.addEventListener("loadstart",I=>{k=I.timeStamp}),w.addEventListener("load",t.safe(I=>{const{headers:y,body:S}=lr(w),A=k>0?I.timeStamp-k:0,B=(w.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),X={};B.forEach(function(C){const D=C.split(": "),N=D.shift();i(N)||(X[N]=D.join(": "))});const U=ja(T),W=a({url:String(g),method:U,status:w.status,request:{headers:y,body:S||null},response:{headers:X,body:w.response}});W&&t.send(Ns("xhr",U,String(W.url),c(W.request),c(W.response),w.status,k+_n(),A,0))})),f.apply(this,arguments)}function _(T){const g=lr(this);return g.body=T,m.apply(this,arguments)}function x(T,g){if(!i(T)){const w=lr(this);w.headers[T]=g}return p.apply(this,arguments)}n.axiosInstances||(l.XMLHttpRequest.prototype.open=E,l.XMLHttpRequest.prototype.send=_,l.XMLHttpRequest.prototype.setRequestHeader=x)};u(window),n.axiosInstances&&n.axiosInstances.forEach(l=>{md(t,l,n,a,c)}),n.captureInIframes&&t.observer.attachContextCallback(t.safe(u))}function Dd(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(ea(n,s,i))}else t.send(ea(-1,-1,""))})}function Od(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(Rs(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const qs="/installation/javascript-sdk";function Ad(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${Cs}${qs}`),!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 ${Cs}${qs} for more information.`),!1;t.projectKey=t.projectID.toString(),At("`projectID` option","`projectKey` option",qs)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&At("`sessionToken` option","`sessionHash` start() option","/"),!0}const Md=()=>{try{return!!window.top}catch{return!1}};class Pd{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||ba;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=Fs(u,[],l);this.app.send(h)}else if(u instanceof ErrorEvent||"PromiseRejectionEvent"in window&&u instanceof PromiseRejectionEvent){const h=Ta(u,void 0,l);h!=null&&this.app.send(h)}}},this.crossdomainMode=!!(Uo()&&((a=e.crossdomain)!=null&&a.enabled)),!st||!Ad(e)){console.error("OpenReplay: tracker called in a non-browser environment or with invalid options");return}if(window.__OPENREPLAY__||!this.crossdomainMode&&Uo()&&Md()&&((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 yh(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(ud(r),Sh(r),Nu(r,e),Od(r)),rd(r,e.mouse),cd(r,this.crossdomainMode),fd(r),dd(r),xh(r,e),Wh(r,e),Uh(r),Kh(r,e),ld(r,e),pd(r),gd(r),Rd(r,e.network),Dd(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 st?!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 ${Cs}${qs}`),!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 At("'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){At("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send(pu(e))}userAnonymousID(e){At("'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){At("'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(du(e,n))}}issue(e,n=null){if(typeof e=="string"&&this.app!==null){try{n=JSON.stringify(n)}catch{return}this.app.send(yu(e,n))}}}function Ld(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}}function Fd(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)}}class Bd{constructor(e){G(this,Dn,"https://wineater-backend.vercel.app/");G(this,sn);L(this,sn,e)}async getInstantRecommendations(){try{const e=await fetch(`${v(this,Dn)}dish/recommendations/instant`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${v(this,sn)}`}}),n=await e.json();if(!e.ok)throw new Error(`API call failed with status ${e.status}: ${n.message||"No additional error information"}`);return n.map(Ld)}catch(e){throw new Error(`Error in getInstantRecommendations: ${e.message}`)}}async getWineRecommendationsSearch(e){try{const n=await fetch(`${v(this,Dn)}dish/recommendations/search`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${v(this,sn)}`},body:JSON.stringify({text: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.map(Fd)}catch(n){throw new Error(`Error in getWineRecommendations: ${n.message}`)}}async getStoreConfig(){try{const e=await fetch(`${v(this,Dn)}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${v(this,sn)}`}});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}}}Dn=new WeakMap,sn=new WeakMap;const Wd=((Ha=window==null?void 0:window.wineaterData)==null?void 0:Ha.CLIENT_TOKEN)||"HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG",cr=new Bd(Wd),ot={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",FILTER_APPLIED:"filter_applied",LANGUAGE_CHANGED:"language_changed",ERROR_OCCURRED:"error_occurred",MOBILE_VIEW_ACTIVATED:"mobile_view_activated"},jd={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",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",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",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",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",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:"Докладніше",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:"Подробнее",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:"Толығырақ",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"}};function zd(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 Ud={0:{logoUrl:null,brandColor:"#7B2BEB"},25:{logoUrl:null,brandColor:"#7B2BEB",buttonUppercase:!0,customCss:`
|
|
20
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
|
|
21
|
+
:root { --wineater-font-primary: 'Roboto', sans-serif; }
|
|
22
|
+
#wr-Custom {
|
|
23
|
+
.wr-Search-input {
|
|
24
|
+
border-color: #7c7c7c;
|
|
25
|
+
color: #7c7c7c;
|
|
26
|
+
}
|
|
27
|
+
.wr-Search-input::placeholder { color: #000000; }
|
|
28
|
+
.wr-Search-button {
|
|
29
|
+
background: #000000;
|
|
30
|
+
}
|
|
31
|
+
.wr-Search-button:hover {
|
|
32
|
+
background: #E3BE8D;
|
|
33
|
+
opacity: 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.wr-WineTile-params {
|
|
37
|
+
color: #7c7c7c;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.wr-WineTilePopup-reason {
|
|
41
|
+
color: #000000;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.wr-WineTilePopup-tag {
|
|
45
|
+
color: #000000;
|
|
46
|
+
background: rgba(239,239,239,0.7);
|
|
47
|
+
border-color: transparent;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.wr-WineTile-action {
|
|
51
|
+
color: #000000;
|
|
52
|
+
border-color: #000000;
|
|
53
|
+
background: transparent;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.wr-WineTile-action:hover {
|
|
57
|
+
background: #000000;
|
|
58
|
+
color: #ffffff;
|
|
59
|
+
box-shadow: none;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
`,translations:{fr:{"wineDetails.buy":"voir plus"}}}};function Hd(t){const e={logoUrl:null,brandColor:"#7B2BEB",wineaterColor:"#7B2BEB",customCss:`
|
|
63
|
+
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');
|
|
64
|
+
:root { --wineater-font-primary: 'Bricolage Grotesque', serif; }
|
|
65
|
+
`},n=Ud[t]||{};return{...e,...n}}let ce=vt({storeConfig:null,currentLanguage:"en",isConfigLoaded:!1,uiConfig:null});const be={getLanguageFromURL(){return new URLSearchParams(window.location.search).get("lang")},getAppLanguage(){return(ce==null?void 0:ce.currentLanguage)??"en"},getStoreLanguage(){var t;return((t=ce.storeConfig)==null?void 0:t.lang)??null},getApiKey(){var t;return((t=ce.storeConfig)==null?void 0:t.open_ai_key)??null},getStoreId(){var t;return((t=ce.storeConfig)==null?void 0:t.id)??null},setStoreLanguage(t){if(ce.storeConfig&&ce.storeConfig.available_languages.includes(t)){ce.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=ce.storeConfig)==null?void 0:t.available_languages)??["en"]},getCurrency(){var t;return((t=ce.storeConfig)==null?void 0:t.currency)??"USD"},async initializeStore(){try{const t=await cr.getStoreConfig();ce.storeConfig=zd(t),ce.currentLanguage=ce.storeConfig.lang;const e=this.getLanguageFromURL();e&&ce.storeConfig.available_languages.includes(e)?this.setStoreLanguage(e):this.setStoreLanguage(ce.storeConfig.lang),this.setUiConfig(Hd(ce.storeConfig.id)),ce.isConfigLoaded=!0}catch(t){console.error("Failed to initialize store:",t),ce.isConfigLoaded=!1}},isInitialized(){return ce.isConfigLoaded},getUiConfig(){return ce.uiConfig},setUiConfig(t){ce.uiConfig=t}},qd={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 Vd(t,e,n="en"){try{return new Intl.NumberFormat(qd[n]||"en-US",{style:"currency",currency:e,currencyDisplay:"narrowSymbol"}).format(t)}catch{return t.toString()}}function Ee({key:t,lang:e}){const n=jd,s=be.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 Gd({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(([f,p])=>({key:f,text:p})),a=`
|
|
20
66
|
You are a professional translator.
|
|
21
67
|
|
|
22
68
|
The input texts are written in language with code "${t}". Your task is to translate them strictly to the target language with code "${e}".
|
|
@@ -41,14 +87,18 @@ Output:
|
|
|
41
87
|
|
|
42
88
|
Now translate the following input:
|
|
43
89
|
${JSON.stringify(o,null,2)}
|
|
44
|
-
`,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 p=await(await fetch(i,{method:"POST",headers:r,body:c})).json(),m=(d=(h=(l=(u=p==null?void 0:p.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
|
|
90
|
+
`,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 p=await(await fetch(i,{method:"POST",headers:r,body:c})).json(),m=(d=(h=(l=(u=p==null?void 0:p.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 E=JSON.parse(m),_={};return E.forEach(x=>{x.key&&x.text!==void 0&&(_[x.key]=x.text)}),{...n,..._}}catch(f){return console.error("Error translating texts:",f),n}}var Kd=K('<h1 class="wr-Header-title svelte-oiwvqb"> </h1>'),Xd=K('<h1 class="wr-Header-title svelte-oiwvqb"> <span class="wr-Header-icon wr-Header-icon--meal svelte-oiwvqb"></span> <span class="wr-Header-label svelte-oiwvqb"> </span>, <span class="wr-Header-icon wr-Header-icon--mood svelte-oiwvqb"></span> <span class="wr-Header-label svelte-oiwvqb"> </span> <br/> <span class="wr-Header-icon wr-Header-icon--occasion svelte-oiwvqb"></span> <span class="wr-Header-label svelte-oiwvqb"> </span> </h1>'),Yd=K('<div class="wr-Header"><!></div>');const Jd={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;}.wr-Header-icon.svelte-oiwvqb {display:inline-block;width:1.2em;height:1.2em;vertical-align:middle;margin:0 4px 0 2px;background-repeat:no-repeat;background-size:contain;}.wr-Header-icon--meal.svelte-oiwvqb {background-image:url('https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media//meal1.svg');}.wr-Header-icon--meal.svelte-oiwvqb:hover {background-image:url('https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media//meal3.svg');}.wr-Header-icon--mood.svelte-oiwvqb {background-image:url('https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media//mood.svg');}
|
|
45
91
|
|
|
46
|
-
|
|
47
|
-
}`};function qd(t,e){var c;Lt(e,!0),Ht(t,Ud);let s=pe(()=>ke.getAppLanguage());const n=((c=window==null?void 0:window.wineaterData)==null?void 0:c.TITLE_TEXT)||null;var i=jd(),r=L(i);{var o=u=>{var l=Fd(),h=L(l);te(()=>Z(h,n)),q(u,l)},a=u=>{var l=zd(),h=L(l),d=J(h,3),f=L(d),p=J(d,4),m=L(p),_=J(p,3),I=J(_,3),T=L(I),y=J(I);te((g,v,E,C,S,k)=>{Z(h,`${g??""} `),Z(f,v),Z(m,E),Z(_,` ${C??""} `),Z(T,S),Z(y,` ${k??""}`)},[()=>_e({key:"headerLine1",lang:w(s)}),()=>_e({key:"headerMeal",lang:w(s)}),()=>_e({key:"headerMood",lang:w(s)}),()=>_e({key:"headerOr",lang:w(s)}),()=>_e({key:"headerOccasion",lang:w(s)}),()=>_e({key:"headerLine2",lang:w(s)})]),q(u,l)};ie(r,u=>{n?u(o):u(a,!1)})}q(t,i),Bt()}function Wd(t,e,s){const i=t.target.value;$e(it.LANGUAGE_CHANGED,w(e),{from_language:w(s),to_language:i}),ke.setStoreLanguage(i)}var Hd=X("<option> </option>"),Vd=X('<select id="language-dropdown" class="language-dropdown svelte-1sr6y3t"></select>'),Gd=X('<div id="powered-by-widget" class="svelte-1sr6y3t"><div class="powered-by-center svelte-1sr6y3t"><a href="https://wineater.com" target="_blank" class="svelte-1sr6y3t"><span> </span> <img alt="Wineater Logo" class="svelte-1sr6y3t"/> <span class="powered-by-sommelier svelte-1sr6y3t"> </span></a></div> <div class="powered-by-lang svelte-1sr6y3t"><!></div></div>');const Kd={hash:"svelte-1sr6y3t",code:`#powered-by-widget.svelte-1sr6y3t {position:relative;border-top:2px solid #f6f7fd;font-family:'Bricolage Grotesque', sans-serif;font-weight:200;padding:12px 24px;min-height:40px;}#powered-by-widget.svelte-1sr6y3t .powered-by-center:where(.svelte-1sr6y3t) {position:absolute;left:50%;transform:translateX(-50%);text-align:center;}#powered-by-widget.svelte-1sr6y3t .powered-by-lang:where(.svelte-1sr6y3t) {position:absolute;right:0px;top:50%;transform:translateY(-50%);}.language-dropdown.svelte-1sr6y3t {padding:4px;border-radius:6px;border:2px solid var(--wineater-color);background-color:white;color:var(--wineater-color);font-weight:500;font-family:'Bricolage Grotesque', sans-serif;font-size:12px;cursor:pointer;transition:all 0.2s ease;}.language-dropdown.svelte-1sr6y3t:hover {box-shadow:0 4px 8px rgba(123, 43, 235, 0.2);}#powered-by-widget.svelte-1sr6y3t a:where(.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;}#powered-by-widget.svelte-1sr6y3t a:where(.svelte-1sr6y3t):hover {opacity:0.8;}#powered-by-widget.svelte-1sr6y3t img:where(.svelte-1sr6y3t) {height:16px;width:auto;color:#a8a8a8;}
|
|
92
|
+
/* Not used, old icon */.wr-Header-icon--occasion.svelte-oiwvqb {background-image:url('https://czvgkhagwvmknscoerfy.supabase.co/storage/v1/object/public/static-media//ocasion.svg');}.wr-Header-label.svelte-oiwvqb {color:var(--wineater-color);font-weight:500;}
|
|
48
93
|
|
|
49
|
-
@media screen and (max-width: 768px) {.
|
|
50
|
-
}`};function
|
|
51
|
-
|
|
94
|
+
@media screen and (max-width: 768px) {.wr-Header-title.svelte-oiwvqb {display:none;}
|
|
95
|
+
}`};function Qd(t,e){var c;Et(e,!0),Rt(t,Jd);let n=me(()=>be.getAppLanguage());const s=((c=window==null?void 0:window.wineaterData)==null?void 0:c.TITLE_TEXT)||null;var i=Yd(),r=P(i);{var o=u=>{var l=Kd(),h=P(l);$(()=>ee(h,s)),F(u,l)},a=u=>{var l=Xd(),h=P(l),d=Y(h,3),f=P(d),p=Y(d,4),m=P(p),E=Y(p,3),_=Y(E,3),x=P(_),T=Y(_);$((g,w,k,I,y,S)=>{ee(h,`${g??""} `),ee(f,w),ee(m,k),ee(E,` ${I??""} `),ee(x,y),ee(T,` ${S??""}`)},[()=>Ee({key:"headerLine1",lang:b(n)}),()=>Ee({key:"headerMeal",lang:b(n)}),()=>Ee({key:"headerMood",lang:b(n)}),()=>Ee({key:"headerOr",lang:b(n)}),()=>Ee({key:"headerOccasion",lang:b(n)}),()=>Ee({key:"headerLine2",lang:b(n)})]),F(u,l)};ne(r,u=>{s?u(o):u(a,!1)})}F(t,i),It()}var Zd=K('<option class="wr-Footer-lang"> </option>'),$d=K('<select class="wr-Footer-dropdown svelte-1sr6y3t"></select>'),ef=K('<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 tf={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(--wineater-color);background-color:white;color:var(--wineater-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;}
|
|
96
|
+
|
|
97
|
+
@media screen and (max-width: 768px) {.wr-Footer-text--sommelier.svelte-1sr6y3t {display:none;}
|
|
98
|
+
}`};function nf(t,e){Et(e,!0),Rt(t,tf);let n=Gn(e,"countryCode",3,null),s=me(()=>be.getAppLanguage()),i=me(()=>be.getSupportedLanguages()),r=me(()=>be.getStoreId());function o(_){const T=_.target.value;tt(ot.LANGUAGE_CHANGED,b(r),{from_language:b(s),to_language:T}),be.setStoreLanguage(T)}var a=ef(),c=P(a),u=P(c),l=P(u),h=P(l),d=Y(l,2),f=Y(d,2),p=P(f),m=Y(c,2);{var E=_=>{var x=$d();x.__change=o,Ln(x,21,()=>b(i),Pn,(g,w)=>{var k=Zd(),I=P(k),y={};$(S=>{yc(k,b(w)===b(s)),ee(I,S),y!==(y=b(w))&&(k.value=(k.__value=b(w))??"")},[()=>b(w).toUpperCase()]),F(g,k)});var T;vc(x),$(()=>{T!==(T=b(s))&&(x.value=(x.__value=b(s))??"",fo(x,b(s)))}),F(_,x)};ne(m,_=>{b(i).length>1&&_(E)})}$((_,x)=>{ee(h,_),yt(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"),ee(p,x)},[()=>Ee({key:"poweredBy",lang:b(s)}),()=>Ee({key:"ai_sommelier",lang:b(s)})]),F(t,a),It()}gs(["change"]);var sf=K('<a rel="noopener noreferrer"><!></a>'),rf=K("<button><!></button>");const of={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,
|
|
99
|
+
color 0.2s,
|
|
100
|
+
box-shadow 0.2s;}.wr-Action.primary.svelte-8cxv3l {background:var(--wineater-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(--wineater-color);border:2px solid var(--wineater-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(--wineater-color);color:#fff;}}.wr-Action--uppercase.svelte-8cxv3l {text-transform:uppercase;}`};function ur(t,e){Et(e,!0),Rt(t,of);let n=Gn(e,"type",3,"button"),s=Gn(e,"variant",3,"primary"),i=Gn(e,"target",3,"_self"),r=be.getUiConfig(),o=`wr-Action ${s()} ${e.className||""} ${r.buttonUppercase?"wr-Action--uppercase":""}`.trim();var a=mn(),c=Vt(a);{var u=h=>{var d=sf(),f=P(d);co(f,e,"default",{}),$(()=>{vs(d,1,ho(o),"svelte-8cxv3l"),yt(d,"href",e.href),yt(d,"id",e.id),yt(d,"target",i())}),F(h,d)},l=h=>{var d=rf();d.__click=function(...p){var m;(m=e.handleClick)==null||m.apply(this,p)};var f=P(d);co(f,e,"default",{}),$(()=>{vs(d,1,ho(o),"svelte-8cxv3l"),yt(d,"type",n()),yt(d,"id",e.id)}),F(h,d)};ne(c,h=>{e.href?h(u):h(l,!1)})}F(t,a),It()}gs(["click"]);var af=K('<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 lf={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(--wineater-color);opacity:1;transition:color 0.3s ease,
|
|
101
|
+
opacity 0.3s ease-in-out;}.wr-Search-input.svelte-1wah7ro:focus {border-color:var(--wineater-color);}.wr-Search-input.svelte-1wah7ro:focus::placeholder {opacity:0.5;}`};function cf(t,e){Et(e,!0),Rt(t,lf);let n=Gn(e,"searchQuery",15),s,i=ie(!1),r=ie(0),o=ie(0),a=ie(!0),c=ie(!1),u=me(()=>be.getAppLanguage()),l=0;function h(){return s}function d(){const g=++l,w=Ee({key:"placeholderSuggestions",lang:b(u)});if(!s||!w.length)return;O(c,!0);const k=()=>{if(g!==l||!s||!b(c)||b(i)||n().length)return;const I=w[b(r)];if(b(a)){if(s.placeholder=I.substring(0,Pr(o)),b(o)>I.length){O(a,!1),setTimeout(k,1600);return}setTimeout(k,90)}else{if(s.placeholder=I.substring(0,Pr(o,-1)),b(o)<0){O(a,!0),O(r,(b(r)+1)%w.length),setTimeout(k,450);return}setTimeout(k,45)}};k()}function f(){O(c,!1)}function p(){O(i,!0),f(),s&&(s.placeholder="")}function m(){O(i,!1),O(o,0),O(a,!0),O(c,!1)}ds(()=>{if(!s||n().length>0)return;l++,O(c,!1),O(r,0),O(o,0),O(a,!0);const g=Ee({key:"placeholderSuggestions",lang:b(u)});g&&g.length?s.placeholder=g[0]:s.placeholder=Ee({key:"searchPlaceholder",lang:b(u)})}),ds(()=>{s&&e.initialized&&!b(i)&&!n().length&&!b(c)&&d(),n().length>0&&b(c)&&(O(c,!1),l++)}),bi(()=>{});var E={getSearchElement:h},_=af(),x=Y(P(_),2);Tc(x,g=>s=g,()=>s);var T=Y(x,2);return ur(T,{className:"wr-Search-button",type:"submit",variant:"primary",children:(g,w)=>{var k=vi();$(I=>ee(k,I),[()=>Ee({key:"searchButton",lang:b(u)})]),F(g,k)},$$slots:{default:!0}}),qn("submit",_,function(...g){var w;(w=e.onSubmit)==null||w.apply(this,g)}),qn("focus",x,p),qn("blur",x,m),kc(x,n),F(t,_),It(E)}Cl();var uf=K('<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 hf={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(--wineater-color), var(--wineater-corp-color));opacity:0.7;
|
|
52
102
|
animation: svelte-li6gfl-typing 1s infinite;}
|
|
53
103
|
|
|
54
104
|
@keyframes svelte-li6gfl-typing {
|
|
@@ -61,13 +111,11 @@ ${JSON.stringify(o,null,2)}
|
|
|
61
111
|
transform: translateY(-8px);
|
|
62
112
|
opacity: 1;
|
|
63
113
|
}
|
|
64
|
-
}.
|
|
65
|
-
opacity 180ms cubic-bezier(0.22, 0.61, 0.36, 1);will-change:transform, opacity;}.
|
|
66
|
-
color 0.2s,
|
|
67
|
-
box-shadow 0.2s;}.buy-btn.svelte-yk3emv:hover {box-shadow:0 4px 8px rgba(123, 43, 235, 0.25);background-color:var(--wineater-color);color:#fff;}
|
|
114
|
+
}.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 df(t){Rt(t,hf);var e=uf();F(t,e)}var ff=K('<p class="wr-WinePopup-desc wr-WinePopup-text svelte-17gehox"> </p>'),pf=K('<div class="wr-WinePopup-reason svelte-17gehox"> </div>'),gf=K('<p class="wr-WinePopup-pairing wr-WinePopup-text svelte-17gehox"> </p>'),mf=K('<span class="wr-WinePopup-tag svelte-17gehox"> </span>'),vf=K('<div class="wr-WinePopup-tags svelte-17gehox"></div>'),bf=K('<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>'),wf=K('<p class="wr-WinePopup-desc wr-WinePopup-text svelte-17gehox"> </p>'),yf=K('<div class="wr-WinePopup-reason svelte-17gehox"> </div>'),Sf=K('<p class="wr-WinePopup-pairing wr-WinePopup-text svelte-17gehox"> </p>'),_f=K('<span class="wr-WinePopup-tag svelte-17gehox"> </span>'),kf=K('<div class="wr-WinePopup-tags svelte-17gehox"></div>'),Tf=K('<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 xf={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 za(t,e){Et(e,!0),Rt(t,xf);const n=!!e.isMobile;var s=mn(),i=Vt(s);{var r=a=>{var c=bf(),u=P(c);u.__click=function(...I){var y;(y=e.onClose)==null||y.apply(this,I)};var l=Y(u,2),h=P(l),d=P(h),f=P(d),p=P(f),m=Y(f,2);m.__click=function(...I){var y;(y=e.onClose)==null||y.apply(this,I)};var E=Y(d,2);{var _=I=>{var y=ff(),S=P(y);$(()=>ee(S,e.shortDescription)),F(I,y)};ne(E,I=>{e.shortDescription&&I(_)})}var x=Y(E,2);{var T=I=>{var y=pf(),S=P(y);$(()=>ee(S,e.reason)),F(I,y)},g=I=>{var y=mn(),S=Vt(y);{var A=j=>{var B=gf(),X=P(B);$(()=>ee(X,e.pairing)),F(j,B)};ne(S,j=>{e.pairing&&j(A)},!0)}F(I,y)};ne(x,I=>{e.reason?I(T):I(g,!1)})}var w=Y(x,2);{var k=I=>{var y=vf();Ln(y,21,()=>e.tags,Pn,(S,A)=>{var j=mf(),B=P(j);$(()=>ee(B,b(A))),F(S,j)}),F(I,y)};ne(w,I=>{e.tags&&e.tags.length&&I(k)})}$(()=>ee(p,e.title)),F(a,c)},o=a=>{var c=Tf(),u=P(c),l=P(u),h=P(l),d=Y(l,2);d.__click=function(...g){var w;(w=e.onClose)==null||w.apply(this,g)};var f=Y(u,2);{var p=g=>{var w=wf(),k=P(w);$(()=>ee(k,e.shortDescription)),F(g,w)};ne(f,g=>{e.shortDescription&&g(p)})}var m=Y(f,2);{var E=g=>{var w=yf(),k=P(w);$(()=>ee(k,e.reason)),F(g,w)},_=g=>{var w=mn(),k=Vt(w);{var I=y=>{var S=Sf(),A=P(S);$(()=>ee(A,e.pairing)),F(y,S)};ne(k,y=>{e.pairing&&y(I)},!0)}F(g,w)};ne(m,g=>{e.reason?g(E):g(_,!1)})}var x=Y(m,2);{var T=g=>{var w=kf();Ln(w,21,()=>e.tags,Pn,(k,I)=>{var y=_f(),S=P(y);$(()=>ee(S,b(I))),F(k,y)}),F(g,w)};ne(x,g=>{e.tags&&e.tags.length&&g(T)})}$(()=>ee(h,e.title)),F(a,c)};ne(i,a=>{n?a(r):a(o,!1)})}F(t,s),It()}gs(["click"]);var Ef=K('<img class="wr-WineTile-image svelte-yk3emv"/>'),If=K('<div class="wr-WineTile-price svelte-yk3emv"> </div>'),Cf=K('<div class="wr-WineTile-params svelte-yk3emv"> </div>'),Nf=K('<div class="wr-WineTilePopup-reason svelte-yk3emv"> </div>'),Rf=K('<span class="wr-WineTilePopup-tag svelte-yk3emv"> </span>'),Df=K('<div class="wr-WineTilePopup-tags svelte-yk3emv"></div>'),Of=K("<div><!> <!></div>"),Af=K('<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 Mf={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),
|
|
115
|
+
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;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-actions.svelte-yk3emv {margin:16px auto 0;}
|
|
68
116
|
|
|
69
|
-
/* Hover popup inside tile */.
|
|
70
|
-
animation: svelte-yk3emv-whPopup 0.25s ease;}.
|
|
117
|
+
/* 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 {
|
|
118
|
+
animation: svelte-yk3emv-whPopup 0.25s ease;}.wr-WineTilePopup-reason.svelte-yk3emv {font-size:14px;font-weight:400;color:#333;margin-bottom:8px;}.wr-WineTilePopup-tags.svelte-yk3emv {display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;justify-content:center;}.wr-WineTilePopup-tag.svelte-yk3emv {display:inline-block;padding:4px 8px;border-radius:12px;background-color:#f5f0ff;border:1px solid #ddd;font-size:13px;color:#333;text-transform:capitalize;}
|
|
71
119
|
|
|
72
120
|
@keyframes svelte-yk3emv-whPopup {
|
|
73
121
|
from {
|
|
@@ -80,20 +128,17 @@ ${JSON.stringify(o,null,2)}
|
|
|
80
128
|
}
|
|
81
129
|
}
|
|
82
130
|
|
|
83
|
-
@media screen and (max-width: 768px) {.
|
|
84
|
-
}`};function
|
|
85
|
-
/* =====================
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/* ===================== 1) CSS Variables ===================== */:root {--wineater-corp-color: #0044ff;--wineater-color: #7b2beb;}
|
|
131
|
+
@media screen and (max-width: 768px) {.wr-WineTile.svelte-yk3emv {flex:0 0 auto;scroll-snap-align:center;width:240px;text-align:center;}
|
|
132
|
+
}`};function Pf(t,e){Et(e,!0),Rt(t,Mf);let n=me(()=>be.getAppLanguage());const s=(C,D)=>C[D]||C[D.charAt(0).toUpperCase()+D.slice(1)],i=(C,D)=>D.map(N=>s(C,N)).filter(Boolean).join(" • ");function r(C){var D;return Vd(C,((D=be.getCurrency)==null?void 0:D.call(be))||"USD",b(n))}function o(C){return e.selectedWineId===C}function a(C){return!!(C.reason||C.shortDescription||C.tags)}function c(C,D){let N=(C==null?void 0:C.tags)||D.tags;return N?(Array.isArray(N)&&(N=N.join(",")),typeof N!="string"?[]:N.split(",").map(M=>M.trim()).filter(Boolean)):[]}let u=ie(!1);bi(()=>{const C=()=>{O(u,window.innerWidth<=768)};return C(),window.addEventListener("resize",C),()=>{window.removeEventListener("resize",C)}});var l=Af(),h=Vt(l);h.__click=C=>e.onTileClick(C,e.wine);var d=P(h),f=P(d);{var p=C=>{var D=Ef();$(()=>{yt(D,"src",e.wine.image),yt(D,"alt",e.wine.title)}),F(C,D)};ne(f,C=>{e.wine.image&&C(p)})}var m=Y(f,2);{var E=C=>{var D=If(),N=P(D);$(M=>ee(N,M),[()=>r(e.wine.total)]),F(C,D)};ne(m,C=>{e.wine.total&&C(E)})}var _=Y(m,2),x=P(_),T=Y(d,2);{var g=C=>{var D=Cf(),N=P(D);$(M=>ee(N,M),[()=>i(e.wine,["type","country","region","grape"])]),F(C,D)};ne(T,C=>{i(e.wine,["type","country","region","grape"])&&C(g)})}var w=Y(T,2),k=P(w),I=P(k);{var y=C=>{ur(C,{get href(){return e.wine.url},className:"wr-WineTile-action wr-WineTile-action--link js-WineTileAction",target:"_blank",variant:"outlined",children:(D,N)=>{var M=vi();$(re=>ee(M,re),[()=>Ee({key:"wineDetails.buy",lang:b(n)})]),F(D,M)},$$slots:{default:!0}})},S=C=>{ur(C,{handleClick:()=>e.onBuyClick(e.wine,e.index),variant:"outlined",className:"wr-WineTile-action wr-WineTile-action--button js-WineTileAction",children:(D,N)=>{var M=vi();$(re=>ee(M,re),[()=>Ee({key:"moreInfo",lang:b(n)})]),F(D,M)},$$slots:{default:!0}})};ne(I,C=>{e.wine.url?C(y):C(S,!1)})}var A=Y(w,2);{var j=C=>{{let D=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.shortDescription)||e.wine.shortDescription}),N=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.reason)||e.wine.reason}),M=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.pairingRecommendation)||e.wine.pairingRecommendation}),re=me(()=>c(e.translatedPopup,e.wine));za(C,{get title(){return e.wine.title},get shortDescription(){return b(D)},get reason(){return b(N)},get pairing(){return b(M)},get tags(){return b(re)},get onClose(){return e.onPopupClose},isMobile:!1})}};ne(A,C=>{o(e.wine.id)&&!b(u)&&C(j)})}var B=Y(A,2);{var X=C=>{var D=Of(),N=P(D);{var M=Ie=>{var de=Nf(),oe=P(de);$(()=>{var R,z;return ee(oe,((R=e.translatedPopup)==null?void 0:R.reason)||((z=e.translatedPopup)==null?void 0:z.shortDescription)||e.wine.reason||e.wine.shortDescription)}),F(Ie,de)};ne(N,Ie=>{var de,oe;((de=e.translatedPopup)!=null&&de.reason||(oe=e.translatedPopup)!=null&&oe.shortDescription||e.wine.reason||e.wine.shortDescription)&&Ie(M)})}var re=Y(N,2);{var H=Ie=>{var de=Df();Ln(de,21,()=>c(e.translatedPopup,e.wine),Pn,(oe,R)=>{var z=Rf(),fe=P(z);$(()=>ee(fe,b(R))),F(oe,z)}),F(Ie,de)};ne(re,Ie=>{var de,oe;((de=e.translatedPopup)!=null&&de.tags||(oe=e.translatedPopup)!=null&&oe.Tags||e.wine.tags)&&Ie(H)})}$(()=>vs(D,1,`wr-WineTilePopup ${e.hoveredWineId===e.wine.id?"slide-in visible":""}`,"svelte-yk3emv")),F(C,D)};ne(B,C=>{a(e.wine)&&C(X)})}var U=Y(h,2);{var W=C=>{{let D=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.shortDescription)||e.wine.shortDescription}),N=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.reason)||e.wine.reason}),M=me(()=>{var H;return((H=e.translatedPopup)==null?void 0:H.pairingRecommendation)||e.wine.pairingRecommendation}),re=me(()=>c(e.translatedPopup,e.wine));za(C,{get title(){return e.wine.title},get shortDescription(){return b(D)},get reason(){return b(N)},get pairing(){return b(M)},get tags(){return b(re)},get onClose(){return e.onPopupClose},isMobile:!0})}};ne(U,C=>{o(e.wine.id)&&b(u)&&C(W)})}$(()=>{vs(h,1,`wr-WineTile ${e.isAnimating?"ww-slide-up":""}`,"svelte-yk3emv"),ee(x,e.wine.title)}),qn("mouseenter",h,()=>e.onTileEnter(e.wine)),qn("mouseleave",h,()=>e.onTileLeave(e.wine)),F(t,l),It()}gs(["click"]);function Lf(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 Ff=K('<div class="wr-App-picture svelte-1n46o8q"><img class="wr-App-logo svelte-1n46o8q" alt=""/></div>'),Bf=K('<div class="wr-App-error svelte-1n46o8q"><p> </p></div>'),Wf=K('<div class="wr-App-placeholder svelte-1n46o8q"></div>'),jf=K('<div id="wr-Custom" class="wr-App svelte-1n46o8q"><!> <!> <!> <!> <div class="wr-App-content svelte-1n46o8q"><!></div> <!></div>');const zf={hash:"svelte-1n46o8q",code:`
|
|
133
|
+
/* ===================== 1) CSS Variables ===================== */:root {--wineater-corp-color: #0044ff;
|
|
134
|
+
/* TODO: get color from config */--wineater-color: #7b2beb;}
|
|
89
135
|
|
|
90
|
-
/* ===================== 2) Global Styles ===================== */* {box-sizing:border-box;}.hidden {display:none;}
|
|
136
|
+
/* ===================== 2) Global Styles ===================== */* {box-sizing:border-box;}.hidden {display:none;}body {margin:0;padding:0;font-family:var(--wineater-font-primary, sans-serif);}
|
|
91
137
|
|
|
92
|
-
/* ===================== 3) Widget Container =====================
|
|
93
|
-
#wine-widget-container.svelte-1n46o8q [class*=' icon-'] {font-family:'Bricolage Grotesque', sans-serif !important;}.wine-widget-wrapper.svelte-1n46o8q {width:100%;}#wine-widget-right.svelte-1n46o8q {position:relative;min-height:300px;}#wine-placeholder.svelte-1n46o8q {display:grid;grid-template-columns:repeat(4, 1fr);gap:0;align-items:stretch;margin-bottom:0;}
|
|
138
|
+
/* ===================== 3) Widget Container ===================== */.wr-App.svelte-1n46o8q {padding:12px 12px 0px;border-radius:16px;background-color:#fff;box-shadow:0 4px 16px rgba(0, 0, 0, 0.1);max-width:1024px;min-width:1024px;min-height:500px;margin:40px auto;position:relative;}.wr-App-picture.svelte-1n46o8q {display:flex;justify-content:center;align-items:center;margin-bottom:12px;}.wr-App-logo.svelte-1n46o8q {max-width:100%;height:auto;width:auto;max-height:60px;}.wr-App-content.svelte-1n46o8q {position:relative;min-height:300px;}.wr-App-placeholder.svelte-1n46o8q {display:grid;grid-template-columns:repeat(4, 1fr);gap:0;align-items:stretch;margin-bottom:0;}
|
|
94
139
|
|
|
95
|
-
/* ===================== 12) Error Message ===================== */.error
|
|
140
|
+
/* ===================== 12) Error Message ===================== */.wr-App-error.svelte-1n46o8q {text-align:center;padding:24px;color:#666;}
|
|
96
141
|
|
|
97
142
|
/* ===================== 13) Mobile Styles ===================== */
|
|
98
|
-
@media screen and (max-width: 768px) {
|
|
99
|
-
}`};function
|
|
143
|
+
@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);}
|
|
144
|
+
}`};function Uf(t,e){var Ie,de,oe;Et(e,!0),Rt(t,zf);function n(){var R;Si("chatbotToken",((R=window.wineaterData)==null?void 0:R.CLIENT_TOKEN)||s,365),bo()}const s="HeUw6IXuhvz6tRuXdPEGEbj3SGQ3Q2YtEc1Z8jd41Kg9LtyPb4Epu0to31SYIadG";new Pd({projectKey:"PA8j9fAi49i6g2QnvpNs",__DISABLE_SECURE_MODE:!0}).start(),n();const r=((Ie=window==null?void 0:window.wineaterData)==null?void 0:Ie.WIDGET_TYPE)||"store",o=((de=window==null?void 0:window.wineaterData)==null?void 0:de.COUNTRY_CODE)||null;(oe=window==null?void 0:window.wineaterData)!=null&&oe.WIDGET_WRAPPER;let a=ie(!1),c=ie(!1),u=ie(vt([])),l=ie(null),h=ie(""),d=ie(null),f=ie(!1),p=ie(null),m=ie(vt([])),E=me(()=>be.getAppLanguage()),_=me(()=>be.getStoreLanguage()),x=me(()=>be.getApiKey()),T=me(()=>be.getStoreId()),g=me(()=>be.isInitialized()),w=me(()=>be.getUiConfig());function k(){O(d,Ee({key:"errorMessage",lang:b(E)}),!0)}const I=()=>O(d,null);async function y(R){if(b(E)===b(_)||r!=="bar")return R.map(()=>({}));const z=["shortDescription","reason","pairingRecommendation","tags"],fe=R[0];if(!fe)return R.map(()=>({}));const Tt=z.filter(Ke=>Ke in fe),rn=4,Ft=[];for(let Ke=0;Ke<R.length;Ke+=rn){const Bt=R.slice(Ke,Ke+rn).map(async Xs=>{const Ys=Tt.map(ae=>{const Be=Xs[ae]||Xs[ae.toLowerCase()];return Be?{key:ae,text:Array.isArray(Be)?Be.join(", "):Be}:null}).filter(Boolean);return Ys.length===0?{}:await Gd({sourceLang:b(_),targetLang:b(E),texts:Object.fromEntries(Ys.map(ae=>[ae.key,ae.text])),apiKey:b(x)})}),on=await Promise.all(Bt);Ft.push(...on)}return Ft}async function S(){O(c,!0);try{O(u,await cr.getInstantRecommendations(),!0)}catch{k()}finally{O(c,!1)}}function A(R=220){return!b(u)||b(u).length===0?Promise.resolve():(O(f,!0),new Promise(z=>{setTimeout(()=>{z()},R)}))}async function j(R){R.preventDefault();let z="";try{O(c,!0),I(),await A(220),O(u,[],!0),O(f,!1),z=b(h).trim()+";";try{tt(ot.SEARCH_PERFORMED,b(T),{query:z})}catch(Tt){console.error("Error tracking search event:",Tt)}const fe=await cr.getWineRecommendationsSearch(z);!fe||fe.length===0?(O(u,[],!0),O(m,[],!0),O(d,Ee({key:"noResultsMessage",lang:b(E)}),!0),tt(ot.NO_RESULTS_FOUND,b(T),{query:z})):(O(u,fe,!0),tt(ot.SEARCH_RESULTS_DISPLAYED,b(T),{results_count:fe.length,results:fe,query:z}))}catch(fe){O(u,[],!0),tt(ot.ERROR_OCCURRED,b(T),{error_message:fe==null?void 0:fe.message,query:z}),k()}finally{O(c,!1)}}ds(async()=>{if(!b(u)||b(u).length===0){O(m,[],!0);return}try{const R=await y(b(u));b(u)&&b(u).length>0&&O(m,R,!0)}catch(R){console.error("translatePopupContent failed",R)}});function B(R,z){b(l)&&b(l)!==R.id&&O(l,null),O(l,R.id,!0),tt(ot.WINE_DETAILS_VIEWED,b(T),{wine_id:R.id,wine_title:R.title,is_mobile:window.innerWidth<=768})}function X(){const R=b(u).find(z=>z.id===b(l));tt(ot.WINE_DETAILS_CLOSED,b(T),{wine_id:b(l),wine_title:R.title}),O(l,null)}function U(R){return!!(R.reason||R.shortDescription||R.tags)}function W(R){r==="store"&&U(R)&&(O(p,R.id,!0),tt(ot.WINE_CARD_HOVER,b(T),{wine_id:R.id,wine_title:R.title}))}function C(R){r==="store"&&b(p)===R.id&&O(p,null)}function D(R,z){R.target.closest(".js-WineTileAction")||R.target.closest(".js-WinePopupClose")||tt(ot.WINE_CARD_CLICK,b(T),{wine_id:z.id,wine_title:z.title})}function N(R){const z=R.target;z.closest(".js-WinePopup")||z.closest(".js-WineTileAction")||O(l,null)}bi(async()=>{var z;if(await be.initializeStore(),!b(g))return;O(w,be.getUiConfig()),b(w).customCss&&Lf(b(w).customCss);const R=((z=window==null?void 0:window.wineaterData)==null?void 0:z.COLOR)||"#7B2BEB";return document.documentElement.style.setProperty("--wineater-color",R),await S(),tt(ot.WIDGET_INITIALIZED,b(T)),O(a,!0),document.addEventListener("click",N),()=>{document.removeEventListener("click",N)}});var M=mn(),re=Vt(M);{var H=R=>{var z=jf(),fe=P(z);{var Tt=ae=>{var Be=Ff(),ts=P(Be);$(()=>yt(ts,"src",b(w).logoUrl)),F(ae,Be)};ne(fe,ae=>{b(w).logoUrl&&ae(Tt)})}var rn=Y(fe,2);Qd(rn,{});var Ft=Y(rn,2);cf(Ft,{onSubmit:j,get initialized(){return b(a)},get searchQuery(){return b(h)},set searchQuery(ae){O(h,ae,!0)}});var Ke=Y(Ft,2);{var es=ae=>{df(ae)};ne(Ke,ae=>{b(c)&&ae(es)})}var Bt=Y(Ke,2),on=P(Bt);{var Xs=ae=>{var Be=Bf(),ts=P(Be),dr=P(ts);$(()=>ee(dr,b(d))),F(ae,Be)},Ys=ae=>{var Be=mn(),ts=Vt(Be);{var dr=fr=>{var Va=Wf();Ln(Va,21,()=>b(u),Pn,(Hf,qf,Ga)=>{Pf(Hf,{get wine(){return b(qf)},index:Ga,get hoveredWineId(){return b(p)},get selectedWineId(){return b(l)},get isAnimating(){return b(f)},get translatedPopup(){return b(m)[Ga]},onBuyClick:B,onPopupClose:X,onTileEnter:W,onTileLeave:C,onTileClick:D})}),F(fr,Va)};ne(ts,fr=>{b(u)&&b(u).length>0&&fr(dr)},!0)}F(ae,Be)};ne(on,ae=>{b(d)?ae(Xs):ae(Ys,!1)})}var qa=Y(Bt,2);nf(qa,{get countryCode(){return o}}),F(R,z)};ne(re,R=>{b(g)&&R(H)})}F(t,M),It()}return uc(Uf,{target:document.getElementById("wineater-widget-conteiner")})});
|