import{a8 as e,e9 as t,ea as a,eb as r,ec as n,ed as s,aT as i,ee as o,bh as c,ef as d,a9 as p,aR as l,D as u,u as m,eg as h,cO as g,eh as v,ei as f,ej as _,ek as y,el as I,em as S,bl as b,en as C,am as T,eo as E,ep as w,eq as k,er as A,es as N,et as q,eu as O,ev as P,ew as F,ex as x,ey as L,ez as U,eA as j,eB as D,eC as M,eD as z,eE as G,eF as R,eG as V,eH as H,eI as B,eJ as Q,eK as J,eL as W,eM as Y,eN as Z,eO as K,eP as X,eQ as $,eR as ee,eS as te,eT as ae,eU as re,eV as ne,eW as se,eX as ie,a2 as oe,Y as ce,L as de,cs as pe,ao as le,aN as ue,p as me,m as he,eY as ge,eZ as ve,y as fe,e_ as _e,A as ye,aw as Ie,aE as Se,e$ as be,S as Ce,f0 as Te,f1 as Ee,f2 as we,$ as ke,de as Ae,f3 as Ne,bD as qe,f4 as Oe,f5 as Pe,f6 as Fe,i as xe,aH as Le,x as Ue,P as je,f7 as De,f8 as Me,f9 as ze,R as Ge,C as Re,I as Ve,af as He,dL as Be,ap as Qe,s as Je,cc as We,V as Ye,aO as Ze,fa as Ke,fb as Xe,E as $e,f as et,a0 as tt,fc as at,dm as rt,fd as nt,fe as st,ff as it,a1 as ot,fg as ct,cz as dt,di as pt,fh as lt,fi as ut,e as mt,fj as ht,T as gt,fk as vt,fl as ft,fm as _t,dk as yt,dG as It,ag as St,fn as bt,fo as Ct,fp as Tt,fq as Et,fr as wt,fs as kt,U as At,aP as Nt,B as qt,dd as Ot,ft as Pt,fu as Ft,X as xt,fv as Lt,w as Ut,fw as jt,dE as Dt,fx as Mt,fy as zt,fz as Gt,aA as Rt,fA as Vt,a4 as Ht,fB as Bt,K as Qt,an as Jt,fC as Wt,fD as Yt,d$ as Zt,dr as Kt,Q as Xt,fE as $t,cv as ea,aQ as ta,fF as aa,a3 as ra,bp as na,bA as sa,fG as ia,fH as oa,fI as ca}from"./3.qLsu0RQW.chunk.js";import{m as da,b as pa,f as la,n as ua,N as ma,e as ha,u as ga,t as va,a as fa,j as _a,h as ya,v as Ia,q as Sa}from"./5.D_uKc_ak.chunk.js";import{bQ as ba,bR as Ca,bS as Ta,i as Ea,bT as wa,f as ka,g as Aa,p as Na}from"./2.CO9147o5.chunk.js";import{v as qa,c as Oa,h as Pa,t as Fa,s as xa}from"./1.Cu_SjyGa.chunk.js";import{e as La,b as Ua,f as ja}from"./6.D_CKFAbE.chunk.js";import{c as Da}from"./7.xhyEK0_l.chunk.js";import{k as Ma}from"./4.C_rgEAoe.chunk.js";import{i as za}from"./8.qYTqns9Q.chunk.js";import{p as Ga,a as Ra,b as Va,c as Ha,d as Ba,e as Qa,l as Ja,g as Wa,h as Ya,i as Za,j as Ka,k as Xa,m as $a,n as er,o as tr,q as ar,r as rr,t as nr,s as sr,u as ir,v as or,w as cr,x as dr,y as pr,f as lr,z as ur,A as mr}from"./9.CxwKat0f.chunk.js";import"./13.Du4z9uvj.chunk.js";import"./11.Gv78iMd6.chunk.js";import"./12.DJPUQwQu.chunk.js";import"./10.B1Yiz0Xj.chunk.js";function hr(e,t){if(0===e){var a=!1;t(0,(function(e){2===e&&(a=!0)})),a||t(2)}}const gr=(vr=()=>hr,e=>(t,a)=>{if(0!==t)return;let r,n=!1;const s=(e,t)=>{r(e,t)},i=(e,t)=>{if(0===e)return r=t,n?void s(1):void a(e,s);if(2===e&&t&&!n){n=!0;try{vr(t)(0,i)}catch(o){a(2,o)}}else a(e,t)};e(t,i)});var vr,fr=function(){};function _r(e,t){0===e&&t(0,fr)}function yr(){for(var e=arguments.length,t=new Array(e),a=0;aclearTimeout(a),i=function(){const t=Date.now();t-r>=e&&(r=Date.now()),s();for(var i=arguments.length,o=new Array(i),c=0;c{const t={};return"string"==typeof e.customId&&(t.custom_id=e.customId),i(e.properties)&&(t.properties=e.properties),t},Cr=e=>{switch(e.type){case s:{const t={...br(e),type:e.type,text:e.text};return e.postback&&(t.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),t}case n:return{...br(e),type:e.type,url:e.url,alternative_text:e.alternativeText};case r:return{...br(e),type:e.type,form_id:e.formId,fields:e.fields.map(e=>{switch(e.type){case"group_chooser":{if(!e.answer)return e;const{groupId:t,...a}=e.answer;return{...e,answer:{...a,group_id:t}}}default:return e}})};case a:{const t={...br(e),type:e.type,text:e.text,system_message_type:e.systemMessageType};return e.recipients&&(t.recipients=e.recipients),t}case t:{const t={...br(e),type:e.type};return e.content&&(t.content=e.content),t}}},Tr=e=>{let{active:t=!0,chat:a,continuous:r}=e;const n={active:t,chat:{}};if("boolean"==typeof r&&(n.continuous=r),!a)return n;const{access:s,thread:i,properties:o}=a;return s&&s.groupIds&&(n.chat.access={group_ids:s.groupIds}),o&&(n.chat.properties=o),i&&(n.chat.thread=(e=>{const t={},{events:a,properties:r}=e;return a&&(t.events=a.map(Cr)),r&&(t.properties=r),t})(i)),n},Er=e=>La(e).map(e=>{let[t,a]=e;return{[t]:a}}),wr=t=>{const a=e(["avatar","name","email"],t);return t.sessionFields&&(a.session_fields=Er(t.sessionFields)),a},kr=e=>({type:"destroy",payload:{reason:e}}),Ar=e=>({type:"pause_connection",payload:{reason:e}}),Nr=function(e){return void 0===e&&(e=!1),{type:"prefetch_token",payload:{fresh:e}}},qr=e=>({type:"reconnect",payload:{delay:e}}),Or=(e,t,a)=>({type:"send_request",payload:{request:{action:e,payload:t},...a&&{source:a}}}),Pr=(e,t)=>({type:"set_chat_active",payload:{id:e,active:t}}),Fr=e=>({type:"set_self_id",payload:{id:e}});function xr(e){let{message:t,code:a}=e;const r=new Error(t);return r.code=a,r}const Lr=e=>e.connection.status,Ur=(e,t)=>e.requests[t],jr=e=>e.users.self.id,Dr=(e,t)=>{const a=e.chats[t];return!!a&&a.active},Mr=e=>"connected"===Lr(e),zr=e=>{var t;return{"x-region":null!=(t=e.region)?t:""}},Gr=e=>(e=>{const{region:t}=e;return"https://api"+(!t||"fra"!==t&&"eu-west3"!==t?"":"-fra")+(e=>{let{env:t}=e;return"production"===t?"":"."+t})(e)+".livechatinc.com"})(e)+"/v3.5/customer",Rr=(e,t)=>{let{id:a}=t;const{[a]:r,...n}=e.requests;return{...e,requests:n}},Vr=(e,t)=>({...t,connection:{...t.connection,status:e}});function Hr(e){const t=Ea,a=ba(),r=Ca((n=(e=>{const{application:t={},organizationId:a,groupId:r=null,env:n,page:s=null,region:i=null,referrer:o=null,uniqueGroups:c=!1,mobile:p=!1}=e;return{application:{...t,name:"chat_widget",version:"2e53c351515770793b666c60c31dfd9b1d5ab632"},organizationId:a,env:n,groupId:r,chats:{},connection:{status:"disconnected"},page:s,region:i,referrer:o,requests:{},users:{self:{id:null,type:d},others:{}},uniqueGroups:c,mobile:p}})(e),c(n,{change_region:(e,t)=>{let{region:a}=t;return{...e,region:a}},destroy:e=>Vr("destroyed",e),login_success:e=>Vr("connected",e),pause_connection:e=>Vr("paused",e),request_failed:Rr,response_received:Rr,push_response_received:Rr,send_request:(e,t)=>{let{promise:a,resolve:r,reject:n,id:s,request:i}=t;return{...e,requests:{...e.requests,[s]:{id:s,promise:a,resolve:r,reject:n,request:i}}}},set_chat_active:(e,t)=>{let{id:a,active:r}=t;return{...e,chats:{...e.chats,[a]:{...e.chats[a],active:r}}}},set_self_id:(e,t)=>({...e,users:{...e.users,self:{...e.users.self,id:t.id}}}),socket_disconnected:e=>{const t=Lr(e);return{...Vr("disconnected"===t?"disconnected":"reconnecting",e),requests:{}}},update_customer_page:(e,t)=>({...e,page:{...e.page,...t}})})),t(Ta(a)));var n;return r.addSideEffectsHandler=a.add,r}const Br=e=>{let{env:t,organizationId:a,eventName:r}=e;return Promise.resolve()},Qr=(e,t)=>{t.payload.id=p(e.getState().requests);const{resolve:a,reject:r,promise:n}=l();return t.payload.promise=n,t.payload.resolve=a,t.payload.reject=r,e.dispatch(t),n},Jr=e=>{const{organizationId:t,groupId:a,uniqueGroups:r}=e.getState();return"side_storage_"+t+(r?":"+a:"")},Wr=(e,t)=>{const a=u(t),r=Jr(e);return a.getItem(r).catch(ua).then(e=>JSON.parse(e||"{}")).catch(ua)},Yr=(e,t)=>{let{getState:a,dispatch:r}=e;const n=(e=>e.requests)(a());r({type:"fail_all_requests",payload:{rejects:Object.keys(n).map(e=>n[e].reject),reason:t}})},Zr=(e,t,a)=>{let{getState:r,dispatch:n}=e;const s=t.payload.id;n({type:"request_failed",payload:{id:s,reject:r().requests[s].reject,error:a}})},Kr=(e,t,a)=>Qr(e,Or(t,a,"login"));function Xr(e,t,a,r){let n,s,i=null;const o={min:300,max:6e4,jitter:.3},c=wa(o),d=wa({...o,min:1e3});let p=c;const l=e=>n.dispatch(kr(e)),u=()=>n.dispatch(qr(p.duration())),m=()=>Promise.all([e.getToken(),Wr(n,r)]),h=e=>{let[t,a]=e;const r=jr(n.getState());if(null===r)n.dispatch(Fr(t.entityId));else if(r!==t.entityId){const e=new Error("Identity has changed.");throw e.code="IDENTITY_MISMATCH",e}return[t,a]},_=e=>{let[a,r]=e;const s=n.getState(),{application:o,groupId:c,page:d,referrer:p,mobile:l}=s,u={token:a.tokenType+" "+a.accessToken,customer:"function"==typeof t?wr(t()):{},customer_side_storage:r,is_mobile:l,application:g(["name","version"],o)};return u.c=(e=>{let[t,a]=e;return Array.from(""+t+a).reduce((e,t)=>e+t["tAedoCrahc".split("").reverse().join("")](0),0)%1024})((e=>[e.organizationId,e.users.self.id])(s)),"number"==typeof c&&(u.group_id=c),o.channelType&&(u.application.channel_type=o.channelType),null!==d&&(i=d,u.customer_page=d),null!==p&&(u.referrer=p),Promise.race([Kr(n,v,u),(m=15e3,new Promise(e=>{setTimeout(e,m)})).then(()=>Promise.reject(xr({message:"Request timed out.",code:"REQUEST_TIMEOUT"})))]);var m};return{sendLogin:t=>{var a;n=t,null==(a=s)||a.cancel(),s=((e,t,a)=>{let[...r]=e,n=!1;const s=e=>{const i=r.shift();ma(()=>i(e)).then(e=>{n||(r.length?s(e):t(e))},e=>{n||a(e)})};return s(),{cancel(){n=!0}}})([m,h,_],e=>{s=null,c.reset(),d.reset(),p=c,(()=>{const{page:e}=n.getState();i!==e&&Kr(n,f,e).catch(ua),i=null})(),n.dispatch({type:"login_success",payload:e})},t=>{switch(s=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void u();case"CONNECTION_LOST":case"MISDIRECTED_CONNECTION":case"SDK_DESTROYED":return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void u():void l(t.message);case"USERS_LIMIT_REACHED":return void n.dispatch(Ar(t.code.toLowerCase()));case"IDENTITY_MISMATCH":case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void u();default:return void u()}})},cancel:()=>{var e;null==(e=s)||e.cancel()}}}const $r={CONNECTION_LOST:"Connection lost.",MISDIRECTED_CONNECTION:"Connected to wrong region."},en=(e,t)=>{const a=e.getState();switch(t.type){case"push_response_received":case"push_received":switch(t.payload.action){case S:return void e.dispatch(Pr(t.payload.payload.chatId,!1));case I:return void e.dispatch(Pr(t.payload.payload.chat.id,!0));default:return}case"response_received":switch(t.payload.action){case y:return void t.payload.payload.chatsSummary.filter(e=>{let{id:t,active:r}=e;return Dr(a,t)!==r}).forEach(t=>{let{id:a,active:r}=t;e.dispatch(Pr(a,r))});default:return}}},tn=(e,t)=>{t.forEach(t=>{if("present"in t){const{present:a,...r}=t;e("user_data",r)}else if(t.type!==d)e("user_data",t);else{const{statistics:a,...r}=t;e("user_data",r)}})},an=(e,t,a)=>{let{emit:r,store:n}=e,{payload:s}=t;switch(s.action){case O:return s.payload.properties.lc2&&"queue_pos"in s.payload.properties.lc2&&r(P,{chatId:s.payload.chatId,threadId:s.payload.threadId,queue:{position:s.payload.properties.lc2.queue_pos,waitTime:s.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",s.payload);case q:return void((e,t,a)=>{u(a).setItem(Jr(e),JSON.stringify(t)).catch(ua)})(n,s.payload.customer_side_storage,a);case _:switch(s.payload.reason){case"access_token_expired":n.dispatch(Nr(!0)),n.dispatch(qr(100)),r("disconnected",s.payload);break;case"customer_banned":case"customer_temporarily_blocked":case"license_not_found":case"product_version_changed":case"too_many_connections":case"unsupported_version":case"logged_out_remotely":n.dispatch(kr(s.payload.reason));break;case"misdirected_connection":Yr(n,"MISDIRECTED_CONNECTION"),n.dispatch({type:"change_region",payload:s.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":Yr(n,s.payload.reason.toUpperCase());break;default:n.dispatch(qr(100)),r("disconnected",s.payload)}return;case A:{const[e]=s.payload.groups;return void r("availability_updated",{availability:N(e.status)})}case I:return tn(r,s.payload.chat.users),void r(s.action,s.payload);case k:if(null===s.payload.event)return;return void r(s.action,s.payload);case w:return void r(s.action,s.payload);case E:return tn(r,[s.payload.user]),void r(s.action,s.payload);default:return void r(s.action,s.payload)}},rn=(e,t)=>{let{emit:a}=e,{payload:r}=t;switch(r.action){case S:return void r.resolve(x);case F:return tn(a,r.payload.users),void r.resolve(r.payload);case I:return tn(a,r.payload.chat.users),void r.resolve(r.payload);case k:return void r.resolve(r.payload.event);case y:return tn(a,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},nn=e=>{let{auth:t,customerDataProvider:a,emitter:r,socket:n,licenseId:s,parentStorage:i}=e;const{emit:o}=r,c=Xr(t,a,0,i);return(e,a)=>{switch(e.type){case"change_region":return void n.reinitialize();case"check_goals":return void((e,t,a)=>t.getToken().then(t=>{const r=e.getState();null===jr(r)&&e.dispatch(Fr(t.entityId));const{page:n}=r;if(!n||!n.url)return;const s=Ua({organization_id:r.organizationId,...zr(r)}),i={session_fields:Er(a||{}),group_id:r.groupId||0,page_url:n.url};return m(Gr(r)+"/action/"+h+"?"+s,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then(()=>{})}))(a,t,e.payload.sessionFields).catch(ua);case"destroy":{const{payload:t}=e;switch(c.cancel(),n.destroy(),t.reason){case"manual":Yr(a,"SDK_DESTROYED");break;case"customer_banned":case"license_expired":case"product_version_changed":case"logged_out_remotely":Yr(a,"CONNECTION_LOST"),o("disconnected",t);break;default:o("disconnected",t)}return void r.off()}case"fail_all_requests":{const{reason:t,rejects:a}=e.payload,r={message:$r[t],code:t};return void a.forEach(e=>{e(xr(r))})}case"login_success":{const{dynamicConfig:t,customer:a,chats:r,greeting:n,availability:s}=e.payload,i={customer:a,availability:s,...n&&{greeting:n}};return Object.defineProperty(i,"__unsafeDynamicConfig",{value:t}),Object.defineProperty(i,"__unsafeChats",{value:r}),void o("connected",i)}case"pause_connection":{const{payload:t}=e;return n.disconnect(),void("manual"!==t.reason&&o("disconnected",t))}case"prefetch_token":return e.payload.fresh?void t.getFreshToken().catch(ua):void t.hasToken().then(e=>e?t.getToken().then(e=>{let{creationDate:a,expiresIn:r}=e;if(!(a+r-Date.now()>36e5))return t.invalidate().then(t.getFreshToken)}):t.getToken()).catch(ua);case"push_received":return e.payload.action===_||en(a,e),void an({emit:o,store:a},e,i);case"push_response_received":return en(a,e),void rn({emit:o},e);case"reconnect":return Yr(a,"CONNECTION_LOST"),void n.reconnect(e.payload.delay);case"request_failed":{const{reject:t,error:a}=e.payload;return void t(xr(a))}case"response_received":return en(a,e),void rn({emit:o},e);case"send_request":{const t=a.getState();if((e=>"destroyed"===Lr(e))(t))return void Zr(a,e,{code:"SDK_DESTROYED",message:"SDK destroyed."});if(!Mr(t)&&"login"!==e.payload.source)return void Zr(a,e,{code:"NO_CONNECTION",message:"No connection."});((e,t)=>{let{payload:{id:a,request:r}}=t;const n={request_id:a,...r};switch(n.action){case v:{const t=[];return void e.emit({...n,version:"3.5",payload:{...n.payload,pushes:{3.5:b(C).filter(e=>e!==_&&!T(e,t))}}})}default:e.emit(n)}})(n,e)}return;case"set_self_id":return void o("customer_id",e.payload.id);case"socket_disconnected":return void o("disconnected",{reason:"connection_lost"});case"socket_connected":return void c.sendLogin(a);case"socket_recovered":if(!Mr(a.getState()))return;return void o("connection_recovered");case"socket_unstable":if(!Mr(a.getState()))return;return void o("connection_unstable");case"start_connection":return n.connect(),void a.dispatch(Nr());case"update_customer_page":if(!Mr(a.getState()))return;return void Qr(a,Or(f,e.payload)).catch(ua);default:return}}},sn=function(e,t){let{query:a={}}=void 0===t?{}:t;const r=Ua(a),n=r?e+"?"+r:e,s=ha(),i=wa({min:1e3,max:5e3,jitter:.5});let o,c=3,d=null;const p=()=>{c=1,i.reset(),s.emit("connect")},l=()=>{m(),g(),s.emit("disconnect")},u=e=>{let{data:t}=e;s.emit("message",t)},m=()=>{var e;(clearTimeout(o),c=3,d)&&((e=d).removeEventListener("open",p),e.removeEventListener("close",l),e.removeEventListener("message",u),d.close(),d=null)},h=()=>{var e;c=0,d=new WebSocket(n),(e=d).addEventListener("open",p),e.addEventListener("close",l),e.addEventListener("message",u)},g=function(e){void 0===e&&(e=i.duration()),m(),0!==e?o=setTimeout(h,e):h()};return{connect(){if(3!==c)throw new Error("Socket is already open or connecting.");clearTimeout(o),h()},destroy(){s.off(),m()},disconnect:m,reconnect:g,emit(e){if(1!==c)throw new Error("Socket is not connected.");d.send(e)},getReadyState:()=>c,on:s.on,off:s.off}},on=function(e,t){let{query:a={},emitter:r=ha()}=void 0===t?{}:t;const n=sn(e,{query:a}),s=(()=>{let e,t=ua;return{cancel:()=>{clearTimeout(e),t=ua},check(){const a=l();return t=a.resolve,e=setTimeout(()=>{const e=new Error("Timeout.");e.code="TIMEOUT",a.reject(e)},2e3),a.promise},resolve(){clearTimeout(e),t()}}})(),i=()=>1===n.getReadyState(),o=()=>{s.cancel()};var c,d;return c=n,d=r,["connect","disconnect"].forEach(e=>{c.on(e,t=>{d.emit(e,t)})}),n.on("disconnect",o),n.on("message",e=>{s.resolve();const t=JSON.parse(e);r.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",()=>{i()&&s.check().then(()=>{s.cancel(),r.emit("connection_recovered")},e=>{if(s.cancel(),"TIMEOUT"!==e.code)throw e;n.reconnect()})}),window.addEventListener("offline",()=>{s.cancel(),i()&&r.emit("connection_unstable")})),{...n,destroy(){o(),n.destroy()},disconnect(){o(),n.disconnect()},reconnect(e){o(),n.reconnect(e)},emit:e=>{n.emit(JSON.stringify(e))},on:r.on,off:r.off}},cn=(e,t)=>{const a=e.getState(),r=(Gr(a)+"/rtm/ws").replace(/^https/,"wss");return on(r,{query:{organization_id:a.organizationId,...zr(a)},emitter:t})},dn=(e,t)=>{const{dispatch:a}=e;return t.on("connect",()=>{a({type:"socket_connected"})}),t.on("message",t=>{if("response"===t.type){if(!t.success)return void((e,t)=>{let{dispatch:a,getState:r}=e;const{request_id:n,payload:s}=t,{reject:i}=Ur(r(),n);a({type:"request_failed",payload:{id:n,reject:i,error:j(s.error)}})})(e,t);switch(t.action){case U:case o:case L:return;default:return void((e,t)=>{let{dispatch:a,getState:r}=e;const{request_id:n}=t,{promise:s,resolve:i,request:o}=Ur(r(),n);a({type:"response_received",payload:{id:n,promise:s,resolve:i,...D({request:o,response:t})}})})(e,t)}}if("request_id"in t)switch(t.action){case I:case k:return void((e,t)=>{let{dispatch:a,getState:r}=e;const{request_id:n}=t,{promise:s,resolve:i}=Ur(r(),n);a({type:"push_response_received",payload:{id:n,promise:s,resolve:i,...M(t)}})})(e,t)}((e,t)=>{const a=M(t);a&&e.dispatch({type:"push_received",payload:a})})(e,t)}),t.on("disconnect",()=>{Yr(e,"CONNECTION_LOST"),"connected"===Lr(e.getState())&&e.dispatch({type:"socket_disconnected"})}),t.on("connection_unstable",()=>{a({type:"socket_unstable"})}),t.on("connection_recovered",()=>{a({type:"socket_recovered"})}),t.off},pn=function(e,t,a){let{headers:r,method:n="POST",onProgress:s,withCredentials:i=!1}=void 0===a?{}:a;const o=new XMLHttpRequest;return{promise:new Promise((a,c)=>{"function"==typeof s&&(o.upload.onprogress=e=>{s(e.loaded/e.total)}),o.onload=()=>{let e;try{e=JSON.parse(o.response)}catch(r){e=o.response}if(o.status>=200&&o.status<300)return void a(e);const t=new Error("Upload failed.");t.code="UPLOAD_FAILED",t.response=e,c(t)},o.onerror=()=>{const e=new Error("Upload failed.");e.code="UPLOAD_FAILED",c(e)},o.onabort=()=>{const e=new Error("Upload canceled.");e.code="UPLOAD_CANCELED",c(e)},o.open(n,e),o.withCredentials=i,r&&Object.keys(r).forEach(e=>o.setRequestHeader(e,r[e])),o.send((e=>{const t=new FormData;return Object.keys(e).forEach(a=>t.append(a,e[a])),t})(t))}),cancel(){o.abort()}}},ln=function(e,t){void 0===t&&(t=2);return(e/1024/1024).toFixed(t)+" MB"},un=(e,t)=>{let a,{auth:r,store:n}=e,{file:s,onProgress:i}=t,o=!1;return{promise:new Promise((e,t)=>{(e=>{if(e.size>10485760)throw xr({message:"The file is too big (max size is "+ln(10485760)+").",code:"TOO_BIG_FILE"})})(s);const c=n.getState(),d=Ua({organization_id:c.organizationId,...zr(c)}),p=Gr(c)+"/action/"+z+"?"+d,l={file:s};r.getToken().then(r=>{o?t(new Error("Upload cancelled.")):(a=pn(p,l,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i}),a.promise.then(e,e=>{if(!e.response)return void t(e);const{type:a,message:r}=e.response.error;t(xr({message:r,code:a.toUpperCase()}))}))})}),cancel(){o||(o=!0,a&&a.cancel())}}},mn=function(t,a,r){qa(t);const{autoConnect:n=!0,customerDataProvider:s,identityProvider:i,parentStorage:c,...d}=t,p=Hr({...d,env:a}),l=ha(),u=(e=>{const t=ha();let a=cn(e,t);return{...Object.keys(a).reduce((e,t)=>(e[t]=function(){return a[t](...arguments)},e),{}),reinitialize(){a.disconnect(),a=cn(e,t),a.connect()}}})(p),m="function"==typeof i?i():Oa(d,a,c);p.addSideEffectsHandler(nn({emitter:l,socket:u,auth:m,customerDataProvider:s,licenseId:r,parentStorage:c})),dn(p,u);const h=Qr.bind(null,p),g=()=>{p.dispatch({type:"start_connection"})},v=Object.freeze({acceptGreeting(e){let{greetingId:t,uniqueId:a}=e;return h(Or(H,{greeting_id:t,unique_id:a}))},auth:m,cancelGreeting(e){let{uniqueId:t}=e;return h(Or(B,{unique_id:t}))},cancelRate(e){const{chatId:t,properties:a=["score"]}=e;return v.listThreads({chatId:t}).then(e=>{let{threads:r}=e;if(!r.length)throw xr({message:'There is no thread in "'+t+'".',code:"MISSING_CHAT_THREAD"});return v.deleteThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:a}})})},connect:g,deactivateChat(e){let{id:t}=e;return h(Or(Q,{id:t}))},deleteChatProperties(e){let{id:t,properties:a}=e;return h(Or(J,{id:t,properties:a}))},deleteEventProperties(e){let{chatId:t,threadId:a,eventId:r,properties:n}=e;return h(Or(W,{chat_id:t,thread_id:a,event_id:r,properties:n}))},deleteThreadProperties(e){let{chatId:t,threadId:a,properties:r}=e;return h(Or(Y,{chat_id:t,thread_id:a,properties:r}))},destroy(){p.dispatch(kr("manual"))},disconnect(){p.dispatch(Ar("manual"))},getChat(e){let{chatId:t,threadId:a}=e;return h(Or(F,{chat_id:t,thread_id:a}))},getChatHistory(e){let{chatId:t}=e;return((e,t)=>{const a={status:"idle",queuedTasks:[],nextPageId:null},r=(n,s)=>{switch(a.status){case"idle":return a.status="fetching",void e.listThreads(a.nextPageId?{chatId:t,pageId:a.nextPageId}:{chatId:t,minEventsCount:25}).then(e=>{let{threads:t,nextPageId:s}=e;a.nextPageId=s,a.nextPageId?(a.status="idle",n({value:{threads:[...t].reverse()},done:!1})):(a.status="done",n({value:{threads:[...t].reverse()},done:!0}));const i=a.queuedTasks.shift();i&&r(i.resolve,i.reject)},e=>{const{queuedTasks:t}=a;a.status="idle",a.queuedTasks=[],s(e),t.forEach(t=>t.reject(e))});case"fetching":return void a.queuedTasks.push({resolve:n,reject:s});case"done":return void n({value:void 0,done:!0})}};return{next:()=>new Promise(r)}})(v,t)},getCustomer:()=>h(Or(Z,{})),getForm(e){let{groupId:t,type:a}=e;return h(Or(K,{group_id:t,type:a}))},getPredictedAgent(e){void 0===e&&(e={});const{groupId:t}=e;return h(Or(X,"number"==typeof t?{group_id:t}:{}))},getUrlInfo(e){let{url:t}=e;return h(Or($,{url:t}))},listChats:e=>(void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(new Error("Specified limit is too high (max 25).")):h(Or(y,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))),listGroupStatuses(e){let{groupIds:t}=void 0===e?{}:e;return h(Or(ee,t?{group_ids:t}:{all:!0}))},listThreads:e=>h(Or(G,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId})),markEventsAsSeen(e){let{chatId:t,seenUpTo:a}=e;return h(Or(te,{chat_id:t,seen_up_to:a}))},on:l.on,once:l.once,off:l.off,rateChat(e){const{chatId:t,rating:a}=e;return v.listThreads({chatId:t}).then(e=>{let{threads:r}=e;if(!r.length)throw xr({message:'There is no thread in "'+t+'".',code:"MISSING_CHAT_THREAD"});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:a}})})},resumeChat:e=>(Br({env:a,organizationId:t.organizationId,eventName:"chat_started"}),h(Or(U,(e=>{const t=Tr(e);return{...t,chat:{...t.chat,id:e.chat.id}}})(e)))),sendEvent:e=>h((e=>{let{chatId:t,event:a,attachToLastThread:r}=e;const n={chat_id:t,event:Cr(a)};return r&&(n.attach_to_last_thread=!0),Or(o,n)})(e)),sendRichMessagePostback(e){let{chatId:t,threadId:a,eventId:r,postback:n}=e;return h(Or(ae,{chat_id:t,event_id:r,thread_id:a,postback:n}))},setCustomerSessionFields(e){let{sessionFields:t}=e;return h(Or(R,{session_fields:Er(t)}))},setSneakPeek:e=>{let{chatId:t,sneakPeekText:a}=e;const r=p.getState();Dr(r,t)&&Mr(r)&&h(Or(re,{chat_id:t,sneak_peek_text:a})).catch(ua)},startChat:e=>(void 0===e&&(e={}),Br({env:a,organizationId:t.organizationId,eventName:"chat_started"}),h(Or(L,Tr(e)))),updateChatProperties(e){let{id:t,properties:a}=e;return h(Or(ne,{id:t,properties:a}))},updateCustomer:e=>h(Or(V,wr(e))),updateCustomerPage(t){p.dispatch({type:"update_customer_page",payload:e(["title","url"],t)})},updateEventProperties(e){let{chatId:t,threadId:a,eventId:r,properties:n}=e;return h(Or(se,{chat_id:t,event_id:r,thread_id:a,properties:n}))},updateThreadProperties(e){let{chatId:t,threadId:a,properties:r}=e;return h(Or(ie,{chat_id:t,thread_id:a,properties:r}))},uploadFile:e=>un({auth:m,store:p},e)});return n?g():p.dispatch({type:"check_goals",payload:{sessionFields:"function"==typeof s?s().sessionFields:{}}}),v},hn=(e,t)=>e.filter(e=>e.serverName in t).map(e=>({type:e.type,label:e.label,value:e.options?oe(t[e.serverName]).map(t=>ce(e=>e.originalValue===t,e.options).label).join(", "):t[e.serverName]})),gn=(e,t,a,r)=>{e.emit("on_"+t+"_survey_submitted",{form_data:hn(a,r)})},vn=(e,t)=>{e.emit("on_rating_comment_submitted",t)},fn=(e,t)=>{e.emit("on_rating_submitted",null===t?"none":t)},_n=(e,t,a)=>{e.emit("on_message",{text:t.properties.text,timestamp:a/1e3,user_type:"visitor",visitor_name:e.getSessionUser().name})},yn=e=>{const t=Object.keys(e);return Promise.all(b(e)).then(e=>ja(function(e,t,a){return t.map((t,r)=>e(t,a[r]))}(Ir,t,e)))},In=e=>e.replace(/index[0-9]*_/gi,""),Sn=(e,t)=>{const a=ce(e=>"groupSelect"===e.meta,e);return Object.keys(t).reduce((r,n)=>{const s=t[n];if("rateComment"===n)return r.rateComment=s,r;if("rating"===n)return r.rate=null===s?s:In(s),r;const i=ce(e=>e.name===n,e),{serverName:o}=i;return a&&o&&o===a.serverName&&(r.choosenGroupIndex=t[a.name].match(/index([0-9]*)_/)[1],r.choosenGroup=parseInt(In(s),10)),i.options?r.fields[o]=ga(s)?s.map(In):In(s):r.fields[o]=s,r},{fields:{}})},bn="SET",Cn=e=>e.fields.map(e=>{switch(e.type){case"question":case"textarea":{const t=e.answer;return t?e.label+" "+t:e.label}case"radio":case"select":{var t;const a=null==(t=e.answer)?void 0:t.label;return a?e.label+" "+a:e.label}case"checkbox":{var a;const t=null==(a=e.answers)?void 0:a.map(e=>e.label).join(", ");return t?e.label+" "+t:e.label}default:return""}}).filter(Boolean).join("\n"),Tn=(e,t)=>e.length?e+"\n"+t:t,En=(e,t,a)=>{let{filledForm:r,groupId:n,organizationId:s,timeZone:i,page:o}=t;return e.getToken().then(e=>{var t;const c=a.getApplicationState(),d=(e=>{const{region:t}=e;return"https://api"+(t&&"dal"!==t?"-"+t:"")+".livechatinc.com"})(c)+"/v2/tickets/new",p=(e=>{let{fields:t,customerId:a,groupId:r,organizationId:n,timeZone:s,page:i,additionalInfo:o}=e;const c={organization_id:n,ticket_message:"",offline_message:"",visitor_id:a,requester:{},..."number"==typeof r&&{group:r},...i&&{source:{url:i}},...s&&{timezone:s},...o&&{additional_info:{reason:o.lastDisplayedReason,displayed_at:o.lastDisplayedAt}}};return t.reduce((e,t)=>{switch(t.type){case"subject":{const a=t.answer,r=a?t.label+" "+a:t.label;return a&&(e.subject=a),e.offline_message=Tn(e.offline_message,r),e}case"name":{const a=t.answer,r=a?t.label+" "+a:t.label;return a&&(e.requester.name=a),e.offline_message=Tn(e.offline_message,r),e}case"email":{const a=t.answer,r=a?t.label+" "+a:t.label;return e.requester.mail=a,e.offline_message=Tn(e.offline_message,r),e}case"question":case"textarea":{const a=t.answer,r=a?t.label+" "+a:t.label;return e.offline_message=Tn(e.offline_message,r),e.ticket_message=Tn(e.ticket_message,r),e}case"radio":case"select":{const a=t.answer&&t.answer.label,r=a?t.label+" "+a:t.label;return e.offline_message=Tn(e.offline_message,r),e.ticket_message=Tn(e.ticket_message,r),e}case"checkbox":{const a=t.answers&&t.answers.map(e=>e.label).join(", "),r=a?t.label+" "+a:t.label;return e.offline_message=Tn(e.offline_message,r),e.ticket_message=Tn(e.ticket_message,r),e}default:return e}},c)})({fields:r.fields,customerId:e.entityId,groupId:n,organizationId:s,timeZone:i,page:o,additionalInfo:c.config.features.ticketForm.additionalInfo});return m(d,{method:"POST",headers:{"Content-Type":"application/json","X-Region":null!=(t=c.region)?t:""},body:JSON.stringify(p)}).then(e=>{if(e.ok)return e.json().then(e=>({...e,text:p.ticket_message}));if(400===e.status||422===e.status){const t=e=>{if(!e||!e.errors)throw new Error;const t=e.errors[0];if("incorrect requester structure"===Object.keys(t)[0]){const e=new Error(t["incorrect requester structure"][0]);throw e.code="VALIDATION",e}throw new Error};return e.json().then(t,t)}throw new Error})})},wn=(e,t)=>Da((()=>{switch(t.code){case"TOO_BIG_FILE":return e.localize("cannot_upload_a_file_over_10mb");case"VALIDATION":return"No active chat thread"===t.message?e.localize("closed_chat_upload_failed"):e.localize("upload_failed");default:return e.localize("upload_failed")}})()),kn=e=>{const{properties:{rate:t,rateComment:a,queued:r}}=e.getChat(de),n=e.getView("Chat/queue");return{rate:t,rateComment:a,queue:r?{position:n.numberInQueue,waitingTime:n.waitingTime}:null}};let An={acceptingGreeting:!1,requestingPredictedWelcomeMessage:!1};const Nn=(t,a,r,n)=>{const s=!a.getApplicationState("clientLimitExceeded")||!a.getApplicationState("embedded")||a.getApplicationState("actingAsDirectLink")||a.getApplicationState("isInCustomContainer"),i=((e,t,a)=>{let{organizationId:r,requestedGroup:n,group:s,region:i,uniqueGroups:o,autoConnect:c,mobile:d,identityProvider:p,parentStorage:l}=t;const u=e.getApplicationState("page"),m={organizationId:r,clientId:"c5e4f61e1a6c3b1521b541bc5c5a2ac5",mobile:d,region:i,page:g(["url","title"],u),referrer:u.referrer,autoConnect:c,application:{channelType:Ft(e)},uniqueGroups:o,identityProvider:p,customerDataProvider:()=>{const t=e.getSessionUser(),a={};return t.name&&(a.name=t.name),t.email&&(a.email=t.email),t.properties&&!xt(t.properties)&&(a.sessionFields=Ma(t.properties).length<=Lt?t.properties:ja(Ut(t.properties).slice(0,Lt))),a},parentStorage:l};o?m.groupId=s:null!==n&&(m.groupId=n);return mn(m,"production",a)})(a,{...t,autoConnect:s},n),o={sdk:i,store:a};let c=null,d={};!0===r.__unsafeProperties.s&&a.setApplicationState({s:!0}),r.prechatForm&&a.updateView("Chat/prechat",Ga("prechat",r.prechatForm)),r.ticketForm&&a.updateView("Chat/ticketForm",Ra(r.ticketForm)),r.__unsafeProperties.group.chatBoosters&&ue(a,r.__unsafeProperties.group.chatBoosters);const p=()=>{"livechat"===a.getApplicationState("defaultWidget")&&(Pe(de,a)||a.getApplicationState().destroyed)&&(Fe(a),a.updateView("minimized",{hidden:!0}))},l=()=>{i.destroy(),a.setApplicationState({destroyed:!0}),p()},u=(e,t)=>{je(a)&&!c&&(c=t||sr(o,{chatId:e}))},m=e=>{const{id:t,active:r,group:n,thread:s,previousThread:i,agent:o,events:c,properties:d}=e,p=!!d.queue;if(u(t),c.forEach(w),jt(a,{id:t,active:r,thread:s,previousThread:i,group:n,queued:p,agent:o,timestamp:d.timestamp}),Dt(a)){const{position:e,waitingTime:t}=d.queue;a.updateView("Chat/queue",{numberInQueue:e,waitingTime:t})}},h=()=>a.getChat(de).properties.lastThread,v=e=>"good"===e?1:"bad"===e?0:null,f=e=>i.rateChat({chatId:pe(a),rating:ya({comment:e.rateComment,score:v(e.rating)})}).then(()=>{a.updateChat(de,{properties:ya({rate:e.rating,rateComment:e.rateComment})})},ua),_=e=>i.cancelRate({chatId:pe(a),properties:e}).then(()=>{a.updateChat(de,{properties:e.reduce((e,t)=>("comment"===t?e.rateComment=null:"score"===t&&(e.rate=null),e),{})})},ua),y=()=>Ka(o,a.getApplicationState("group")).then(e=>{e.enabled&&(a.updateView("Chat/ticketForm",e.form),Tt(a,"groups_offline"))}),I=(e,t)=>{const r=(e=>{const{properties:{rate:t,rateComment:r}}=a.getChat(de),n={comment:"NOTHING",score:"NOTHING"};e.rating!==t&&(n.score=null===e.rating?"CANCEL":bn);const s="string"==typeof e.rateComment&&""!==e.rateComment;return r&&!s||"CANCEL"===n.score&&r?n.comment="CANCEL":!s||r&&e.rateComment===r||(n.comment=bn),n})(t),{testGroup:n}=e.getApplicationState();if("NOTHING"===r.score&&"NOTHING"===r.comment)return Promise.resolve(null);ct({testGroup:n,chatRating:"CANCEL"===r.score?"canceled":t.rating,chatRatingSource:"postchat"});const s=[];return r.score===bn&&r.comment===bn?(s.push(f(t)),fn(e,t.rating),vn(e,t.rateComment)):"CANCEL"===r.score&&"CANCEL"===r.comment?s.push(_(["comment","score"])):("CANCEL"===r.score?s.push(_(["score"])):r.score===bn&&(s.push(f({rating:t.rating})),fn(e,t.rating)),"CANCEL"===r.comment?s.push(_(["comment"])):r.comment===bn&&(s.push(f({rateComment:t.rateComment})),vn(e,t.rateComment))),Promise.all(s.map(e=>e.catch(ua)))},S=e=>{const{availability:t,postponedGreeting:a}=e.getApplicationState();return"online"===t&&a?Promise.resolve().then(()=>(e.setApplicationState({postponedGreeting:null}),An.acceptingGreeting=!0,or(o,a).then(e=>{An.acceptingGreeting=!1,N(e)},()=>{An.acceptingGreeting=!1}))):Promise.resolve(null)},b=()=>{const e=a.getChat(de).properties.group,t=a.getApplicationState("group");return"number"==typeof e?e:t},C=t=>{const r=cr(a,t);if(a.getSessionUser().serverId!==r.id)return a.getUser(r.id)?(r.properties||ke("no_parsed_user_properties",new Error,{meta:JSON.stringify({user:t,parsedUser:r})}),void(r.properties.isBot&&a.updateUser(r.id,{properties:{isBot:!0}}))):void a.addUser(r);a.updateUser(a.getSessionUserId(),e(["name","email","properties"],r))},E=e=>{const t=kn(a),r={};if("rate"in e&&t.rate!==e.rate&&(r.rate=e.rate),"rateComment"in e&&t.rateComment!==e.rateComment&&(r.rateComment=e.rateComment),"timestamp"in e&&t.timestamp!==e.timestamp&&(r.timestamp=e.timestamp),"queue"in e&&!Rt(t.queue,e.queue)){const{queue:t}=e,{ended:n}=a.getChat(de).properties;!n&&t?((e,t)=>{let{thread:a,numberInQueue:r,waitingTime:n}=t;const s={active:!0,properties:{queued:!0}};a&&(s.properties.lastThread=a),e.updateChat(de,s),e.updateView("Chat/queue",{numberInQueue:r,waitingTime:n})})(a,{numberInQueue:t.position,waitingTime:t.waitingTime}):r.queued=!1}a.updateChat(de,{properties:r})},w=e=>{Vt(a,de,e),"message"===e.properties.serverType&&a.getApplicationState("readyState")!==Ht&&((e,t)=>{const{author:a,timestamp:r,properties:{text:n}}=e.getEvent(de,t),s=e.getUser(a),i=s.type,o={text:n,timestamp:Math.floor(r/1e3),user_type:"agent"===i?i:"visitor"};"agent"===i?(o.agent_name=s.name,o.agent_login=s.id):o.visitor_name=s.name,e.emit("on_message",o)})(a,e.id)},k=e=>{const t=$a(a,e);t&&("form"!==t.type||t.properties.answered||"ask_for_email"!==t.properties.formId||(Math.random()<.01&&le("ask_for_email_form_received",{}),a.hasEvent(de,Bt)&&a.removeEvent(de,Bt)),w(t),xe(a,"minimized")&&a.emit("render-minimized"))},A=me(ka(i,"greeting_accepted"),la(e=>{var t;return e.uniqueId===(null==(t=a.getApplicationState("postponedGreeting"))||null==(t=t.event)||null==(t=t.properties)?void 0:t.uniqueId)}));me(da(ka(i,"incoming_greeting"),me(ka(i,"connected"),la(e=>"greeting"in e),he(e=>e.greeting))),la(e=>ge(a)&&e.isExitIntent&&!e.accepted),ve(e=>{a.setApplicationState({postponedGreeting:Qa(a,e)}),a.emit("register_exit_intent_listener")}),fe(()=>ka(a,"exit_intent_detected")),_e(A),va(1),la(()=>{const{mobile:e,availability:t}=a.getApplicationState(),{active:r}=a.getChat(de);return!e&&!r&&"online"===t}),fe(()=>ye(S(a))),la(()=>"bar"!==Qt(a)&&Jt(a)),fa(()=>a.emit("apply_exit_intent_shade")));const N=e=>{const{author:t,event:r}=e;C(t);const{serverId:n,properties:{ended:s}}=a.getChat(de);s&&Me(a,de,{chatId:n});const i=Pt(a,de);i&&a.removeEvent(de,i.id),dt("hideOnInit",a).enabled&&a.setApplicationState({wasActivated:!0}),Wt(a,r)},q=e=>{if(!e.event.properties.isExitIntent&&(a.getApplicationState("isExitIntentShadeDisplayed")&&(a.setApplicationState({isExitIntentShadeDisplayed:!1}),a.emit("remove_exit_intent_shade")),!An.requestingPredictedWelcomeMessage))if(It(a,"postchat"))a.setApplicationState({postponedGreeting:e});else if(Yt(de,a)){if(!e.event.properties.accepted)return a.getApplicationState("greetingsMuted")&&!xe(a,"maximized")?(a.updateChat(de,{properties:{mutedGreeting:e}}),void N(e)):(An.acceptingGreeting=!0,or(o,e).then(e=>{An.acceptingGreeting=!1,N(e)},()=>{An.acceptingGreeting=!1}));N(e)}},O=e=>!!e&&-1!==e.indexOf(a.getApplicationState("group")),P=function(e){let{withSystemMessage:t=!1,reason:r="users_limit_reached"}=void 0===e?{}:e;if(a.setApplicationState({limitReached:!0,clientLimitExceededLifted:!1}),Ct(a),t){const e=Zt(a)?"Sorry we couldn't connect you with an agent, but you can still leave us a ticket":"Sorry, but we couldn't connect you with an agent. Try refreshing the page or come back later.";Kt(a,de,{text:e})}Zt(a)&&Tt(a,r)};i.on("thread_properties_deleted",e=>{let{threadId:t,properties:r}=e;t===h()&&"rating"in r&&T("score",r.rating)&&E({...kn(a),rate:null})}),i.on("thread_properties_updated",e=>{let{threadId:t,properties:r}=e;t===h()&&"rating"in r&&E({...kn(a),...Va(r.rating)})}),i.on("queue_position_updated",e=>{let{threadId:t,queue:r}=e;t===h()&&E({...kn(a),queue:Ha(r)})}),i.on("chat_transferred",e=>{if(!("groupIds"in e.transferredTo))return;const t=e.transferredTo.groupIds[0];a.updateChat(de,{properties:{group:t}}),e.queue&&E({...kn(a),queue:Ha(e.queue)})}),i.on("customer_updated",t=>{const r=a.getSessionUserId();a.updateUser(r,e(["name","email"],t)),t.sessionFields&&a.setUserProperties(r,t.sessionFields),a.emit("customer_updated")}),i.on("event_properties_updated",e=>{let{chatId:t,threadId:r,eventId:n,properties:s}=e;if(t===pe(a)&&r===h()){if("translation"in s){const e=a.getEventByServerId(de,n);if(!e)return;a.updateEvent(de,e.id,{properties:{translation:Ba(s.translation)}})}if("bb9e5b2f1ab480e4a715977b7b1b4279"in s){const e=a.getEventByServerId(de,n);if(!e)return;const r=s.bb9e5b2f1ab480e4a715977b7b1b4279.message_reaction;a.updateEvent(de,e.id,{properties:{reaction:r}}),e.own&&(a.getApplicationState("license")===Ie||Math.random<.1)&&le("message_reaction_received",{reaction:r,messageType:e.type,chatId:t}),r&&a.emit("reaction_received",{event:e})}}}),i.on("event_updated",e=>{let{chatId:t,threadId:r,event:n}=e;if(t!==pe(a)||r!==h())return;if(!Se("properties.lc2.welcome_message",n))return;const s=a.getEventByServerId(de,n.id);n.authorId!==s.author&&(a.setEventData(de,s.id,{author:n.authorId}),a.recalculateTimeline(de)),n.text!==s.properties.text&&a.updateEvent(de,s.id,{properties:{text:n.text}})}),a.on("set_application_state",e=>{let{pageFocused:t}=e;be(a)&&t&&(a.setConnectionState(Ce),i.connect())}),i.on("disconnected",e=>{let{reason:t}=e;switch(t){case"access_denied":case"identity_mismatch":case"too_many_connections":return ke(t),void l();case"customer_banned":case"license_not_found":case"unsupported_version":case"inactivity_timeout":return void(a.getApplicationState("pageFocused")||(a.setConnectionState(we),i.disconnect()));case"users_limit_reached":return P({withSystemMessage:!1}),a.setConnectionState(Ee),void B.then(()=>{F()});default:return"connection_timeout"===t&&Math.random()<=.1?Te("connection_timeout"):Math.random()<=1e-4&&Te("disconnected",{reason:t}),void a.setConnectionState(Ce)}}),i.on("user_added_to_chat",e=>{let{chatId:t,user:r,present:n}=e;if(!n||t!==pe(a)||a.getSessionUser().serverId===r.id)return;const s=Ae(de,a);s&&s.id===r.id||(E({...kn(a),queue:null}),Ne(a,r.id))}),i.on("user_removed_from_chat",e=>{let{chatId:t,userId:r,reason:n}=e;if(t!==pe(a))return;if(a.removeParticipant(de,r),a.getSessionUser().serverId===r)return;const s=Ae(de,a);s&&s.id===r&&"chat_deactivated"!==n&&Ne(a,null)}),i.on("user_data",C),((e,t)=>{e.on("send_snapshot",a=>{const{requestId:r,snapshot:n,screen:s}=a;t.uploadFile({file:new Blob([n],{type:"text/plain;charset=utf-8"})}).promise.then(a=>{t.sendEvent({chatId:pe(e),event:{type:"custom",customId:"cyber-finger-snapshot-"+r,content:{url:a.url,screen:s}}}),le("snapshot_sent",{chatId:pe(e)})}).catch(ua)})})(a,i),i.on("greeting_canceled",e=>{let{uniqueId:t}=e;const r=a.getEvents(de),n=qe(e=>e.properties.uniqueId===t,r);n&&Oe(a,n.id)});const F=()=>{Pe(de,a)?Fe(a):a.getApplicationState("wasActivated")&&xe(a,"hidden")&&Le(a,!0),a.setApplicationState({readyState:Ue})},x=e=>{let{group:t}=e;if(Mt(a))return;const r=je(a)?t:b();return{postchatForm:ir(o,r).catch(()=>({enabled:!1}))}},L=e=>{let{active:t,chatId:r,lastThreadId:n,becameInactive:s}=e;if(je(a))return{fetchedHistory:ar(o,r)};if(s){const e=a.getChat(de);return{fetchedThread:dr(o,{chatId:r,threadId:e.properties.lastThread})}}return t?{fetchedThread:dr(o,{chatId:r,threadId:n})}:void 0},U=e=>e.filter(e=>!(a.hasEvent(de,e.id)||"form"===e.type&&"ticket"===e.properties.formType)),j=e=>{U(e).forEach(w)},D=(e,t)=>{let{eagerFetchingMode:r,group:n}=e,{thread:s,eventsSeenUpToMap:i}=t;if(!s)return;const{id:o,active:c,agent:d,events:p,properties:l}=s,u=a.getChat(de),m=!c&&u.active,h=a.getLastEvent(de);It(a,"postchat")&&p.find(e=>e.properties.answered&&e.properties.formId===h.properties.formId)&&st(a),a.updateChat(de,{active:c,properties:{ended:u.properties.ended,lastThread:o,group:n,eventsSeenUpToMap:i,...m&&{ended:!0,queued:!1,agentIsTyping:!1}}}),c&&Ne(a,d),E({rate:null,...l,queue:c&&"queue"in l?l.queue:null,...!r&&!c&&{rate:null,rateComment:null}}),j(p)},M=e=>{null===Xt(a,de)&&a.updateChat(de,{properties:{hasMoreHistory:e}})};i.on("connected",e=>{let{__unsafeDynamicConfig:t,__unsafeChats:r,greeting:n,availability:s,customer:c}=e;clearTimeout(Q);const{limitReached:l}=a.getApplicationState();l&&a.setApplicationState({limitReached:!1});const m=(e=>{const t=a.getSessionUser(),r={};return t.name&&e.name!==t.name&&(r.name=t.name),t.email&&e.email!==t.email&&(r.email=t.email),xt(t.properties)||Rt(t.properties,e.sessionFields)||(r.sessionFields=xt(e.sessionFields)?t.properties:ja(Ut(t.properties).reduce((t,a)=>{let[r,n]=a;return r in e.sessionFields?t:[].concat(t,[[r,n]])},[]))),xt(r)?null:r})(c);let g;m&&(e=>{let{customerData:t,usedSessionFieldsNumber:a}=e;const r=e=>{i.updateCustomer(e).catch(e=>ke("update_customer_request_failed",e))};t.sessionFields?Ut(t.sessionFields).slice(0,$t-a).reduce((e,t)=>(xt(e)||At(e).length>=Lt?e.push([t]):At(e).push(t),e),[]).map(ja).reduce((e,a,n)=>e.then(()=>r({...0===n&&t,sessionFields:a})),Promise.resolve()):r(t)})({customerData:m,usedSessionFieldsNumber:Ma(c.sessionFields||{}).length}),C(c),"boolean"!=typeof a.getApplicationState().isReturning&&a.setApplicationState({isReturning:c.statistics.visitsCount>1}),a.setApplicationState({clientChatNumber:c.statistics.threadsCount||0,clientVisitNumber:c.statistics.visitsCount||0,clientLastVisitTimestamp:t.customer_data.last_visit_timestamp,clientPageViewsCount:c.statistics.pageViewsCount||0}),d={availability:s,greeting:ge(a)&&n&&Qa(a,n)},Promise.resolve().then(()=>{if(!r.length)return;const[{id:e,active:n,hasUnreadEvents:s}]=r;je(a)&&a.setApplicationState({hasUnseenEvents:s});const i=!n&&a.getChat(de).active;g={active:n,chatId:e,becameInactive:i,dynamicConfig:t},null===a.getChat(de).serverId&&a.setChatServerId(de,e);const{eagerFetchingMode:c}=a.getApplicationState();return n||xe(a,"maximized")||c?Ja(o):void 0}).then(e=>e?(g.group=e.group,g.lastThreadId=e.lastThreadId,g.becameInactive?yn({chatSummary:e,...x(g),...L(g)}):(e.active,yn({chatSummary:e,...L(g)}))):yn({})).then(e=>{const t=!!e.chatSummary&&e.chatSummary.active,r=Boolean(d.greeting&&!d.greeting.event.properties.isExitIntent);return t?e:yn({...e,maximizedDecisionActions:Ea()?Ta({active:!1,availability:d.availability,connected:!0,hasFakeAgentMessage:De(a,de)||r}):null})}).then(e=>{let{queueTemplate:t,chatSummary:r,postchatForm:n,maximizedDecisionActions:s,...i}=e;const o=d;if(d={},t&&a.setLocalization({user_in_queue:t}),a.setApplicationState({availability:o.availability}),!r)return s&&Da(s),o.greeting?q(o.greeting):void 0;const c={chatId:r.id,group:r.group,eagerFetchingMode:a.getApplicationState().eagerFetchingMode};a.setApplicationState({eagerFetchingMode:!0});const p=h()&&r.lastThreadId!==h();if(je(a)){const{fetchedHistory:e}=i;((e,t)=>{const a=e.getChat(de).properties.lastThread;return a&&!t.some(e=>{let{id:t}=e;return a===t})})(a,e.threads)&&ke("threads_gap",null,{meta:JSON.stringify({stateLastThreadId:a.getChat(de).properties.lastThread,fetchedThreads:e.threads.map(e=>{let{id:t}=e;return t})})}),p&&Me(a,de,{chatId:a.getChat(de).serverId}),((e,t)=>{u(e.chatId,t.iterator),M(t.hasMore);const[a,[r]]=(n=-1,[(s=t.threads).slice(0,n),s.slice(n,s.length)]);var n,s;j(kt(e=>{let{events:t}=e;return t},a)),D(e,{thread:r,eventsSeenUpToMap:t.eventsSeenUpToMap})})(c,e)}else i.fetchedThread&&(p&&r.active&&Me(a,de,{chatId:a.getChat(de).serverId}),D(c,i.fetchedThread));if(s&&Da(s),!r.active)if(n&&n.enabled)ze(a,n.form);else if(o.greeting)return q(o.greeting)}).then(()=>{const e=a.getConnectionState()===Ge;return a.setConnectionState(Re),p(),a.getChat(de).active&&xe(a,"hidden")&&Le(a,!0),e}).then(e=>{const t=a.getChat(de),{availability:r,readyState:n}=a.getApplicationState();n!==Ue&&B.then(()=>{F()}),e||!Ve(a)||!He(a)||t.active||"offline"!==r&&!t.properties.ended||Be(a)}).catch(e=>{switch(d={},e.code){case"CONNECTION_LOST":return;case"REQUEST_TIMEOUT":case"MISSING_USER":return i.disconnect(),void i.connect();case"INTERNAL":return void Qe("connection_fetcher_internal_error");default:return void ke("connection_fetcher_error",e)}})}),Je(r,a),"modern"===We(a)&&"Homescreen"===a.getCurrentView()&&a.setCurrentView("Chat");const z=a.getApplicationState("defaultWidget");Ye(a)&&"openwidget"!==z&&(Ze(a,e=>pt(o.sdk.auth.getToken,e)),!a.getCurrentView()&&Ke(a)&&a.setCurrentView("Homescreen")),i.once("customer_id",e=>Xe(a,e));const G=$e(a,Ue),R=e=>me(G,fe(e)),V=me(et(a,e=>Pa(e,"maximized")),la(Boolean),he(()=>({type:"maximized"})),tt),H=me(et(a,()=>a.getSessionUser().serverId),la(Boolean),va(1),_a),B=me(et(a,e=>e.localization),la(e=>Object.keys(e).length>1),va(1),_a);let Q;s?(Math.random()<=.01&&"onLine"in navigator&&(Q=setTimeout(()=>{navigator.onLine&&Te("unsuccessful_first_connect")},3e4)),a.setApplicationState({clientLimitExceededLifted:!0})):Promise.all([B,H]).then(e=>{let[t]=e;var n;a.setLocalization(t),n=r.onlineGroupIds,a.setApplicationState({availability:O(n)?"online":"offline"}),a.setConnectionState(Ee),p(),F();const s=(o=document,da(...["click","touchstart"].map(e=>pa(o,e))));var o;me(da(s,V),va(1),fa(()=>{a.setApplicationState({clientLimitExceededLifted:!0}),i.connect()}))}),"ononline"in window&&(i.on("connection_unstable",()=>{a.setConnectionState(Ce)}),i.on("connection_recovered",()=>{a.setConnectionState(Re)})),i.on("incoming_greeting",e=>{if(!ge(a))return;const t=Qa(a,e);at(a)?q(t):d.greeting=t}),i.on("availability_updated",e=>{let{availability:t}=e;at(a)?a.setApplicationState({availability:t}):d.availability=t}),i.on("events_marked_as_seen",e=>{let{chatId:t,userId:r,seenUpTo:n}=e;if(t!==pe(a))return;a.updateChat(de,{properties:{eventsSeenUpToMap:{...a.getChat(de).properties.eventsSeenUpToMap,[r]:n}}});const s=new Date(n).getTime();(a.getSessionUser().serverId===r?rt:nt)(de,s,a).forEach(e=>{a.updateEvent(de,e.id,{seen:!0})})}),i.on("incoming_event",e=>{let{chatId:t,event:r}=e;if(t!==pe(a))return;a.getChat(de).properties.lastThread!==r.threadId&&a.updateChat(de,{properties:{lastThread:r.threadId}}),"postchat"===Se("properties.lc2.form_type",r)&&st(a),it(de,a)&&ke("received_event_during_chat_starting"),k(r)}),i.on("chat_deactivated",e=>{let{chatId:t}=e;t===pe(a)&&(()=>{const e=Mt(a);zt(a),e||ir(o,b()).then(e=>{let{enabled:t,form:r}=e;t&&ze(a,r)},ua)})()}),i.on("incoming_chat",e=>{Me(a,de,{chatId:e.chat.id});const t=Wa(a,e);m(t)});const J=e=>{let{chatId:t,typingIndicator:r}=e;if(t!==pe(a))return!1;const n=Ae(de,a);return!!n&&n.id===r.authorId},W=me(ka(i,"incoming_typing_indicator"),la(e=>e.typingIndicator.isTyping&&J(e)),he(()=>!0)),Y=me(ka(i,"incoming_typing_indicator"),la(e=>!e.typingIndicator.isTyping&&J(e)),he(()=>!1)),Z=me(ka(i,"incoming_event"),la(e=>{let{chatId:t,event:r}=e;return t===pe(a)&&r.authorId!==a.getSessionUser().serverId&&"system"!==r.authorId}));me(da(me(W,la(()=>!a.getChat(de).properties.messageDraft)),Y,me(Z,he(()=>!1))),fe(e=>e?((...e)=>(t,a)=>{if(0!==t)return;const r=e.length;if(0===r)return a(0,()=>{}),void a(2);let n,s=0;const i=(e,t)=>{n(e,t)};!function t(){s!==r?e[s](0,(e,r)=>{0===e?(n=r,0===s?a(0,i):n(1)):2===e&&r?a(2,r):2===e?(s++,t()):a(e,r)}):a(2)}()})(yr(!0),me(Fa(1e4),he(()=>!1))):yr(!1)),ot(),fa(e=>{a.updateChat(de,{properties:{agentIsTyping:e}})}));const K=()=>{c.next().then(e=>{let{value:t,done:r}=e;const n=a.getTimeline(de).length,s=U(kt(e=>e.events.map(e=>({...e,seen:!0})),t.filter(Boolean)));s.length>0&&a.addHistoryEvents(de,s);n!==a.getTimeline(de).length||r?a.updateChat(de,{properties:{loadingHistory:!1,hasMoreHistory:!r}}):K()},()=>{a.updateChat(de,{properties:{loadingHistory:!1}})})};me(et(a,()=>a.getChat(de).properties.loadingHistory),la(Boolean),fa(K)),a.on("request_update_chat",e=>{let{resolve:t,reject:r,meta:n,data:{properties:s={},...o}}=e;if(s.rateComment){const{rateComment:e}=s;vn(a,e),i.rateChat({chatId:pe(a),rating:{comment:e}}).then(t,r)}else if(void 0!==s.rate){fn(a,s.rate);const{testGroup:e}=a.getApplicationState();if(ct({testGroup:e,chatRating:null===s.rate?"canceled":s.rate,chatRatingSource:(null==n?void 0:n.source)||"other"}),null===s.rate)return void i.cancelRate({chatId:pe(a)}).then(()=>{a.updateChat(de,{properties:{rateComment:null}}),t()},r);i.rateChat({chatId:pe(a),rating:{score:v(s.rate)}}).then(t,r)}else s.transcriptSentTo?i.updateThreadProperties({chatId:pe(a),threadId:h(),properties:{routing:{transcript_email:s.transcriptSentTo}}}).then(t,r):!1===o.active&&i.deactivateChat({id:pe(a)}).then(t,r)});const X=e=>"subject"===e.serverType?"subject":"name"===e.name?"name":"text"===e.type?"question":e.type,$=(e,t)=>{let{id:a,serverId:r,properties:{formType:n,formId:s,fields:i}}=e;const o=Sn(i,t),c=o.fields,d={filledForm:{type:"filled_form",formId:s,...!r&&{customId:a},fields:i.filter(e=>void 0!==e.serverName&&"rating"!==e.type&&"information"!==e.type).map(e=>{if("groupSelect"===e.meta)return{type:"group_chooser",id:e.serverName,label:ea(e.label),answer:{id:String(o.choosenGroupIndex),groupId:o.choosenGroup,label:e.options[o.choosenGroupIndex].label}};if("confirm_subscription"===e.meta){const t=c[e.serverName];return{type:"checkbox_for_email",id:e.serverName,label:e.options[0].label,answer:!!t&&T(e.options[0].originalValue,t)}}if(ga(e.options)){const t={type:X(e),id:e.serverName,label:ea(e.label)},a=Sa(e.serverName,c)?oe(c[e.serverName]):[],r=e.options.filter(e=>T(e.originalValue,a)).map(e=>({label:e.label,value:e.originalValue}));if("checkbox"===t.type)t.answers=r.map(e=>{let{label:t,value:a}=e;return{label:t,id:a}});else if(r.length){const e=r[0];t.answer={id:e.value,label:e.label}}return t}return Sa(e.serverName,c)?{type:X(e),id:e.serverName,label:ea(e.label),answer:c[e.serverName]}:{type:X(e),id:e.serverName,label:ea(e.label)}}),properties:{...n&&{lc2:{form_type:n}}}}};return void 0!==o.choosenGroup&&(d.choosenGroup=o.choosenGroup),d};let ee=0;const te=Sr(300,e=>{const t=pe(a),r=new Date(e).toISOString().replace(/Z$/,"999Z");t&&i.markEventsAsSeen({chatId:t,seenUpTo:r}).catch(ua)});a.on("request_update_event",e=>{const t=a.getEvent(de,e.id);if(e.data.seen)e.resolve(),ee=Math.max(ee,a.getEvent(de,e.id).timestamp),te(ee);else if("ticket"===t.properties.formType){const{answers:s}=e.data.properties,{fields:i}=t.properties,{fields:c}=Sn(i,s),d=a.getApplicationState();let p=null,l=null,u=null;switch(dt("ticketForm",a).mode){case"helpdesk":{var r;const e=ta(),a=Ya({hdLicenseID:null==(r=d.config.properties.license[e])?void 0:r.hdLicenseID,group:d.group,pageUrl:d.page.url,form:(n=t.properties,rr(nr(n))),answers:c,additionalInfo:d.config.features.ticketForm.additionalInfo});p=pt(o.sdk.auth.getToken,a),l=e=>pr(e.id,a),u=aa;break}case"offline_message":{const{filledForm:e}=$(t,s);p=ha({customerStartingEvent:e,group:d.group}).then(e=>(ie(e),e)),l=t=>{var a,r;const n=ce(e=>"subject"===e.type,e.fields);return{id:t.thread,text:Cn(e),visitor:{name:(null==(a=ce(e=>"name"===e.type,e.fields))?void 0:a.answer)||null,email:(null==(r=ce(e=>"email"===e.type,e.fields))?void 0:r.answer)||null},...(null==n?void 0:n.answer)&&{subject:n.answer}}},u=(e,t,a)=>{a()};break}default:{const{filledForm:e}=$(t,s),{timeZone:r}=(new Intl.DateTimeFormat).resolvedOptions();p=En(o.sdk.auth,{filledForm:e,groupId:d.group,organizationId:d.organizationId,timeZone:"string"!=typeof r||/^Etc\//.test(r)||-1===r.indexOf("/")&&"UTC"!==r?null:r,page:d.page.url},a),l=t=>{var a,r;const n=ce(e=>"subject"===e.type,e.fields);return{id:t.id,text:t.text,visitor:{name:(null==(a=ce(e=>"name"===e.type,e.fields))?void 0:a.answer)||null,email:(null==(r=ce(e=>"email"===e.type,e.fields))?void 0:r.answer)||null},...(null==n?void 0:n.answer)&&{subject:n.answer}}},u=(e,t,a)=>{e&&"VALIDATION"===e.code?/name must be at most \d+ characters long/.test(e.message)?a({name:e.message}):"mail must be a valid e-mail address"!==e.message?a():a({email:t("invalid_email")}):a()};break}}p.then(r=>{const{fields:n}=t.properties;((e,t,a,r)=>{let{id:n,text:s,visitor:{email:i,name:o},subject:c}=r;const d={form_data:hn(t,a),ticket_id:n,text:s,visitor_name:o,visitor_email:i};c&&(d.ticket_subject=c),e.emit("on_ticket_created",d)})(a,n,c,l(r)),e.resolve(),lt(a,e.id)},t=>{u(t,a.localize,e.reject)})}else if("prechat"===t.properties.formType){const{answers:r}=e.data.properties,{fields:n}=t.properties;((e,t,a)=>{gn(e,"prechat",t,a)})(a,n,Sn(n,r).fields);const{filledForm:s,choosenGroup:i}=$(t,r),c=t=>{switch(t.code){case"SERVICE_UNAVAILABLE":return void P({withSystemMessage:!0,reason:"service_unavailable"});case"GROUPS_OFFLINE":return void y().then(e.resolve,e.reject);case"CUSTOMER_BANNED":case"GROUP_NOT_FOUND":return void l();default:e.reject()}},d=()=>ha({customerStartingEvent:s,agentFakeEvent:Pt(a,de),group:i}).then(e=>{ie(e)}).catch(e=>c(e));if(void 0!==i)return void Za(o,{groupId:i}).then(e=>{if("not_found"===e){const e=new Error('Group "'+i+'" not found (most likely it has been removed).');throw e.code="GROUP_NOT_FOUND",e}return e}).then(t=>{const r=a.getApplicationState().group;a.setApplicationState({group:i});if(!("online"===t))return Ve(a)?void d().then(()=>{a.setApplicationState({availability:"offline"})},c):void Promise.all([Ka(o,i),r!==i&&Xa(o,{groupId:i})].filter(Boolean)).then(e=>{let[t,r]=e;t.enabled?(mt(a,"ticketForm",r&&{mode:r}),a.updateView("Chat/ticketForm",t.form)):ut(a,"ticketForm"),a.setApplicationState({availability:"offline"})},t=>{"CONNECTION_LOST"!==t.code?l():e.reject()});d().catch(c)},t=>{"CONNECTION_LOST"!==t.code?l():e.reject()});d()}else if("postchat"===t.properties.formType){const{answers:r}=e.data.properties,{fields:n}=t.properties;((e,t,a)=>{gn(e,"postchat",t,a)})(a,n,Sn(n,r).fields);const{filledForm:s}=$(t,r);i.sendEvent({chatId:pe(a),event:s,attachToLastThread:!0}).then(t=>{e.resolve(),lt(a,e.id,$a(a,t)),"rating"in r?I(a,r).finally(()=>S(a)):S(a)}).catch(t=>{if(t.message===ht)return Me(a,de,{forced:!0}),Ta(hr()).then(e=>Da(e));e.reject()})}else if("ask_for_email"===t.properties.formId){const{answers:r}=e.data.properties,{filledForm:n}=$(t,r);i.sendEvent({chatId:pe(a),event:n,attachToLastThread:!0}).then(t=>{e.resolve(),k(t)}).catch(()=>e.reject())}var n}),a.on("request_customer_token",()=>{o.sdk.auth.getToken().then(e=>a.emit("customer_token_response",e)).catch(e=>a.emit("customer_token_error",e))}),a.on("request_update_user",e=>{let{resolve:t,id:r,data:{properties:n,...s}}=e;if(a.getSessionUserId()===r){if(at(a)){const e=ya({name:s.name,email:s.email,sessionFields:n});i.updateCustomer(e).catch(e=>ke("update_customer_request_failed",e))}t()}}),a.on("request_set_user_properties",e=>{let{resolve:t,id:r,properties:n}=e;a.getSessionUserId()===r&&(at(a)&&i.setCustomerSessionFields({sessionFields:n}).catch(ua),t())});const ae=(e,t)=>{let{id:r,timestamp:n,threadId:s}=t;_n(a,e,n),a.setEventServerId(de,e.id,r),a.updateEvent(de,e.id,{delivered:!0,serverTimestamp:n,thread:s})},re=e=>{a.updateEvent(de,e.id,{failed:!0})};a.on("send_file_events",()=>{a.setApplicationState({isSendingFileEvents:!0});const e=[].concat(gt(a));e.filter(e=>e.properties.failed).forEach(e=>a.updateEvent(de,e.id,{properties:{canceled:!0}}));const t=e.filter(e=>{let{type:t,delivered:a,properties:{canceled:r,finished:n}}=e;return"file"===t&&!a&&!r&&n}).map(e=>i.sendEvent({chatId:pe(a),event:{type:"file",customId:e.id,url:e.properties.serverUrl,alternativeText:e.properties.alternativeText}}).then(t=>{a.updateEvent(de,e.id,{delivered:!0}),k(t),Promise.resolve().then(()=>{"image"===e.properties.fileType&&URL.revokeObjectURL(e.properties.url)});const r=e.properties.uploadSource;("clipboard"===r||Math.random()<.1)&&le("file_upload_sent",{uploadSource:r})}));Promise.all(t).finally(()=>{a.setApplicationState({isSendingFileEvents:!1})})});const ne={};a.on("cancel_upload",e=>{let{eventId:t}=e;const r=a.getEvent(de,t);a.updateEvent(de,t,{properties:{canceled:!0}}),ne[t]&&ne[t].cancel(),Promise.resolve().then(()=>{"image"===r.properties.fileType&&URL.revokeObjectURL(r.properties.url)})}),a.on("add_message_reaction",e=>{let{eventId:t,reaction:r}=e;const n=a.getEvent(de,t);i.updateEventProperties({chatId:pe(a),threadId:n.thread,eventId:n.serverId,properties:{bb9e5b2f1ab480e4a715977b7b1b4279:{message_reaction:r}}}),(a.getApplicationState("license")===Ie||Math.random()<.1)&&le("message_reaction_sent",{reaction:r,messageType:n.type,chatId:pe(a)})});const se=e=>{let{event:t,meta:r}=e;if("file"===t.type){const e=i.uploadFile({file:r.file,onProgress:e=>a.updateEvent(de,t.id,{properties:{progress:e}})});return ne[t.id]=e,e.promise.then(e=>{let{url:r}=e;a.updateEvent(de,t.id,{properties:{serverUrl:r,finished:!0}})},e=>{"UPLOAD_CANCELED"!==e.code&&a.updateEvent(de,t.id,{properties:{failed:!0,failReason:wn(a,e)}})}).finally(()=>{delete ne[t.id]})}if(T(t.type,["message","emoji"]))return i.sendEvent({chatId:pe(a),event:mr(a,t)}).then(e=>{ae(t,e)},()=>{re(t)});if("custom_system_message"===t.type)return i.sendEvent({chatId:pe(a),event:mr(a,t)}).then(k,ua);if("rich_message_postback"===t.type){const{eventId:e,postback:r}=t.properties;return i.sendRichMessagePostback({chatId:pe(a),threadId:a.getEvent(de,e).thread,eventId:e,postback:r}).catch(ua)}if("url_preview"===t.type){const e=i.getUrlInfo({url:t.properties.url}).catch(()=>null);return i.sendEvent({chatId:pe(a),event:mr(a,t)}).then(r=>{ae(t,r),e.then(e=>{const{title:n,description:s,url:o,imageUrl:c}=e;return a.updateEvent(de,t.id,{properties:{title:n,description:s,image:{url:c,link:o}}}),i.updateEventProperties({chatId:pe(a),threadId:r.thread,eventId:r.id,properties:{url_details:{title:n,description:s,url:o,image_url:c,image_width:e.imageWidth,image_height:e.imageHeight}}})}).catch(ua)},()=>{re(t)})}},ie=e=>{let{events:t,...r}=e;const n=a.getSessionUser().id;t.forEach(e=>{a.getEvent(de,e.id)?e.author===n?((e,t)=>{const a=t.timestamp;"message"===t.properties.serverType&&_n(e,t,a),e.setEventServerId(de,t.id,t.serverId);const r={delivered:!0,serverTimestamp:a,thread:t.thread};"form"===t.type&&(r.properties={answered:!0,fields:t.properties.fields}),e.updateEvent(de,t.id,r)})(a,e):e.properties.welcomeMessage||e.properties.invitation?((e,t)=>{const a=Pt(e,de);e.setEventServerId(de,a.id,t.serverId);const r=a.author!==t.author;r&&e.setEventData(de,a.id,{author:t.author});const n={delivered:!0,thread:t.thread,serverTimestamp:t.timestamp,properties:{}};a.properties.text!==t.properties.text&&(n.properties.text=t.properties.text),e.updateEvent(de,a.id,n),r&&(Ne(e,t.author),e.recalculateTimeline(de))})(a,e):w(e):w(e)}),m({...r,events:[]})},ha=e=>(a.updateChat(de,{properties:{starting:!0}}),vt(a),er(o,e).then(e=>(a.updateChat(de,{properties:{starting:!1}}),e),t=>{if(t.message===ht)return Me(a,de,{forced:!0}),ha(e);throw a.updateChat(de,{properties:{starting:!1}}),t}));let ba=[];const Ca=e=>{if(it(de,a))return void ba.push(e);const t=()=>{ia(a)&&oa(a)};a.getChat(de).active?e&&se(e).then(t):ha({...e&&{customerStartingEvent:e.event},agentFakeEvent:Pt(a,de)}).then(e=>{ie(e);const a=ba;ba=[],a.forEach(se),t()},t=>{a.updateEvent(de,e.event.id,{failed:!0});const r=ba;switch(ba=[],r.forEach(e=>{a.updateEvent(de,e.id,{failed:!0})}),t.code){case"SERVICE_UNAVAILABLE":return void P({withSystemMessage:!0,reason:"service_unavailable"});case"CUSTOMER_BANNED":return void l();case"GROUPS_OFFLINE":return void y();default:return}})};a.on("start_thread",Ca),a.on("send_event",Ca),a.on("request_cancel_greeting",e=>{xe(a,"maximized")&&Le(a),Oe(a,e.id),i.cancelGreeting({uniqueId:e.properties.uniqueId}).catch(ua)});const Ta=e=>{let{active:t,availability:r,connected:n,hasFakeAgentMessage:s,startChatAgainPending:i,limitReached:c,hasMutedGreeting:d}=e;return ma(()=>c||t?{type:"nothing"}:"offline"===r?Ve(a)?i&&He(a)?{type:"show_prechat"}:{type:"nothing"}:ft(a)?_t(a)?{type:"nothing"}:{type:"show_ticket_form"}:{type:"hide_prechat_form"}:d?{type:"accept_muted_greeting"}:s?{type:"hide_ticket_form"}:Ae(de,a)&&He(a)?{type:"show_prechat"}:xe(a,"maximized")?!n||An.acceptingGreeting?{type:"nothing"}:(An.requestingPredictedWelcomeMessage=!0,B.then(()=>tr(o)).then(e=>{let{agent:t,message:r,groupHasQueue:n}=e;An.requestingPredictedWelcomeMessage=!1;const s=[{type:"hide_ticket_form"},{type:"predicted_welcome_message",payload:{agent:t,message:r,groupHasQueue:n}}];return He(a)?s.push({type:"show_prechat"}):i&&t.isBot&&s.push({type:"start_chat"}),s},e=>{if(An.requestingPredictedWelcomeMessage=!1,"offline"===a.getApplicationState("availability"))return{type:"nothing"};switch(e.code){case"GROUP_OFFLINE":return{type:"nothing"};default:return{type:"panic"}}})):{type:"nothing"}).then(oe)},Ea=()=>{const e=a.getChat(de);return(!e.active||e.properties.queued)&&!e.properties.starting&&!e.properties.ended},wa=()=>{a.updateView("minimized",{hidden:!1})};me(V,fa(wa));const qa=me(et(a,e=>e.application.destroyed),la(Boolean),va(1),tt);me(G,va(1),he(()=>{const e=Aa(g(["organizationId","group","requestedGroup"],a.getApplicationState()));return[yt("session")&&window.sessionStorage.getItem(e),e]}),la(e=>{let[t]=e;return Boolean(t)}),fa(e=>{let[t,r]=e;(e=>{let t;const r=h();try{t=JSON.parse(e)}catch(n){return}t&&r&&t.forEach(e=>{a.getEvent(de,e.id)||Vt(a,de,{thread:r,id:e.id,type:"file",own:!0,author:a.getSessionUser().id,delivered:!1,failed:!1,properties:e})})})(t),window.sessionStorage.removeItem(r)}));const[Oa,La]=me(et(a,e=>e.application.availability),xa(1),Ia,he(e=>({type:e})),(Ua=e=>{let{type:t}=e;return"online"===t},function(e){return[la(Ua)(e),la((t=Ua,function(e){return!t(e)}))(e)];var t}));var Ua;me(R(()=>La),la(Ea),fa(()=>{!It(a,"prechat")&&Ve(a)&&He(a)&&"offline"===a.getApplicationState().availability&&!a.getChat(de).active&&Be(a),It(a,"prechat")&&(Ct(a),Ve(a)&&Be(a)),p()})),me(Oa,la(Ea),fa(()=>{a.getView("minimized").hidden&&wa(),!ft(a)&&Jt(a)&&xe(a,"hidden")&&!a.getApplicationState("isMinimizedForcefullyDisabled")&&Le(a)})),me(R(()=>{if(!He(a))return _r;const e=et(a,()=>It(a,"prechat"));return me(da(V,e),la(()=>It(a,"prechat")),fe(()=>{const e=a.getLastEvent(de);return me(ye(((e,t)=>{const a=na(e=>"groupSelect"===e.meta,t);if(-1===a)return Promise.resolve(null);const r=t[a],n=r.options.map(e=>e.groupId);return n.length>20?Promise.resolve(null):ur(e,{groupIds:n}).then(e=>sa(a,{...r,options:r.options.map(t=>({...t,meta:{online:"online"===e[t.groupId]}}))},t))})(o,e.properties.fields)),gr)}))}),la(e=>e&&It(a,"prechat")),fa(e=>{const{id:t}=a.getLastEvent(de);return a.updateEvent(de,t,{properties:{fields:e}})}));const Da=e=>e.forEach(e=>{switch(e.type){case"panic":return void l();case"chat_activated":return void ie(e.payload);case"predicted_welcome_message":{const{agent:t,message:r,groupHasQueue:n}=e.payload;return C(t),Ne(a,t.id),void(He(a)||(Et(a)||(w(r),a.updateChat(de,{properties:{fakeAgentMessageId:r.id}})),a.updateChat(de,{properties:{groupHasProbableQueue:n}})))}case"show_ticket_form":return e.payload&&a.updateView("Chat/ticketForm",e.payload),void Tt(a,"offline");case"hide_prechat_form":return void Ct(a);case"hide_ticket_form":return void(It(a,"ticket")&&bt(a));case"show_prechat":return void Be(a);case"accept_muted_greeting":return void(()=>{const e=a.getLastEvent(de),{mutedGreeting:t}=a.getChat(de).properties;a.updateEvent(de,e.id,{seen:!0}),An.acceptingGreeting=!0,or(o,t).then(e=>{let{event:t}=e;a.updateChat(de,{properties:{mutedGreeting:void 0}}),Gt(a,t)},ua).finally(()=>{An.acceptingGreeting=!1})})();case"start_chat":return void St(a);default:return}}),hr=()=>{const e=a.getChat(de);return{active:e.active,availability:a.getApplicationState("availability"),connected:at(a),hasFakeAgentMessage:De(a,de),startChatAgainPending:e.properties.startChatAgainPending,limitReached:a.getApplicationState("limitReached"),hasMutedGreeting:!!e.properties.mutedGreeting}};var vr;me(R(()=>me(et(a,()=>a.getChat(de).properties.startChatAgainPending),la(Boolean))),fe(()=>ye(Ta(hr()))),fa(e=>{Me(a,de,{chatId:a.getChat(de).serverId}),Da(e)})),me(da(V,Oa,La),(vr=G,function(e){return function(t,a){if(0===t){var r,n,s=!1;e(0,(function(e,t){0===e&&(r=t,vr(0,(function(e,t){0===e?(n=t)(1):1===e&&(s=!0,n(2))}))),1===e?s?a(1,t):r(1):a(e,t)}))}}}),la(()=>Ea()&&a.getApplicationState().eagerFetchingMode),wt(()=>ye(Ta(hr()))),_e(qa),fa(Da)),me(R(()=>me(V,la(()=>!a.getApplicationState().eagerFetchingMode))),fe(()=>{const e=a.getChat(de).serverId;return ye(Promise.all([Ta(hr()),je(a)&&e&&ar(o,e)].filter(Boolean)))}),_e(qa),fa(e=>{let[t,r]=e;if(r){u(a.getChat(de).serverId,r.iterator),M(r.hasMore);const e=kt(e=>{let{events:t}=e;return t},r.threads).filter(e=>!a.hasEvent(de,e.id));e.length>0&&a.addHistoryEvents(de,e);const t=a.getChat(de).properties.previousThread,n=r.threads.length?At(r.threads).id:null,s=!(t&&t===n);a.updateChat(de,{properties:{eventsSeenUpToMap:r.eventsSeenUpToMap,...s&&{lastThread:n}}})}a.setApplicationState({eagerFetchingMode:!0}),Da(t)})),me(et(a,e=>e.application.page),xa(1),_e(qa),fa(e=>{let{url:t,title:a}=e;i.updateCustomerPage({url:t,title:a})}));const fr={indicatorNotAnimated:-1};me(et(a,()=>a.getUnseenCount(de)>0),la(za),fa(()=>{clearTimeout(fr.indicatorNotAnimated),a.updateView("minimized",{...a.getView("minimized"),animateUnseenEventIndicator:!0}),a.emit("render-minimized"),fr.indicatorNotAnimated=setTimeout(()=>{a.updateView("minimized",{...a.getView("minimized"),animateUnseenEventIndicator:!1}),a.emit("render-minimized")},500)}));const Ir=Sr(ca,e=>{i.setSneakPeek({chatId:pe(a),sneakPeekText:e})});me(et(a,e=>e.application.messageDraft),ot(),la(()=>a.getChat(de).active),fa(e=>{"string"!=typeof e?Ir.cancel():Ir(e)})),Nt(a)&&me(V,va(1),fa(()=>{var e,t;const r=ta(),n=null==(e=a.getApplicationState("config").properties.license[r])?void 0:e.hdLicenseID,s=null!=(t=a.getApplicationState("group"))?t:0;Na(()=>lr(n,s),{retriesCount:ra?2:10,minTime:ra?100:1e3,maxTime:ra?1e3:15e3}).then(e=>{a.updateView("HelpdeskTicketForm",{helpdeskFormConfiguration:e,isLoading:!1})},e=>{a.updateView("HelpdeskTicketForm",{isLoading:!1,hasFetchingError:!0}),ke("helpdesk_form_fetching_failed",e)})})),me(et(a,()=>a.getConnectionState()),la(e=>e===Ce),fa(()=>{a.setApplicationState({disableSendingMessage:!0}),me(da(me(Fa(ra?500:8e3),he(()=>({reason:"timeout"}))),me(ka(a,qt),he(()=>({reason:"message_send_attempt"}))),me(et(a,()=>a.getConnectionState()),la(e=>e!==Ce),he(()=>({reason:"connection_state_change"})))),va(1),fa(e=>{let{reason:t}=e;a.setApplicationState({disableSendingMessage:!1}),a.getConnectionState()===Ce&&a.setConnectionState(Ge),me(et(a,()=>a.getConnectionState()),la(e=>e===Re),va(1),fa(()=>{Math.random()<.1&&le("scheduled_reconnecting_ended",{reason:t})}))}))})),me(et(a,()=>a.getConnectionState()),la(e=>e===we||e===Ge),fa(()=>{const e=Ot(a);e&&!xe(a,"maximized")&&(a.removeEvent(de,e.id),setTimeout(()=>a.emit("render-minimized"),0))}))};export{Nn as default};