@livechat/customer-sdk 3.1.2 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,(function(e){"use strict";function t(){return(t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}(),c=function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)!==a?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,s=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},u=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}var h=Array.isArray;function v(e,t){return Object.keys(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function _(e){return e}function y(e){var t=Math.random().toString(36).substring(2);return l(t,e)?y(e):t}function m(e,t){return-1!==t.indexOf(e)}function g(){}function I(e){return Object.keys(e).map((function(t){return e[t]}))}function E(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}var b=function(e){return Object.keys(e).map((function(t){return[t,e[t]]}))},T=function(e,t){return e===t?0:t>e?-1:1};var w=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){var t=e.match(O);return t&&t[0]},k=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},P=(RegExp("^[\0-]*("+k("javascript")+"|"+k("data")+"):","i"),/^((http(s)?:)?\/\/)/);function C(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},s=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:s,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n})),n(s())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}var N=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},x=function(e,t){if("identity_exception"in e)throw N({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw N({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),licenseId:t}},j="https://accounts.livechatinc.com",D=function(e,t){return""+("production"===t?j:j.replace("accounts.","accounts."+t+"."))+function(e){return(e.uniqueGroups?"/licence/g"+e.licenseId+"_"+e.groupId:"")+"/customer"}(e)},q="https://accounts.livechatinc.com",R="@livechat/customer-auth",A=function(e,t){var n=function(e,t){return{license_id:e.licenseId+"",flow:"button",response_type:"token",client_id:e.clientId,redirect_uri:t,post_message_uri:t,state:R}}(e,S(window.location+"")+window.location.pathname),r=document.createElement("iframe");return r.style.display="none",r.setAttribute("src",D(e,t)+"?"+w(n)),r};function M(e,t){var n=e.licenseId,r=function(e){return"production"===e?q:q.replace("accounts.","accounts."+e+".")}(t);return new Promise((function(o,a){var i=A(e,t),c=function(){var e,t;(t=(e=i).parentNode)&&t.removeChild(e),window.removeEventListener("message",u,!1)},s=setTimeout((function(){c(),a(N({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}),15e3),u=function(e){var t=e.data;if(e.origin===r&&function(e){return e&&e.state===R}(t)){clearTimeout(s),c();try{o(x(t,n))}catch(e){a(e)}}};window.addEventListener("message",u,!1),new Promise((function(e){!function t(){document.body?e(document.body):setTimeout(t,100)}()})).then((function(e){e.appendChild(i)}))}))}var U=function(e){if("number"!=typeof e.licenseId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { licenseId, clientId }.")},L=function(e,t){U(e);var n="@@lc_auth_token:"+e.licenseId+(e.uniqueGroups?":"+e.groupId:""),r=null,o=null,a=u(n).then((function(e){null!==a&&(a=null,e&&(o=JSON.parse(e)))})),i=function(){return r=function(e,t){return e.uniqueGroups?M(e,t):C(D(e,t)+"/token",{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,license_id:e.licenseId,redirect_uri:S(window.location+"")+window.location.pathname})}).then((function(e){return e.json()})).then((function(t){return x(t,e.licenseId)}))}(e,t).then((function(e){return r=null,s(n,JSON.stringify(e)),o=e,e}),(function(e){throw r=null,e}))};return{getFreshToken:i,getToken:function e(){return r||(o&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(o)?Promise.resolve(o):a?a.then(e):i())},hasToken:function e(){return a?a.then(e):Promise.resolve(!!o)},invalidate:function(){return o=null,a=null,d(n)}}};var H=function(){var e,r={all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map((function(e){e(n)})),(r=e.get("*"))&&r.slice().map((function(e){e(t,n)}))}},o=r.all,a=n(r,["all"]);return t({},a,{off:function(e,t){e?a.off(e,t):o.clear()},once:function(e,t){a.on(e,(function n(r,o){a.off(e,n),t(r,o)}))}})},F="change_region",G="check_goals",Y="destroy",V="fail_all_requests",z="login_success",B="pause_connection",J="prefetch_token",K="push_received",X="push_response_received",W="reconnect",Q="request_failed",Z="response_received",$="send_request",ee="set_chat_active",te="set_self_id",ne="socket_connected",re="socket_disconnected",oe="socket_recovered",ae="socket_unstable",ie="start_connection",ce="update_customer_page",se="CONNECTION_LOST",ue="IDENTITY_MISMATCH",de="MISDIRECTED_CONNECTION",pe="MISSING_CHAT_THREAD",le="SDK_DESTROYED",fe="accept_greeting",he="cancel_greeting",ve="delete_chat_properties",_e="delete_event_properties",ye="delete_thread_properties",me="get_chat",ge="get_customer",Ie="get_form",Ee="get_predicted_agent",be="get_url_info",Te="list_chats",we="list_group_statuses",Oe="list_threads",Se="login",ke="mark_events_as_seen",Pe="resume_chat",Ce="send_event",Ne="send_rich_message_postback",xe="send_sneak_peek",je="set_customer_session_fields",De="start_chat",qe="update_chat_properties",Re="update_customer",Ae="update_customer_page",Me="update_event_properties",Ue="update_thread_properties";var Le=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),He=function(){return Math.random().toString(36).substring(7).split("").join(".")},Fe={INIT:"@@redux/INIT"+He(),REPLACE:"@@redux/REPLACE"+He(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+He()}};function Ge(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Ye(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(Ye)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,s=!1;function u(){c===i&&(c=i.slice())}function d(){if(s)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(s)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return u(),c.push(e),function(){if(t){if(s)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Ge(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(s)throw Error("Reducers may not dispatch actions.");try{s=!0,a=o(a,e)}finally{s=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Fe.REPLACE})}function h(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[Le]=function(){return this},e}return l({type:Fe.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[Le]=h,r}function Ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ze(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Be(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ze(n,!0).forEach((function(t){Ve(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ze(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Je(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function Ke(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(o)}));return Be({},n,{dispatch:r=Je.apply(void 0,a)(n.dispatch)})}}}function Xe(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var We="connected",Qe="destroyed",Ze="disconnected",$e="agent",et="customer",tt=function(e){return e.connection.status},nt=function(e,t){return e.requests[t]},rt=function(e){return e.users.self.id},ot=function(e,t){var n=e.chats[t];return!!n&&n.active},at=function(e){return tt(e)===We},it=function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return 1520===e.licenseId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"},ct=function(e){return it(e)+"/v3.3/customer"},st=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},ut=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},dt=function(e){var n,r,o;return r=e,(n={}).change_region=function(e,n){return t({},e,{region:n.region})},n.destroy=function(e){return ut(Qe,e)},n.login_success=function(e){return ut(We,e)},n.pause_connection=function(e){return ut("paused",e)},n.request_failed=st,n.response_received=st,n.push_response_received=st,n.send_request=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n.set_chat_active=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n.set_self_id=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n.socket_disconnected=function(e){var n=tt(e);return t({},ut(n===Ze?Ze:"reconnecting",e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),l(t.type,o)?o[t.type](e,t.payload):e}};function pt(e){var n=_,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach((function(e){e(r,t)})),o}}};return t.add=function(t){e.push(t)},t}(),o=Ye(dt(function(e){var n=e.application,r=e.licenseId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,s=void 0===c?null:c,u=e.region,d=void 0===u?null:u,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,h=void 0!==f&&f,v=e.mobile,_=void 0!==v&&v;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"3.1.2"}),licenseId:r,env:i,groupId:a,chats:{},connection:{status:Ze},page:s,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:h,mobile:_}}(e)),n(Ke(r)));return o.addSideEffectsHandler=r.add,o}function lt(e){var t=e.code,n=Error(e.message);return n.code=t,n}var ft="customer_banned",ht="product_version_changed",vt="chat_deactivated",_t="chat_properties_deleted",yt="chat_properties_updated",mt="chat_transferred",gt="customer_disconnected",It="customer_page_updated",Et="customer_side_storage_updated",bt="customer_updated",Tt="event_properties_deleted",wt="event_properties_updated",Ot="event_updated",St="events_marked_as_seen",kt="greeting_accepted",Pt="greeting_canceled",Ct="incoming_chat",Nt="incoming_event",xt="incoming_greeting",jt="incoming_multicast",Dt="incoming_rich_message_postback",qt="incoming_typing_indicator",Rt="queue_position_updated",At="thread_properties_deleted",Mt="thread_properties_updated",Ut="user_added_to_chat",Lt="user_removed_from_chat",Ht=Object.freeze({__proto__:null,CHAT_DEACTIVATED:vt,CHAT_PROPERTIES_DELETED:_t,CHAT_PROPERTIES_UPDATED:yt,CHAT_TRANSFERRED:mt,CUSTOMER_DISCONNECTED:gt,CUSTOMER_PAGE_UPDATED:It,CUSTOMER_SIDE_STORAGE_UPDATED:Et,CUSTOMER_UPDATED:bt,EVENT_PROPERTIES_DELETED:Tt,EVENT_PROPERTIES_UPDATED:wt,EVENT_UPDATED:Ot,EVENTS_MARKED_AS_SEEN:St,GREETING_ACCEPTED:kt,GREETING_CANCELED:Pt,INCOMING_CHAT:Ct,INCOMING_EVENT:Nt,INCOMING_GREETING:xt,INCOMING_MULTICAST:jt,INCOMING_RICH_MESSAGE_POSTBACK:Dt,INCOMING_TYPING_INDICATOR:qt,QUEUE_POSITION_UPDATED:Rt,THREAD_PROPERTIES_DELETED:At,THREAD_PROPERTIES_UPDATED:Mt,USER_ADDED_TO_CHAT:Ut,USER_REMOVED_FROM_CHAT:Lt}),Ft="file",Gt="form",Yt="filled_form",Vt="message",zt="rich_message",Bt="system_message",Jt="custom",Kt=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||h(t)||(n.properties=e.properties),n},Xt=function(e){switch(e.type){case Vt:var r=t({},Kt(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case Ft:return t({},Kt(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case Yt:return t({},Kt(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case Bt:var o=t({},Kt(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case Jt:var a=t({},Kt(e),{type:e.type});return e.content&&(a.content=e.content),a}},Wt=function(e){var t=e.active,n=e.chat,r=e.continuous,o={active:void 0===t||t,chat:{}};if("boolean"==typeof r&&(o.continuous=r),!n)return o;var a=n.access,i=n.thread,c=n.properties;return a&&a.groupIds&&(o.chat.access={group_ids:a.groupIds}),c&&(o.chat.properties=c),i&&(o.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(Xt)),r&&(t.properties=r),t}(i)),o},Qt=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},Zt=function(e){var t=E(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=Qt(e.sessionFields)),t},$t=function(e){return{type:Y,payload:{reason:e}}},en=function(e){return{type:B,payload:{reason:e}}},tn=function(e){return void 0===e&&(e=!1),{type:J,payload:{fresh:e}}},nn=function(e){return{type:W,payload:{delay:e}}},rn=function(e,n,r){return{type:$,payload:t({request:{action:e,payload:n}},r&&{source:r})}},on=function(e,t){return{type:ee,payload:{id:e,active:t}}},an=function(e){return{type:te,payload:{id:e}}},cn=function(e,t){t.payload.id=y(e.getState().requests);var n=Xe(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},sn=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,o)},reset:function(){c=0}}},un=function(e){var t=e.getState();return"side_storage_"+t.licenseId+(t.uniqueGroups?":"+t.groupId:"")},dn=function(e){return u(un(e)).catch(g).then((function(e){return JSON.parse(e||"{}")})).catch((function(){return{}}))},pn=function(e,t,n){var r=e.slice(0),o=!1;return function e(a){var i,c=r.shift();(i=function(){return c(a)},new Promise((function(e){e(i())}))).then((function(n){o||(r.length?e(n):t(n))}),(function(e){o||n(e)}))}(),{cancel:function(){o=!0}}},ln=function(e,t,n){return cn(e,rn(t,n,"login"))};function fn(e,n){var r,o,a=null,i={min:300,max:6e4,jitter:.3},c=sn(i),s=sn(t({},i,{min:1e3})),u=c,d=function(e){return r.dispatch($t(e))},p=function(){return r.dispatch(nn(u.duration()))},l=function(){return Promise.all([e.getToken(),dn(r)])},f=function(e){var t=e[0],n=e[1],o=rt(r.getState());if(null===o)r.dispatch(an(t.entityId));else if(o!==t.entityId){var a=Error("Identity has changed.");throw a.code=ue,a}return[t,n]},h=function(e){var t,o,i,c=e[0],s=e[1],u=r.getState(),d=u.application,p=u.groupId,l=u.page,f=u.referrer,h=u.mobile,v={token:c.tokenType+" "+c.accessToken,customer:"function"==typeof n?Zt(n()):{},customer_side_storage:s,is_mobile:h,application:(t=["name","version"],o=d,t.reduce((function(e,t){return e[t]=o[t],e}),{}))};return"number"==typeof p&&(v.group_id=p),d.channelType&&(v.application.channel_type=d.channelType),null!==l&&(a=l,v.customer_page=l),null!==f&&(v.referrer=f),Promise.race([ln(r,Se,v),(i=15e3,new Promise((function(e){setTimeout(e,i)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;r=t,null==(n=o)||n.cancel(),o=pn([l,f,h],(function(e){var t;o=null,c.reset(),s.reset(),u=c,t=r.getState().page,a!==t&&ln(r,Ae,t).catch(g),a=null,r.dispatch({type:z,payload:e})}),(function(t){switch(o=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void p();case se:case de:case le:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void p():void d(t.message);case"USERS_LIMIT_REACHED":return void r.dispatch(en(t.code.toLowerCase()));case ue:case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void d(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return u=s,void p();default:return void p()}}))},cancel:function(){var e;null==(e=o)||e.cancel()}}}var hn,vn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:V,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},_n=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:Q,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},yn=Object.freeze({success:!0}),mn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},gn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},In=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},mn(e,n),{type:Ft,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},gn(300,n)),high:t({url:n.thumbnail2x_url},gn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},mn(e,n),{type:Ft,contentType:n.content_type,url:n.url,name:n.name})},En=function(e,r){return t({},mn(e,r),{type:Yt,formId:r.form_id,fields:r.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,["group_id"]),{groupId:o})});default:return e}}))})},bn=function(e,n){return t({},mn(e,n),{type:Vt,text:n.text})},Tn=function(e,n){return t({},mn(e,n),{type:Jt},n.content&&{content:n.content})},wn=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.buttons&&(n.buttons=e.buttons.map((function(e){switch(e.type){case"message":case"phone":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};case"cancel":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"};case"url":var t={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return e.target&&(t.target=e.target),t;case"webview":var n={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return"string"==typeof e.webview_height&&(n.webviewHeight=e.webview_height),n;default:return{text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"}}}))),n},On=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},mn(e,n),{type:zt,template:n.template_id,elements:n.elements.map(wn)});default:return null}},Sn=function(e,n){var r=t({},mn(e,t({},n,{author_id:"system"})),{type:Bt,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},kn=function(e,n){switch(n.type){case Ft:return In(e,n);case Gt:return function(e,n){return t({},mn(e,n),{authorId:"system",type:Gt,formId:n.form_id,fields:n.fields})}(e,n);case Yt:return En(e,n);case Vt:return bn(e,n);case zt:return On(e,n);case Bt:return Sn(e,n);case Jt:return Tn(e,n);default:return null}},Pn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:kn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},Cn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Nn=function(e){return v((function(e){return e.events_seen_up_to?e.events_seen_up_to:null}),(t="id",e.reduce((function(e,n){return e[n[t]]=n,e}),{})));var t},xn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Cn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return kn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Un(t.queue):null}},jn=function(e){return{id:e.id,access:Cn(e.access),users:e.users.map(Ln),properties:e.properties||{},eventsSeenUpToMap:Nn(e.users)}},Dn=function(e){var t=E(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e}),{})),t},qn=function(e){var n=Dn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Rn=function(e){var n=e.statistics;return t({},qn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},An=function(e){var t=e.agent;return{agent:{id:t.id,type:$e,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},Mn=function(e){return{position:e.position,waitTime:e.wait_time}},Un=function(e){return t({},Mn(e),{queuedAt:e.queued_at})},Ln=function(e){return e.type===et?t({},qn(r=e),{present:r.present}):{id:(n=e).id,type:$e,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},Hn=((hn={}).CONNECTION_LOST="Connection lost.",hn.MISDIRECTED_CONNECTION="Connected to wrong region.",hn),Fn=function(e,t){var n=e.getState();switch(t.type){case X:case K:switch(t.payload.action){case vt:return void e.dispatch(on(t.payload.payload.chatId,!1));case Ct:return void e.dispatch(on(t.payload.payload.chat.id,!0));default:return}case Z:switch(t.payload.action){case Te:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return ot(n,e.id)!==t})).forEach((function(t){e.dispatch(on(t.id,t.active))}));default:return}}},Gn=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==et)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},Yn=function(e,t){var n,r=t.content;"lc2"===t.type&&("groups_update"===r.name&&"groups"in r&&0!==(h(n=r.groups)?n:Object.keys(n)).length&&e("availability_updated",{availability:"offline"===r.groups[0].status?"offline":"online"}))},Vn=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Mt:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(Rt,{chatId:o.payload.chatId,threadId:o.payload.threadId,queue:{position:o.payload.properties.lc2.queue_pos,waitTime:o.payload.properties.lc2.queue_waiting_time}}),void n("thread_properties_updated",o.payload);case Et:return void function(e,t){s(un(e),JSON.stringify(t)).catch(g)}(r,o.payload.customer_side_storage);case gt:switch(o.payload.reason){case"access_token_expired":r.dispatch(tn(!0)),r.dispatch(nn(100)),n("disconnected",o.payload);break;case ft:case"customer_temporarily_blocked":case"license_not_found":case ht:case"too_many_connections":case"unsupported_version":r.dispatch($t(o.payload.reason));break;case"misdirected_connection":vn(r,de),r.dispatch({type:F,payload:o.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":vn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(nn(100)),n("disconnected",o.payload)}return;case Ct:return Gn(n,o.payload.chat.users),void n(o.action,o.payload);case Nt:if(null===o.payload.event)return;return void n(o.action,o.payload);case qt:return void n(o.action,o.payload);case jt:return Yn(n,o.payload),void n(o.action,o.payload);case Ut:return Gn(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},zn=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case vt:return void r.resolve(yn);case me:return Gn(n,r.payload.users),void r.resolve(r.payload);case Ct:return Gn(n,r.payload.chat.users),void r.resolve(r.payload);case Nt:return void r.resolve(r.payload.event);case Te:return Gn(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},Bn=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=fn(n,e.customerDataProvider);return function(e,c){switch(e.type){case F:return void o.reinitialize();case G:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===rt(r)&&e.dispatch(an(t.entityId));var o=r.page;if(o&&o.url){var a=w({license_id:r.licenseId}),i={session_fields:Qt(n||{}),group_id:r.groupId||0,page_url:o.url};return C(ct(r)+"/action/check_goals?"+a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then((function(){}))}}))}(c,n,e.payload.sessionFields).catch(g);case Y:var s=e.payload;switch(i.cancel(),o.destroy(),s.reason){case"manual":vn(c,le);break;case ft:case"license_expired":case ht:vn(c,se),a("disconnected",s);break;default:a("disconnected",s)}return void r.off();case V:var u=e.payload,d=u.reason,p={message:Hn[d],code:d};return void u.rejects.forEach((function(e){e(lt(p))}));case z:var l=e.payload,f=l.dynamicConfig,h=l.chats,v=l.greeting,_=t({customer:l.customer,availability:l.availability},v&&{greeting:v});return Object.defineProperty(_,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(_,"__unsafeChats",{value:h}),void a("connected",_);case B:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case J:return e.payload.fresh?void n.getFreshToken().catch(g):void n.hasToken().then((function(e){return e?n.getToken().then((function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)})):n.getToken()})).catch(g);case K:return e.payload.action===gt||Fn(c,e),void Vn({emit:a,store:c},e);case X:return Fn(c,e),void zn({emit:a},e);case W:return vn(c,se),void o.reconnect(e.payload.delay);case Q:var E=e.payload;return void(0,E.reject)(lt(E.error));case Z:return Fn(c,e),void zn({emit:a},e);case $:var b=c.getState();return function(e){return tt(e)===Qe}(b)?void _n(c,e,{code:le,message:"SDK destroyed."}):at(b)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Se:var a=[];return void e.emit(t({},o,{version:"3.3",payload:t({},o.payload,{pushes:{3.3:I(Ht).filter((function(e){return e!==gt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void _n(c,e,{code:"NO_CONNECTION",message:"No connection."});case te:return void a("customer_id",e.payload.id);case re:return void a("disconnected",{reason:"connection_lost"});case ne:return void i.sendLogin(c);case oe:if(!at(c.getState()))return;return void a("connection_recovered");case ae:if(!at(c.getState()))return;return void a("connection_unstable");case ie:return o.connect(),void c.dispatch(tn());case ce:if(!at(c.getState()))return;return void cn(c,rn(Ae,e.payload)).catch(g);default:return}}},Jn=function(e,t){var n,r=(void 0===t?{}:t).query,o=w(void 0===r?{}:r),a=o?e+"?"+o:e,i=H(),c=sn({min:1e3,max:5e3,jitter:.5}),s=3,u=null,d=function(){s=1,c.reset(),i.emit("connect")},p=function(){f(),v(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),s=3,u)&&((e=u).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),u.close(),u=null)},h=function(){var e;s=0,u=new WebSocket(a),(e=u).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},v=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(h,e):h()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==s)throw Error("Socket is already open or connecting.");clearTimeout(n),h()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:v,emit:function(e){if(1!==s)throw Error("Socket is not connected.");u.send(e)},getReadyState:function(){return s},on:i.on,off:i.off}},Kn=function(e,n){var r,o,a,i,c=void 0===n?{}:n,s=c.query,u=void 0===s?{}:s,d=c.emitter,p=void 0===d?H():d,l=Jn(e,{query:u}),f=(o=g,{cancel:function(){clearTimeout(r),o=g},check:function(){var e=Xe();return o=e.resolve,r=setTimeout((function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)}),2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){clearTimeout(r),o()}))}),h=function(){return 1===l.getReadyState()},v=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach((function(e){a.on(e,(function(t){i.emit(e,t)}))})),l.on("disconnect",v),l.on("message",(function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)})),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",(function(){h()&&f.check().then((function(){f.cancel(),p.emit("connection_recovered")}),(function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()}))})),window.addEventListener("offline",(function(){f.cancel(),h()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){v(),l.destroy()},disconnect:function(){v(),l.disconnect()},reconnect:function(e){v(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},Xn=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return Kn(r,{query:{license_id:n.licenseId},emitter:t})},Wn=function(e){return{chatId:e.chat_id,properties:e.properties}},Qn=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Un(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Zn=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},$n=function(e){return t({id:e.id},Dn(e))},er=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},tr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},nr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:kn(t,e.event)}},rr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},or=function(e){return{uniqueId:e.unique_id}},ar=function(e){var n=e.chat;return{chat:t({},jn(n),{thread:xn(n.id,n.thread)})}},ir=function(e){return{chatId:e.chat_id,event:kn(e.thread_id,e.event)}},cr=function(e){return Pn(e)},sr=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},ur=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},dr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Mn(e.queue)}},pr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},fr=function(e){return{chatId:e.chat_id,user:Ln(e.user),present:e.user.present}},hr=function(e){return{chatId:e.chat_id,userId:e.user_id}},vr=function(e){return e.map((function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map((function(e){var r=e.group_id;return t({},n(e,["group_id"]),{groupId:r})}))});case"rating":var r=e.comment_label;return t({},n(e,["comment_label"]),{commentLabel:r});default:return e}}))},_r=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map((function(e,n){return t({},e,{id:n+""})})),vr(r)):vr(e.fields)}},yr=function(e){return e.enabled?t({},e,{form:_r(e.form)}):e},mr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(P,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},gr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map((function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:Cn(e.access),properties:a,users:i.map(Ln),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Nn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return kn(e.thread_id,e.event)}),r);var s,u=r,d=Object.keys(u).map((function(e){return u[e]})),p=(s=d.sort((function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)}))).length>0?s[s.length-1]:null;return p&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c}));return{chatsSummary:(o=function(e){var t=e.lastEvent;return-1*(void 0!==t?t.timestamp:e.order)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(h(a)?[].concat(a):I(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((function(e){return e.users}),c),r=[],n.filter((function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)}))),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Ir=function(e){return e.groups_status},Er=function(e,t){return{threads:t.threads.map((function(t){return xn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},br=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Rn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&m(n.customer_groups.monitoring.id,r)?"online":"offline"),chats:a.map((function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}}))},i&&{greeting:Pn(i)})},Tr=function(e){switch(e.action){case vt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case _t:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case yt:return{action:e.action,payload:Wn(e.payload)};case mt:return{action:e.action,payload:Qn(e.payload)};case Et:case gt:return{action:e.action,payload:e.payload};case It:return{action:e.action,payload:Zn(e.payload)};case bt:return{action:e.action,payload:$n(e.payload)};case Tt:return{action:e.action,payload:er(e.payload)};case wt:return{action:e.action,payload:tr(e.payload)};case Ot:return{action:e.action,payload:nr(e.payload)};case St:return{action:e.action,payload:rr(e.payload)};case kt:case Pt:return{action:e.action,payload:or(e.payload)};case Ct:return{action:e.action,payload:ar(e.payload)};case Nt:return{action:e.action,payload:ir(e.payload)};case xt:return{action:e.action,payload:cr(e.payload)};case jt:return{action:e.action,payload:e.payload};case Dt:return{action:e.action,payload:sr(e.payload)};case qt:return{action:e.action,payload:ur(e.payload)};case Rt:return{action:e.action,payload:dr(e.payload)};case At:return{action:e.action,payload:pr(e.payload)};case Mt:return{action:e.action,payload:lr(e.payload)};case Ut:return{action:e.action,payload:fr(e.payload)};case Lt:return{action:e.action,payload:hr(e.payload)}}var t},wr=function(e,n){var r=e.dispatch,o=n.request_id,a=nt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=function(e){var n,r=e.request,o=e.response;switch(o.action){case fe:case he:case ve:case _e:case ye:return{action:o.action,payload:yn};case me:return{action:o.action,payload:(n=o.payload,t({},jn(n),{thread:n.thread?xn(n.id,n.thread):null}))};case ge:return{action:o.action,payload:Rn(o.payload)};case Ie:return{action:o.action,payload:yr(o.payload)};case Ee:return{action:o.action,payload:An(o.payload)};case be:return{action:o.action,payload:mr(o.payload)};case Te:return{action:o.action,payload:gr(o.payload)};case we:return{action:o.action,payload:Ir(o.payload)};case Oe:return{action:o.action,payload:Er(r,o.payload)};case Se:return{action:o.action,payload:br(o.payload)};case ke:case xe:case je:case Ne:case qe:case Re:case Ae:case Me:case Ue:return{action:o.action,payload:yn}}}({request:a.request,response:n});r({type:Z,payload:t({id:o,promise:i,resolve:c},s)})},Or=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:ne})})),n.on("message",(function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=nt((0,e.getState)(),o);r({type:Q,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case Pe:case Ce:case De:return;default:return void wr(e,n)}}if("request_id"in n)switch(n.action){case Ct:case Nt:return void function(e,n){var r=e.dispatch,o=n.request_id,a=nt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=Tr(n);r({type:X,payload:t({id:o,promise:i,resolve:c},s)})}(e,n)}!function(e,t){var n=Tr(t);n&&e.dispatch({type:K,payload:n})}(e,n)})),n.on("disconnect",(function(){vn(e,se),tt(e.getState())===We&&e.dispatch({type:re})})),n.on("connection_unstable",(function(){r({type:ae})})),n.on("connection_recovered",(function(){r({type:oe})})),n.off},Sr="incorrect requester structure",kr=function(e,t){return e.length?e+"\n"+t:t},Pr=function(e,n,r){var o=r.filledForm,a=r.groupId,i=r.timeZone;return n.getToken().then((function(n){var r=e.getState();null===rt(r)&&e.dispatch(an(n.entityId));var c=it(r)+"/v2/tickets/new",s=function(e,n){var r=n.fields,o=n.groupId,a=void 0===o?e.groupId:o,i=n.timeZone,c=t({licence_id:e.licenseId,ticket_message:"",offline_message:"",visitor_id:n.customerId,requester:{}},"number"==typeof a&&{group:a},e.page&&{source:{url:e.page.url}},i&&{timezone:i});return r.reduce((function(e,t){switch(t.type){case"subject":var n=t.answer,r=n?t.label+" "+n:t.label;return n&&(e.subject=n),e.offline_message=kr(e.offline_message,r),e;case"name":var o=t.answer,a=o?t.label+" "+o:t.label;return o&&(e.requester.name=o),e.offline_message=kr(e.offline_message,a),e;case"email":var i=t.answer,c=i?t.label+" "+i:t.label;return e.requester.mail=i,e.offline_message=kr(e.offline_message,c),e;case"question":case"textarea":var s=t.answer,u=s?t.label+" "+s:t.label;return e.offline_message=kr(e.offline_message,u),e.ticket_message=kr(e.ticket_message,u),e;case"radio":case"select":var d=t.answer&&t.answer.label,p=d?t.label+" "+d:t.label;return e.offline_message=kr(e.offline_message,p),e.ticket_message=kr(e.ticket_message,p),e;case"checkbox":var l=t.answers&&t.answers.map((function(e){return e.label})).join(", "),f=l?t.label+" "+l:t.label;return e.offline_message=kr(e.offline_message,f),e.ticket_message=kr(e.ticket_message,f),e;default:return e}}),c)}(r,{fields:o.fields,customerId:n.entityId,groupId:a,timeZone:i});return C(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}).then((function(e){if(e.ok)return e.json().then((function(e){return t({},e,{text:s.ticket_message})}));if(400===e.status||422===e.status){var n=function(e){if(!e||!e.errors)throw Error();var t=e.errors[0];if(Object.keys(t)[0]===Sr)throw lt({message:t[Sr][0],code:"VALIDATION"});throw Error()};return e.json().then(n,n)}throw Error()}))}))},Cr="UPLOAD_FAILED",Nr=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,s=r.withCredentials,u=void 0!==s&&s,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,s;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=Cr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Cr,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=u,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,s=new FormData,Object.keys(a).forEach((function(e){return s.append(e,a[e])})),s))})),cancel:function(){d.abort()}}},xr=1048576,jr=10485760,Dr=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(xr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},qr=function(e,t){var n,r=e.auth,o=e.store,a=t.file,i=t.onProgress,c=!1;return{promise:new Promise((function(e,t){!function(e){if(e.size>jr)throw lt({message:"The file is too big (max size is "+Dr(jr)+").",code:"TOO_BIG_FILE"})}(a);var s=o.getState(),u=w({license_id:s.licenseId}),d=ct(s)+"/action/upload_file?"+u,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=Nr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(lt({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},Rr=function(e){var t=e.licenseId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={licence_id:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"3.1.2"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=g,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",w(r))},Ar="LISTENER_IDENTITY",Mr={},Ur=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map((function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then((function(e){return console.info(t+"."+n+"() <===",e),e}),(function(e){throw console.error(t+"."+n+"() <===",e),e})):c}})).reduce((function(e,t,r){return e[n[r]]=t,e}),{})},Lr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Ar,{value:{}}),n.LISTENER_IDENTITY[t])return Mr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=y(Mr);return n.LISTENER_IDENTITY[t]=o,Mr[o]=r,r};e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,s=r.auth,u=n(r,["on","once","off","getChatHistory","auth"]),d=Ur(u);return Object.freeze(t({auth:Object.freeze(Ur(s,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then((function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e}),(function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e}))}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t.LISTENER_IDENTITY&&(n=Mr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Lr("on",e,t))},once:function(e,t){a(e,Lr("once",e,t))}}))},e.init=function(e,r){void 0===r&&(r="production"),U(e);var o=e.autoConnect,a=void 0===o||o,i=e.customerDataProvider,c=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),u=pt(t({},s,{env:r})),d=H(),p=function(e){var n=H(),r=Xn(e,n);return t({},Object.keys(r).reduce((function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e}),{}),{reinitialize:function(){r.disconnect(),(r=Xn(e,n)).connect()}})}(u),l="function"==typeof c?c():L(s,r);u.addSideEffectsHandler(Bn({emitter:d,socket:p,auth:l,customerDataProvider:i})),Or(u,p);var f=cn.bind(null,u),h=function(){u.dispatch({type:ie})},v=Object.freeze({acceptGreeting:function(e){return f(rn(fe,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:l,cancelGreeting:function(e){return f(rn(he,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return v.listThreads({chatId:t}).then((function(e){var n=e.threads;if(!n.length)throw lt({message:'There is no thread in "'+t+'".',code:pe});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return f(rn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return f(rn(ve,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return f(rn(_e,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return f(rn(ye,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){u.dispatch($t("manual"))},disconnect:function(){u.dispatch(en("manual"))},getChat:function(e){return f(rn(me,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then((function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)}),(function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach((function(t){return t.reject(e)}))}));case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}};return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){return new Promise(r)}))}}(v,e.chatId)},getCustomer:function(){return f(rn(ge,{}))},getForm:function(e){return f(rn(Ie,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return f(rn(Ee,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return f(rn(be,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):f(rn(Te,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return f(rn(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return f(rn(Oe,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:function(e){return f(rn(ke,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:d.on,once:d.once,off:d.off,rateChat:function(e){var t=e.chatId,n=e.rating;return v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:pe});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Rr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(rn(Pe,function(e){var n=Wt(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return f(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Xt(e.event)};return t&&(n.attach_to_last_thread=!0),rn(Ce,n)}(e))})),sendTicketForm:function(e){return Pr(u,l,e)},sendRichMessagePostback:function(e){return f(rn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return f(rn(je,{session_fields:Qt(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=u.getState();ot(r,t)&&at(r)&&f(rn(xe,{chat_id:t,sneak_peek_text:n})).catch(g)},startChat:function(t){return void 0===t&&(t={}),Rr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(rn(De,Wt(t)))},updateChatProperties:function(e){return f(rn(qe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return f(rn(Re,Zt(e)))},updateCustomerPage:function(e){u.dispatch({type:ce,payload:E(["title","url"],e)})},updateEventProperties:function(e){return f(rn(Me,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return f(rn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return qr({auth:l,store:u},e)}});return a?h():u.dispatch({type:G,payload:{sessionFields:"function"==typeof i?i().sessionFields:{}}}),v},e.parseCustomEvent=Tn,e.parseEvent=kn,e.parseFile=In,e.parseFilledForm=En,e.parseForm=_r,e.parseGreeting=Pn,e.parseMessage=bn,e.parseRichMessage=On,e.parseSystemMessage=Sn,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,(function(e){"use strict";function t(){return(t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}(),c=function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)!==a?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,s=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},u=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function h(e){return Array.isArray(e)}function v(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return v(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function g(e){return e}function y(e){var t=Math.random().toString(36).substring(2);return l(t,e)?y(e):t}function m(e,t){return-1!==t.indexOf(e)}function I(){}function b(e){return v(e).map((function(t){return e[t]}))}function E(e,t){return e.reduce((function(e,n){return e[n]=t[n],e}),{})}function T(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}function w(e){return v(e).map((function(t){return[t,e[t]]}))}function O(e,t){return e===t?0:t>e?-1:1}var S=function(e){return w(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},k=/[^:]+:\/\/[^(/|?)\s]+/,P=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},C=(RegExp("^[\0-]*("+P("javascript")+"|"+P("data")+"):","i"),/^((http(s)?:)?\/\/)/);function N(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},s=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:s,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n})),n(s())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}var x="https://accounts.livechatinc.com",j=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},D=function(e,t){return N(""+function(e,t){return""+("production"===t?x:x.replace("accounts.","accounts."+t+"."))+function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e)}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(k),(r&&r[0])+window.location.pathname)})}).then((function(e){return e.json()})).then((function(t){return function(e,t){if("identity_exception"in e)throw j({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw j({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)}));var n,r},q=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},R=function(e,t,n){q(e);var r=e.tokenStoragePrefix||"@@lc_auth_token:",o=""+r+t+(e.uniqueGroups?":"+e.groupId:""),a=""+r+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,p=u(o).then((function(e){null!==p&&(p=null,e?s(a,e).then((function(){d(o).then((function(){c=JSON.parse(e)}))})):d(o).then((function(){return u(a).then((function(e){e&&(c=JSON.parse(e))}))})))})),l=function(){return i=D(e,n).then((function(e){return i=null,s(a,JSON.stringify(e)),c=e,e}),(function(e){throw i=null,e}))};return{getFreshToken:l,getToken:function e(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):p?p.then(e):l())},hasToken:function e(){return p?p.then(e):Promise.resolve(!!c)},invalidate:function(){return c=null,p=null,d(a)}}};var A=function(){var e,r={all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map((function(e){e(n)})),(r=e.get("*"))&&r.slice().map((function(e){e(t,n)}))}},o=r.all,a=n(r,["all"]);return t({},a,{off:function(e,t){e?a.off(e,t):o.clear()},once:function(e,t){a.on(e,(function n(r,o){a.off(e,n),t(r,o)}))}})},M="change_region",U="check_goals",L="destroy",z="fail_all_requests",H="login_success",F="pause_connection",G="prefetch_token",Y="push_received",J="push_response_received",V="reconnect",B="request_failed",K="response_received",X="send_request",W="set_chat_active",Z="set_self_id",Q="socket_connected",$="socket_disconnected",ee="socket_recovered",te="socket_unstable",ne="start_connection",re="update_customer_page",oe="CONNECTION_LOST",ae="IDENTITY_MISMATCH",ie="MISDIRECTED_CONNECTION",ce="MISSING_CHAT_THREAD",se="SDK_DESTROYED",ue="accept_greeting",de="cancel_greeting",pe="delete_chat_properties",le="delete_event_properties",fe="delete_thread_properties",he="get_chat",ve="get_customer",_e="get_form",ge="get_predicted_agent",ye="get_url_info",me="list_chats",Ie="list_group_statuses",be="list_threads",Ee="login",Te="mark_events_as_seen",we="resume_chat",Oe="send_event",Se="send_rich_message_postback",ke="send_sneak_peek",Pe="set_customer_session_fields",Ce="start_chat",Ne="update_chat_properties",xe="update_customer",je="update_customer_page",De="update_event_properties",qe="update_thread_properties";var Re=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),Ae=function(){return Math.random().toString(36).substring(7).split("").join(".")},Me={INIT:"@@redux/INIT"+Ae(),REPLACE:"@@redux/REPLACE"+Ae(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Ae()}};function Ue(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Le(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(Le)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,s=!1;function u(){c===i&&(c=i.slice())}function d(){if(s)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(s)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return u(),c.push(e),function(){if(t){if(s)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Ue(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(s)throw Error("Reducers may not dispatch actions.");try{s=!0,a=o(a,e)}finally{s=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Me.REPLACE})}function h(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[Re]=function(){return this},e}return l({type:Me.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[Re]=h,r}function ze(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function He(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Fe(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?He(n,!0).forEach((function(t){ze(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):He(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ge(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function Ye(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(o)}));return Fe({},n,{dispatch:r=Ge.apply(void 0,a)(n.dispatch)})}}}var Je=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,o)},reset:function(){c=0}}};function Ve(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Be="connected",Ke="destroyed",Xe="disconnected",We="agent",Ze="customer",Qe=function(e){return e.connection.status},$e=function(e,t){return e.requests[t]},et=function(e){return e.users.self.id},tt=function(e,t){var n=e.chats[t];return!!n&&n.active},nt=function(e){return Qe(e)===Be},rt=function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return"feaf6c0e-9f43-48ff-9ad0-8e24e0350932"===e.organizationId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"},ot=function(e){return rt(e)+"/v3.4/customer"},at=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},it=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},ct=function(e){var n,r,o;return r=e,(n={}).change_region=function(e,n){return t({},e,{region:n.region})},n.destroy=function(e){return it(Ke,e)},n.login_success=function(e){return it(Be,e)},n.pause_connection=function(e){return it("paused",e)},n.request_failed=at,n.response_received=at,n.push_response_received=at,n.send_request=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n.set_chat_active=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n.set_self_id=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n.socket_disconnected=function(e){var n=Qe(e);return t({},it(n===Xe?Xe:"reconnecting",e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),l(t.type,o)?o[t.type](e,t.payload):e}};function st(e){var n=g,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach((function(e){e(r,t)})),o}}};return t.add=function(t){e.push(t)},t}(),o=Le(ct(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,s=void 0===c?null:c,u=e.region,d=void 0===u?null:u,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,h=void 0!==f&&f,v=e.mobile,_=void 0!==v&&v;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"3.1.3"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:Xe},page:s,region:d,referrer:l,requests:{},users:{self:{id:null,type:Ze},others:{}},uniqueGroups:h,mobile:_}}(e)),n(Ye(r)));return o.addSideEffectsHandler=r.add,o}function ut(e){var t=e.code,n=Error(e.message);return n.code=t,n}var dt="customer_banned",pt="product_version_changed",lt="chat_deactivated",ft="chat_properties_deleted",ht="chat_properties_updated",vt="chat_transferred",_t="customer_disconnected",gt="customer_page_updated",yt="customer_side_storage_updated",mt="customer_updated",It="event_properties_deleted",bt="event_properties_updated",Et="event_updated",Tt="events_marked_as_seen",wt="greeting_accepted",Ot="greeting_canceled",St="incoming_chat",kt="incoming_event",Pt="incoming_greeting",Ct="incoming_multicast",Nt="incoming_rich_message_postback",xt="incoming_typing_indicator",jt="queue_position_updated",Dt="thread_properties_deleted",qt="thread_properties_updated",Rt="user_added_to_chat",At="user_removed_from_chat",Mt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:lt,CHAT_PROPERTIES_DELETED:ft,CHAT_PROPERTIES_UPDATED:ht,CHAT_TRANSFERRED:vt,CUSTOMER_DISCONNECTED:_t,CUSTOMER_PAGE_UPDATED:gt,CUSTOMER_SIDE_STORAGE_UPDATED:yt,CUSTOMER_UPDATED:mt,EVENT_PROPERTIES_DELETED:It,EVENT_PROPERTIES_UPDATED:bt,EVENT_UPDATED:Et,EVENTS_MARKED_AS_SEEN:Tt,GREETING_ACCEPTED:wt,GREETING_CANCELED:Ot,INCOMING_CHAT:St,INCOMING_EVENT:kt,INCOMING_GREETING:Pt,INCOMING_MULTICAST:Ct,INCOMING_RICH_MESSAGE_POSTBACK:Nt,INCOMING_TYPING_INDICATOR:xt,QUEUE_POSITION_UPDATED:jt,THREAD_PROPERTIES_DELETED:Dt,THREAD_PROPERTIES_UPDATED:qt,USER_ADDED_TO_CHAT:Rt,USER_REMOVED_FROM_CHAT:At}),Ut="file",Lt="form",zt="filled_form",Ht="message",Ft="rich_message",Gt="system_message",Yt="custom",Jt=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||h(t)||(n.properties=e.properties),n},Vt=function(e){switch(e.type){case Ht:var r=t({},Jt(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case Ut:return t({},Jt(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case zt:return t({},Jt(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case Gt:var o=t({},Jt(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case Yt:var a=t({},Jt(e),{type:e.type});return e.content&&(a.content=e.content),a}},Bt=function(e){var t=e.active,n=e.chat,r=e.continuous,o={active:void 0===t||t,chat:{}};if("boolean"==typeof r&&(o.continuous=r),!n)return o;var a=n.access,i=n.thread,c=n.properties;return a&&a.groupIds&&(o.chat.access={group_ids:a.groupIds}),c&&(o.chat.properties=c),i&&(o.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(Vt)),r&&(t.properties=r),t}(i)),o},Kt=function(e){return w(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},Xt=function(e){var t=T(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=Kt(e.sessionFields)),t},Wt=function(e){return{type:L,payload:{reason:e}}},Zt=function(e){return{type:F,payload:{reason:e}}},Qt=function(e){return void 0===e&&(e=!1),{type:G,payload:{fresh:e}}},$t=function(e){return{type:V,payload:{delay:e}}},en=function(e,n,r){return{type:X,payload:t({request:{action:e,payload:n}},r&&{source:r})}},tn=function(e,t){return{type:W,payload:{id:e,active:t}}},nn=function(e){return{type:Z,payload:{id:e}}},rn=function(e,t){t.payload.id=y(e.getState().requests);var n=Ve(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},on=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},an=function(e,t){var n=function(e,t){var n=e.getState();return"side_storage_"+t+(n.uniqueGroups?":"+n.groupId:"")}(e,t),r=on(e);return u(n).catch(I).then((function(e){return e?s(r,e).catch(I).then((function(){return d(n).catch(I).then((function(){return JSON.parse(e)})).catch(I)})):u(r).catch(I).then((function(e){return JSON.parse(e||"{}")})).catch(I)})).catch(I)},cn=function(e,t,n){var r=e.slice(0),o=!1;return function e(a){var i,c=r.shift();(i=function(){return c(a)},new Promise((function(e){e(i())}))).then((function(n){o||(r.length?e(n):t(n))}),(function(e){o||n(e)}))}(),{cancel:function(){o=!0}}},sn=function(e,t,n){return rn(e,en(t,n,"login"))};function un(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=Je(c),u=Je(t({},c,{min:1e3})),d=s,p=function(e){return o.dispatch(Wt(e))},l=function(){return o.dispatch($t(d.duration()))},f=function(){return Promise.all([e.getToken(),an(o,r)])},h=function(e){var t=e[0],n=e[1],r=et(o.getState());if(null===r)o.dispatch(nn(t.entityId));else if(r!==t.entityId){var a=Error("Identity has changed.");throw a.code=ae,a}return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),s=c.application,u=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?Xt(n()):{},customer_side_storage:a,is_mobile:l,application:E(["name","version"],s)};return"number"==typeof u&&(f.group_id=u),s.channelType&&(f.application.channel_type=s.channelType),null!==d&&(i=d,f.customer_page=d),null!==p&&(f.referrer=p),Promise.race([sn(o,Ee,f),(t=15e3,new Promise((function(e){setTimeout(e,t)}))).then((function(){return Promise.reject(ut({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=cn([f,h,v],(function(e){var t;a=null,s.reset(),u.reset(),d=s,t=o.getState().page,i!==t&&sn(o,je,t).catch(I),i=null,o.dispatch({type:H,payload:e})}),(function(t){switch(a=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void l();case oe:case ie:case se: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 o.dispatch(Zt(t.code.toLowerCase()));case ae:case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=u,void l();default:return void l()}}))},cancel:function(){var e;null==(e=a)||e.cancel()}}}var dn,pn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:z,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},ln=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:B,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},fn=Object.freeze({success:!0}),hn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},vn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},_n=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},hn(e,n),{type:Ut,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},vn(300,n)),high:t({url:n.thumbnail2x_url},vn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},hn(e,n),{type:Ut,contentType:n.content_type,url:n.url,name:n.name})},gn=function(e,r){return t({},hn(e,r),{type:zt,formId:r.form_id,fields:r.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,["group_id"]),{groupId:o})});default:return e}}))})},yn=function(e,n){return t({},hn(e,n),{type:Ht,text:n.text})},mn=function(e,n){return t({},hn(e,n),{type:Yt},n.content&&{content:n.content})},In=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.buttons&&(n.buttons=e.buttons.map((function(e){switch(e.type){case"message":case"phone":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};case"cancel":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"};case"url":var t={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return e.target&&(t.target=e.target),t;case"webview":var n={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return"string"==typeof e.webview_height&&(n.webviewHeight=e.webview_height),n;default:return{text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"}}}))),n},bn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},hn(e,n),{type:Ft,template:n.template_id,elements:n.elements.map(In)});default:return null}},En=function(e,n){var r=t({},hn(e,t({},n,{author_id:"system"})),{type:Gt,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Tn=function(e,n){switch(n.type){case Ut:return _n(e,n);case Lt:return function(e,n){return t({},hn(e,n),{authorId:"system",type:Lt,formId:n.form_id,fields:n.fields})}(e,n);case zt:return gn(e,n);case Ht:return yn(e,n);case Ft:return bn(e,n);case Gt:return En(e,n);case Yt:return mn(e,n);default:return null}},wn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Tn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},On=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Sn=function(e){return _((function(e){return e.events_seen_up_to?e.events_seen_up_to:null}),(t="id",e.reduce((function(e,n){return e[n[t]]=n,e}),{})));var t},kn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:On(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Tn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?qn(t.queue):null}},Pn=function(e){return{id:e.id,access:On(e.access),users:e.users.map(Rn),properties:e.properties||{},eventsSeenUpToMap:Sn(e.users)}},Cn=function(e){var t=T(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e}),{})),t},Nn=function(e){var n=Cn(e);return t({id:e.id,type:Ze},n,{sessionFields:n.sessionFields||{}})},xn=function(e){var n=e.statistics;return t({},Nn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},jn=function(e){var t=e.agent;return{agent:{id:t.id,type:We,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},Dn=function(e){return{position:e.position,waitTime:e.wait_time}},qn=function(e){return t({},Dn(e),{queuedAt:e.queued_at})},Rn=function(e){return e.type===Ze?t({},Nn(r=e),{present:r.present}):{id:(n=e).id,type:We,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},An=((dn={}).CONNECTION_LOST="Connection lost.",dn.MISDIRECTED_CONNECTION="Connected to wrong region.",dn),Mn=function(e,t){var n=e.getState();switch(t.type){case J:case Y:switch(t.payload.action){case lt:return void e.dispatch(tn(t.payload.payload.chatId,!1));case St:return void e.dispatch(tn(t.payload.payload.chat.id,!0));default:return}case K:switch(t.payload.action){case me:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return tt(n,e.id)!==t})).forEach((function(t){e.dispatch(tn(t.id,t.active))}));default:return}}},Un=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==Ze)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},Ln=function(e,t){var n,r=t.content;"lc2"===t.type&&("groups_update"===r.name&&"groups"in r&&0!==(h(n=r.groups)?n:Object.keys(n)).length&&e("availability_updated",{availability:"offline"===r.groups[0].status?"offline":"online"}))},zn=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case qt:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(jt,{chatId:o.payload.chatId,threadId:o.payload.threadId,queue:{position:o.payload.properties.lc2.queue_pos,waitTime:o.payload.properties.lc2.queue_waiting_time}}),void n("thread_properties_updated",o.payload);case yt:return void function(e,t){s(on(e),JSON.stringify(t)).catch(I)}(r,o.payload.customer_side_storage);case _t:switch(o.payload.reason){case"access_token_expired":r.dispatch(Qt(!0)),r.dispatch($t(100)),n("disconnected",o.payload);break;case dt:case"customer_temporarily_blocked":case"license_not_found":case pt:case"too_many_connections":case"unsupported_version":r.dispatch(Wt(o.payload.reason));break;case"misdirected_connection":pn(r,ie),r.dispatch({type:M,payload:o.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":pn(r,o.payload.reason.toUpperCase());break;default:r.dispatch($t(100)),n("disconnected",o.payload)}return;case St:return Un(n,o.payload.chat.users),void n(o.action,o.payload);case kt:if(null===o.payload.event)return;return void n(o.action,o.payload);case xt:return void n(o.action,o.payload);case Ct:return Ln(n,o.payload),void n(o.action,o.payload);case Rt:return Un(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},Hn=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case lt:return void r.resolve(fn);case he:return Un(n,r.payload.users),void r.resolve(r.payload);case St:return Un(n,r.payload.chat.users),void r.resolve(r.payload);case kt:return void r.resolve(r.payload.event);case me:return Un(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},Fn=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=un(n,e.customerDataProvider,e.licenseId);return function(e,c){switch(e.type){case M:return void o.reinitialize();case U:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===et(r)&&e.dispatch(nn(t.entityId));var o=r.page;if(o&&o.url){var a=S({organization_id:r.organizationId}),i={session_fields:Kt(n||{}),group_id:r.groupId||0,page_url:o.url};return N(ot(r)+"/action/check_goals?"+a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then((function(){}))}}))}(c,n,e.payload.sessionFields).catch(I);case L:var s=e.payload;switch(i.cancel(),o.destroy(),s.reason){case"manual":pn(c,se);break;case dt:case"license_expired":case pt:pn(c,oe),a("disconnected",s);break;default:a("disconnected",s)}return void r.off();case z:var u=e.payload,d=u.reason,p={message:An[d],code:d};return void u.rejects.forEach((function(e){e(ut(p))}));case H:var l=e.payload,f=l.dynamicConfig,h=l.chats,v=l.greeting,_=t({customer:l.customer,availability:l.availability},v&&{greeting:v});return Object.defineProperty(_,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(_,"__unsafeChats",{value:h}),void a("connected",_);case F:var g=e.payload;return o.disconnect(),void("manual"!==g.reason&&a("disconnected",g));case G:return e.payload.fresh?void n.getFreshToken().catch(I):void n.hasToken().then((function(e){return e?n.getToken().then((function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)})):n.getToken()})).catch(I);case Y:return e.payload.action===_t||Mn(c,e),void zn({emit:a,store:c},e);case J:return Mn(c,e),void Hn({emit:a},e);case V:return pn(c,oe),void o.reconnect(e.payload.delay);case B:var y=e.payload;return void(0,y.reject)(ut(y.error));case K:return Mn(c,e),void Hn({emit:a},e);case X:var E=c.getState();return function(e){return Qe(e)===Ke}(E)?void ln(c,e,{code:se,message:"SDK destroyed."}):nt(E)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Ee:var a=[];return void e.emit(t({},o,{version:"3.4",payload:t({},o.payload,{pushes:{3.4:b(Mt).filter((function(e){return e!==_t&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void ln(c,e,{code:"NO_CONNECTION",message:"No connection."});case Z:return void a("customer_id",e.payload.id);case $:return void a("disconnected",{reason:"connection_lost"});case Q:return void i.sendLogin(c);case ee:if(!nt(c.getState()))return;return void a("connection_recovered");case te:if(!nt(c.getState()))return;return void a("connection_unstable");case ne:return o.connect(),void c.dispatch(Qt());case re:if(!nt(c.getState()))return;return void rn(c,en(je,e.payload)).catch(I);default:return}}},Gn=function(e,t){var n,r=(void 0===t?{}:t).query,o=S(void 0===r?{}:r),a=o?e+"?"+o:e,i=A(),c=Je({min:1e3,max:5e3,jitter:.5}),s=3,u=null,d=function(){s=1,c.reset(),i.emit("connect")},p=function(){f(),v(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),s=3,u)&&((e=u).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),u.close(),u=null)},h=function(){var e;s=0,u=new WebSocket(a),(e=u).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},v=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(h,e):h()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==s)throw Error("Socket is already open or connecting.");clearTimeout(n),h()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:v,emit:function(e){if(1!==s)throw Error("Socket is not connected.");u.send(e)},getReadyState:function(){return s},on:i.on,off:i.off}},Yn=function(e,n){var r,o,a,i,c=void 0===n?{}:n,s=c.query,u=void 0===s?{}:s,d=c.emitter,p=void 0===d?A():d,l=Gn(e,{query:u}),f=(o=I,{cancel:function(){clearTimeout(r),o=I},check:function(){var e=Ve();return o=e.resolve,r=setTimeout((function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)}),2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){clearTimeout(r),o()}))}),h=function(){return 1===l.getReadyState()},v=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach((function(e){a.on(e,(function(t){i.emit(e,t)}))})),l.on("disconnect",v),l.on("message",(function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)})),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",(function(){h()&&f.check().then((function(){f.cancel(),p.emit("connection_recovered")}),(function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()}))})),window.addEventListener("offline",(function(){f.cancel(),h()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){v(),l.destroy()},disconnect:function(){v(),l.disconnect()},reconnect:function(e){v(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},Jn=function(e,t){var n=e.getState(),r=(ot(n)+"/rtm/ws").replace(/^https/,"wss");return Yn(r,{query:{organization_id:n.organizationId},emitter:t})},Vn=function(e){return{chatId:e.chat_id,properties:e.properties}},Bn=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Kn=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},Xn=function(e){return t({id:e.id},Cn(e))},Wn=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Zn=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Qn=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Tn(t,e.event)}},$n=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},er=function(e){return{uniqueId:e.unique_id}},tr=function(e){var n=e.chat;return{chat:t({},Pn(n),{thread:kn(n.id,n.thread)})}},nr=function(e){return{chatId:e.chat_id,event:Tn(e.thread_id,e.event)}},rr=function(e){return wn(e)},or=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},ar=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},ir=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Dn(e.queue)}},cr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},sr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},ur=function(e){return{chatId:e.chat_id,user:Rn(e.user),present:e.user.present}},dr=function(e){return{chatId:e.chat_id,userId:e.user_id}},pr=function(e){return e.map((function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map((function(e){var r=e.group_id;return t({},n(e,["group_id"]),{groupId:r})}))});case"rating":var r=e.comment_label;return t({},n(e,["comment_label"]),{commentLabel:r});default:return e}}))},lr=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map((function(e,n){return t({},e,{id:n+""})})),pr(r)):pr(e.fields)}},fr=function(e){return e.enabled?t({},e,{form:lr(e.form)}):e},hr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(C,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},vr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map((function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:On(e.access),properties:a,users:i.map(Rn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Sn(i)};if(!r)return c;c.lastEventsPerType=_((function(e){return Tn(e.thread_id,e.event)}),r);var s,u=r,d=Object.keys(u).map((function(e){return u[e]})),p=(s=d.sort((function(e,t){return e.thread_id===t.thread_id?O(e.event.created_at,t.event.created_at):O(e.thread_created_at,t.thread_created_at)}))).length>0?s[s.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c}));return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(h(a)?[].concat(a):b(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((function(e){return e.users}),c),r=[],n.filter((function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)}))),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},_r=function(e){return e.groups_status},gr=function(e,t){return{threads:t.threads.map((function(t){return kn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},yr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&m(n.customer_groups.monitoring.id,r)?"online":"offline"),chats:a.map((function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}}))},i&&{greeting:wn(i)})},mr=function(e){switch(e.action){case lt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case ft:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case ht:return{action:e.action,payload:Vn(e.payload)};case vt:return{action:e.action,payload:Bn(e.payload)};case yt:case _t:return{action:e.action,payload:e.payload};case gt:return{action:e.action,payload:Kn(e.payload)};case mt:return{action:e.action,payload:Xn(e.payload)};case It:return{action:e.action,payload:Wn(e.payload)};case bt:return{action:e.action,payload:Zn(e.payload)};case Et:return{action:e.action,payload:Qn(e.payload)};case Tt:return{action:e.action,payload:$n(e.payload)};case wt:case Ot:return{action:e.action,payload:er(e.payload)};case St:return{action:e.action,payload:tr(e.payload)};case kt:return{action:e.action,payload:nr(e.payload)};case Pt:return{action:e.action,payload:rr(e.payload)};case Ct:return{action:e.action,payload:e.payload};case Nt:return{action:e.action,payload:or(e.payload)};case xt:return{action:e.action,payload:ar(e.payload)};case jt:return{action:e.action,payload:ir(e.payload)};case Dt:return{action:e.action,payload:cr(e.payload)};case qt:return{action:e.action,payload:sr(e.payload)};case Rt:return{action:e.action,payload:ur(e.payload)};case At:return{action:e.action,payload:dr(e.payload)}}var t},Ir=function(e,n){var r=e.dispatch,o=n.request_id,a=$e((0,e.getState)(),o),i=a.promise,c=a.resolve,s=function(e){var n,r=e.request,o=e.response;switch(o.action){case ue:case de:case pe:case le:case fe:return{action:o.action,payload:fn};case he:return{action:o.action,payload:(n=o.payload,t({},Pn(n),{thread:n.thread?kn(n.id,n.thread):null}))};case ve:return{action:o.action,payload:xn(o.payload)};case _e:return{action:o.action,payload:fr(o.payload)};case ge:return{action:o.action,payload:jn(o.payload)};case ye:return{action:o.action,payload:hr(o.payload)};case me:return{action:o.action,payload:vr(o.payload)};case Ie:return{action:o.action,payload:_r(o.payload)};case be:return{action:o.action,payload:gr(r,o.payload)};case Ee:return{action:o.action,payload:yr(o.payload)};case Te:case ke:case Pe:case Se:case Ne:case xe:case je:case De:case qe:return{action:o.action,payload:fn}}}({request:a.request,response:n});r({type:K,payload:t({id:o,promise:i,resolve:c},s)})},br=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:Q})})),n.on("message",(function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=$e((0,e.getState)(),o);r({type:B,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case we:case Oe:case Ce:return;default:return void Ir(e,n)}}if("request_id"in n)switch(n.action){case St:case kt:return void function(e,n){var r=e.dispatch,o=n.request_id,a=$e((0,e.getState)(),o),i=a.promise,c=a.resolve,s=mr(n);r({type:J,payload:t({id:o,promise:i,resolve:c},s)})}(e,n)}!function(e,t){var n=mr(t);n&&e.dispatch({type:Y,payload:n})}(e,n)})),n.on("disconnect",(function(){pn(e,oe),Qe(e.getState())===Be&&e.dispatch({type:$})})),n.on("connection_unstable",(function(){r({type:te})})),n.on("connection_recovered",(function(){r({type:ee})})),n.off},Er="incorrect requester structure",Tr=function(e,t){return e.length?e+"\n"+t:t},wr=function(e,n,r){var o=r.filledForm,a=r.groupId,i=r.licenseId,c=r.timeZone;return n.getToken().then((function(n){var r=e.getState();null===et(r)&&e.dispatch(nn(n.entityId));var s=rt(r)+"/v2/tickets/new",u=function(e,n){var r=n.fields,o=n.groupId,a=void 0===o?e.groupId:o,i=n.timeZone,c=t({licence_id:n.licenseId,ticket_message:"",offline_message:"",visitor_id:n.customerId,requester:{}},"number"==typeof a&&{group:a},e.page&&{source:{url:e.page.url}},i&&{timezone:i});return r.reduce((function(e,t){switch(t.type){case"subject":var n=t.answer,r=n?t.label+" "+n:t.label;return n&&(e.subject=n),e.offline_message=Tr(e.offline_message,r),e;case"name":var o=t.answer,a=o?t.label+" "+o:t.label;return o&&(e.requester.name=o),e.offline_message=Tr(e.offline_message,a),e;case"email":var i=t.answer,c=i?t.label+" "+i:t.label;return e.requester.mail=i,e.offline_message=Tr(e.offline_message,c),e;case"question":case"textarea":var s=t.answer,u=s?t.label+" "+s:t.label;return e.offline_message=Tr(e.offline_message,u),e.ticket_message=Tr(e.ticket_message,u),e;case"radio":case"select":var d=t.answer&&t.answer.label,p=d?t.label+" "+d:t.label;return e.offline_message=Tr(e.offline_message,p),e.ticket_message=Tr(e.ticket_message,p),e;case"checkbox":var l=t.answers&&t.answers.map((function(e){return e.label})).join(", "),f=l?t.label+" "+l:t.label;return e.offline_message=Tr(e.offline_message,f),e.ticket_message=Tr(e.ticket_message,f),e;default:return e}}),c)}(r,{fields:o.fields,customerId:n.entityId,groupId:a,licenseId:i,timeZone:c});return N(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)}).then((function(e){if(e.ok)return e.json().then((function(e){return t({},e,{text:u.ticket_message})}));if(400===e.status||422===e.status){var n=function(e){if(!e||!e.errors)throw Error();var t=e.errors[0];if(Object.keys(t)[0]===Er)throw ut({message:t[Er][0],code:"VALIDATION"});throw Error()};return e.json().then(n,n)}throw Error()}))}))},Or="UPLOAD_FAILED",Sr=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,s=r.withCredentials,u=void 0!==s&&s,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,s;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=Or,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Or,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=u,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,s=new FormData,Object.keys(a).forEach((function(e){return s.append(e,a[e])})),s))})),cancel:function(){d.abort()}}},kr=1048576,Pr=10485760,Cr=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(kr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Nr=function(e,t){var n,r=e.auth,o=e.store,a=t.file,i=t.onProgress,c=!1;return{promise:new Promise((function(e,t){!function(e){if(e.size>Pr)throw ut({message:"The file is too big (max size is "+Cr(Pr)+").",code:"TOO_BIG_FILE"})}(a);var s=o.getState(),u=S({organization_id:s.organizationId}),d=ot(s)+"/action/upload_file?"+u,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=Sr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(ut({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},xr=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"3.1.3"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=I,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",S(r))},jr="LISTENER_IDENTITY",Dr={},qr=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map((function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then((function(e){return console.info(t+"."+n+"() <===",e),e}),(function(e){throw console.error(t+"."+n+"() <===",e),e})):c}})).reduce((function(e,t,r){return e[n[r]]=t,e}),{})},Rr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,jr,{value:{}}),n.LISTENER_IDENTITY[t])return Dr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=y(Dr);return n.LISTENER_IDENTITY[t]=o,Dr[o]=r,r};e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,s=r.auth,u=n(r,["on","once","off","getChatHistory","auth"]),d=qr(u);return Object.freeze(t({auth:Object.freeze(qr(s,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then((function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e}),(function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e}))}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t.LISTENER_IDENTITY&&(n=Dr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Rr("on",e,t))},once:function(e,t){a(e,Rr("once",e,t))}}))},e.init=function(e,r,o){void 0===r&&(r="production"),q(e);var a=e.autoConnect,i=void 0===a||a,c=e.customerDataProvider,s=e.identityProvider,u=n(e,["autoConnect","customerDataProvider","identityProvider"]),d=st(t({},u,{env:r})),p=A(),l=function(e){var n=A(),r=Jn(e,n);return t({},Object.keys(r).reduce((function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e}),{}),{reinitialize:function(){r.disconnect(),(r=Jn(e,n)).connect()}})}(d),f="function"==typeof s?s():R(u,o,r);d.addSideEffectsHandler(Fn({emitter:p,socket:l,auth:f,customerDataProvider:c,licenseId:o})),br(d,l);var h=rn.bind(null,d),v=function(){d.dispatch({type:ne})},_=Object.freeze({acceptGreeting:function(e){return h(en(ue,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:f,cancelGreeting:function(e){return h(en(de,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return _.listThreads({chatId:t}).then((function(e){var n=e.threads;if(!n.length)throw ut({message:'There is no thread in "'+t+'".',code:ce});return _.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:v,deactivateChat:function(e){return h(en("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return h(en(pe,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return h(en(le,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return h(en(fe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){d.dispatch(Wt("manual"))},disconnect:function(){d.dispatch(Zt("manual"))},getChat:function(e){return h(en(he,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then((function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)}),(function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach((function(t){return t.reject(e)}))}));case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}};return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){return new Promise(r)}))}}(_,e.chatId)},getCustomer:function(){return h(en(ve,{}))},getForm:function(e){return h(en(_e,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return h(en(ge,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return h(en(ye,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):h(en(me,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return h(en(Ie,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return h(en(be,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:function(e){return h(en(Te,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:p.on,once:p.once,off:p.off,rateChat:function(e){var t=e.chatId,n=e.rating;return _.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw ut({message:'There is no thread in "'+t+'".',code:ce});return _.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return xr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),h(en(we,function(e){var n=Bt(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return h(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Vt(e.event)};return t&&(n.attach_to_last_thread=!0),en(Oe,n)}(e))})),sendTicketForm:function(e){return wr(d,f,e)},sendRichMessagePostback:function(e){return h(en(Se,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return h(en(Pe,{session_fields:Kt(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=d.getState();tt(r,t)&&nt(r)&&h(en(ke,{chat_id:t,sneak_peek_text:n})).catch(I)},startChat:function(t){return void 0===t&&(t={}),xr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),h(en(Ce,Bt(t)))},updateChatProperties:function(e){return h(en(Ne,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return h(en(xe,Xt(e)))},updateCustomerPage:function(e){d.dispatch({type:re,payload:T(["title","url"],e)})},updateEventProperties:function(e){return h(en(De,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return h(en(qe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Nr({auth:f,store:d},e)}});return i?v():d.dispatch({type:U,payload:{sessionFields:"function"==typeof c?c().sessionFields:{}}}),_},e.parseCustomEvent=mn,e.parseEvent=Tn,e.parseFile=_n,e.parseFilledForm=gn,e.parseForm=lr,e.parseGreeting=wn,e.parseMessage=yn,e.parseRichMessage=bn,e.parseSystemMessage=En,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livechat/customer-sdk",
3
- "version": "3.1.2",
3
+ "version": "3.1.3",
4
4
  "description": "SDK for connecting to LiveChat as a customer",
5
5
  "contributors": [
6
6
  "Konrad Kruk <k.kruk@livechatinc.com>",
@@ -23,15 +23,14 @@
23
23
  "dependencies": {
24
24
  "@livechat/backoff": "^0.1.0",
25
25
  "@livechat/customer-auth": "^0.4.0-alpha.7",
26
- "@livechat/data-utils": "^0.2.16",
27
- "@livechat/deferred": "^1.1.0",
26
+ "@livechat/data-utils": "^1.0.3",
28
27
  "@livechat/file-upload": "^0.3.0",
29
28
  "@livechat/isomorphic-storage": "^0.1.0",
30
- "@livechat/mitt": "^0.1.2",
29
+ "@livechat/mitt": "^0.1.3",
31
30
  "@livechat/platform-client": "^0.3.1",
32
- "@livechat/promise-try": "^0.1.0",
31
+ "@livechat/promise-utils": "^1.0.1",
33
32
  "@livechat/side-effects-middleware": "^0.2.0",
34
- "@livechat/url-utils": "^0.2.0",
33
+ "@livechat/url-utils": "^0.2.1",
35
34
  "redux": "^4.0.4",
36
35
  "ts-toolbelt": "^6.7.5",
37
36
  "unfetch": "^4.2.0"
@@ -69,4 +68,4 @@
69
68
  "precommit": "npm run docs:concat && git --git-dir ../../.git --work-tree ../../ add README.md",
70
69
  "//prepublish": "echo 'The code in this package connects to the very latest dev Customer API (unstable). It should not be published to npm. If you want to publish a new version you should checkout on the commit that has been used to publish the latest version of this package, apply your changes there and publish from there.' && exit 1 && npm test"
71
70
  }
72
- }
71
+ }
@@ -0,0 +1,2 @@
1
+ export declare const LIVECHAT_ORGANIZATION_ID = "feaf6c0e-9f43-48ff-9ad0-8e24e0350932";
2
+ //# sourceMappingURL=organizationIds.d.ts.map
@@ -1,4 +1,4 @@
1
- import { compose } from 'redux';
1
+ import type { compose } from 'redux';
2
2
  import { Store } from './types';
3
3
  import { InitialStateData } from './types/state';
4
4
  declare global {
@@ -1,7 +1,7 @@
1
1
  import { Env } from '@livechat/customer-auth/src/types';
2
2
  export type Config = {
3
3
  env: Env;
4
- licenseId: number;
4
+ organizationId: string;
5
5
  eventName: string;
6
6
  };
7
7
  /**
@@ -10,5 +10,5 @@ export type Config = {
10
10
  * 1. package is used in lc production environment
11
11
  * 2. package is used standalone because only then process.env.CUSTOMER_SDK_PACKAGE_NAME will be set to customer_sdk
12
12
  */
13
- export declare const log: ({ env, licenseId, eventName }: Config) => Promise<void>;
13
+ export declare const log: ({ env, organizationId, eventName }: Config) => Promise<void>;
14
14
  //# sourceMappingURL=index.d.ts.map
package/types/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import * as clientEntities from './types/clientEntities';
7
7
  export { default as debug } from './debug';
8
8
  export * from './serverEventParser';
9
9
  export { parseForm } from './serverFrameParser';
10
- export declare const init: (config: Config, env?: Env) => Readonly<{
10
+ export declare const init: (config: Config, env: Env | undefined, licenseId: number) => Readonly<{
11
11
  acceptGreeting({ greetingId, uniqueId }: {
12
12
  greetingId: number;
13
13
  uniqueId: string;
@@ -109,7 +109,7 @@ export declare const init: (config: Config, env?: Env) => Readonly<{
109
109
  pageId?: undefined;
110
110
  limit?: number;
111
111
  }): Promise<{
112
- chatsSummary: any;
112
+ chatsSummary: clientEntities.ChatSummary[];
113
113
  totalChats: number;
114
114
  users: clientEntities.ChatUser[];
115
115
  previousPageId: string | null;
@@ -167,7 +167,13 @@ export declare const init: (config: Config, env?: Env) => Readonly<{
167
167
  [x: string]: unknown;
168
168
  [x: symbol]: unknown;
169
169
  }>): void;
170
- } & (() => void);
170
+ } & {
171
+ (type: "*", handler: import("mitt").WildcardHandler<{
172
+ [x: string]: unknown;
173
+ [x: symbol]: unknown;
174
+ }>): void;
175
+ (): void;
176
+ };
171
177
  rateChat(params: {
172
178
  chatId: string;
173
179
  rating: {
@@ -1,10 +1,11 @@
1
1
  import { CustomerAuth } from '@livechat/customer-auth';
2
2
  import { Store } from './types';
3
3
  import * as clientEntities from './types/clientEntities';
4
- declare const sendTicketForm: (store: Store, auth: CustomerAuth, { filledForm, groupId, timeZone, }: {
4
+ declare const sendTicketForm: (store: Store, auth: CustomerAuth, { filledForm, groupId, licenseId, timeZone, }: {
5
5
  filledForm: Extract<clientEntities.RequestBodyEvent, {
6
6
  type: 'filled_form';
7
7
  }>;
8
+ licenseId: number;
8
9
  groupId?: number | undefined;
9
10
  timeZone?: string | undefined;
10
11
  }) => Promise<{
@@ -285,7 +285,7 @@ export declare const parseResponse: ({ request, response, }: {
285
285
  } | {
286
286
  action: "list_chats";
287
287
  payload: {
288
- chatsSummary: any;
288
+ chatsSummary: clientEntities.ChatSummary[];
289
289
  totalChats: number;
290
290
  users: clientEntities.ChatUser[];
291
291
  previousPageId: string | null;
@@ -2,11 +2,12 @@ import { CustomerAuth } from '@livechat/customer-auth';
2
2
  import { SocketClient } from '../socketClient';
3
3
  import { Action } from '../types/actions';
4
4
  import { CustomerDataProvider, Store } from '../types';
5
- declare const _default: ({ auth, customerDataProvider, emitter, socket, }: {
5
+ declare const _default: ({ auth, customerDataProvider, emitter, socket, licenseId, }: {
6
6
  auth: CustomerAuth;
7
7
  customerDataProvider?: CustomerDataProvider | undefined;
8
8
  socket: SocketClient;
9
9
  emitter: any;
10
+ licenseId: number;
10
11
  }) => (action: Action, store: Store) => void;
11
12
  export default _default;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Store } from './types';
2
2
  import { SideStorage } from './types/serverEntities';
3
- export declare const getSideStorage: (store: Store) => Promise<SideStorage>;
4
- export declare const saveSideStorage: (store: Store, sideStorage: SideStorage) => Promise<void>;
3
+ export declare const getSideStorage: (store: Store, licenseId: number) => Promise<SideStorage>;
4
+ export declare const saveSideStorage: (store: Store, sideStorage: SideStorage) => void;
5
5
  //# sourceMappingURL=sideStorage.d.ts.map
@@ -4,6 +4,9 @@ import { Push, PushResponse, ResponseError } from './types/frames';
4
4
  declare const _default: (store: Store, socket: SocketClient) => {
5
5
  <Key extends keyof import("@livechat/platform-client/types").PlatformClientEvents<PushResponse | Push | import("./types/frames").Response | ResponseError>>(type: Key, handler?: import("mitt").Handler<import("@livechat/platform-client/types").PlatformClientEvents<PushResponse | Push | import("./types/frames").Response | ResponseError>[Key]> | undefined): void;
6
6
  (type: "*", handler: import("mitt").WildcardHandler<import("@livechat/platform-client/types").PlatformClientEvents<PushResponse | Push | import("./types/frames").Response | ResponseError>>): void;
7
- } & (() => void);
7
+ } & {
8
+ (type: "*", handler: import("mitt").WildcardHandler<import("@livechat/platform-client/types").PlatformClientEvents<PushResponse | Push | import("./types/frames").Response | ResponseError>>): void;
9
+ (): void;
10
+ };
8
11
  export default _default;
9
12
  //# sourceMappingURL=socketListener.d.ts.map
@@ -63,6 +63,7 @@ export type ChatSummary = {
63
63
  }>;
64
64
  };
65
65
  lastEvent?: Event;
66
+ order?: number;
66
67
  };
67
68
  export type Chat = {
68
69
  id: string;
@@ -282,6 +283,7 @@ type ClientGeneratedEventBase = {
282
283
  type EventBase = {
283
284
  customId?: string;
284
285
  properties: Properties;
286
+ timestamp?: number;
285
287
  };
286
288
  export type NonSpecificEventBase = ServerGeneratedEventBase & ClientGeneratedEventBase & EventBase;
287
289
  type FileSpecificProps = {
@@ -18,6 +18,7 @@ export type Greeting = {
18
18
  };
19
19
  };
20
20
  export type DynamicConfig = {
21
+ organization_id: string;
21
22
  customer_data: {
22
23
  chats_count: number;
23
24
  invitations_accepted_count: number;
@@ -8,7 +8,7 @@ export type InitialStateData = {
8
8
  name?: string;
9
9
  version?: string;
10
10
  };
11
- licenseId: number;
11
+ organizationId: string;
12
12
  groupId?: number | null;
13
13
  env: Env;
14
14
  page?: Page | null;
@@ -24,7 +24,7 @@ export type State = {
24
24
  version?: string;
25
25
  };
26
26
  env: Env;
27
- licenseId: number;
27
+ organizationId: string;
28
28
  groupId: number | null;
29
29
  chats: Record<string, {
30
30
  active: boolean;