@livechat/customer-sdk 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -89,6 +89,10 @@ Other optional configuration parameters are also available:
|
|
|
89
89
|
| redirectUri | string | | Optional; should only be used inside ReactNative, this is the URI which your webview is redirected to after authorization. |
|
|
90
90
|
| customerDataProvider | () => CustomerData | | Optional; should only be used if you need to send customer data during login. In general, [`updateCustomer()`](#updateCustomer) should be prefered for sending customer data. |
|
|
91
91
|
| identityProvider | () => CustomerAuth | | Optional; allows for providing own instance of the CustomerAuth object which contains the customer access token handlers. See [Custom Identity Provider](https://developers.livechat.com/docs/extending-chat-widget/custom-identity-provider) for more information. |
|
|
92
|
+
| page | object | | Optional; customer page information. |
|
|
93
|
+
| page.url | string | | Optional; customer page url. |
|
|
94
|
+
| page.title | string | | Optional; customer page title. |
|
|
95
|
+
| referrer | string | | Optional; page referrer |
|
|
92
96
|
|
|
93
97
|
CustomerData:
|
|
94
98
|
|
|
@@ -2130,7 +2134,13 @@ customerSDK.on('disconnected', ({ reason }) => {
|
|
|
2130
2134
|
|
|
2131
2135
|
# Changelog
|
|
2132
2136
|
|
|
2133
|
-
## [v4.0.
|
|
2137
|
+
## [v4.0.2] - 2023-11-02
|
|
2138
|
+
|
|
2139
|
+
### Added
|
|
2140
|
+
|
|
2141
|
+
- Extend init function types with page and referrer.
|
|
2142
|
+
|
|
2143
|
+
## [v4.0.1] - 2023-09-19
|
|
2134
2144
|
|
|
2135
2145
|
### Added
|
|
2136
2146
|
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -232,7 +232,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
232
232
|
return {
|
|
233
233
|
application: _extends({}, application, {
|
|
234
234
|
name: "customer_sdk",
|
|
235
|
-
version: "4.0.
|
|
235
|
+
version: "4.0.2"
|
|
236
236
|
}),
|
|
237
237
|
organizationId: organizationId,
|
|
238
238
|
env: env,
|
|
@@ -2816,6 +2816,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
|
2816
2816
|
});
|
|
2817
2817
|
};
|
|
2818
2818
|
|
|
2819
|
+
// eslint-disable-next-line local/no-livechat-package-direct-file-import
|
|
2819
2820
|
/**
|
|
2820
2821
|
* Logs event to Graylog with provided config data.
|
|
2821
2822
|
* Logging request is fired only when all of those conditions are true:
|
|
@@ -2832,7 +2833,7 @@ var log = function log(_ref) {
|
|
|
2832
2833
|
var message = {
|
|
2833
2834
|
event_name: eventName,
|
|
2834
2835
|
severity: 'Informational',
|
|
2835
|
-
sdkVersion: "4.0.
|
|
2836
|
+
sdkVersion: "4.0.2"
|
|
2836
2837
|
};
|
|
2837
2838
|
var body = {
|
|
2838
2839
|
organizationId: organizationId,
|
|
@@ -232,7 +232,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
232
232
|
return {
|
|
233
233
|
application: _extends({}, application, {
|
|
234
234
|
name: "customer_sdk",
|
|
235
|
-
version: "4.0.
|
|
235
|
+
version: "4.0.2"
|
|
236
236
|
}),
|
|
237
237
|
organizationId: organizationId,
|
|
238
238
|
env: env,
|
|
@@ -2816,6 +2816,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
|
2816
2816
|
})["catch"](dataUtils.noop);
|
|
2817
2817
|
};
|
|
2818
2818
|
|
|
2819
|
+
// eslint-disable-next-line local/no-livechat-package-direct-file-import
|
|
2819
2820
|
/**
|
|
2820
2821
|
* Logs event to Graylog with provided config data.
|
|
2821
2822
|
* Logging request is fired only when all of those conditions are true:
|
|
@@ -2832,7 +2833,7 @@ var log = function log(_ref) {
|
|
|
2832
2833
|
var message = {
|
|
2833
2834
|
event_name: eventName,
|
|
2834
2835
|
severity: 'Informational',
|
|
2835
|
-
sdkVersion: "4.0.
|
|
2836
|
+
sdkVersion: "4.0.2"
|
|
2836
2837
|
};
|
|
2837
2838
|
var body = {
|
|
2838
2839
|
organizationId: organizationId,
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -217,7 +217,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
217
217
|
return {
|
|
218
218
|
application: _extends({}, application, {
|
|
219
219
|
name: "customer_sdk",
|
|
220
|
-
version: "4.0.
|
|
220
|
+
version: "4.0.2"
|
|
221
221
|
}),
|
|
222
222
|
organizationId: organizationId,
|
|
223
223
|
env: env,
|
|
@@ -2801,6 +2801,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
|
2801
2801
|
});
|
|
2802
2802
|
};
|
|
2803
2803
|
|
|
2804
|
+
// eslint-disable-next-line local/no-livechat-package-direct-file-import
|
|
2804
2805
|
/**
|
|
2805
2806
|
* Logs event to Graylog with provided config data.
|
|
2806
2807
|
* Logging request is fired only when all of those conditions are true:
|
|
@@ -2817,7 +2818,7 @@ var log = function log(_ref) {
|
|
|
2817
2818
|
var message = {
|
|
2818
2819
|
event_name: eventName,
|
|
2819
2820
|
severity: 'Informational',
|
|
2820
|
-
sdkVersion: "4.0.
|
|
2821
|
+
sdkVersion: "4.0.2"
|
|
2821
2822
|
};
|
|
2822
2823
|
var body = {
|
|
2823
2824
|
organizationId: organizationId,
|
package/dist/customer-sdk.js
CHANGED
|
@@ -1331,7 +1331,7 @@
|
|
|
1331
1331
|
return {
|
|
1332
1332
|
application: _extends({}, application, {
|
|
1333
1333
|
name: "customer_sdk",
|
|
1334
|
-
version: "4.0.
|
|
1334
|
+
version: "4.0.2"
|
|
1335
1335
|
}),
|
|
1336
1336
|
organizationId: organizationId,
|
|
1337
1337
|
env: env,
|
|
@@ -4206,6 +4206,7 @@
|
|
|
4206
4206
|
});
|
|
4207
4207
|
};
|
|
4208
4208
|
|
|
4209
|
+
// eslint-disable-next-line local/no-livechat-package-direct-file-import
|
|
4209
4210
|
/**
|
|
4210
4211
|
* Logs event to Graylog with provided config data.
|
|
4211
4212
|
* Logging request is fired only when all of those conditions are true:
|
|
@@ -4222,7 +4223,7 @@
|
|
|
4222
4223
|
var message = {
|
|
4223
4224
|
event_name: eventName,
|
|
4224
4225
|
severity: 'Informational',
|
|
4225
|
-
sdkVersion: "4.0.
|
|
4226
|
+
sdkVersion: "4.0.2"
|
|
4226
4227
|
};
|
|
4227
4228
|
var body = {
|
|
4228
4229
|
organizationId: organizationId,
|
package/dist/customer-sdk.min.js
CHANGED
|
@@ -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,u=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},s=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 _(e){return Array.isArray(e)}function h(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 v(e,t){return h(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function y(e){return e}function g(e){var t=Math.random().toString(36).substring(2);return l(t,e)?g(e):t}function m(e,t){return-1!==t.indexOf(e)}function I(){}function E(e){return h(e).map((function(t){return e[t]}))}function T(e,t){return e.reduce((function(e,n){return e[n]=t[n],e}),{})}function O(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}function b(e){return h(e).map((function(t){return[t,e[t]]}))}function S(e,t){return e===t?0:t>e?-1:1}var N=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},w=/[^:]+:\/\/[^(/|?)\s]+/,C=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},R=(RegExp("^[\0-]*("+C("javascript")+"|"+C("data")+"):","i"),/^((http(s)?:)?\/\/)/);function P(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=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:u,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 s 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(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)}))}var A="https://accounts.livechatinc.com",D=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},k=function(e,t){return P(""+function(e,t){return""+("production"===t?A:A.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(w),(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 D({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw D({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},U=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},x=function(e,t,n){U(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=s(o).then((function(e){null!==p&&(p=null,e?u(a,e).then((function(){d(o).then((function(){c=JSON.parse(e)}))})):d(o).then((function(){return s(a).then((function(e){e&&(c=JSON.parse(e))}))})))})),l=function(){return i=k(e,n).then((function(e){return i=null,u(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 j=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)}))}})},L="change_region",M="check_goals",q="destroy",G="fail_all_requests",H="login_success",F="pause_connection",z="prefetch_token",V="push_received",Y="push_response_received",B="reconnect",J="request_failed",K="response_received",X="send_request",Q="set_chat_active",W="set_self_id",Z="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",ue="SDK_DESTROYED",se="accept_greeting",de="cancel_greeting",pe="delete_chat_properties",le="delete_event_properties",fe="delete_thread_properties",_e="get_chat",he="get_customer",ve="get_form",ye="get_predicted_agent",ge="get_url_info",me="list_chats",Ie="list_group_statuses",Ee="list_threads",Te="login",Oe="mark_events_as_seen",be="resume_chat",Se="send_event",Ne="send_rich_message_postback",we="send_sneak_peek",Ce="set_customer_session_fields",Re="start_chat",Pe="update_chat_properties",Ae="update_customer",De="update_customer_page",ke="update_event_properties",Ue="update_thread_properties";var xe=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")()),je=function(){return Math.random().toString(36).substring(7).split("").join(".")},Le={INIT:"@@redux/INIT"+je(),REPLACE:"@@redux/REPLACE"+je(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+je()}};function Me(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 qe(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(qe)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)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(u)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 s(),c.push(e),function(){if(t){if(u)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,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Me(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(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!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:Le.REPLACE})}function _(){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)}}})[xe]=function(){return this},e}return l({type:Le.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[xe]=_,r}function Ge(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){Ge(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 ze(){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 Ve(){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=ze.apply(void 0,a)(n.dispatch)})}}}var Ye=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 Be(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Je="connected",Ke="destroyed",Xe="disconnected",Qe="paused",We="reconnecting",Ze=Object.freeze({__proto__:null,CONNECTED:Je,DESTROYED:Ke,DISCONNECTED:Xe,PAUSED:Qe,RECONNECTING:We}),$e="agent",et="customer",tt=Object.freeze({__proto__:null,AGENT:$e,CUSTOMER:et}),nt=function(e){return e.connection.status},rt=function(e,t){return e.requests[t]},ot=function(e){return e.users.self.id},at=function(e,t){var n=e.chats[t];return!!n&&n.active},it=function(e){return nt(e)===Je},ct=function(e){return 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"}(e)+"/v3.5/customer"},ut=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},st=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 st(Ke,e)},n.login_success=function(e){return st(Je,e)},n.pause_connection=function(e){return st(Qe,e)},n.request_failed=ut,n.response_received=ut,n.push_response_received=ut,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=nt(e);return t({},st(n===Xe?Xe:We,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=y,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=qe(dt(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,_=void 0!==f&&f,h=e.mobile,v=void 0!==h&&h;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"4.0.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:Xe},page:u,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:_,mobile:v}}(e)),n(Ve(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="access_token_expired",_t="customer_banned",ht="customer_temporarily_blocked",vt="license_expired",yt="license_not_found",gt="misdirected_connection",mt="product_version_changed",It="service_temporarily_unavailable",Et="too_many_connections",Tt="too_many_unauthorized_connections",Ot="unsupported_version",bt="logged_out_remotely",St=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ft,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:_t,CUSTOMER_TEMPORARILY_BLOCKED:ht,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:vt,LICENSE_NOT_FOUND:yt,MISDIRECTED_CONNECTION:gt,PRODUCT_VERSION_CHANGED:mt,SERVICE_TEMPORARILY_UNAVAILABLE:It,TOO_MANY_CONNECTIONS:Et,TOO_MANY_UNAUTHORIZED_CONNECTIONS:Tt,UNSUPPORTED_VERSION:Ot,LOGGED_OUT_REMOTELY:bt}),Nt="chat_deactivated",wt="chat_properties_deleted",Ct="chat_properties_updated",Rt="chat_transferred",Pt="customer_disconnected",At="customer_page_updated",Dt="customer_side_storage_updated",kt="customer_updated",Ut="event_properties_deleted",xt="event_properties_updated",jt="event_updated",Lt="events_marked_as_seen",Mt="greeting_accepted",qt="greeting_canceled",Gt="groups_status_updated",Ht="incoming_chat",Ft="incoming_event",zt="incoming_greeting",Vt="incoming_multicast",Yt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Qt="user_added_to_chat",Wt="user_removed_from_chat",Zt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:wt,CHAT_PROPERTIES_UPDATED:Ct,CHAT_TRANSFERRED:Rt,CUSTOMER_DISCONNECTED:Pt,CUSTOMER_PAGE_UPDATED:At,CUSTOMER_SIDE_STORAGE_UPDATED:Dt,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Ut,EVENT_PROPERTIES_UPDATED:xt,EVENT_UPDATED:jt,EVENTS_MARKED_AS_SEEN:Lt,GREETING_ACCEPTED:Mt,GREETING_CANCELED:qt,GROUPS_STATUS_UPDATED:Gt,INCOMING_CHAT:Ht,INCOMING_EVENT:Ft,INCOMING_GREETING:zt,INCOMING_MULTICAST:Vt,INCOMING_RICH_MESSAGE_POSTBACK:Yt,INCOMING_TYPING_INDICATOR:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Qt,USER_REMOVED_FROM_CHAT:Wt}),$t="file",en="form",tn="filled_form",nn="message",rn="rich_message",on="system_message",an="custom",cn=Object.freeze({__proto__:null,FILE:$t,FORM:en,FILLED_FORM:tn,MESSAGE:nn,RICH_MESSAGE:rn,SYSTEM_MESSAGE:on,CUSTOM:an}),un=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||_(t)||(n.properties=e.properties),n},sn=function(e){switch(e.type){case nn:var r=t({},un(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 $t:return t({},un(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case tn:return t({},un(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 on:var o=t({},un(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case an:var a=t({},un(e),{type:e.type});return e.content&&(a.content=e.content),a}},dn=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(sn)),r&&(t.properties=r),t}(i)),o},pn=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},ln=function(e){var t=O(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=pn(e.sessionFields)),t},fn=function(e){return{type:q,payload:{reason:e}}},_n=function(e){return{type:F,payload:{reason:e}}},hn=function(e){return void 0===e&&(e=!1),{type:z,payload:{fresh:e}}},vn=function(e){return{type:B,payload:{delay:e}}},yn=function(e,n,r){return{type:X,payload:t({request:{action:e,payload:n}},r&&{source:r})}},gn=function(e,t){return{type:Q,payload:{id:e,active:t}}},mn=function(e){return{type:W,payload:{id:e}}},In=function(e,t){t.payload.id=g(e.getState().requests);var n=Be(),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},En="AUTHENTICATION",Tn="CUSTOMER_BANNED",On="USERS_LIMIT_REACHED",bn="WRONG_PRODUCT_VERSION",Sn=Object.freeze({__proto__:null,AUTHENTICATION:En,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tn,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:On,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:bn}),Nn=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},wn=function(e,t){var n=function(e,t){var n=e.getState();return"side_storage_"+t+(n.uniqueGroups?":"+n.groupId:"")}(e,t),r=Nn(e);return s(n).catch(I).then((function(e){return e?u(r,e).catch(I).then((function(){return d(n).catch(I).then((function(){return JSON.parse(e)})).catch(I)})):s(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}}},Rn=function(e,t,n){return In(e,yn(t,n,"login"))};function Pn(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},u=Ye(c),s=Ye(t({},c,{min:1e3})),d=u,p=function(e){return o.dispatch(fn(e))},l=function(){return o.dispatch(vn(d.duration()))},f=function(){return Promise.all([e.getToken(),wn(o,r)])},_=function(e){var t=e[0],n=e[1],r=ot(o.getState());if(null===r)o.dispatch(mn(t.entityId));else if(r!==t.entityId){var a=Error("Identity has changed.");throw a.code=ae,a}return[t,n]},h=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?ln(n()):{},customer_side_storage:a,is_mobile:l,application:T(["name","version"],u)};return"number"==typeof s&&(f.group_id=s),u.channelType&&(f.application.channel_type=u.channelType),null!==d&&(i=d,f.customer_page=d),null!==p&&(f.referrer=p),Promise.race([Rn(o,Te,f),(t=15e3,new Promise((function(e){setTimeout(e,t)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=Cn([f,_,h],(function(e){var t;a=null,u.reset(),s.reset(),d=u,t=o.getState().page,i!==t&&Rn(o,De,t).catch(I),i=null,o.dispatch({type:H,payload:e})}),(function(t){switch(a=null,t.code){case En:return e.getFreshToken(),void l();case oe:case ie:case ue: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 On:return void o.dispatch(_n(t.code.toLowerCase()));case ae:case Tn:case bn:return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=s,void l();default:return void l()}}))},cancel:function(){var e;null==(e=a)||e.cancel()}}}var An,Dn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:G,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},kn=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:J,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},Un=Object.freeze({success:!0}),xn=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},jn=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},Ln=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},jn(300,n)),high:t({url:n.thumbnail2x_url},jn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name})},Mn=function(e,r){return t({},xn(e,r),{type:tn,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}}))})},qn=function(e,n){return t({},xn(e,n),{type:nn,text:n.text})},Gn=function(e,n){return t({},xn(e,n),{type:an},n.content&&{content:n.content})},Hn=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},Fn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},xn(e,n),{type:rn,template:n.template_id,elements:n.elements.map(Hn)});default:return null}},zn=function(e,n){var r=t({},xn(e,t({},n,{author_id:"system"})),{type:on,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Vn=function(e,n){switch(n.type){case $t:return Ln(e,n);case en:return function(e,n){return t({},xn(e,n),{authorId:"system",type:en,formId:n.form_id,fields:n.fields})}(e,n);case tn:return Mn(e,n);case nn:return qn(e,n);case rn:return Fn(e,n);case on:return zn(e,n);case an:return Gn(e,n);default:return null}},Yn=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:Vn(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}}},Bn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Jn=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},Kn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Bn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Vn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?tr(t.queue):null}},Xn=function(e){return{id:e.id,access:Bn(e.access),users:e.users.map(nr),properties:e.properties||{},eventsSeenUpToMap:Jn(e.users)}},Qn=function(e){var t=O(["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},Wn=function(e){var n=Qn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Zn=function(e){var n=e.statistics;return t({},Wn(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}})},$n=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}},er=function(e){return{position:e.position,waitTime:e.wait_time}},tr=function(e){return t({},er(e),{queuedAt:e.queued_at})},nr=function(e){return e.type===et?t({},Wn(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},rr=((An={}).CONNECTION_LOST="Connection lost.",An.MISDIRECTED_CONNECTION="Connected to wrong region.",An),or=function(e,t){var n=e.getState();switch(t.type){case Y:case V:switch(t.payload.action){case Nt:return void e.dispatch(gn(t.payload.payload.chatId,!1));case Ht:return void e.dispatch(gn(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 at(n,e.id)!==t})).forEach((function(t){e.dispatch(gn(t.id,t.active))}));default:return}}},ar=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)}}))},ir=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Xt: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 Dt:return void function(e,t){u(Nn(e),JSON.stringify(t)).catch(I)}(r,o.payload.customer_side_storage);case Pt:switch(o.payload.reason){case ft:r.dispatch(hn(!0)),r.dispatch(vn(100)),n("disconnected",o.payload);break;case _t:case ht:case yt:case mt:case Et:case Ot:case bt:r.dispatch(fn(o.payload.reason));break;case gt:Dn(r,ie),r.dispatch({type:L,payload:o.payload.data});break;case It:case Tt:Dn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(vn(100)),n("disconnected",o.payload)}return;case Gt:return void n("availability_updated",{availability:"offline"===o.payload.groups[0].status?"offline":"online"});case Ht:return ar(n,o.payload.chat.users),void n(o.action,o.payload);case Ft:if(null===o.payload.event)return;return void n(o.action,o.payload);case Bt:return void n(o.action,o.payload);case Qt:return ar(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},cr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Un);case _e:return ar(n,r.payload.users),void r.resolve(r.payload);case Ht:return ar(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case me:return ar(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},ur=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=Pn(n,e.customerDataProvider,e.licenseId);return function(e,c){switch(e.type){case L:return void o.reinitialize();case M:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===ot(r)&&e.dispatch(mn(t.entityId));var o=r.page;if(o&&o.url){var a=N({organization_id:r.organizationId}),i={session_fields:pn(n||{}),group_id:r.groupId||0,page_url:o.url};return P(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(I);case q:var u=e.payload;switch(i.cancel(),o.destroy(),u.reason){case"manual":Dn(c,ue);break;case _t:case vt:case mt:case bt:Dn(c,oe),a("disconnected",u);break;default:a("disconnected",u)}return void r.off();case G:var s=e.payload,d=s.reason,p={message:rr[d],code:d};return void s.rejects.forEach((function(e){e(lt(p))}));case H:var l=e.payload,f=l.dynamicConfig,_=l.chats,h=l.greeting,v=t({customer:l.customer,availability:l.availability},h&&{greeting:h});return Object.defineProperty(v,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(v,"__unsafeChats",{value:_}),void a("connected",v);case F:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case z: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 V:return e.payload.action===Pt||or(c,e),void ir({emit:a,store:c},e);case Y:return or(c,e),void cr({emit:a},e);case B:return Dn(c,oe),void o.reconnect(e.payload.delay);case J:var g=e.payload;return void(0,g.reject)(lt(g.error));case K:return or(c,e),void cr({emit:a},e);case X:var T=c.getState();return function(e){return nt(e)===Ke}(T)?void kn(c,e,{code:ue,message:"SDK destroyed."}):it(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Te:var a=[];return void e.emit(t({},o,{version:"3.5",payload:t({},o.payload,{pushes:{3.5:E(Zt).filter((function(e){return e!==Pt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void kn(c,e,{code:"NO_CONNECTION",message:"No connection."});case W:return void a("customer_id",e.payload.id);case $:return void a("disconnected",{reason:"connection_lost"});case Z:return void i.sendLogin(c);case ee:if(!it(c.getState()))return;return void a("connection_recovered");case te:if(!it(c.getState()))return;return void a("connection_unstable");case ne:return o.connect(),void c.dispatch(hn());case re:if(!it(c.getState()))return;return void In(c,yn(De,e.payload)).catch(I);default:return}}},sr=function(e,t){var n,r=(void 0===t?{}:t).query,o=N(void 0===r?{}:r),a=o?e+"?"+o:e,i=j(),c=Ye({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},dr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?j():d,l=sr(e,{query:s}),f=(o=I,{cancel:function(){clearTimeout(r),o=I},check:function(){var e=Be();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()}))}),_=function(){return 1===l.getReadyState()},h=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",h),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(){_()&&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(),_()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},pr=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return dr(r,{query:{organization_id:n.organizationId},emitter:t})},lr=function(e){return{chatId:e.chat_id,properties:e.properties}},fr=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?tr(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},_r=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},hr=function(e){return t({id:e.id},Qn(e))},vr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},yr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},gr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Vn(t,e.event)}},mr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Ir=function(e){return{uniqueId:e.unique_id}},Er=function(e){var n=e.chat;return{chat:t({},Xn(n),{thread:Kn(n.id,n.thread)})}},Tr=function(e){return{chatId:e.chat_id,event:Vn(e.thread_id,e.event)}},Or=function(e){return Yn(e)},br=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Sr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Nr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:er(e.queue)}},wr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Cr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Rr=function(e){return{chatId:e.chat_id,user:nr(e.user),present:e.user.present}},Pr=function(e){return{chatId:e.chat_id,userId:e.user_id}},Ar=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}}))},Dr=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+""})})),Ar(r)):Ar(e.fields)}},kr=function(e){return e.enabled?t({},e,{form:Dr(e.form)}):e},Ur=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(R,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},xr=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:Bn(e.access),properties:a,users:i.map(nr),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Jn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return Vn(e.thread_id,e.event)}),r);var u,s=r,d=Object.keys(s).map((function(e){return s[e]})),p=(u=d.sort((function(e,t){return e.thread_id===t.thread_id?S(e.event.created_at,t.event.created_at):S(e.thread_created_at,t.thread_created_at)}))).length>0?u[u.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)},(_(a)?[].concat(a):E(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}},jr=function(e){return e.groups_status},Lr=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}},Mr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Zn(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:Yn(i)})},qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case wt:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case Ct:return{action:e.action,payload:lr(e.payload)};case Rt:return{action:e.action,payload:fr(e.payload)};case Dt:case Pt:return{action:e.action,payload:e.payload};case At:return{action:e.action,payload:_r(e.payload)};case kt:return{action:e.action,payload:hr(e.payload)};case Ut:return{action:e.action,payload:vr(e.payload)};case xt:return{action:e.action,payload:yr(e.payload)};case jt:return{action:e.action,payload:gr(e.payload)};case Lt:return{action:e.action,payload:mr(e.payload)};case Mt:case qt:return{action:e.action,payload:Ir(e.payload)};case Gt:return{action:e.action,payload:e.payload};case Ht:return{action:e.action,payload:Er(e.payload)};case Ft:return{action:e.action,payload:Tr(e.payload)};case zt:return{action:e.action,payload:Or(e.payload)};case Vt:return{action:e.action,payload:e.payload};case Yt:return{action:e.action,payload:br(e.payload)};case Bt:return{action:e.action,payload:Sr(e.payload)};case Jt:return{action:e.action,payload:Nr(e.payload)};case Kt:return{action:e.action,payload:wr(e.payload)};case Xt:return{action:e.action,payload:Cr(e.payload)};case Qt:return{action:e.action,payload:Rr(e.payload)};case Wt:return{action:e.action,payload:Pr(e.payload)}}var t},Gr=function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r=e.request,o=e.response;switch(o.action){case se:case de:case pe:case le:case fe:return{action:o.action,payload:Un};case _e:return{action:o.action,payload:(n=o.payload,t({},Xn(n),{thread:n.thread?Kn(n.id,n.thread):null}))};case he:return{action:o.action,payload:Zn(o.payload)};case ve:return{action:o.action,payload:kr(o.payload)};case ye:return{action:o.action,payload:$n(o.payload)};case ge:return{action:o.action,payload:Ur(o.payload)};case me:return{action:o.action,payload:xr(o.payload)};case Ie:return{action:o.action,payload:jr(o.payload)};case Ee:return{action:o.action,payload:Lr(r,o.payload)};case Te:return{action:o.action,payload:Mr(o.payload)};case Oe:case we:case Ce:case Ne:case Pe:case Ae:case De:case ke:case Ue:return{action:o.action,payload:Un}}}({request:a.request,response:n});r({type:K,payload:t({id:o,promise:i,resolve:c},u)})},Hr=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:Z})})),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=rt((0,e.getState)(),o);r({type:J,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case be:case Se:case Re:return;default:return void Gr(e,n)}}if("request_id"in n)switch(n.action){case Ht:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=qr(n);r({type:Y,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=qr(t);n&&e.dispatch({type:V,payload:n})}(e,n)})),n.on("disconnect",(function(){Dn(e,oe),nt(e.getState())===Je&&e.dispatch({type:$})})),n.on("connection_unstable",(function(){r({type:te})})),n.on("connection_recovered",(function(){r({type:ee})})),n.off},Fr="UPLOAD_FAILED",zr=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,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,u;"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=Fr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Fr,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,u=new FormData,Object.keys(a).forEach((function(e){return u.append(e,a[e])})),u))})),cancel:function(){d.abort()}}},Vr=1048576,Yr=10485760,Br=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(Vr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Jr=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>Yr)throw lt({message:"The file is too big (max size is "+Br(Yr)+").",code:"TOO_BIG_FILE"})}(a);var u=o.getState(),s=N({organization_id:u.organizationId}),d=ct(u)+"/action/upload_file?"+s,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=zr(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())}}},Kr=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:"4.0.0"})};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",N(r))},Xr="LISTENER_IDENTITY",Qr={},Wr=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}),{})},Zr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Xr,{value:{}}),n.LISTENER_IDENTITY[t])return Qr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=g(Qr);return n.LISTENER_IDENTITY[t]=o,Qr[o]=r,r},$r=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"});e.connectionStatuses=Ze,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,u=r.auth,s=n(r,["on","once","off","getChatHistory","auth"]),d=Wr(s);return Object.freeze(t({auth:Object.freeze(Wr(u,".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=Qr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Zr("on",e,t))},once:function(e,t){a(e,Zr("once",e,t))}}))},e.eventTypes=cn,e.init=function(e,r,o){void 0===r&&(r="production"),U(e);var a=e.autoConnect,i=void 0===a||a,c=e.customerDataProvider,u=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),d=pt(t({},s,{env:r})),p=j(),l=function(e){var n=j(),r=pr(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=pr(e,n)).connect()}})}(d),f="function"==typeof u?u():x(s,o,r);d.addSideEffectsHandler(ur({emitter:p,socket:l,auth:f,customerDataProvider:c,licenseId:o})),Hr(d,l);var _=In.bind(null,d),h=function(){d.dispatch({type:ne})},v=Object.freeze({acceptGreeting:function(e){return _(yn(se,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:f,cancelGreeting:function(e){return _(yn(de,{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:ce});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return _(yn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return _(yn(pe,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return _(yn(le,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return _(yn(fe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){d.dispatch(fn("manual"))},disconnect:function(){d.dispatch(_n("manual"))},getChat:function(e){return _(yn(_e,{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 _(yn(he,{}))},getForm:function(e){return _(yn(ve,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return _(yn(ye,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return _(yn(ge,{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).")):_(yn(me,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return _(yn(Ie,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return _(yn(Ee,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 _(yn(Oe,{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 v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(be,function(e){var n=dn(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 _(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:sn(e.event)};return t&&(n.attach_to_last_thread=!0),yn(Se,n)}(e))})),sendRichMessagePostback:function(e){return _(yn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return _(yn(Ce,{session_fields:pn(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=d.getState();at(r,t)&&it(r)&&_(yn(we,{chat_id:t,sneak_peek_text:n})).catch(I)},startChat:function(t){return void 0===t&&(t={}),Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(Re,dn(t)))},updateChatProperties:function(e){return _(yn(Pe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return _(yn(Ae,ln(e)))},updateCustomerPage:function(e){d.dispatch({type:re,payload:O(["title","url"],e)})},updateEventProperties:function(e){return _(yn(ke,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return _(yn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Jr({auth:f,store:d},e)}});return i?h():d.dispatch({type:M,payload:{sessionFields:"function"==typeof c?c().sessionFields:{}}}),v},e.parseCustomEvent=Gn,e.parseEvent=Vn,e.parseFile=Ln,e.parseFilledForm=Mn,e.parseForm=Dr,e.parseGreeting=Yn,e.parseMessage=qn,e.parseRichMessage=Fn,e.parseSystemMessage=zn,e.serverDisconnectionReasons=St,e.serverErrorCodes=Sn,e.serverPushActions=Zt,e.sortOrders=$r,e.userTypes=tt,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,u=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},s=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 _(e){return Array.isArray(e)}function h(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 v(e,t){return h(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function y(e){return e}function g(e){var t=Math.random().toString(36).substring(2);return l(t,e)?g(e):t}function m(e,t){return-1!==t.indexOf(e)}function I(){}function E(e){return h(e).map((function(t){return e[t]}))}function T(e,t){return e.reduce((function(e,n){return e[n]=t[n],e}),{})}function O(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}function b(e){return h(e).map((function(t){return[t,e[t]]}))}function S(e,t){return e===t?0:t>e?-1:1}var N=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},w=/[^:]+:\/\/[^(/|?)\s]+/,C=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},R=(RegExp("^[\0-]*("+C("javascript")+"|"+C("data")+"):","i"),/^((http(s)?:)?\/\/)/);function P(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=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:u,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 s 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(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)}))}var A="https://accounts.livechatinc.com",D=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},k=function(e,t){return P(""+function(e,t){return""+("production"===t?A:A.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(w),(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 D({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw D({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},U=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},x=function(e,t,n){U(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=s(o).then((function(e){null!==p&&(p=null,e?u(a,e).then((function(){d(o).then((function(){c=JSON.parse(e)}))})):d(o).then((function(){return s(a).then((function(e){e&&(c=JSON.parse(e))}))})))})),l=function(){return i=k(e,n).then((function(e){return i=null,u(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 j=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)}))}})},L="change_region",M="check_goals",q="destroy",G="fail_all_requests",H="login_success",F="pause_connection",z="prefetch_token",V="push_received",Y="push_response_received",B="reconnect",J="request_failed",K="response_received",X="send_request",Q="set_chat_active",W="set_self_id",Z="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",ue="SDK_DESTROYED",se="accept_greeting",de="cancel_greeting",pe="delete_chat_properties",le="delete_event_properties",fe="delete_thread_properties",_e="get_chat",he="get_customer",ve="get_form",ye="get_predicted_agent",ge="get_url_info",me="list_chats",Ie="list_group_statuses",Ee="list_threads",Te="login",Oe="mark_events_as_seen",be="resume_chat",Se="send_event",Ne="send_rich_message_postback",we="send_sneak_peek",Ce="set_customer_session_fields",Re="start_chat",Pe="update_chat_properties",Ae="update_customer",De="update_customer_page",ke="update_event_properties",Ue="update_thread_properties";var xe=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")()),je=function(){return Math.random().toString(36).substring(7).split("").join(".")},Le={INIT:"@@redux/INIT"+je(),REPLACE:"@@redux/REPLACE"+je(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+je()}};function Me(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 qe(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(qe)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)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(u)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 s(),c.push(e),function(){if(t){if(u)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,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Me(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(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!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:Le.REPLACE})}function _(){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)}}})[xe]=function(){return this},e}return l({type:Le.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[xe]=_,r}function Ge(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){Ge(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 ze(){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 Ve(){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=ze.apply(void 0,a)(n.dispatch)})}}}var Ye=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 Be(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Je="connected",Ke="destroyed",Xe="disconnected",Qe="paused",We="reconnecting",Ze=Object.freeze({__proto__:null,CONNECTED:Je,DESTROYED:Ke,DISCONNECTED:Xe,PAUSED:Qe,RECONNECTING:We}),$e="agent",et="customer",tt=Object.freeze({__proto__:null,AGENT:$e,CUSTOMER:et}),nt=function(e){return e.connection.status},rt=function(e,t){return e.requests[t]},ot=function(e){return e.users.self.id},at=function(e,t){var n=e.chats[t];return!!n&&n.active},it=function(e){return nt(e)===Je},ct=function(e){return 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"}(e)+"/v3.5/customer"},ut=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},st=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 st(Ke,e)},n.login_success=function(e){return st(Je,e)},n.pause_connection=function(e){return st(Qe,e)},n.request_failed=ut,n.response_received=ut,n.push_response_received=ut,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=nt(e);return t({},st(n===Xe?Xe:We,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=y,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=qe(dt(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,_=void 0!==f&&f,h=e.mobile,v=void 0!==h&&h;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"4.0.2"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:Xe},page:u,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:_,mobile:v}}(e)),n(Ve(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="access_token_expired",_t="customer_banned",ht="customer_temporarily_blocked",vt="license_expired",yt="license_not_found",gt="misdirected_connection",mt="product_version_changed",It="service_temporarily_unavailable",Et="too_many_connections",Tt="too_many_unauthorized_connections",Ot="unsupported_version",bt="logged_out_remotely",St=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ft,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:_t,CUSTOMER_TEMPORARILY_BLOCKED:ht,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:vt,LICENSE_NOT_FOUND:yt,MISDIRECTED_CONNECTION:gt,PRODUCT_VERSION_CHANGED:mt,SERVICE_TEMPORARILY_UNAVAILABLE:It,TOO_MANY_CONNECTIONS:Et,TOO_MANY_UNAUTHORIZED_CONNECTIONS:Tt,UNSUPPORTED_VERSION:Ot,LOGGED_OUT_REMOTELY:bt}),Nt="chat_deactivated",wt="chat_properties_deleted",Ct="chat_properties_updated",Rt="chat_transferred",Pt="customer_disconnected",At="customer_page_updated",Dt="customer_side_storage_updated",kt="customer_updated",Ut="event_properties_deleted",xt="event_properties_updated",jt="event_updated",Lt="events_marked_as_seen",Mt="greeting_accepted",qt="greeting_canceled",Gt="groups_status_updated",Ht="incoming_chat",Ft="incoming_event",zt="incoming_greeting",Vt="incoming_multicast",Yt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Qt="user_added_to_chat",Wt="user_removed_from_chat",Zt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:wt,CHAT_PROPERTIES_UPDATED:Ct,CHAT_TRANSFERRED:Rt,CUSTOMER_DISCONNECTED:Pt,CUSTOMER_PAGE_UPDATED:At,CUSTOMER_SIDE_STORAGE_UPDATED:Dt,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Ut,EVENT_PROPERTIES_UPDATED:xt,EVENT_UPDATED:jt,EVENTS_MARKED_AS_SEEN:Lt,GREETING_ACCEPTED:Mt,GREETING_CANCELED:qt,GROUPS_STATUS_UPDATED:Gt,INCOMING_CHAT:Ht,INCOMING_EVENT:Ft,INCOMING_GREETING:zt,INCOMING_MULTICAST:Vt,INCOMING_RICH_MESSAGE_POSTBACK:Yt,INCOMING_TYPING_INDICATOR:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Qt,USER_REMOVED_FROM_CHAT:Wt}),$t="file",en="form",tn="filled_form",nn="message",rn="rich_message",on="system_message",an="custom",cn=Object.freeze({__proto__:null,FILE:$t,FORM:en,FILLED_FORM:tn,MESSAGE:nn,RICH_MESSAGE:rn,SYSTEM_MESSAGE:on,CUSTOM:an}),un=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||_(t)||(n.properties=e.properties),n},sn=function(e){switch(e.type){case nn:var r=t({},un(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 $t:return t({},un(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case tn:return t({},un(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 on:var o=t({},un(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case an:var a=t({},un(e),{type:e.type});return e.content&&(a.content=e.content),a}},dn=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(sn)),r&&(t.properties=r),t}(i)),o},pn=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},ln=function(e){var t=O(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=pn(e.sessionFields)),t},fn=function(e){return{type:q,payload:{reason:e}}},_n=function(e){return{type:F,payload:{reason:e}}},hn=function(e){return void 0===e&&(e=!1),{type:z,payload:{fresh:e}}},vn=function(e){return{type:B,payload:{delay:e}}},yn=function(e,n,r){return{type:X,payload:t({request:{action:e,payload:n}},r&&{source:r})}},gn=function(e,t){return{type:Q,payload:{id:e,active:t}}},mn=function(e){return{type:W,payload:{id:e}}},In=function(e,t){t.payload.id=g(e.getState().requests);var n=Be(),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},En="AUTHENTICATION",Tn="CUSTOMER_BANNED",On="USERS_LIMIT_REACHED",bn="WRONG_PRODUCT_VERSION",Sn=Object.freeze({__proto__:null,AUTHENTICATION:En,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tn,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:On,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:bn}),Nn=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},wn=function(e,t){var n=function(e,t){var n=e.getState();return"side_storage_"+t+(n.uniqueGroups?":"+n.groupId:"")}(e,t),r=Nn(e);return s(n).catch(I).then((function(e){return e?u(r,e).catch(I).then((function(){return d(n).catch(I).then((function(){return JSON.parse(e)})).catch(I)})):s(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}}},Rn=function(e,t,n){return In(e,yn(t,n,"login"))};function Pn(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},u=Ye(c),s=Ye(t({},c,{min:1e3})),d=u,p=function(e){return o.dispatch(fn(e))},l=function(){return o.dispatch(vn(d.duration()))},f=function(){return Promise.all([e.getToken(),wn(o,r)])},_=function(e){var t=e[0],n=e[1],r=ot(o.getState());if(null===r)o.dispatch(mn(t.entityId));else if(r!==t.entityId){var a=Error("Identity has changed.");throw a.code=ae,a}return[t,n]},h=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?ln(n()):{},customer_side_storage:a,is_mobile:l,application:T(["name","version"],u)};return"number"==typeof s&&(f.group_id=s),u.channelType&&(f.application.channel_type=u.channelType),null!==d&&(i=d,f.customer_page=d),null!==p&&(f.referrer=p),Promise.race([Rn(o,Te,f),(t=15e3,new Promise((function(e){setTimeout(e,t)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=Cn([f,_,h],(function(e){var t;a=null,u.reset(),s.reset(),d=u,t=o.getState().page,i!==t&&Rn(o,De,t).catch(I),i=null,o.dispatch({type:H,payload:e})}),(function(t){switch(a=null,t.code){case En:return e.getFreshToken(),void l();case oe:case ie:case ue: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 On:return void o.dispatch(_n(t.code.toLowerCase()));case ae:case Tn:case bn:return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=s,void l();default:return void l()}}))},cancel:function(){var e;null==(e=a)||e.cancel()}}}var An,Dn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:G,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},kn=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:J,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},Un=Object.freeze({success:!0}),xn=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},jn=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},Ln=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},jn(300,n)),high:t({url:n.thumbnail2x_url},jn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name})},Mn=function(e,r){return t({},xn(e,r),{type:tn,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}}))})},qn=function(e,n){return t({},xn(e,n),{type:nn,text:n.text})},Gn=function(e,n){return t({},xn(e,n),{type:an},n.content&&{content:n.content})},Hn=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},Fn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},xn(e,n),{type:rn,template:n.template_id,elements:n.elements.map(Hn)});default:return null}},zn=function(e,n){var r=t({},xn(e,t({},n,{author_id:"system"})),{type:on,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Vn=function(e,n){switch(n.type){case $t:return Ln(e,n);case en:return function(e,n){return t({},xn(e,n),{authorId:"system",type:en,formId:n.form_id,fields:n.fields})}(e,n);case tn:return Mn(e,n);case nn:return qn(e,n);case rn:return Fn(e,n);case on:return zn(e,n);case an:return Gn(e,n);default:return null}},Yn=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:Vn(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}}},Bn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Jn=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},Kn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Bn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Vn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?tr(t.queue):null}},Xn=function(e){return{id:e.id,access:Bn(e.access),users:e.users.map(nr),properties:e.properties||{},eventsSeenUpToMap:Jn(e.users)}},Qn=function(e){var t=O(["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},Wn=function(e){var n=Qn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Zn=function(e){var n=e.statistics;return t({},Wn(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}})},$n=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}},er=function(e){return{position:e.position,waitTime:e.wait_time}},tr=function(e){return t({},er(e),{queuedAt:e.queued_at})},nr=function(e){return e.type===et?t({},Wn(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},rr=((An={}).CONNECTION_LOST="Connection lost.",An.MISDIRECTED_CONNECTION="Connected to wrong region.",An),or=function(e,t){var n=e.getState();switch(t.type){case Y:case V:switch(t.payload.action){case Nt:return void e.dispatch(gn(t.payload.payload.chatId,!1));case Ht:return void e.dispatch(gn(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 at(n,e.id)!==t})).forEach((function(t){e.dispatch(gn(t.id,t.active))}));default:return}}},ar=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)}}))},ir=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Xt: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 Dt:return void function(e,t){u(Nn(e),JSON.stringify(t)).catch(I)}(r,o.payload.customer_side_storage);case Pt:switch(o.payload.reason){case ft:r.dispatch(hn(!0)),r.dispatch(vn(100)),n("disconnected",o.payload);break;case _t:case ht:case yt:case mt:case Et:case Ot:case bt:r.dispatch(fn(o.payload.reason));break;case gt:Dn(r,ie),r.dispatch({type:L,payload:o.payload.data});break;case It:case Tt:Dn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(vn(100)),n("disconnected",o.payload)}return;case Gt:return void n("availability_updated",{availability:"offline"===o.payload.groups[0].status?"offline":"online"});case Ht:return ar(n,o.payload.chat.users),void n(o.action,o.payload);case Ft:if(null===o.payload.event)return;return void n(o.action,o.payload);case Bt:return void n(o.action,o.payload);case Qt:return ar(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},cr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Un);case _e:return ar(n,r.payload.users),void r.resolve(r.payload);case Ht:return ar(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case me:return ar(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},ur=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=Pn(n,e.customerDataProvider,e.licenseId);return function(e,c){switch(e.type){case L:return void o.reinitialize();case M:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===ot(r)&&e.dispatch(mn(t.entityId));var o=r.page;if(o&&o.url){var a=N({organization_id:r.organizationId}),i={session_fields:pn(n||{}),group_id:r.groupId||0,page_url:o.url};return P(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(I);case q:var u=e.payload;switch(i.cancel(),o.destroy(),u.reason){case"manual":Dn(c,ue);break;case _t:case vt:case mt:case bt:Dn(c,oe),a("disconnected",u);break;default:a("disconnected",u)}return void r.off();case G:var s=e.payload,d=s.reason,p={message:rr[d],code:d};return void s.rejects.forEach((function(e){e(lt(p))}));case H:var l=e.payload,f=l.dynamicConfig,_=l.chats,h=l.greeting,v=t({customer:l.customer,availability:l.availability},h&&{greeting:h});return Object.defineProperty(v,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(v,"__unsafeChats",{value:_}),void a("connected",v);case F:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case z: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 V:return e.payload.action===Pt||or(c,e),void ir({emit:a,store:c},e);case Y:return or(c,e),void cr({emit:a},e);case B:return Dn(c,oe),void o.reconnect(e.payload.delay);case J:var g=e.payload;return void(0,g.reject)(lt(g.error));case K:return or(c,e),void cr({emit:a},e);case X:var T=c.getState();return function(e){return nt(e)===Ke}(T)?void kn(c,e,{code:ue,message:"SDK destroyed."}):it(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Te:var a=[];return void e.emit(t({},o,{version:"3.5",payload:t({},o.payload,{pushes:{3.5:E(Zt).filter((function(e){return e!==Pt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void kn(c,e,{code:"NO_CONNECTION",message:"No connection."});case W:return void a("customer_id",e.payload.id);case $:return void a("disconnected",{reason:"connection_lost"});case Z:return void i.sendLogin(c);case ee:if(!it(c.getState()))return;return void a("connection_recovered");case te:if(!it(c.getState()))return;return void a("connection_unstable");case ne:return o.connect(),void c.dispatch(hn());case re:if(!it(c.getState()))return;return void In(c,yn(De,e.payload)).catch(I);default:return}}},sr=function(e,t){var n,r=(void 0===t?{}:t).query,o=N(void 0===r?{}:r),a=o?e+"?"+o:e,i=j(),c=Ye({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},dr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?j():d,l=sr(e,{query:s}),f=(o=I,{cancel:function(){clearTimeout(r),o=I},check:function(){var e=Be();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()}))}),_=function(){return 1===l.getReadyState()},h=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",h),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(){_()&&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(),_()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},pr=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return dr(r,{query:{organization_id:n.organizationId},emitter:t})},lr=function(e){return{chatId:e.chat_id,properties:e.properties}},fr=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?tr(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},_r=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},hr=function(e){return t({id:e.id},Qn(e))},vr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},yr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},gr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Vn(t,e.event)}},mr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Ir=function(e){return{uniqueId:e.unique_id}},Er=function(e){var n=e.chat;return{chat:t({},Xn(n),{thread:Kn(n.id,n.thread)})}},Tr=function(e){return{chatId:e.chat_id,event:Vn(e.thread_id,e.event)}},Or=function(e){return Yn(e)},br=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Sr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Nr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:er(e.queue)}},wr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Cr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Rr=function(e){return{chatId:e.chat_id,user:nr(e.user),present:e.user.present}},Pr=function(e){return{chatId:e.chat_id,userId:e.user_id}},Ar=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}}))},Dr=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+""})})),Ar(r)):Ar(e.fields)}},kr=function(e){return e.enabled?t({},e,{form:Dr(e.form)}):e},Ur=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(R,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},xr=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:Bn(e.access),properties:a,users:i.map(nr),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Jn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return Vn(e.thread_id,e.event)}),r);var u,s=r,d=Object.keys(s).map((function(e){return s[e]})),p=(u=d.sort((function(e,t){return e.thread_id===t.thread_id?S(e.event.created_at,t.event.created_at):S(e.thread_created_at,t.thread_created_at)}))).length>0?u[u.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)},(_(a)?[].concat(a):E(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}},jr=function(e){return e.groups_status},Lr=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}},Mr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Zn(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:Yn(i)})},qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case wt:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case Ct:return{action:e.action,payload:lr(e.payload)};case Rt:return{action:e.action,payload:fr(e.payload)};case Dt:case Pt:return{action:e.action,payload:e.payload};case At:return{action:e.action,payload:_r(e.payload)};case kt:return{action:e.action,payload:hr(e.payload)};case Ut:return{action:e.action,payload:vr(e.payload)};case xt:return{action:e.action,payload:yr(e.payload)};case jt:return{action:e.action,payload:gr(e.payload)};case Lt:return{action:e.action,payload:mr(e.payload)};case Mt:case qt:return{action:e.action,payload:Ir(e.payload)};case Gt:return{action:e.action,payload:e.payload};case Ht:return{action:e.action,payload:Er(e.payload)};case Ft:return{action:e.action,payload:Tr(e.payload)};case zt:return{action:e.action,payload:Or(e.payload)};case Vt:return{action:e.action,payload:e.payload};case Yt:return{action:e.action,payload:br(e.payload)};case Bt:return{action:e.action,payload:Sr(e.payload)};case Jt:return{action:e.action,payload:Nr(e.payload)};case Kt:return{action:e.action,payload:wr(e.payload)};case Xt:return{action:e.action,payload:Cr(e.payload)};case Qt:return{action:e.action,payload:Rr(e.payload)};case Wt:return{action:e.action,payload:Pr(e.payload)}}var t},Gr=function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r=e.request,o=e.response;switch(o.action){case se:case de:case pe:case le:case fe:return{action:o.action,payload:Un};case _e:return{action:o.action,payload:(n=o.payload,t({},Xn(n),{thread:n.thread?Kn(n.id,n.thread):null}))};case he:return{action:o.action,payload:Zn(o.payload)};case ve:return{action:o.action,payload:kr(o.payload)};case ye:return{action:o.action,payload:$n(o.payload)};case ge:return{action:o.action,payload:Ur(o.payload)};case me:return{action:o.action,payload:xr(o.payload)};case Ie:return{action:o.action,payload:jr(o.payload)};case Ee:return{action:o.action,payload:Lr(r,o.payload)};case Te:return{action:o.action,payload:Mr(o.payload)};case Oe:case we:case Ce:case Ne:case Pe:case Ae:case De:case ke:case Ue:return{action:o.action,payload:Un}}}({request:a.request,response:n});r({type:K,payload:t({id:o,promise:i,resolve:c},u)})},Hr=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:Z})})),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=rt((0,e.getState)(),o);r({type:J,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case be:case Se:case Re:return;default:return void Gr(e,n)}}if("request_id"in n)switch(n.action){case Ht:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=qr(n);r({type:Y,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=qr(t);n&&e.dispatch({type:V,payload:n})}(e,n)})),n.on("disconnect",(function(){Dn(e,oe),nt(e.getState())===Je&&e.dispatch({type:$})})),n.on("connection_unstable",(function(){r({type:te})})),n.on("connection_recovered",(function(){r({type:ee})})),n.off},Fr="UPLOAD_FAILED",zr=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,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,u;"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=Fr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Fr,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,u=new FormData,Object.keys(a).forEach((function(e){return u.append(e,a[e])})),u))})),cancel:function(){d.abort()}}},Vr=1048576,Yr=10485760,Br=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(Vr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Jr=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>Yr)throw lt({message:"The file is too big (max size is "+Br(Yr)+").",code:"TOO_BIG_FILE"})}(a);var u=o.getState(),s=N({organization_id:u.organizationId}),d=ct(u)+"/action/upload_file?"+s,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=zr(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())}}},Kr=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:"4.0.2"})};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",N(r))},Xr="LISTENER_IDENTITY",Qr={},Wr=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}),{})},Zr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Xr,{value:{}}),n.LISTENER_IDENTITY[t])return Qr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=g(Qr);return n.LISTENER_IDENTITY[t]=o,Qr[o]=r,r},$r=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"});e.connectionStatuses=Ze,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,u=r.auth,s=n(r,["on","once","off","getChatHistory","auth"]),d=Wr(s);return Object.freeze(t({auth:Object.freeze(Wr(u,".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=Qr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Zr("on",e,t))},once:function(e,t){a(e,Zr("once",e,t))}}))},e.eventTypes=cn,e.init=function(e,r,o){void 0===r&&(r="production"),U(e);var a=e.autoConnect,i=void 0===a||a,c=e.customerDataProvider,u=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),d=pt(t({},s,{env:r})),p=j(),l=function(e){var n=j(),r=pr(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=pr(e,n)).connect()}})}(d),f="function"==typeof u?u():x(s,o,r);d.addSideEffectsHandler(ur({emitter:p,socket:l,auth:f,customerDataProvider:c,licenseId:o})),Hr(d,l);var _=In.bind(null,d),h=function(){d.dispatch({type:ne})},v=Object.freeze({acceptGreeting:function(e){return _(yn(se,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:f,cancelGreeting:function(e){return _(yn(de,{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:ce});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return _(yn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return _(yn(pe,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return _(yn(le,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return _(yn(fe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){d.dispatch(fn("manual"))},disconnect:function(){d.dispatch(_n("manual"))},getChat:function(e){return _(yn(_e,{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 _(yn(he,{}))},getForm:function(e){return _(yn(ve,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return _(yn(ye,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return _(yn(ge,{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).")):_(yn(me,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return _(yn(Ie,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return _(yn(Ee,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 _(yn(Oe,{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 v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(be,function(e){var n=dn(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 _(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:sn(e.event)};return t&&(n.attach_to_last_thread=!0),yn(Se,n)}(e))})),sendRichMessagePostback:function(e){return _(yn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return _(yn(Ce,{session_fields:pn(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=d.getState();at(r,t)&&it(r)&&_(yn(we,{chat_id:t,sneak_peek_text:n})).catch(I)},startChat:function(t){return void 0===t&&(t={}),Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(Re,dn(t)))},updateChatProperties:function(e){return _(yn(Pe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return _(yn(Ae,ln(e)))},updateCustomerPage:function(e){d.dispatch({type:re,payload:O(["title","url"],e)})},updateEventProperties:function(e){return _(yn(ke,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return _(yn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Jr({auth:f,store:d},e)}});return i?h():d.dispatch({type:M,payload:{sessionFields:"function"==typeof c?c().sessionFields:{}}}),v},e.parseCustomEvent=Gn,e.parseEvent=Vn,e.parseFile=Ln,e.parseFilledForm=Mn,e.parseForm=Dr,e.parseGreeting=Yn,e.parseMessage=qn,e.parseRichMessage=Fn,e.parseSystemMessage=zn,e.serverDisconnectionReasons=St,e.serverErrorCodes=Sn,e.serverPushActions=Zt,e.sortOrders=$r,e.userTypes=tt,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livechat/customer-sdk",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "SDK for connecting to LiveChat as a customer",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Konrad Kruk <k.kruk@livechatinc.com>",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@livechat/backoff": "^0.1.0",
|
|
25
|
-
"@livechat/customer-auth": "^0.
|
|
25
|
+
"@livechat/customer-auth": "^1.0.0",
|
|
26
26
|
"@livechat/data-utils": "^1.0.3",
|
|
27
27
|
"@livechat/file-upload": "^0.3.0",
|
|
28
28
|
"@livechat/isomorphic-storage": "^0.1.0",
|
|
29
29
|
"@livechat/mitt": "^0.1.3",
|
|
30
|
-
"@livechat/platform-client": "^0.3.
|
|
30
|
+
"@livechat/platform-client": "^0.3.2",
|
|
31
31
|
"@livechat/promise-utils": "^1.0.1",
|
|
32
32
|
"@livechat/side-effects-middleware": "^0.2.0",
|
|
33
33
|
"@livechat/url-utils": "^0.2.1",
|