import{aI as e,cX as t,J as a,cY as r,cZ as n,c_ as s,c$ as i,d0 as o,ai as c,d1 as d,K as p,ag as l,s as u,bu as m,d2 as h,d3 as g,f as v,d4 as f,d5 as _,d6 as y,d7 as I,d8 as S,aM as b,d9 as C,Y as T,da as E,db as w,dc as k,dd as A,de as N,df as q,dg as O,dh as P,di as F,dj as x,dk as L,dl as U,dm as j,dn as M,dp as D,dq as G,dr as z,ds as R,dt as V,du as H,dv as B,dw as J,dx as Q,dy as W,dz as Y,dA as Z,dB as K,dC as X,dD as $,dE as ee,dF as te,dG as ae,dH as re,dI as ne,dJ as se,dK as ie,F as oe,A as ce,L as de,dL as pe,c2 as le,_ as ue,a6 as me,dM as he,dN as ge,dO as ve,dP as fe,E as _e,c9 as ye,b0 as Ie,bp as Se,dQ as be,bj as Ce,c as Te,R as Ee,dR as we,v as ke,dS as Ae,dT as Ne,dU as qe,p as Oe,bz as Pe,$ as Fe,bT as xe,ad as Le,ae as Ue,dV as je,ci as Me,dW as De,dX as Ge,bs as ze,cd as Re,dY as Ve,x as He,dZ as Be,d_ as Je,bk as Qe,cg as We,d$ as Ye,e0 as Ze,y as Ke,af as Xe,bl as $e,e1 as et,z as tt,e2 as at,cs as rt,e3 as nt,N as st,bw as it,e4 as ot,e5 as ct,cM as dt,w as pt,e6 as lt,e7 as ut,Z as mt,e8 as ht,e9 as gt}from"./3.BctvFFo8.chunk.js";import{cq as vt,cr as ft,cs as _t,v as yt,ct as It,aB as St,cu as bt,cv as Ct,cw as Tt,ay as Et,cx as wt,cy as kt,bt as At,k as Nt,cz as qt,p as Ot,f as Pt,m as Ft,cA as xt,l as Lt,t as Ut,cB as jt,cC as Mt,cD as Dt,cE as Gt,g as zt,cF as Rt,cG as Vt,cH as Ht,i as Bt,cI as Jt,cJ as Qt,cK as Wt,a4 as Yt,cL as Zt,cM as Kt,b9 as Xt,cN as $t,aD as ea,cO as ta,cP as aa}from"./2.AnQoi521.chunk.js";import{v as ra,c as na,a as sa,h as ia,r as oa,s as ca,b as da,f as pa,e as la,d as ua}from"./1.WP7Na5D4.chunk.js";import{m as ma,c as ha,f as ga,n as va,M as fa,e as _a,q as ya,t as Ia,i as Sa,a as ba,v as Ca,o as Ta}from"./4.DsIPCrft.chunk.js";import{e as Ea,b as wa,f as ka}from"./6.CoSZoCaB.chunk.js";import{c as Aa}from"./7.xhyEK0_l.chunk.js";import{k as Na}from"./5.C_rgEAoe.chunk.js";import{c as qa}from"./8.Bm-j6nQo.chunk.js";import{i as Oa}from"./9.qYTqns9Q.chunk.js";import{t as Pa}from"./10.DNvb5pV8.chunk.js";import{p as Fa,a as xa,b as La,c as Ua,d as ja,e as Ma,l as Da,g as Ga,h as za,i as Ra,j as Va,k as Ha,m as Ba,n as Ja,o as Qa,q as Wa,r as Ya,t as Za,s as Ka,u as Xa,v as $a,w as er,x as tr,y as ar,z as rr,f as nr,A as sr,B as ir}from"./11.Cd93_pEC.chunk.js";import"./12.Gv78iMd6.chunk.js";import"./13.BAgQZlxx.chunk.js";function or(e,t){if(0===e){var a=!1;t(0,(function(e){2===e&&(a=!0)})),a||t(2)}}const cr=(dr=()=>or,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{dr(t)(0,i)}catch(o){a(2,o)}}else a(e,t)};e(t,i)});var dr,pr=function(){};function lr(e,t){0===e&&t(0,pr)}function ur(){for(var e=arguments.length,t=new Array(e),a=0;ae.connection.status,vr=(e,t)=>e.requests[t],fr=e=>e.users.self.id,_r=(e,t)=>{const a=e.chats[t];return!!a&&a.active},yr=e=>"connected"===gr(e),Ir=e=>(e=>{const{region:t}=e;return"https://api"+(t?"-"+t:"")+(e=>{let{organizationId:t,env:a}=e;return"feaf6c0e-9f43-48ff-9ad0-8e24e0350932"===t?".staging":"production"===a?"":"."+a})(e)+".livechatinc.com"})(e)+"/v3.5/customer",Sr=(e,t)=>{let{id:a}=t;const{[a]:r,...n}=e.requests;return{...e,requests:n}},br=(e,t)=>({...t,connection:{...t.connection,status:e}});function Cr(a){const r=yt,n=vt(),s=ft((i=(e=>{const{application:a={},organizationId:r,groupId:n=null,env:s,page:i=null,region:o=null,referrer:c=null,uniqueGroups:d=!1,mobile:p=!1}=e;return{application:{...a,name:"chat_widget",version:"5a03cce0b56fa456f0d056ce2c09c099d890ae40"},organizationId:r,env:s,groupId:n,chats:{},connection:{status:"disconnected"},page:i,region:o,referrer:c,requests:{},users:{self:{id:null,type:t},others:{}},uniqueGroups:d,mobile:p}})(a),e(i,{change_region:(e,t)=>{let{region:a}=t;return{...e,region:a}},destroy:e=>br("destroyed",e),login_success:e=>br("connected",e),pause_connection:e=>br("paused",e),request_failed:Sr,response_received:Sr,push_response_received:Sr,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=gr(e);return{...br("disconnected"===t?"disconnected":"reconnecting",e),requests:{}}},update_customer_page:(e,t)=>({...e,page:{...e.page,...t}})})),r(_t(n)));var i;return s.addSideEffectsHandler=n.add,s}function Tr(e){let{message:t,code:a}=e;const r=new Error(t);return r.code=a,r}const Er=e=>{const t={};return"string"==typeof e.customId&&(t.custom_id=e.customId),c(e.properties)&&(t.properties=e.properties),t},wr=e=>{switch(e.type){case o:{const t={...Er(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 i:return{...Er(e),type:e.type,url:e.url,alternative_text:e.alternativeText};case s:return{...Er(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 n:{const t={...Er(e),type:e.type,text:e.text,system_message_type:e.systemMessageType};return e.recipients&&(t.recipients=e.recipients),t}case r:{const t={...Er(e),type:e.type};return e.content&&(t.content=e.content),t}}},kr=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(wr)),r&&(t.properties=r),t})(i)),n},Ar=e=>Ea(e).map(e=>{let[t,a]=e;return{[t]:a}}),Nr=e=>{const t=a(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=Ar(e.sessionFields)),t},qr=e=>({type:"destroy",payload:{reason:e}}),Or=e=>({type:"pause_connection",payload:{reason:e}}),Pr=function(e){return void 0===e&&(e=!1),{type:"prefetch_token",payload:{fresh:e}}},Fr=e=>({type:"reconnect",payload:{delay:e}}),xr=(e,t,a)=>({type:"send_request",payload:{request:{action:e,payload:t},...a&&{source:a}}}),Lr=(e,t)=>({type:"set_chat_active",payload:{id:e,active:t}}),Ur=e=>({type:"set_self_id",payload:{id:e}}),jr=(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},Mr=e=>{const{organizationId:t,groupId:a,uniqueGroups:r}=e.getState();return"side_storage_"+t+(r?":"+a:"")},Dr=(e,t)=>{const a=((e,t)=>{const{groupId:a,uniqueGroups:r}=e.getState();return"side_storage_"+t+(r?":"+a:"")})(e,t),r=Mr(e);return u.getItem(a).catch(va).then(e=>e?u.setItem(r,e).catch(va).then(()=>u.removeItem(a).catch(va).then(()=>JSON.parse(e)).catch(va)):u.getItem(r).catch(va).then(e=>JSON.parse(e||"{}")).catch(va)).catch(va)},Gr=(e,t,a)=>jr(e,xr(t,a,"login"));function zr(e,t,a){let r,n,s=null;const i={min:300,max:6e4,jitter:.3},o=It(i),c=It({...i,min:1e3});let d=o;const p=e=>r.dispatch(qr(e)),l=()=>r.dispatch(Fr(d.duration())),u=()=>Promise.all([e.getToken(),Dr(r,a)]),v=e=>{let[t,a]=e;const n=fr(r.getState());if(null===n)r.dispatch(Ur(t.entityId));else if(n!==t.entityId){const e=new Error("Identity has changed.");throw e.code="IDENTITY_MISMATCH",e}return[t,a]},f=e=>{let[a,n]=e;const i=r.getState(),{application:o,groupId:c,page:d,referrer:p,mobile:l}=i,u={token:a.tokenType+" "+a.accessToken,customer:"function"==typeof t?Nr(t()):{},customer_side_storage:n,is_mobile:l,application:m(["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])(i)),"number"==typeof c&&(u.group_id=c),o.channelType&&(u.application.channel_type=o.channelType),null!==d&&(s=d,u.customer_page=d),null!==p&&(u.referrer=p),Promise.race([Gr(r,h,u),(g=15e3,new Promise(e=>{setTimeout(e,g)})).then(()=>Promise.reject(Tr({message:"Request timed out.",code:"REQUEST_TIMEOUT"})))]);var g};return{sendLogin:t=>{var a;r=t,null==(a=n)||a.cancel(),n=((e,t,a)=>{let[...r]=e,n=!1;const s=e=>{const i=r.shift();fa(()=>i(e)).then(e=>{n||(r.length?s(e):t(e))},e=>{n||a(e)})};return s(),{cancel(){n=!0}}})([u,v,f],e=>{n=null,o.reset(),c.reset(),d=o,(()=>{const{page:e}=r.getState();s!==e&&Gr(r,g,e).catch(va),s=null})(),r.dispatch({type:"login_success",payload:e})},t=>{switch(n=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void l();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 l():void p(t.message);case"USERS_LIMIT_REACHED":return void r.dispatch(Or(t.code.toLowerCase()));case"IDENTITY_MISMATCH":case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=c,void l();default:return void l()}})},cancel:()=>{var e;null==(e=n)||e.cancel()}}}const Rr=(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}})},Vr=(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}})},Hr={CONNECTION_LOST:"Connection lost.",MISDIRECTED_CONNECTION:"Connected to wrong region."},Br=(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(Lr(t.payload.payload.chatId,!1));case I:return void e.dispatch(Lr(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 _r(a,t)!==r}).forEach(t=>{let{id:a,active:r}=t;e.dispatch(Lr(a,r))});default:return}}},Jr=(e,a)=>{a.forEach(a=>{if("present"in a){const{present:t,...r}=a;e("user_data",r)}else if(a.type!==t)e("user_data",a);else{const{statistics:t,...r}=a;e("user_data",r)}})},Qr=(e,t)=>{let{emit:a,store:r}=e,{payload:n}=t;switch(n.action){case O:return n.payload.properties.lc2&&"queue_pos"in n.payload.properties.lc2&&a(P,{chatId:n.payload.chatId,threadId:n.payload.threadId,queue:{position:n.payload.properties.lc2.queue_pos,waitTime:n.payload.properties.lc2.queue_waiting_time}}),void a("thread_properties_updated",n.payload);case q:return void((e,t)=>{u.setItem(Mr(e),JSON.stringify(t)).catch(va)})(r,n.payload.customer_side_storage);case _:switch(n.payload.reason){case"access_token_expired":r.dispatch(Pr(!0)),r.dispatch(Fr(100)),a("disconnected",n.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":r.dispatch(qr(n.payload.reason));break;case"misdirected_connection":Rr(r,"MISDIRECTED_CONNECTION"),r.dispatch({type:"change_region",payload:n.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":Rr(r,n.payload.reason.toUpperCase());break;default:r.dispatch(Fr(100)),a("disconnected",n.payload)}return;case A:{const[e]=n.payload.groups;return void a("availability_updated",{availability:N(e.status)})}case I:return Jr(a,n.payload.chat.users),void a(n.action,n.payload);case k:if(null===n.payload.event)return;return void a(n.action,n.payload);case w:return void a(n.action,n.payload);case E:return Jr(a,[n.payload.user]),void a(n.action,n.payload);default:return void a(n.action,n.payload)}},Wr=(e,t)=>{let{emit:a}=e,{payload:r}=t;switch(r.action){case S:return void r.resolve(x);case F:return Jr(a,r.payload.users),void r.resolve(r.payload);case I:return Jr(a,r.payload.chat.users),void r.resolve(r.payload);case k:return void r.resolve(r.payload.event);case y:return Jr(a,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},Yr=e=>{let{auth:t,customerDataProvider:a,emitter:r,socket:n,licenseId:s}=e;const{emit:i}=r,o=zr(t,a,s);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===fr(r)&&e.dispatch(Ur(t.entityId));const{page:n}=r;if(!n||!n.url)return;const s=wa({organization_id:r.organizationId}),i={session_fields:Ar(a||{}),group_id:r.groupId||0,page_url:n.url};return v(Ir(r)+"/action/"+f+"?"+s,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then(()=>{})}))(a,t,e.payload.sessionFields).catch(va);case"destroy":{const{payload:t}=e;switch(o.cancel(),n.destroy(),t.reason){case"manual":Rr(a,"SDK_DESTROYED");break;case"customer_banned":case"license_expired":case"product_version_changed":case"logged_out_remotely":Rr(a,"CONNECTION_LOST"),i("disconnected",t);break;default:i("disconnected",t)}return void r.off()}case"fail_all_requests":{const{reason:t,rejects:a}=e.payload,r={message:Hr[t],code:t};return void a.forEach(e=>{e(Tr(r))})}case"login_success":{const{dynamicConfig:t,customer:a,chats:r,greeting:n,availability:s}=e.payload,o={customer:a,availability:s,...n&&{greeting:n}};return Object.defineProperty(o,"__unsafeDynamicConfig",{value:t}),Object.defineProperty(o,"__unsafeChats",{value:r}),void i("connected",o)}case"pause_connection":{const{payload:t}=e;return n.disconnect(),void("manual"!==t.reason&&i("disconnected",t))}case"prefetch_token":return e.payload.fresh?void t.getFreshToken().catch(va):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(va);case"push_received":return e.payload.action===_||Br(a,e),void Qr({emit:i,store:a},e);case"push_response_received":return Br(a,e),void Wr({emit:i},e);case"reconnect":return Rr(a,"CONNECTION_LOST"),void n.reconnect(e.payload.delay);case"request_failed":{const{reject:t,error:a}=e.payload;return void t(Tr(a))}case"response_received":return Br(a,e),void Wr({emit:i},e);case"send_request":{const t=a.getState();if((e=>"destroyed"===gr(e))(t))return void Vr(a,e,{code:"SDK_DESTROYED",message:"SDK destroyed."});if(!yr(t)&&"login"!==e.payload.source)return void Vr(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 h:{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 i("customer_id",e.payload.id);case"socket_disconnected":return void i("disconnected",{reason:"connection_lost"});case"socket_connected":return void o.sendLogin(a);case"socket_recovered":if(!yr(a.getState()))return;return void i("connection_recovered");case"socket_unstable":if(!yr(a.getState()))return;return void i("connection_unstable");case"start_connection":return n.connect(),void a.dispatch(Pr());case"update_customer_page":if(!yr(a.getState()))return;return void jr(a,xr(g,e.payload)).catch(va);default:return}}},Zr=function(e,t){let{query:a={}}=void 0===t?{}:t;const r=wa(a),n=r?e+"?"+r:e,s=_a(),i=It({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}},Kr=function(e,t){let{query:a={},emitter:r=_a()}=void 0===t?{}:t;const n=Zr(e,{query:a}),s=(()=>{let e,t=va;return{cancel:()=>{clearTimeout(e),t=va},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}},Xr=(e,t)=>{const a=e.getState(),r=(Ir(a)+"/rtm/ws").replace(/^https/,"wss");return Kr(r,{query:{organization_id:a.organizationId},emitter:t})},$r=(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}=vr(r(),n);a({type:"request_failed",payload:{id:n,reject:i,error:j(s.error)}})})(e,t);switch(t.action){case U:case d: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}=vr(r(),n);a({type:"response_received",payload:{id:n,promise:s,resolve:i,...M({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}=vr(r(),n);a({type:"push_response_received",payload:{id:n,promise:s,resolve:i,...D(t)}})})(e,t)}((e,t)=>{const a=D(t);a&&e.dispatch({type:"push_received",payload:a})})(e,t)}),t.on("disconnect",()=>{Rr(e,"CONNECTION_LOST"),"connected"===gr(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},en=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()}}},tn=function(e,t){void 0===t&&(t=2);return(e/1024/1024).toFixed(t)+" MB"},an=(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 Tr({message:"The file is too big (max size is "+tn(10485760)+").",code:"TOO_BIG_FILE"})})(s);const c=n.getState(),d=wa({organization_id:c.organizationId}),p=Ir(c)+"/action/"+G+"?"+d,l={file:s};r.getToken().then(r=>{o?t(new Error("Upload cancelled.")):(a=en(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(Tr({message:r,code:a.toUpperCase()}))}))})}),cancel(){o||(o=!0,a&&a.cancel())}}},rn=e=>{let{env:t,organizationId:a,eventName:r}=e;return Promise.resolve()},nn=function(e,t,r){ra(e);const{autoConnect:n=!0,customerDataProvider:s,identityProvider:i,...o}=e,c=Cr({...o,env:t}),p=_a(),l=(e=>{const t=_a();let a=Xr(e,t);return{...Object.keys(a).reduce((e,t)=>(e[t]=function(){return a[t](...arguments)},e),{}),reinitialize(){a.disconnect(),a=Xr(e,t),a.connect()}}})(c),u="function"==typeof i?i():na(o,r);c.addSideEffectsHandler(Yr({emitter:p,socket:l,auth:u,customerDataProvider:s,licenseId:r})),$r(c,l);const m=jr.bind(null,c),h=()=>{c.dispatch({type:"start_connection"})},g=Object.freeze({acceptGreeting(e){let{greetingId:t,uniqueId:a}=e;return m(xr(H,{greeting_id:t,unique_id:a}))},auth:u,cancelGreeting(e){let{uniqueId:t}=e;return m(xr(B,{unique_id:t}))},cancelRate(e){const{chatId:t,properties:a=["score"]}=e;return g.listThreads({chatId:t}).then(e=>{let{threads:r}=e;if(!r.length)throw Tr({message:'There is no thread in "'+t+'".',code:"MISSING_CHAT_THREAD"});return g.deleteThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:a}})})},connect:h,deactivateChat(e){let{id:t}=e;return m(xr(J,{id:t}))},deleteChatProperties(e){let{id:t,properties:a}=e;return m(xr(Q,{id:t,properties:a}))},deleteEventProperties(e){let{chatId:t,threadId:a,eventId:r,properties:n}=e;return m(xr(W,{chat_id:t,thread_id:a,event_id:r,properties:n}))},deleteThreadProperties(e){let{chatId:t,threadId:a,properties:r}=e;return m(xr(Y,{chat_id:t,thread_id:a,properties:r}))},destroy(){c.dispatch(qr("manual"))},disconnect(){c.dispatch(Or("manual"))},getChat(e){let{chatId:t,threadId:a}=e;return m(xr(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)}})(g,t)},getCustomer:()=>m(xr(Z,{})),getForm(e){let{groupId:t,type:a}=e;return m(xr(K,{group_id:t,type:a}))},getPredictedAgent(e){void 0===e&&(e={});const{groupId:t}=e;return m(xr(X,"number"==typeof t?{group_id:t}:{}))},getUrlInfo(e){let{url:t}=e;return m(xr($,{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).")):m(xr(y,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))),listGroupStatuses(e){let{groupIds:t}=void 0===e?{}:e;return m(xr(ee,t?{group_ids:t}:{all:!0}))},listThreads:e=>m(xr(z,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 m(xr(te,{chat_id:t,seen_up_to:a}))},on:p.on,once:p.once,off:p.off,rateChat(e){const{chatId:t,rating:a}=e;return g.listThreads({chatId:t}).then(e=>{let{threads:r}=e;if(!r.length)throw Tr({message:'There is no thread in "'+t+'".',code:"MISSING_CHAT_THREAD"});return g.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:a}})})},resumeChat:a=>(rn({env:t,organizationId:e.organizationId,eventName:"chat_started"}),m(xr(U,(e=>{const t=kr(e);return{...t,chat:{...t.chat,id:e.chat.id}}})(a)))),sendEvent:e=>m((e=>{let{chatId:t,event:a,attachToLastThread:r}=e;const n={chat_id:t,event:wr(a)};return r&&(n.attach_to_last_thread=!0),xr(d,n)})(e)),sendRichMessagePostback(e){let{chatId:t,threadId:a,eventId:r,postback:n}=e;return m(xr(ae,{chat_id:t,event_id:r,thread_id:a,postback:n}))},setCustomerSessionFields(e){let{sessionFields:t}=e;return m(xr(R,{session_fields:Ar(t)}))},setSneakPeek:e=>{let{chatId:t,sneakPeekText:a}=e;const r=c.getState();_r(r,t)&&yr(r)&&m(xr(re,{chat_id:t,sneak_peek_text:a})).catch(va)},startChat:a=>(void 0===a&&(a={}),rn({env:t,organizationId:e.organizationId,eventName:"chat_started"}),m(xr(L,kr(a)))),updateChatProperties(e){let{id:t,properties:a}=e;return m(xr(ne,{id:t,properties:a}))},updateCustomer:e=>m(xr(V,Nr(e))),updateCustomerPage(e){c.dispatch({type:"update_customer_page",payload:a(["title","url"],e)})},updateEventProperties(e){let{chatId:t,threadId:a,eventId:r,properties:n}=e;return m(xr(se,{chat_id:t,event_id:r,thread_id:a,properties:n}))},updateThreadProperties(e){let{chatId:t,threadId:a,properties:r}=e;return m(xr(ie,{chat_id:t,thread_id:a,properties:r}))},uploadFile:e=>an({auth:u,store:c},e)});return n?h():c.dispatch({type:"check_goals",payload:{sessionFields:"function"==typeof s?s().sessionFields:{}}}),g},sn=(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]})),on=(e,t,a,r)=>{e.emit("on_"+t+"_survey_submitted",{form_data:sn(a,r)})},cn=(e,t)=>{e.emit("on_rating_comment_submitted",t)},dn=(e,t)=>{e.emit("on_rating_submitted",null===t?"none":t)},pn=(e,t,a)=>{e.emit("on_message",{text:t.properties.text,timestamp:a/1e3,user_type:"visitor",visitor_name:e.getSessionUser().name})},ln=e=>{const t=Object.keys(e);return Promise.all(b(e)).then(e=>ka(function(e,t,a){return t.map((t,r)=>e(t,a[r]))}(hr,t,e)))},un=e=>e.replace(/index[0-9]*_/gi,""),mn=(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:un(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(un(s),10)),i.options?r.fields[o]=ya(s)?s.map(un):un(s):r.fields[o]=s,r},{fields:{}})},hn="SET",gn=e=>{const{region:t,organizationId:a}=e;return"https://api"+(t?"-"+t:"")+(e=>e===pe?".staging":"")(a)+".livechatinc.com"},vn=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"),fn=(e,t)=>e.length?e+"\n"+t:t,_n=(e,t,a)=>{let{filledForm:r,groupId:n,licenseId:s,timeZone:i,page:o}=t;return e.getToken().then(e=>{const t=a.getApplicationState(),c=gn(t)+"/v2/tickets/new",d=(e=>{let{fields:t,customerId:a,groupId:r,licenseId:n,timeZone:s,page:i,additionalInfo:o}=e;const c={licence_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=fn(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=fn(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=fn(e.offline_message,r),e}case"question":case"textarea":{const a=t.answer,r=a?t.label+" "+a:t.label;return e.offline_message=fn(e.offline_message,r),e.ticket_message=fn(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=fn(e.offline_message,r),e.ticket_message=fn(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=fn(e.offline_message,r),e.ticket_message=fn(e.ticket_message,r),e}default:return e}},c)})({fields:r.fields,customerId:e.entityId,groupId:n,licenseId:s,timeZone:i,page:o,additionalInfo:t.config.features.ticketForm.additionalInfo});return v(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)}).then(e=>{if(e.ok)return e.json().then(e=>({...e,text:d.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})})},yn=(e,t)=>Aa((()=>{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")}})()),In=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 Sn={acceptingGreeting:!1,requestingPredictedWelcomeMessage:!1};const bn=(e,t,r,n)=>{const s=!t.getApplicationState("clientLimitExceeded")||!t.getApplicationState("embedded")||t.getApplicationState("actingAsDirectLink")||t.getApplicationState("isInCustomContainer"),i=((e,t,a)=>{let{organizationId:r,requestedGroup:n,group:s,region:i,uniqueGroups:o,autoConnect:c,mobile:d,identityProvider:p}=t;const l=e.getApplicationState("page"),u={organizationId:r,clientId:"c5e4f61e1a6c3b1521b541bc5c5a2ac5",mobile:d,region:i,page:m(["url","title"],l),referrer:l.referrer,autoConnect:c,application:{channelType:et(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&&!tt(t.properties)&&(a.sessionFields=Na(t.properties).length<=at?t.properties:ka(ua(t.properties).slice(0,at))),a}};o?u.groupId=s:null!==n&&(u.groupId=n);return nn(u,"production",a)})(t,{...e,autoConnect:s},n),o={sdk:i,store:t};let c=null,d={};!0===r.s&&t.setApplicationState({s:!0}),r.prechatForm&&t.updateView("Chat/prechat",Fa("prechat",r.prechatForm)),r.ticketForm&&t.updateView("Chat/ticketForm",xa(r.ticketForm)),r.__unsafeProperties.group.chatBoosters&&St(t,r.__unsafeProperties.group.chatBoosters);const p=()=>{"livechat"===t.getApplicationState("defaultWidget")&&(Ce(de,t)||t.getApplicationState().destroyed)&&(Tt(t),t.updateView("minimized",{hidden:!0}))},l=()=>{i.destroy(),t.setApplicationState({destroyed:!0}),p()},u=(e,a)=>{ke(t)&&!c&&(c=a||Ka(o,{chatId:e}))},h=e=>{const{id:a,active:r,group:n,thread:s,agent:i,events:o,properties:c}=e,d=!!c.queue;if(u(a),o.forEach(w),Jt(t,{id:a,active:r,thread:s,group:n,queued:d,agent:i,timestamp:c.timestamp}),rt(t)){const{position:e,waitingTime:a}=c.queue;t.updateView("Chat/queue",{numberInQueue:e,waitingTime:a})}},g=()=>t.getChat(de).properties.lastThread,v=e=>"good"===e?1:"bad"===e?0:null,f=e=>i.rateChat({chatId:le(t),rating:qa({comment:e.rateComment,score:v(e.rating)})}).then(()=>{t.updateChat(de,{properties:qa({rate:e.rating,rateComment:e.rateComment})})},va),_=e=>i.cancelRate({chatId:le(t),properties:e}).then(()=>{t.updateChat(de,{properties:e.reduce((e,t)=>("comment"===t?e.rateComment=null:"score"===t&&(e.rate=null),e),{})})},va),y=()=>Va(o,t.getApplicationState("group")).then(e=>{e.enabled&&(t.updateView("Chat/ticketForm",e.form),Ht(t,"groups_offline"))}),I=(e,a)=>{const r=(e=>{const{properties:{rate:a,rateComment:r}}=t.getChat(de),n={comment:"NOTHING",score:"NOTHING"};e.rating!==a&&(n.score=null===e.rating?"CANCEL":hn);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=hn),n})(a),{testGroup:n}=e.getApplicationState();if("NOTHING"===r.score&&"NOTHING"===r.comment)return Promise.resolve(null);jt({testGroup:n,chatRating:"CANCEL"===r.score?"canceled":a.rating,chatRatingSource:"postchat"});const s=[];return r.score===hn&&r.comment===hn?(s.push(f(a)),dn(e,a.rating),cn(e,a.rateComment)):"CANCEL"===r.score&&"CANCEL"===r.comment?s.push(_(["comment","score"])):("CANCEL"===r.score?s.push(_(["score"])):r.score===hn&&(s.push(f({rating:a.rating})),dn(e,a.rating)),"CANCEL"===r.comment?s.push(_(["comment"])):r.comment===hn&&(s.push(f({rateComment:a.rateComment})),cn(e,a.rateComment))),Promise.all(s.map(e=>e.catch(va)))},S=e=>{const{availability:t,postponedGreeting:a}=e.getApplicationState();"online"===t&&a&&Promise.resolve().then(()=>{e.setApplicationState({postponedGreeting:null}),Sn.acceptingGreeting=!0,$a(o,a).then(e=>{Sn.acceptingGreeting=!1,A(e)},()=>{Sn.acceptingGreeting=!1})})},b=()=>{const e=t.getChat(de).properties.group,a=t.getApplicationState("group");return"number"==typeof e?e:a},C=e=>{const r=er(t,e);if(t.getSessionUser().serverId!==r.id)return t.getUser(r.id)?(r.properties||_e("no_parsed_user_properties",new Error,{meta:JSON.stringify({user:e,parsedUser:r})}),void(r.properties.isBot&&t.updateUser(r.id,{properties:{isBot:!0}}))):void t.addUser(r);t.updateUser(t.getSessionUserId(),a(["name","email","properties"],r))},E=e=>{const a=In(t),r={};if("rate"in e&&a.rate!==e.rate&&(r.rate=e.rate),"rateComment"in e&&a.rateComment!==e.rateComment&&(r.rateComment=e.rateComment),"timestamp"in e&&a.timestamp!==e.timestamp&&(r.timestamp=e.timestamp),"queue"in e&&!Yt(a.queue,e.queue)){const{queue:a}=e,{ended:n}=t.getChat(de).properties;!n&&a?((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})})(t,{numberInQueue:a.position,waitingTime:a.waitingTime}):r.queued=!1}t.updateChat(de,{properties:r})},w=e=>{Zt(t,de,e),"message"===e.properties.serverType&&t.getApplicationState("readyState")!==st&&((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)})(t,e.id)},k=e=>{const a=Ba(t,e);a&&("form"!==a.type||a.properties.answered||"ask_for_email"!==a.properties.formId||(Math.random()<.01&&ue("ask_for_email_form_received",{}),t.hasEvent(de,it)&&t.removeEvent(de,it)),w(a),Te(t,"minimized")&&t.emit("render-minimized"))},A=e=>{const{author:a,event:r}=e;C(a);const{serverId:n,properties:{ended:s}}=t.getChat(de);s&&wt(t,de,{chatId:n});const i=$e(t,de);i&&t.removeEvent(de,i.id),ze("hideOnInit",t).enabled&&t.setApplicationState({wasActivated:!0}),Kt(t,r)},N=e=>{if(!Sn.requestingPredictedWelcomeMessage){if(!e.event.properties.isExitIntent&&t.getApplicationState("isExitIntentShadeDisplayed")&&(t.setApplicationState({isExitIntentShadeDisplayed:!1}),t.emit("remove_exit_intent_shade")),e.event.properties.isExitIntent){if(!ot(t,e.event.properties))return;return t.setApplicationState({postponedGreeting:e}),void t.emit("exit_intent_greeting_received")}if(Qe(t,"postchat"))t.setApplicationState({postponedGreeting:e});else if(ct(de,t)){if(!e.event.properties.accepted)return t.getApplicationState("greetingsMuted")&&!Te(t,"maximized")?(t.updateChat(de,{properties:{mutedGreeting:e}}),void A(e)):(Sn.acceptingGreeting=!0,$a(o,e).then(e=>{Sn.acceptingGreeting=!1,A(e)},()=>{Sn.acceptingGreeting=!1}));A(e)}}},q=e=>!!e&&-1!==e.indexOf(t.getApplicationState("group")),O=function(e){let{withSystemMessage:a=!1,reason:r="users_limit_reached"}=void 0===e?{}:e;if(t.setApplicationState({limitReached:!0,clientLimitExceededLifted:!1}),Vt(t),a){const e=dt(t)?"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.";Xt(t,de,{text:e})}dt(t)&&Ht(t,r)};i.on("thread_properties_deleted",e=>{let{threadId:a,properties:r}=e;a===g()&&"rating"in r&&T("score",r.rating)&&E({...In(t),rate:null})}),i.on("thread_properties_updated",e=>{let{threadId:a,properties:r}=e;a===g()&&"rating"in r&&E({...In(t),...La(r.rating)})}),i.on("queue_position_updated",e=>{let{threadId:a,queue:r}=e;a===g()&&E({...In(t),queue:Ua(r)})}),i.on("chat_transferred",e=>{if(!("groupIds"in e.transferredTo))return;const a=e.transferredTo.groupIds[0];t.updateChat(de,{properties:{group:a}}),e.queue&&E({...In(t),queue:Ua(e.queue)})}),i.on("customer_updated",e=>{const r=t.getSessionUserId();t.updateUser(r,a(["name","email"],e)),e.sessionFields&&t.setUserProperties(r,e.sessionFields),t.emit("customer_updated")}),i.on("event_properties_updated",e=>{let{chatId:a,threadId:r,eventId:n,properties:s}=e;if(a===le(t)&&r===g()){if("translation"in s){const e=t.getEventByServerId(de,n);if(!e)return;t.updateEvent(de,e.id,{properties:{translation:ja(s.translation)}})}if("bb9e5b2f1ab480e4a715977b7b1b4279"in s){const e=t.getEventByServerId(de,n);if(!e)return;const r=s.bb9e5b2f1ab480e4a715977b7b1b4279.message_reaction;t.updateEvent(de,e.id,{properties:{reaction:r}}),e.own&&(1520===t.getApplicationState("license")||Math.random<.1)&&ue("message_reaction_received",{reaction:r,messageType:e.type,chatId:a}),r&&t.emit("reaction_received",{event:e})}}}),i.on("event_updated",e=>{let{chatId:a,threadId:r,event:n}=e;if(a!==le(t)||r!==g())return;if(!me("properties.lc2.welcome_message",n))return;const s=t.getEventByServerId(de,n.id);n.authorId!==s.author&&(t.setEventData(de,s.id,{author:n.authorId}),t.recalculateTimeline(de)),n.text!==s.properties.text&&t.updateEvent(de,s.id,{properties:{text:n.text}})}),t.on("set_application_state",e=>{let{pageFocused:a}=e;he(t)&&a&&(t.setConnectionState(ge),i.connect())}),i.on("disconnected",e=>{let{reason:a}=e;switch(a){case"access_denied":case"identity_mismatch":case"too_many_connections":return _e(a),void l();case"customer_banned":case"license_not_found":case"unsupported_version":case"inactivity_timeout":return void(t.getApplicationState("pageFocused")||(t.setConnectionState(fe),i.disconnect()));case"users_limit_reached":return O({withSystemMessage:!1}),t.setConnectionState(ve),void B.then(()=>{P()});default:return"connection_timeout"===a&&Math.random()<=.1?bt("connection_timeout"):Math.random()<=1e-4&&bt("disconnected",{reason:a}),void t.setConnectionState(ge)}}),i.on("user_added_to_chat",e=>{let{chatId:a,user:r,present:n}=e;if(!n||a!==le(t)||t.getSessionUser().serverId===r.id)return;const s=ye(de,t);s&&s.id===r.id||(E({...In(t),queue:null}),Ct(t,r.id))}),i.on("user_removed_from_chat",e=>{let{chatId:a,userId:r}=e;if(a!==le(t))return;if(t.removeParticipant(de,r),t.getSessionUser().serverId===r)return;const n=ye(de,t);n&&n.id===r&&(t.getChat(de).properties.ended||Ct(t,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:le(e),event:{type:"custom",customId:"cyber-finger-snapshot-"+r,content:{url:a.url,screen:s}}}),ue("snapshot_sent",{chatId:le(e)})}).catch(va)})})(t,i),i.on("greeting_canceled",e=>{let{uniqueId:a}=e;const r=t.getEvents(de),n=Ie(e=>e.properties.uniqueId===a,r);n&&(Se(t)&&be(t)&&t.setApplicationState({greetingsMuted:!0}),t.removeEvent(de,n.id),setTimeout(()=>t.emit("render-minimized"),0))});const P=()=>{Ce(de,t)?Tt(t):t.getApplicationState("wasActivated")&&Te(t,"hidden")&&Et(t,!0),t.setApplicationState({readyState:Ee})},F=e=>{let{dynamicConfig:a,chatId:n}=e;const s=((e,t)=>{const{monitoring:a,chats:r}=e,n=Object.keys(r).find(e=>T(t,r[e].chat_ids));if(n!==a.id&&r[n].language_config_url){const e=r[n].language_config_url.split(".");return{groupId:parseInt(e[2]),language:e[1],localizationVersion:e[3]}}})(a.customer_groups,n);if(s)return{queueTemplate:tr(o,{...s,region:r.region}).then(e=>e.user_in_queue).catch(()=>{var e;return Promise.resolve(null==(e=t.getState().localization)?void 0:e.user_in_queue)})}},x=e=>{let{group:a}=e;if(nt(t))return;const r=ke(t)?a:b();return{postchatForm:Xa(o,r).catch(()=>({enabled:!1}))}},L=e=>{let{active:a,chatId:r,lastThreadId:n,becameInactive:s}=e;if(ke(t))return{fetchedHistory:Wa(o,r)};if(s){const e=t.getChat(de);return{fetchedThread:ar(o,{chatId:r,threadId:e.properties.lastThread})}}return a?{fetchedThread:ar(o,{chatId:r,threadId:n})}:void 0},U=e=>e.filter(e=>!(t.hasEvent(de,e.id)||"form"===e.type&&"ticket"===e.properties.formType)),j=e=>{U(e).forEach(w)},M=(e,a)=>{let{eagerFetchingMode:r,group:n}=e,{thread:s,eventsSeenUpToMap:i}=a;if(!s)return;const{id:o,active:c,agent:d,events:p,properties:l}=s,u=t.getChat(de),m=!c&&u.active,h=t.getLastEvent(de);Qe(t,"postchat")&&p.find(e=>e.properties.answered&&e.properties.formId===h.properties.formId)&&xt(t),t.updateChat(de,{active:c,properties:{ended:u.properties.ended,lastThread:o,group:n,eventsSeenUpToMap:i,...m&&{ended:!0,queued:!1,agentIsTyping:!1}}}),c&&Ct(t,d),E({rate:null,...l,queue:c&&"queue"in l?l.queue:null,...!r&&!c&&{rate:null,rateComment:null}}),j(p)},D=e=>{null===pt(t,de)&&t.updateChat(de,{properties:{hasMoreHistory:e}})};i.on("connected",e=>{var a;let{__unsafeDynamicConfig:r,__unsafeChats:n,greeting:s,availability:c,customer:l}=e;clearTimeout(J);const{limitReached:m,postponedGreeting:h}=t.getApplicationState();null!=h&&null!=(a=h.event.properties)&&a.isExitIntent&&t.emit("exit_intent_greeting_received"),m&&t.setApplicationState({limitReached:!1});const v=(e=>{const a=t.getSessionUser(),r={};return a.name&&e.name!==a.name&&(r.name=a.name),a.email&&e.email!==a.email&&(r.email=a.email),tt(a.properties)||Yt(a.properties,e.sessionFields)||(r.sessionFields=tt(e.sessionFields)?a.properties:ka(ua(a.properties).reduce((t,a)=>{let[r,n]=a;return r in e.sessionFields?t:[].concat(t,[[r,n]])},[]))),tt(r)?null:r})(l);let f;v&&(e=>{let{customerData:t,usedSessionFieldsNumber:a}=e;const r=e=>{i.updateCustomer(e).catch(e=>_e("update_customer_request_failed",e))};t.sessionFields?ua(t.sessionFields).slice(0,lt-a).reduce((e,t)=>(tt(e)||Ke(e).length>=at?e.push([t]):Ke(e).push(t),e),[]).map(ka).reduce((e,a,n)=>e.then(()=>r({...0===n&&t,sessionFields:a})),Promise.resolve()):r(t)})({customerData:v,usedSessionFieldsNumber:Na(l.sessionFields||{}).length}),C(l),"boolean"!=typeof t.getApplicationState().isReturning&&t.setApplicationState({isReturning:l.statistics.visitsCount>1}),t.setApplicationState({clientChatNumber:l.statistics.threadsCount||0,clientVisitNumber:l.statistics.visitsCount||0,clientLastVisitTimestamp:r.customer_data.last_visit_timestamp,clientPageViewsCount:l.statistics.pageViewsCount||0}),d={availability:c,greeting:we(t)&&s&&Ma(t,s)},Promise.resolve().then(()=>{if(!n.length)return;const[{id:e,active:a,hasUnreadEvents:s}]=n;ke(t)&&t.setApplicationState({hasUnseenEvents:s});const i=!a&&t.getChat(de).active;f={active:a,chatId:e,becameInactive:i,dynamicConfig:r},null===t.getChat(de).serverId&&t.setChatServerId(de,e);const{eagerFetchingMode:c}=t.getApplicationState();return a||Te(t,"maximized")||c?Da(o):void 0}).then(e=>e?(f.group=e.group,f.lastThreadId=e.lastThreadId,f.becameInactive?ln({chatSummary:e,...x(f),...L(f)}):e.active?ln({chatSummary:e,...F(f),...L(f)}):ln({chatSummary:e,...L(f)})):ln({})).then(e=>!!e.chatSummary&&e.chatSummary.active?e:ln({...e,maximizedDecisionActions:yt()?_t({active:!1,availability:d.availability,connected:!0,hasFakeAgentMessage:Ae(t,de)||!!d.greeting}):null})).then(e=>{let{queueTemplate:a,chatSummary:r,postchatForm:n,maximizedDecisionActions:s,...i}=e;const o=d;if(d={},a&&t.setLocalization({user_in_queue:a}),t.setApplicationState({availability:o.availability}),!r)return s&&wa(s),o.greeting?N(o.greeting):void 0;const c={chatId:r.id,group:r.group,eagerFetchingMode:t.getApplicationState().eagerFetchingMode};t.setApplicationState({eagerFetchingMode:!0});const p=g()&&r.lastThreadId!==g();if(ke(t)){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})})(t,e.threads)&&_e("threads_gap",null,{meta:JSON.stringify({stateLastThreadId:t.getChat(de).properties.lastThread,fetchedThreads:e.threads.map(e=>{let{id:t}=e;return t})})}),p&&wt(t,de,{chatId:t.getChat(de).serverId}),((e,t)=>{u(e.chatId,t.iterator),D(t.hasMore);const[a,[r]]=(n=-1,[(s=t.threads).slice(0,n),s.slice(n,s.length)]);var n,s;j(Ze(e=>{let{events:t}=e;return t},a)),M(e,{thread:r,eventsSeenUpToMap:t.eventsSeenUpToMap})})(c,e)}else i.fetchedThread&&(p&&r.active&&wt(t,de,{chatId:t.getChat(de).serverId}),M(c,i.fetchedThread));if(s&&wa(s),!r.active)if(n&&n.enabled)kt(t,n.form);else if(o.greeting)return N(o.greeting)}).then(()=>{const e=t.getConnectionState()===Ne;return t.setConnectionState(qe),p(),t.getChat(de).active&&Te(t,"hidden")&&Et(t,!0),e}).then(e=>{const a=t.getChat(de),{availability:r,readyState:n}=t.getApplicationState();n!==Ee&&B.then(()=>{P()}),e||!Oe(t)||!Pe(t)||a.active||"offline"!==r&&!a.properties.ended||At(t)}).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 Fe("connection_fetcher_internal_error");default:return void _e("connection_fetcher_error",e)}})}),Nt(r,t),"modern"===xe(t)&&"Homescreen"===t.getCurrentView()&&t.setCurrentView("Chat");const G=t.getApplicationState("defaultWidget");Le(t)&&"openwidget"!==G&&(Ue(t,Re),t.getCurrentView()||t.setCurrentView("Homescreen")),i.once("customer_id",e=>qt(t,e));const z=sa(t,Ee),R=e=>Ot(z,ca(e)),V=Ot(Pt(t,e=>ia(e,"maximized")),ga(Boolean),Ft(()=>({type:"maximized"})),oa),H=Ot(Pt(t,()=>t.getSessionUser().serverId),ga(Boolean),Ia(1),Sa),B=Ot(Pt(t,e=>e.localization),ga(e=>Object.keys(e).length>1),Ia(1),Sa);let J;s?(Math.random()<=.01&&"onLine"in navigator&&(J=setTimeout(()=>{navigator.onLine&&bt("unsuccessful_first_connect")},3e4)),t.setApplicationState({clientLimitExceededLifted:!0})):Promise.all([B,H]).then(e=>{let[a]=e;var n;t.setLocalization(a),n=r.onlineGroupIds,t.setApplicationState({availability:q(n)?"online":"offline"}),t.setConnectionState(ve),p(),P();const s=(o=document,ma(...["click","touchstart"].map(e=>ha(o,e))));var o;Ot(ma(s,V),Ia(1),ba(()=>{t.setApplicationState({clientLimitExceededLifted:!0}),i.connect()}))}),"ononline"in window&&(i.on("connection_unstable",()=>{t.setConnectionState(ge)}),i.on("connection_recovered",()=>{t.setConnectionState(qe)})),i.on("incoming_greeting",e=>{if(!we(t))return;const a=Ma(t,e);je(t)?N(a):d.greeting=a}),i.on("availability_updated",e=>{let{availability:a}=e;je(t)?t.setApplicationState({availability:a}):d.availability=a}),i.on("events_marked_as_seen",e=>{let{chatId:a,userId:r,seenUpTo:n}=e;if(a!==le(t))return;t.updateChat(de,{properties:{eventsSeenUpToMap:{...t.getChat(de).properties.eventsSeenUpToMap,[r]:n}}});const s=new Date(n).getTime();(t.getSessionUser().serverId===r?Me:De)(de,s,t).forEach(e=>{t.updateEvent(de,e.id,{seen:!0})})}),i.on("incoming_event",e=>{let{chatId:a,event:r}=e;if(a!==le(t))return;t.getChat(de).properties.lastThread!==r.threadId&&t.updateChat(de,{properties:{lastThread:r.threadId}}),"postchat"===me("properties.lc2.form_type",r)&&xt(t),Ge(de,t)&&_e("received_event_during_chat_starting"),k(r)}),i.on("chat_deactivated",e=>{let{chatId:a}=e;a===le(t)&&(()=>{const e=nt(t);Qt(t),e||Xa(o,b()).then(e=>{let{enabled:a,form:r}=e;a&&kt(t,r)},va)})()}),i.on("incoming_chat",e=>{wt(t,de,{chatId:e.chat.id});const a=Ga(t,e);h(a)});const Q=e=>{let{chatId:a,typingIndicator:r}=e;if(a!==le(t))return!1;const n=ye(de,t);return!!n&&n.id===r.authorId},W=Ot(Lt(i,"incoming_typing_indicator"),ga(e=>e.typingIndicator.isTyping&&Q(e)),Ft(()=>!0)),Y=Ot(Lt(i,"incoming_typing_indicator"),ga(e=>!e.typingIndicator.isTyping&&Q(e)),Ft(()=>!1)),Z=Ot(Lt(i,"incoming_event"),ga(e=>{let{chatId:a,event:r}=e;return a===le(t)&&r.authorId!==t.getSessionUser().serverId&&"system"!==r.authorId}));Ot(ma(Ot(W,ga(()=>!t.getChat(de).properties.messageDraft)),Y,Ot(Z,Ft(()=>!1))),ca(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)}()})(ur(!0),Ot(mr(1e4),Ft(()=>!1))):ur(!1)),Ut(),ba(e=>{t.updateChat(de,{properties:{agentIsTyping:e}})}));const K=()=>{c.next().then(e=>{let{value:a,done:r}=e;const n=t.getTimeline(de).length,s=U(Ze(e=>e.events.map(e=>({...e,seen:!0})),a));s.length>0&&t.addHistoryEvents(de,s);n!==t.getTimeline(de).length||r?t.updateChat(de,{properties:{loadingHistory:!1,hasMoreHistory:!r}}):K()},()=>{t.updateChat(de,{properties:{loadingHistory:!1}})})};Ot(Pt(t,()=>t.getChat(de).properties.loadingHistory),ga(Boolean),ba(K)),t.on("request_update_chat",e=>{let{resolve:a,reject:r,meta:n,data:{properties:s={},...o}}=e;if(s.rateComment){const{rateComment:e}=s;cn(t,e),i.rateChat({chatId:le(t),rating:{comment:e}}).then(a,r)}else if(void 0!==s.rate){dn(t,s.rate);const{testGroup:e}=t.getApplicationState();if(jt({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:le(t)}).then(()=>{t.updateChat(de,{properties:{rateComment:null}}),a()},r);i.rateChat({chatId:le(t),rating:{score:v(s.rate)}}).then(a,r)}else s.transcriptSentTo?i.updateThreadProperties({chatId:le(t),threadId:g(),properties:{routing:{transcript_email:s.transcriptSentTo}}}).then(a,r):!1===o.active&&i.deactivateChat({id:le(t)}).then(a,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=mn(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:ut(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(ya(e.options)){const t={type:X(e),id:e.serverName,label:ut(e.label)},a=Ta(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 Ta(e.serverName,c)?{type:X(e),id:e.serverName,label:ut(e.label),answer:c[e.serverName]}:{type:X(e),id:e.serverName,label:ut(e.label)}}),properties:{...n&&{lc2:{form_type:n}}}}};return void 0!==o.choosenGroup&&(d.choosenGroup=o.choosenGroup),d};let ee=0;const te=Pa(300,e=>{const a=le(t),r=new Date(e).toISOString().replace(/Z$/,"999Z");a&&i.markEventsAsSeen({chatId:a,seenUpTo:r}).catch(va)});t.on("request_update_event",e=>{const a=t.getEvent(de,e.id);if(e.data.seen)e.resolve(),ee=Math.max(ee,t.getEvent(de,e.id).timestamp),te(ee);else if("ticket"===a.properties.formType){const{answers:n}=e.data.properties,{fields:s}=a.properties,{fields:i}=mn(s,n),c=t.getApplicationState();let d=null,p=null,l=null;switch(ze("ticketForm",t).mode){case"helpdesk":{const e=za({license:c.license,group:c.group,pageUrl:c.page.url,form:(r=a.properties,Ya(Za(r))),answers:i});d=Re(e),p=t=>rr(t.id,e),l=$t;break}case"offline_message":{const{filledForm:e}=$(a,n);d=pe({customerStartingEvent:e,group:c.group}).then(e=>(ie(e),e)),p=t=>{var a,r;const n=ce(e=>"subject"===e.type,e.fields);return{id:t.thread,text:vn(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}}},l=(e,t,a)=>{a()};break}default:{const{filledForm:e}=$(a,n),{timeZone:r}=(new Intl.DateTimeFormat).resolvedOptions();d=_n(o.sdk.auth,{filledForm:e,groupId:c.group,licenseId:c.license,timeZone:"string"!=typeof r||/^Etc\//.test(r)||-1===r.indexOf("/")&&"UTC"!==r?null:r,page:c.page.url},t),p=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}}},l=(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}}d.then(r=>{const{fields:n}=a.properties;((e,t,a,r)=>{let{id:n,text:s,visitor:{email:i,name:o},subject:c}=r;const d={form_data:sn(t,a),ticket_id:n,text:s,visitor_name:o,visitor_email:i};c&&(d.ticket_subject=c),e.emit("on_ticket_created",d)})(t,n,i,p(r)),e.resolve(),Mt(t,e.id)},a=>{l(a,t.localize,e.reject)})}else if("prechat"===a.properties.formType){const{answers:r}=e.data.properties,{fields:n}=a.properties;((e,t,a)=>{on(e,"prechat",t,a)})(t,n,mn(n,r).fields);const{filledForm:s,choosenGroup:i}=$(a,r),c=t=>{switch(t.code){case"SERVICE_UNAVAILABLE":return void O({withSystemMessage:!0});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=()=>pe({customerStartingEvent:s,agentFakeEvent:$e(t,de),group:i}).then(e=>{ie(e)}).catch(e=>c(e));if(void 0!==i)return void Ra(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(a=>{const r=t.getApplicationState().group;t.setApplicationState({group:i});if(!("online"===a))return Oe(t)?void d().then(()=>{t.setApplicationState({availability:"offline"})},c):void Promise.all([Va(o,i),r!==i&&Ha(o,{groupId:i})].filter(Boolean)).then(e=>{let[a,r]=e;a.enabled?(Gt(t,"ticketForm",r&&{mode:r}),t.updateView("Chat/ticketForm",a.form)):Dt(t,"ticketForm"),t.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"===a.properties.formType){const{answers:r}=e.data.properties,{fields:n}=a.properties;((e,t,a)=>{on(e,"postchat",t,a)})(t,n,mn(n,r).fields);const{filledForm:s}=$(a,r);i.sendEvent({chatId:le(t),event:s,attachToLastThread:!0}).then(a=>{e.resolve(),Mt(t,e.id,Ba(t,a)),"rating"in r?I(t,r).finally(()=>S(t)):S(t)}).catch(a=>{if(a.message===Ve)return wt(t,de,{forced:!0}),_t(Aa()).then(e=>wa(e));e.reject()})}else if("ask_for_email"===a.properties.formId){const{answers:r}=e.data.properties,{filledForm:n}=$(a,r);i.sendEvent({chatId:le(t),event:n,attachToLastThread:!0}).then(t=>{e.resolve(),k(t)}).catch(()=>e.reject())}var r}),t.on("request_customer_token",()=>{o.sdk.auth.getToken().then(e=>t.emit("customer_token_response",e)).catch(e=>t.emit("customer_token_error",e))}),t.on("request_update_user",e=>{let{resolve:a,id:r,data:{properties:n,...s}}=e;if(t.getSessionUserId()===r){if(je(t)){const e=qa({name:s.name,email:s.email,sessionFields:n});i.updateCustomer(e).catch(e=>_e("update_customer_request_failed",e))}a()}}),t.on("request_set_user_properties",e=>{let{resolve:a,id:r,properties:n}=e;t.getSessionUserId()===r&&(je(t)&&i.setCustomerSessionFields({sessionFields:n}).catch(va),a())});const ae=(e,a)=>{let{id:r,timestamp:n,threadId:s}=a;pn(t,e,n),t.setEventServerId(de,e.id,r),t.updateEvent(de,e.id,{delivered:!0,serverTimestamp:n,thread:s})},re=e=>{t.updateEvent(de,e.id,{failed:!0})};t.on("send_file_events",()=>{t.setApplicationState({isSendingFileEvents:!0});const e=[].concat(He(t));e.filter(e=>e.properties.failed).forEach(e=>t.updateEvent(de,e.id,{properties:{canceled:!0}}));const a=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:le(t),event:{type:"file",customId:e.id,url:e.properties.serverUrl,alternativeText:e.properties.alternativeText}}).then(a=>{t.updateEvent(de,e.id,{delivered:!0}),k(a),Promise.resolve().then(()=>{"image"===e.properties.fileType&&URL.revokeObjectURL(e.properties.url)});const r=e.properties.uploadSource;("clipboard"===r||Math.random()<.1)&&ue("file_upload_sent",{uploadSource:r})}));Promise.all(a).finally(()=>{t.setApplicationState({isSendingFileEvents:!1})})}),t.on("exit_intent_detected",()=>{S(t)});const ne={};t.on("cancel_upload",e=>{let{eventId:a}=e;const r=t.getEvent(de,a);t.updateEvent(de,a,{properties:{canceled:!0}}),ne[a]&&ne[a].cancel(),Promise.resolve().then(()=>{"image"===r.properties.fileType&&URL.revokeObjectURL(r.properties.url)})}),t.on("add_message_reaction",e=>{let{eventId:a,reaction:r}=e;const n=t.getEvent(de,a);i.updateEventProperties({chatId:le(t),threadId:n.thread,eventId:n.serverId,properties:{bb9e5b2f1ab480e4a715977b7b1b4279:{message_reaction:r}}}),(1520===t.getApplicationState("license")||Math.random()<.1)&&ue("message_reaction_sent",{reaction:r,messageType:n.type,chatId:le(t)})});const se=e=>{let{event:a,meta:r}=e;if("file"===a.type){const e=i.uploadFile({file:r.file,onProgress:e=>t.updateEvent(de,a.id,{properties:{progress:e}})});return ne[a.id]=e,e.promise.then(e=>{let{url:r}=e;t.updateEvent(de,a.id,{properties:{serverUrl:r,finished:!0}})},e=>{"UPLOAD_CANCELED"!==e.code&&t.updateEvent(de,a.id,{properties:{failed:!0,failReason:yn(t,e)}})}).finally(()=>{delete ne[a.id]})}if(T(a.type,["message","emoji"]))return i.sendEvent({chatId:le(t),event:ir(t,a)}).then(e=>{ae(a,e)},()=>{re(a)});if("custom_system_message"===a.type)return i.sendEvent({chatId:le(t),event:ir(t,a)}).then(k,va);if("rich_message_postback"===a.type){const{eventId:e,postback:r}=a.properties;return i.sendRichMessagePostback({chatId:le(t),threadId:t.getEvent(de,e).thread,eventId:e,postback:r}).catch(va)}if("url_preview"===a.type){const e=i.getUrlInfo({url:a.properties.url}).catch(()=>null);return i.sendEvent({chatId:le(t),event:ir(t,a)}).then(r=>{ae(a,r),e.then(e=>{const{title:n,description:s,url:o,imageUrl:c}=e;return t.updateEvent(de,a.id,{properties:{title:n,description:s,image:{url:c,link:o}}}),i.updateEventProperties({chatId:le(t),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(va)},()=>{re(a)})}},ie=e=>{let{events:a,...r}=e;const n=t.getSessionUser().id;a.forEach(e=>{t.getEvent(de,e.id)?e.author===n?((e,t)=>{const a=t.timestamp;"message"===t.properties.serverType&&pn(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)})(t,e):e.properties.welcomeMessage||e.properties.invitation?((e,t)=>{const a=$e(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&&(Ct(e,t.author),e.recalculateTimeline(de))})(t,e):w(e):w(e)}),h({...r,events:[]})},pe=e=>(t.updateChat(de,{properties:{starting:!0}}),Ja(o,e).then(e=>(t.updateChat(de,{properties:{starting:!1}}),e),a=>{if(a.message===Ve)return wt(t,de,{forced:!0}),pe(e);throw t.updateChat(de,{properties:{starting:!1}}),a}));let vt=[];const ft=e=>{if(Ge(de,t))return void vt.push(e);const a=()=>{ht(t)&&aa(t)};t.getChat(de).active?e&&se(e).then(a):pe({...e&&{customerStartingEvent:e.event},agentFakeEvent:$e(t,de)}).then(e=>{ie(e);const t=vt;vt=[],t.forEach(se),a()},a=>{t.updateEvent(de,e.event.id,{failed:!0});const r=vt;switch(vt=[],r.forEach(e=>{t.updateEvent(de,e.id,{failed:!0})}),a.code){case"SERVICE_UNAVAILABLE":return void O({withSystemMessage:!0,reason:"service_unavailable"});case"CUSTOMER_BANNED":return void l();case"GROUPS_OFFLINE":return void y();default:return}})};t.on("start_thread",ft),t.on("send_event",ft),t.on("request_cancel_greeting",e=>{Te(t,"maximized")&&Et(t),i.cancelGreeting({uniqueId:e})});const _t=e=>{let{active:a,availability:r,connected:n,hasFakeAgentMessage:s,startChatAgainPending:i,limitReached:c,hasMutedGreeting:d}=e;return fa(()=>c||a?{type:"nothing"}:"offline"===r?Oe(t)?i&&Pe(t)?{type:"show_prechat"}:{type:"nothing"}:Be(t)?Je(t)?{type:"nothing"}:{type:"show_ticket_form"}:{type:"hide_prechat_form"}:d?{type:"accept_muted_greeting"}:s?{type:"hide_ticket_form"}:Te(t,"maximized")?Pe(t)&&Qe(t,"prechat")?{type:"show_prechat"}:!n||Sn.acceptingGreeting?{type:"nothing"}:(Sn.requestingPredictedWelcomeMessage=!0,B.then(()=>Qa(o)).then(e=>{let{agent:a,message:r,groupHasQueue:n}=e;Sn.requestingPredictedWelcomeMessage=!1;const s=[{type:"hide_ticket_form"},{type:"predicted_welcome_message",payload:{agent:a,message:r,groupHasQueue:n}}];return Pe(t)&&s.push({type:"show_prechat"}),s},e=>{if(Sn.requestingPredictedWelcomeMessage=!1,"offline"===t.getApplicationState("availability"))return{type:"nothing"};switch(e.code){case"GROUP_OFFLINE":return{type:"nothing"};default:return{type:"panic"}}})):{type:"nothing"}).then(oe)},yt=()=>{const e=t.getChat(de);return(!e.active||e.properties.queued)&&!e.properties.starting&&!e.properties.ended},It=()=>{t.updateView("minimized",{hidden:!1})};Ot(V,ba(It));const ra=Ot(Pt(t,e=>e.application.destroyed),ga(Boolean),Ia(1),oa);Ot(z,Ia(1),Ft(()=>{const e=zt(m(["license","group","requestedGroup"],t.getApplicationState()));return[We("session")&&window.sessionStorage.getItem(e),e]}),ga(e=>{let[t]=e;return Boolean(t)}),ba(e=>{let[a,r]=e;(e=>{let a;const r=g();try{a=JSON.parse(e)}catch(n){return}a&&r&&a.forEach(e=>{t.getEvent(de,e.id)||Zt(t,de,{thread:r,id:e.id,type:"file",own:!0,author:t.getSessionUser().id,delivered:!1,failed:!1,properties:e})})})(a),window.sessionStorage.removeItem(r)}));const[na,_a]=Ot(Pt(t,e=>e.application.availability),da(1),Ca,Ft(e=>({type:e})),(Ea=e=>{let{type:t}=e;return"online"===t},function(e){return[ga(Ea)(e),ga((t=Ea,function(e){return!t(e)}))(e)];var t}));var Ea;Ot(R(()=>_a),ga(yt),ba(()=>{!Qe(t,"prechat")&&Oe(t)&&Pe(t)&&"offline"===t.getApplicationState().availability&&!t.getChat(de).active&&At(t),Qe(t,"prechat")&&(Vt(t),Oe(t)&&At(t)),p()})),Ot(na,ga(yt),ba(()=>{t.getView("minimized").hidden&&It(),!Be(t)&&mt(t)&&Te(t,"hidden")&&Et(t)})),Ot(R(()=>{if(!Pe(t))return lr;const e=Pt(t,()=>Qe(t,"prechat"));return Ot(ma(V,e),ga(()=>Qe(t,"prechat")),ca(()=>{const e=t.getLastEvent(de);return Ot(pa(((e,t)=>{const a=ea(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):sr(e,{groupIds:n}).then(e=>ta(a,{...r,options:r.options.map(t=>({...t,meta:{online:"online"===e[t.groupId]}}))},t))})(o,e.properties.fields)),cr)}))}),ga(e=>e&&Qe(t,"prechat")),ba(e=>{const{id:a}=t.getLastEvent(de);return t.updateEvent(de,a,{properties:{fields:e}})}));const wa=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:a,message:r,groupHasQueue:n}=e.payload;return C(a),Ct(t,a.id),void(Pe(t)||(w(r),t.updateChat(de,{properties:{fakeAgentMessageId:r.id,groupHasProbableQueue:n}})))}case"show_ticket_form":return e.payload&&t.updateView("Chat/ticketForm",e.payload),void Ht(t,"offline");case"hide_prechat_form":return void Vt(t);case"hide_ticket_form":return void(Qe(t,"ticket")&&Rt(t));case"show_prechat":return void At(t);case"accept_muted_greeting":return void(()=>{const e=t.getLastEvent(de),{mutedGreeting:a}=t.getChat(de).properties;t.updateEvent(de,e.id,{seen:!0}),Sn.acceptingGreeting=!0,$a(o,a).then(e=>{let{event:a}=e;t.updateChat(de,{properties:{mutedGreeting:void 0}}),Wt(t,a)},va).finally(()=>{Sn.acceptingGreeting=!1})})();default:return}}),Aa=()=>{const e=t.getChat(de);return{active:e.active,availability:t.getApplicationState("availability"),connected:je(t),hasFakeAgentMessage:Ae(t,de),startChatAgainPending:e.properties.startChatAgainPending,limitReached:t.getApplicationState("limitReached"),hasMutedGreeting:!!e.properties.mutedGreeting}};var or;Ot(R(()=>Ot(Pt(t,()=>t.getChat(de).properties.startChatAgainPending),ga(Boolean))),ca(()=>pa(_t(Aa()))),ba(e=>{wt(t,de,{chatId:t.getChat(de).serverId}),wa(e)})),Ot(ma(V,na,_a),(or=z,function(e){return function(t,a){if(0===t){var r,n,s=!1;e(0,(function(e,t){0===e&&(r=t,or(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)}))}}}),ga(()=>yt()&&t.getApplicationState().eagerFetchingMode),la(()=>pa(_t(Aa()))),Ye(ra),ba(wa)),Ot(R(()=>Ot(V,ga(()=>!t.getApplicationState().eagerFetchingMode))),ca(()=>{const e=t.getChat(de).serverId;return pa(Promise.all([_t(Aa()),ke(t)&&e&&Wa(o,e)].filter(Boolean)))}),Ye(ra),ba(e=>{let[a,r]=e;if(r){u(t.getChat(de).serverId,r.iterator),D(r.hasMore);const e=Ze(e=>{let{events:t}=e;return t},r.threads).filter(e=>!t.hasEvent(de,e.id));e.length>0&&t.addHistoryEvents(de,e),t.updateChat(de,{properties:{lastThread:r.threads.length?Ke(r.threads).id:null,eventsSeenUpToMap:r.eventsSeenUpToMap}})}t.setApplicationState({eagerFetchingMode:!0}),wa(a)})),Ot(Pt(t,e=>e.application.page),da(1),Ye(ra),ba(e=>{let{url:t,title:a}=e;i.updateCustomerPage({url:t,title:a})}));const dr={indicatorNotAnimated:-1};Ot(Pt(t,()=>t.getUnseenCount(de)>0),ga(Oa),ba(()=>{clearTimeout(dr.indicatorNotAnimated),t.updateView("minimized",{...t.getView("minimized"),animateUnseenEventIndicator:!0}),t.emit("render-minimized"),dr.indicatorNotAnimated=setTimeout(()=>{t.updateView("minimized",{...t.getView("minimized"),animateUnseenEventIndicator:!1}),t.emit("render-minimized")},500)}));const pr=Pa(gt,e=>{i.setSneakPeek({chatId:le(t),sneakPeekText:e})});Ot(Pt(t,e=>e.application.messageDraft),Ut(),ga(()=>t.getChat(de).active),ba(e=>{"string"!=typeof e?pr.cancel():pr(e)})),Xe(t)&&Ot(V,Ia(1),ba(()=>{var e;const a=t.getApplicationState("license"),r=null!=(e=t.getApplicationState("group"))?e:0;Bt(()=>nr(a,r),{retriesCount:10,minTime:1e3,maxTime:15e3}).then(e=>{t.updateView("HelpdeskTicketForm",{helpdeskFormConfiguration:e,isLoading:!1})},e=>{t.updateView("HelpdeskTicketForm",{isLoading:!1,hasFetchingError:!0}),_e("helpdesk_form_fetching_failed",e)})})),Ot(Pt(t,()=>t.getConnectionState()),ga(e=>e===ge),ba(()=>{t.setApplicationState({disableSendingMessage:!0}),Ot(ma(Ot(mr(8e3),Ft(()=>({reason:"timeout"}))),Ot(Lt(t,"before_send_message"),Ft(()=>({reason:"message_send_attempt"}))),Ot(Pt(t,()=>t.getConnectionState()),ga(e=>e!==ge),Ft(()=>({reason:"connection_state_change"})))),Ia(1),ba(e=>{let{reason:a}=e;t.setApplicationState({disableSendingMessage:!1}),t.getConnectionState()===ge&&t.setConnectionState(Ne),Ot(Pt(t,()=>t.getConnectionState()),ga(e=>e===qe),Ia(1),ba(()=>{Math.random()<.1&&ue("scheduled_reconnecting_ended",{reason:a})}))}))}))};export{bn as default};