@livechat/customer-sdk 3.1.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ Or use the node-style `require` call:
|
|
|
63
63
|
|
|
64
64
|
### Using a script tag - UMD module hosted on unpkg's CDN
|
|
65
65
|
|
|
66
|
-
`<script src="https://unpkg.com/@livechat/customer-sdk@3.1.
|
|
66
|
+
`<script src="https://unpkg.com/@livechat/customer-sdk@3.1.1"></script>`
|
|
67
67
|
|
|
68
68
|
If you just want to look around and play with the SDK, check out our
|
|
69
69
|
[sample chat widget implementation](https://codesandbox.io/s/rm3prxw88n).
|
|
@@ -83,7 +83,8 @@ Other optional configuration parameters are also available:
|
|
|
83
83
|
| licenseId | number | | Your license number, you receive this value when creating a new livechat account. |
|
|
84
84
|
| clientId | string | | Your client id, you receive this value when you register your application in the LiveChat Developer Console. |
|
|
85
85
|
| autoConnect | boolean | true | Optional; should the library try to reconnect on it's own. |
|
|
86
|
-
| groupId | number |
|
|
86
|
+
| groupId | number | | Optional; the id of the group you wish to connect to. |
|
|
87
|
+
| uniqueGroups | boolean | false | Optional; by default, the customer's identity is the same for all groups. If you want to create a separate customer identity for each group, set this parameter to `true`. When set to `true`, passing a `groupId` is required. |
|
|
87
88
|
| region | 'dal' \| 'fra' | 'dal' | Optional; the server region your license is at. |
|
|
88
89
|
| redirectUri | string | | Optional; should only be used inside ReactNative, this is the URI which your webview is redirected to after authorization. |
|
|
89
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. |
|
|
@@ -358,8 +359,29 @@ customerSDK
|
|
|
358
359
|
|
|
359
360
|
Starts the connection process to our servers. It is needed when:
|
|
360
361
|
|
|
361
|
-
-
|
|
362
|
-
|
|
362
|
+
- The `autoConnect: false` argument has been passed to the `init` method.
|
|
363
|
+
|
|
364
|
+
```js
|
|
365
|
+
const customerSDK = CustomerSDK.init({
|
|
366
|
+
licenseId: LICENSE_ID,
|
|
367
|
+
clientId: CLIENT_ID,
|
|
368
|
+
autoConnect: false,
|
|
369
|
+
})
|
|
370
|
+
|
|
371
|
+
/* later in the code... */
|
|
372
|
+
|
|
373
|
+
customerSDK.connect()
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
- You get disconnected for a reason that suspends reconnection attempts (e.g. [`inactivity_timeout`](#inactivity_timeout)).
|
|
377
|
+
|
|
378
|
+
```js
|
|
379
|
+
customerSDK.on('disconnected', ({ reason }) => {
|
|
380
|
+
if (reason === 'inactivity_timeout') {
|
|
381
|
+
customerSDK.connect()
|
|
382
|
+
}
|
|
383
|
+
})
|
|
384
|
+
```
|
|
363
385
|
|
|
364
386
|
## deactivateChat
|
|
365
387
|
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -30,7 +30,7 @@ var createPlatformClient__default = /*#__PURE__*/_interopDefaultLegacy(createPla
|
|
|
30
30
|
var rawUploadFile__default = /*#__PURE__*/_interopDefaultLegacy(rawUploadFile);
|
|
31
31
|
|
|
32
32
|
function _extends() {
|
|
33
|
-
_extends = Object.assign
|
|
33
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
34
34
|
for (var i = 1; i < arguments.length; i++) {
|
|
35
35
|
var source = arguments[i];
|
|
36
36
|
|
|
@@ -43,7 +43,6 @@ function _extends() {
|
|
|
43
43
|
|
|
44
44
|
return target;
|
|
45
45
|
};
|
|
46
|
-
|
|
47
46
|
return _extends.apply(this, arguments);
|
|
48
47
|
}
|
|
49
48
|
|
|
@@ -237,7 +236,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
237
236
|
return {
|
|
238
237
|
application: _extends({}, application, {
|
|
239
238
|
name: "customer_sdk",
|
|
240
|
-
version: "3.1.
|
|
239
|
+
version: "3.1.1"
|
|
241
240
|
}),
|
|
242
241
|
licenseId: licenseId,
|
|
243
242
|
env: env,
|
|
@@ -2920,7 +2919,6 @@ var socketListener = (function (store, socket) {
|
|
|
2920
2919
|
}
|
|
2921
2920
|
|
|
2922
2921
|
switch (message.action) {
|
|
2923
|
-
case DEACTIVATE_CHAT:
|
|
2924
2922
|
case RESUME_CHAT:
|
|
2925
2923
|
case SEND_EVENT:
|
|
2926
2924
|
case START_CHAT:
|
|
@@ -2935,7 +2933,6 @@ var socketListener = (function (store, socket) {
|
|
|
2935
2933
|
|
|
2936
2934
|
if ('request_id' in message) {
|
|
2937
2935
|
switch (message.action) {
|
|
2938
|
-
case CHAT_DEACTIVATED:
|
|
2939
2936
|
case INCOMING_CHAT:
|
|
2940
2937
|
case INCOMING_EVENT:
|
|
2941
2938
|
// those are acting as indirect responses
|
|
@@ -3272,7 +3269,7 @@ var log = function log(_ref) {
|
|
|
3272
3269
|
var message = {
|
|
3273
3270
|
event_name: eventName,
|
|
3274
3271
|
severity: 'Informational',
|
|
3275
|
-
sdkVersion: "3.1.
|
|
3272
|
+
sdkVersion: "3.1.1"
|
|
3276
3273
|
};
|
|
3277
3274
|
var body = {
|
|
3278
3275
|
licence_id: licenseId,
|
|
@@ -30,7 +30,7 @@ var createPlatformClient__default = /*#__PURE__*/_interopDefaultLegacy(createPla
|
|
|
30
30
|
var rawUploadFile__default = /*#__PURE__*/_interopDefaultLegacy(rawUploadFile);
|
|
31
31
|
|
|
32
32
|
function _extends() {
|
|
33
|
-
_extends = Object.assign
|
|
33
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
34
34
|
for (var i = 1; i < arguments.length; i++) {
|
|
35
35
|
var source = arguments[i];
|
|
36
36
|
|
|
@@ -43,7 +43,6 @@ function _extends() {
|
|
|
43
43
|
|
|
44
44
|
return target;
|
|
45
45
|
};
|
|
46
|
-
|
|
47
46
|
return _extends.apply(this, arguments);
|
|
48
47
|
}
|
|
49
48
|
|
|
@@ -237,7 +236,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
237
236
|
return {
|
|
238
237
|
application: _extends({}, application, {
|
|
239
238
|
name: "customer_sdk",
|
|
240
|
-
version: "3.1.
|
|
239
|
+
version: "3.1.1"
|
|
241
240
|
}),
|
|
242
241
|
licenseId: licenseId,
|
|
243
242
|
env: env,
|
|
@@ -2920,7 +2919,6 @@ var socketListener = (function (store, socket) {
|
|
|
2920
2919
|
}
|
|
2921
2920
|
|
|
2922
2921
|
switch (message.action) {
|
|
2923
|
-
case DEACTIVATE_CHAT:
|
|
2924
2922
|
case RESUME_CHAT:
|
|
2925
2923
|
case SEND_EVENT:
|
|
2926
2924
|
case START_CHAT:
|
|
@@ -2935,7 +2933,6 @@ var socketListener = (function (store, socket) {
|
|
|
2935
2933
|
|
|
2936
2934
|
if ('request_id' in message) {
|
|
2937
2935
|
switch (message.action) {
|
|
2938
|
-
case CHAT_DEACTIVATED:
|
|
2939
2936
|
case INCOMING_CHAT:
|
|
2940
2937
|
case INCOMING_EVENT:
|
|
2941
2938
|
// those are acting as indirect responses
|
|
@@ -3271,7 +3268,7 @@ var log = function log(_ref) {
|
|
|
3271
3268
|
var message = {
|
|
3272
3269
|
event_name: eventName,
|
|
3273
3270
|
severity: 'Informational',
|
|
3274
|
-
sdkVersion: "3.1.
|
|
3271
|
+
sdkVersion: "3.1.1"
|
|
3275
3272
|
};
|
|
3276
3273
|
var body = {
|
|
3277
3274
|
licence_id: licenseId,
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -13,7 +13,7 @@ import createPlatformClient from '@livechat/platform-client';
|
|
|
13
13
|
import rawUploadFile from '@livechat/file-upload';
|
|
14
14
|
|
|
15
15
|
function _extends() {
|
|
16
|
-
_extends = Object.assign
|
|
16
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
17
17
|
for (var i = 1; i < arguments.length; i++) {
|
|
18
18
|
var source = arguments[i];
|
|
19
19
|
|
|
@@ -26,7 +26,6 @@ function _extends() {
|
|
|
26
26
|
|
|
27
27
|
return target;
|
|
28
28
|
};
|
|
29
|
-
|
|
30
29
|
return _extends.apply(this, arguments);
|
|
31
30
|
}
|
|
32
31
|
|
|
@@ -220,7 +219,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
220
219
|
return {
|
|
221
220
|
application: _extends({}, application, {
|
|
222
221
|
name: "customer_sdk",
|
|
223
|
-
version: "3.1.
|
|
222
|
+
version: "3.1.1"
|
|
224
223
|
}),
|
|
225
224
|
licenseId: licenseId,
|
|
226
225
|
env: env,
|
|
@@ -2903,7 +2902,6 @@ var socketListener = (function (store, socket) {
|
|
|
2903
2902
|
}
|
|
2904
2903
|
|
|
2905
2904
|
switch (message.action) {
|
|
2906
|
-
case DEACTIVATE_CHAT:
|
|
2907
2905
|
case RESUME_CHAT:
|
|
2908
2906
|
case SEND_EVENT:
|
|
2909
2907
|
case START_CHAT:
|
|
@@ -2918,7 +2916,6 @@ var socketListener = (function (store, socket) {
|
|
|
2918
2916
|
|
|
2919
2917
|
if ('request_id' in message) {
|
|
2920
2918
|
switch (message.action) {
|
|
2921
|
-
case CHAT_DEACTIVATED:
|
|
2922
2919
|
case INCOMING_CHAT:
|
|
2923
2920
|
case INCOMING_EVENT:
|
|
2924
2921
|
// those are acting as indirect responses
|
|
@@ -3255,7 +3252,7 @@ var log = function log(_ref) {
|
|
|
3255
3252
|
var message = {
|
|
3256
3253
|
event_name: eventName,
|
|
3257
3254
|
severity: 'Informational',
|
|
3258
|
-
sdkVersion: "3.1.
|
|
3255
|
+
sdkVersion: "3.1.1"
|
|
3259
3256
|
};
|
|
3260
3257
|
var body = {
|
|
3261
3258
|
licence_id: licenseId,
|
package/dist/customer-sdk.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
}(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _extends() {
|
|
8
|
-
_extends = Object.assign
|
|
8
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
9
9
|
for (var i = 1; i < arguments.length; i++) {
|
|
10
10
|
var source = arguments[i];
|
|
11
11
|
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
return target;
|
|
20
20
|
};
|
|
21
|
-
|
|
22
21
|
return _extends.apply(this, arguments);
|
|
23
22
|
}
|
|
24
23
|
|
|
@@ -1310,7 +1309,7 @@
|
|
|
1310
1309
|
return {
|
|
1311
1310
|
application: _extends({}, application, {
|
|
1312
1311
|
name: "customer_sdk",
|
|
1313
|
-
version: "3.1.
|
|
1312
|
+
version: "3.1.1"
|
|
1314
1313
|
}),
|
|
1315
1314
|
licenseId: licenseId,
|
|
1316
1315
|
env: env,
|
|
@@ -4279,7 +4278,6 @@
|
|
|
4279
4278
|
}
|
|
4280
4279
|
|
|
4281
4280
|
switch (message.action) {
|
|
4282
|
-
case DEACTIVATE_CHAT:
|
|
4283
4281
|
case RESUME_CHAT:
|
|
4284
4282
|
case SEND_EVENT:
|
|
4285
4283
|
case START_CHAT:
|
|
@@ -4294,7 +4292,6 @@
|
|
|
4294
4292
|
|
|
4295
4293
|
if ('request_id' in message) {
|
|
4296
4294
|
switch (message.action) {
|
|
4297
|
-
case CHAT_DEACTIVATED:
|
|
4298
4295
|
case INCOMING_CHAT:
|
|
4299
4296
|
case INCOMING_EVENT:
|
|
4300
4297
|
// those are acting as indirect responses
|
|
@@ -4710,7 +4707,7 @@
|
|
|
4710
4707
|
var message = {
|
|
4711
4708
|
event_name: eventName,
|
|
4712
4709
|
severity: 'Informational',
|
|
4713
|
-
sdkVersion: "3.1.
|
|
4710
|
+
sdkVersion: "3.1.1"
|
|
4714
4711
|
};
|
|
4715
4712
|
var body = {
|
|
4716
4713
|
licence_id: licenseId,
|
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||function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}(),c=function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)!==a?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,s=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},u=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}var h=Array.isArray;function v(e,t){return Object.keys(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function _(e){return e}function y(e){var t=Math.random().toString(36).substring(2);return l(t,e)?y(e):t}function m(e,t){return-1!==t.indexOf(e)}function g(){}function I(e){return Object.keys(e).map((function(t){return e[t]}))}function E(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}var b=function(e){return Object.keys(e).map((function(t){return[t,e[t]]}))},T=function(e,t){return e===t?0:t>e?-1:1};var w=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){var t=e.match(O);return t&&t[0]},k=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+k("javascript")+"|"+k("data")+"):","i");function P(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},s=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:s,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n})),n(s())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}var C=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},N=function(e,t){if("identity_exception"in e)throw C({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw C({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),licenseId:t}},x="https://accounts.livechatinc.com",j=function(e,t){return""+("production"===t?x:x.replace("accounts.","accounts."+t+"."))+function(e){return(e.uniqueGroups?"/licence/g"+e.licenseId+"_"+e.groupId:"")+"/customer"}(e)},D="https://accounts.livechatinc.com",q="@livechat/customer-auth",R=function(e,t){var n=function(e,t){return{license_id:e.licenseId+"",flow:"button",response_type:"token",client_id:e.clientId,redirect_uri:t,post_message_uri:t,state:q}}(e,S(window.location+"")+window.location.pathname),r=document.createElement("iframe");return r.style.display="none",r.setAttribute("src",j(e,t)+"?"+w(n)),r};function A(e,t){var n=e.licenseId,r=function(e){return"production"===e?D:D.replace("accounts.","accounts."+e+".")}(t);return new Promise((function(o,a){var i=R(e,t),c=function(){var e,t;(t=(e=i).parentNode)&&t.removeChild(e),window.removeEventListener("message",u,!1)},s=setTimeout((function(){c(),a(C({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}),15e3),u=function(e){var t=e.data;if(e.origin===r&&function(e){return e&&e.state===q}(t)){clearTimeout(s),c();try{o(N(t,n))}catch(e){a(e)}}};window.addEventListener("message",u,!1),new Promise((function(e){!function t(){document.body?e(document.body):setTimeout(t,100)}()})).then((function(e){e.appendChild(i)}))}))}var M=function(e){if("number"!=typeof e.licenseId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { licenseId, clientId }.")},U=function(e,t){M(e);var n="@@lc_auth_token:"+e.licenseId+(e.uniqueGroups?":"+e.groupId:""),r=null,o=null,a=u(n).then((function(e){null!==a&&(a=null,e&&(o=JSON.parse(e)))})),i=function(){return r=function(e,t){return e.uniqueGroups?A(e,t):P(j(e,t)+"/token",{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,license_id:e.licenseId,redirect_uri:S(window.location+"")+window.location.pathname})}).then((function(e){return e.json()})).then((function(t){return N(t,e.licenseId)}))}(e,t).then((function(e){return r=null,s(n,JSON.stringify(e)),o=e,e}),(function(e){throw r=null,e}))};return{getFreshToken:i,getToken:function e(){return r||(o&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(o)?Promise.resolve(o):a?a.then(e):i())},hasToken:function e(){return a?a.then(e):Promise.resolve(!!o)},invalidate:function(){return o=null,a=null,d(n)}}};var L=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)}))}})},H="change_region",F="check_goals",G="destroy",Y="fail_all_requests",V="login_success",z="pause_connection",B="prefetch_token",J="push_received",K="push_response_received",X="reconnect",W="request_failed",Q="response_received",Z="send_request",$="set_chat_active",ee="set_self_id",te="socket_connected",ne="socket_disconnected",re="socket_recovered",oe="socket_unstable",ae="start_connection",ie="update_customer_page",ce="CONNECTION_LOST",se="IDENTITY_MISMATCH",ue="MISDIRECTED_CONNECTION",de="MISSING_CHAT_THREAD",pe="SDK_DESTROYED",le="accept_greeting",fe="cancel_greeting",he="deactivate_chat",ve="delete_chat_properties",_e="delete_event_properties",ye="delete_thread_properties",me="get_chat",ge="get_customer",Ie="get_form",Ee="get_predicted_agent",be="get_url_info",Te="list_chats",we="list_group_statuses",Oe="list_threads",Se="login",ke="mark_events_as_seen",Pe="resume_chat",Ce="send_event",Ne="send_rich_message_postback",xe="send_sneak_peek",je="set_customer_session_fields",De="start_chat",qe="update_chat_properties",Re="update_customer",Ae="update_customer_page",Me="update_event_properties",Ue="update_thread_properties";var Le=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),He=function(){return Math.random().toString(36).substring(7).split("").join(".")},Fe={INIT:"@@redux/INIT"+He(),REPLACE:"@@redux/REPLACE"+He(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+He()}};function Ge(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Ye(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(Ye)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,s=!1;function u(){c===i&&(c=i.slice())}function d(){if(s)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(s)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return u(),c.push(e),function(){if(t){if(s)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Ge(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(s)throw Error("Reducers may not dispatch actions.");try{s=!0,a=o(a,e)}finally{s=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Fe.REPLACE})}function h(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[Le]=function(){return this},e}return l({type:Fe.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[Le]=h,r}function Ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ze(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Be(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ze(n,!0).forEach((function(t){Ve(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ze(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Je(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function Ke(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(o)}));return Be({},n,{dispatch:r=Je.apply(void 0,a)(n.dispatch)})}}}function Xe(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var We="connected",Qe="destroyed",Ze="disconnected",$e="agent",et="customer",tt=function(e){return e.connection.status},nt=function(e,t){return e.requests[t]},rt=function(e){return e.users.self.id},ot=function(e,t){var n=e.chats[t];return!!n&&n.active},at=function(e){return tt(e)===We},it=function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return 1520===e.licenseId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"},ct=function(e){return it(e)+"/v3.3/customer"},st=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},ut=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},dt=function(e){var n,r,o;return r=e,(n={}).change_region=function(e,n){return t({},e,{region:n.region})},n.destroy=function(e){return ut(Qe,e)},n.login_success=function(e){return ut(We,e)},n.pause_connection=function(e){return ut("paused",e)},n.request_failed=st,n.response_received=st,n.push_response_received=st,n.send_request=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n.set_chat_active=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n.set_self_id=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n.socket_disconnected=function(e){var n=tt(e);return t({},ut(n===Ze?Ze:"reconnecting",e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),l(t.type,o)?o[t.type](e,t.payload):e}};function pt(e){var n=_,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach((function(e){e(r,t)})),o}}};return t.add=function(t){e.push(t)},t}(),o=Ye(dt(function(e){var n=e.application,r=e.licenseId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,s=void 0===c?null:c,u=e.region,d=void 0===u?null:u,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,h=void 0!==f&&f,v=e.mobile,_=void 0!==v&&v;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"3.1.0"}),licenseId:r,env:i,groupId:a,chats:{},connection:{status:Ze},page:s,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:h,mobile:_}}(e)),n(Ke(r)));return o.addSideEffectsHandler=r.add,o}function lt(e){var t=e.code,n=Error(e.message);return n.code=t,n}var ft="customer_banned",ht="product_version_changed",vt="chat_deactivated",_t="chat_properties_deleted",yt="chat_properties_updated",mt="chat_transferred",gt="customer_disconnected",It="customer_page_updated",Et="customer_side_storage_updated",bt="customer_updated",Tt="event_properties_deleted",wt="event_properties_updated",Ot="event_updated",St="events_marked_as_seen",kt="greeting_accepted",Pt="greeting_canceled",Ct="incoming_chat",Nt="incoming_event",xt="incoming_greeting",jt="incoming_multicast",Dt="incoming_rich_message_postback",qt="incoming_typing_indicator",Rt="queue_position_updated",At="thread_properties_deleted",Mt="thread_properties_updated",Ut="user_added_to_chat",Lt="user_removed_from_chat",Ht=Object.freeze({__proto__:null,CHAT_DEACTIVATED:vt,CHAT_PROPERTIES_DELETED:_t,CHAT_PROPERTIES_UPDATED:yt,CHAT_TRANSFERRED:mt,CUSTOMER_DISCONNECTED:gt,CUSTOMER_PAGE_UPDATED:It,CUSTOMER_SIDE_STORAGE_UPDATED:Et,CUSTOMER_UPDATED:bt,EVENT_PROPERTIES_DELETED:Tt,EVENT_PROPERTIES_UPDATED:wt,EVENT_UPDATED:Ot,EVENTS_MARKED_AS_SEEN:St,GREETING_ACCEPTED:kt,GREETING_CANCELED:Pt,INCOMING_CHAT:Ct,INCOMING_EVENT:Nt,INCOMING_GREETING:xt,INCOMING_MULTICAST:jt,INCOMING_RICH_MESSAGE_POSTBACK:Dt,INCOMING_TYPING_INDICATOR:qt,QUEUE_POSITION_UPDATED:Rt,THREAD_PROPERTIES_DELETED:At,THREAD_PROPERTIES_UPDATED:Mt,USER_ADDED_TO_CHAT:Ut,USER_REMOVED_FROM_CHAT:Lt}),Ft="file",Gt="form",Yt="filled_form",Vt="message",zt="rich_message",Bt="system_message",Jt="custom",Kt=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||h(t)||(n.properties=e.properties),n},Xt=function(e){switch(e.type){case Vt:var r=t({},Kt(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case Ft:return t({},Kt(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case Yt:return t({},Kt(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case Bt:var o=t({},Kt(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case Jt:var a=t({},Kt(e),{type:e.type});return e.content&&(a.content=e.content),a}},Wt=function(e){var t=e.active,n=e.chat,r=e.continuous,o={active:void 0===t||t,chat:{}};if("boolean"==typeof r&&(o.continuous=r),!n)return o;var a=n.access,i=n.thread,c=n.properties;return a&&a.groupIds&&(o.chat.access={group_ids:a.groupIds}),c&&(o.chat.properties=c),i&&(o.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(Xt)),r&&(t.properties=r),t}(i)),o},Qt=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},Zt=function(e){var t=E(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=Qt(e.sessionFields)),t},$t=function(e){return{type:G,payload:{reason:e}}},en=function(e){return{type:z,payload:{reason:e}}},tn=function(e){return void 0===e&&(e=!1),{type:B,payload:{fresh:e}}},nn=function(e){return{type:X,payload:{delay:e}}},rn=function(e,n,r){return{type:Z,payload:t({request:{action:e,payload:n}},r&&{source:r})}},on=function(e,t){return{type:$,payload:{id:e,active:t}}},an=function(e){return{type:ee,payload:{id:e}}},cn=function(e,t){t.payload.id=y(e.getState().requests);var n=Xe(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},sn=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,o)},reset:function(){c=0}}},un=function(e){var t=e.getState();return"side_storage_"+t.licenseId+(t.uniqueGroups?":"+t.groupId:"")},dn=function(e){return u(un(e)).catch(g).then((function(e){return JSON.parse(e||"{}")})).catch((function(){return{}}))},pn=function(e,t,n){var r=e.slice(0),o=!1;return function e(a){var i,c=r.shift();(i=function(){return c(a)},new Promise((function(e){e(i())}))).then((function(n){o||(r.length?e(n):t(n))}),(function(e){o||n(e)}))}(),{cancel:function(){o=!0}}},ln=function(e,t,n){return cn(e,rn(t,n,"login"))};function fn(e,n){var r,o,a=null,i={min:300,max:6e4,jitter:.3},c=sn(i),s=sn(t({},i,{min:1e3})),u=c,d=function(e){return r.dispatch($t(e))},p=function(){return r.dispatch(nn(u.duration()))},l=function(){return Promise.all([e.getToken(),dn(r)])},f=function(e){var t=e[0],n=e[1],o=rt(r.getState());if(null===o)r.dispatch(an(t.entityId));else if(o!==t.entityId){var a=Error("Identity has changed.");throw a.code=se,a}return[t,n]},h=function(e){var t,o,i,c=e[0],s=e[1],u=r.getState(),d=u.application,p=u.groupId,l=u.page,f=u.referrer,h=u.mobile,v={token:c.tokenType+" "+c.accessToken,customer:"function"==typeof n?Zt(n()):{},customer_side_storage:s,is_mobile:h,application:(t=["name","version"],o=d,t.reduce((function(e,t){return e[t]=o[t],e}),{}))};return"number"==typeof p&&(v.group_id=p),d.channelType&&(v.application.channel_type=d.channelType),null!==l&&(a=l,v.customer_page=l),null!==f&&(v.referrer=f),Promise.race([ln(r,Se,v),(i=15e3,new Promise((function(e){setTimeout(e,i)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;r=t,null==(n=o)||n.cancel(),o=pn([l,f,h],(function(e){var t;o=null,c.reset(),s.reset(),u=c,t=r.getState().page,a!==t&&ln(r,Ae,t).catch(g),a=null,r.dispatch({type:V,payload:e})}),(function(t){switch(o=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void p();case ce:case ue:case pe:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void p():void d(t.message);case"USERS_LIMIT_REACHED":return void r.dispatch(en(t.code.toLowerCase()));case se:case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void d(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return u=s,void p();default:return void p()}}))},cancel:function(){var e;null==(e=o)||e.cancel()}}}var hn,vn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Y,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},_n=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:W,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},yn=Object.freeze({success:!0}),mn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},gn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},In=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},mn(e,n),{type:Ft,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},gn(300,n)),high:t({url:n.thumbnail2x_url},gn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},mn(e,n),{type:Ft,contentType:n.content_type,url:n.url,name:n.name})},En=function(e,r){return t({},mn(e,r),{type:Yt,formId:r.form_id,fields:r.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,["group_id"]),{groupId:o})});default:return e}}))})},bn=function(e,n){return t({},mn(e,n),{type:Vt,text:n.text})},Tn=function(e,n){return t({},mn(e,n),{type:Jt},n.content&&{content:n.content})},wn=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.buttons&&(n.buttons=e.buttons.map((function(e){switch(e.type){case"message":case"phone":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};case"cancel":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"};case"url":var t={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return e.target&&(t.target=e.target),t;case"webview":var n={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return"string"==typeof e.webview_height&&(n.webviewHeight=e.webview_height),n;default:return{text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"}}}))),n},On=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},mn(e,n),{type:zt,template:n.template_id,elements:n.elements.map(wn)});default:return null}},Sn=function(e,n){var r=t({},mn(e,t({},n,{author_id:"system"})),{type:Bt,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},kn=function(e,n){switch(n.type){case Ft:return In(e,n);case Gt:return function(e,n){return t({},mn(e,n),{authorId:"system",type:Gt,formId:n.form_id,fields:n.fields})}(e,n);case Yt:return En(e,n);case Vt:return bn(e,n);case zt:return On(e,n);case Bt:return Sn(e,n);case Jt:return Tn(e,n);default:return null}},Pn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:kn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},Cn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Nn=function(e){return v((function(e){return e.events_seen_up_to?e.events_seen_up_to:null}),(t="id",e.reduce((function(e,n){return e[n[t]]=n,e}),{})));var t},xn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Cn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return kn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Un(t.queue):null}},jn=function(e){return{id:e.id,access:Cn(e.access),users:e.users.map(Ln),properties:e.properties||{},eventsSeenUpToMap:Nn(e.users)}},Dn=function(e){var t=E(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e}),{})),t},qn=function(e){var n=Dn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Rn=function(e){var n=e.statistics;return t({},qn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},An=function(e){var t=e.agent;return{agent:{id:t.id,type:$e,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},Mn=function(e){return{position:e.position,waitTime:e.wait_time}},Un=function(e){return t({},Mn(e),{queuedAt:e.queued_at})},Ln=function(e){return e.type===et?t({},qn(r=e),{present:r.present}):{id:(n=e).id,type:$e,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},Hn=((hn={}).CONNECTION_LOST="Connection lost.",hn.MISDIRECTED_CONNECTION="Connected to wrong region.",hn),Fn=function(e,t){var n=e.getState();switch(t.type){case K:case J:switch(t.payload.action){case vt:return void e.dispatch(on(t.payload.payload.chatId,!1));case Ct:return void e.dispatch(on(t.payload.payload.chat.id,!0));default:return}case Q:switch(t.payload.action){case Te:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return ot(n,e.id)!==t})).forEach((function(t){e.dispatch(on(t.id,t.active))}));default:return}}},Gn=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==et)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},Yn=function(e,t){var n,r=t.content;"lc2"===t.type&&("groups_update"===r.name&&"groups"in r&&0!==(h(n=r.groups)?n:Object.keys(n)).length&&e("availability_updated",{availability:"offline"===r.groups[0].status?"offline":"online"}))},Vn=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Mt:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(Rt,{chatId:o.payload.chatId,threadId:o.payload.threadId,queue:{position:o.payload.properties.lc2.queue_pos,waitTime:o.payload.properties.lc2.queue_waiting_time}}),void n("thread_properties_updated",o.payload);case Et:return void function(e,t){s(un(e),JSON.stringify(t)).catch(g)}(r,o.payload.customer_side_storage);case gt:switch(o.payload.reason){case"access_token_expired":r.dispatch(tn(!0)),r.dispatch(nn(100)),n("disconnected",o.payload);break;case ft:case"customer_temporarily_blocked":case"license_not_found":case ht:case"too_many_connections":case"unsupported_version":r.dispatch($t(o.payload.reason));break;case"misdirected_connection":vn(r,ue),r.dispatch({type:H,payload:o.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":vn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(nn(100)),n("disconnected",o.payload)}return;case Ct:return Gn(n,o.payload.chat.users),void n(o.action,o.payload);case Nt:if(null===o.payload.event)return;return void n(o.action,o.payload);case qt:return void n(o.action,o.payload);case jt:return Yn(n,o.payload),void n(o.action,o.payload);case Ut:return Gn(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},zn=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case vt:return void r.resolve(yn);case me:return Gn(n,r.payload.users),void r.resolve(r.payload);case Ct:return Gn(n,r.payload.chat.users),void r.resolve(r.payload);case Nt:return void r.resolve(r.payload.event);case Te:return Gn(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},Bn=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=fn(n,e.customerDataProvider);return function(e,c){switch(e.type){case H:return void o.reinitialize();case F:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===rt(r)&&e.dispatch(an(t.entityId));var o=r.page;if(o&&o.url){var a=w({license_id:r.licenseId}),i={session_fields:Qt(n||{}),group_id:r.groupId||0,page_url:o.url};return 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(g);case G:var s=e.payload;switch(i.cancel(),o.destroy(),s.reason){case"manual":vn(c,pe);break;case ft:case"license_expired":case ht:vn(c,ce),a("disconnected",s);break;default:a("disconnected",s)}return void r.off();case Y:var u=e.payload,d=u.reason,p={message:Hn[d],code:d};return void u.rejects.forEach((function(e){e(lt(p))}));case V:var l=e.payload,f=l.dynamicConfig,h=l.chats,v=l.greeting,_=t({customer:l.customer,availability:l.availability},v&&{greeting:v});return Object.defineProperty(_,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(_,"__unsafeChats",{value:h}),void a("connected",_);case z:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case B:return e.payload.fresh?void n.getFreshToken().catch(g):void n.hasToken().then((function(e){return e?n.getToken().then((function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)})):n.getToken()})).catch(g);case J:return e.payload.action===gt||Fn(c,e),void Vn({emit:a,store:c},e);case K:return Fn(c,e),void zn({emit:a},e);case X:return vn(c,ce),void o.reconnect(e.payload.delay);case W:var E=e.payload;return void(0,E.reject)(lt(E.error));case Q:return Fn(c,e),void zn({emit:a},e);case Z:var b=c.getState();return function(e){return tt(e)===Qe}(b)?void _n(c,e,{code:pe,message:"SDK destroyed."}):at(b)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Se:var a=[];return void e.emit(t({},o,{version:"3.3",payload:t({},o.payload,{pushes:{3.3:I(Ht).filter((function(e){return e!==gt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void _n(c,e,{code:"NO_CONNECTION",message:"No connection."});case ee:return void a("customer_id",e.payload.id);case ne:return void a("disconnected",{reason:"connection_lost"});case te:return void i.sendLogin(c);case re:if(!at(c.getState()))return;return void a("connection_recovered");case oe:if(!at(c.getState()))return;return void a("connection_unstable");case ae:return o.connect(),void c.dispatch(tn());case ie:if(!at(c.getState()))return;return void cn(c,rn(Ae,e.payload)).catch(g);default:return}}},Jn=function(e,t){var n,r=(void 0===t?{}:t).query,o=w(void 0===r?{}:r),a=o?e+"?"+o:e,i=L(),c=sn({min:1e3,max:5e3,jitter:.5}),s=3,u=null,d=function(){s=1,c.reset(),i.emit("connect")},p=function(){f(),v(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),s=3,u)&&((e=u).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),u.close(),u=null)},h=function(){var e;s=0,u=new WebSocket(a),(e=u).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},v=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(h,e):h()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==s)throw Error("Socket is already open or connecting.");clearTimeout(n),h()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:v,emit:function(e){if(1!==s)throw Error("Socket is not connected.");u.send(e)},getReadyState:function(){return s},on:i.on,off:i.off}},Kn=function(e,n){var r,o,a,i,c=void 0===n?{}:n,s=c.query,u=void 0===s?{}:s,d=c.emitter,p=void 0===d?L():d,l=Jn(e,{query:u}),f=(o=g,{cancel:function(){clearTimeout(r),o=g},check:function(){var e=Xe();return o=e.resolve,r=setTimeout((function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)}),2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){clearTimeout(r),o()}))}),h=function(){return 1===l.getReadyState()},v=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach((function(e){a.on(e,(function(t){i.emit(e,t)}))})),l.on("disconnect",v),l.on("message",(function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)})),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",(function(){h()&&f.check().then((function(){f.cancel(),p.emit("connection_recovered")}),(function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()}))})),window.addEventListener("offline",(function(){f.cancel(),h()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){v(),l.destroy()},disconnect:function(){v(),l.disconnect()},reconnect:function(e){v(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},Xn=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return Kn(r,{query:{license_id:n.licenseId},emitter:t})},Wn=function(e){return{chatId:e.chat_id,properties:e.properties}},Qn=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Un(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Zn=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},$n=function(e){return t({id:e.id},Dn(e))},er=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},tr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},nr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:kn(t,e.event)}},rr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},or=function(e){return{uniqueId:e.unique_id}},ar=function(e){var n=e.chat;return{chat:t({},jn(n),{thread:xn(n.id,n.thread)})}},ir=function(e){return{chatId:e.chat_id,event:kn(e.thread_id,e.event)}},cr=function(e){return Pn(e)},sr=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},ur=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},dr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Mn(e.queue)}},pr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},fr=function(e){return{chatId:e.chat_id,user:Ln(e.user),present:e.user.present}},hr=function(e){return{chatId:e.chat_id,userId:e.user_id}},vr=function(e){return e.map((function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map((function(e){var r=e.group_id;return t({},n(e,["group_id"]),{groupId:r})}))});case"rating":var r=e.comment_label;return t({},n(e,["comment_label"]),{commentLabel:r});default:return e}}))},_r=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map((function(e,n){return t({},e,{id:n+""})})),vr(r)):vr(e.fields)}},yr=function(e){return e.enabled?t({},e,{form:_r(e.form)}):e},mr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url,e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},gr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map((function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:Cn(e.access),properties:a,users:i.map(Ln),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Nn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return kn(e.thread_id,e.event)}),r);var s,u=r,d=Object.keys(u).map((function(e){return u[e]})),p=(s=d.sort((function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)}))).length>0?s[s.length-1]:null;return p&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c}));return{chatsSummary:(o=function(e){var t=e.lastEvent;return-1*(void 0!==t?t.timestamp:e.order)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(h(a)?[].concat(a):I(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((function(e){return e.users}),c),r=[],n.filter((function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)}))),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Ir=function(e){return e.groups_status},Er=function(e,t){return{threads:t.threads.map((function(t){return xn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},br=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Rn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&m(n.customer_groups.monitoring.id,r)?"online":"offline"),chats:a.map((function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}}))},i&&{greeting:Pn(i)})},Tr=function(e){switch(e.action){case vt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case _t:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case yt:return{action:e.action,payload:Wn(e.payload)};case mt:return{action:e.action,payload:Qn(e.payload)};case Et:case gt:return{action:e.action,payload:e.payload};case It:return{action:e.action,payload:Zn(e.payload)};case bt:return{action:e.action,payload:$n(e.payload)};case Tt:return{action:e.action,payload:er(e.payload)};case wt:return{action:e.action,payload:tr(e.payload)};case Ot:return{action:e.action,payload:nr(e.payload)};case St:return{action:e.action,payload:rr(e.payload)};case kt:case Pt:return{action:e.action,payload:or(e.payload)};case Ct:return{action:e.action,payload:ar(e.payload)};case Nt:return{action:e.action,payload:ir(e.payload)};case xt:return{action:e.action,payload:cr(e.payload)};case jt:return{action:e.action,payload:e.payload};case Dt:return{action:e.action,payload:sr(e.payload)};case qt:return{action:e.action,payload:ur(e.payload)};case Rt:return{action:e.action,payload:dr(e.payload)};case At:return{action:e.action,payload:pr(e.payload)};case Mt:return{action:e.action,payload:lr(e.payload)};case Ut:return{action:e.action,payload:fr(e.payload)};case Lt:return{action:e.action,payload:hr(e.payload)}}var t},wr=function(e,n){var r=e.dispatch,o=n.request_id,a=nt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=function(e){var n,r=e.request,o=e.response;switch(o.action){case le:case fe:case ve:case _e:case ye:return{action:o.action,payload:yn};case me:return{action:o.action,payload:(n=o.payload,t({},jn(n),{thread:n.thread?xn(n.id,n.thread):null}))};case ge:return{action:o.action,payload:Rn(o.payload)};case Ie:return{action:o.action,payload:yr(o.payload)};case Ee:return{action:o.action,payload:An(o.payload)};case be:return{action:o.action,payload:mr(o.payload)};case Te:return{action:o.action,payload:gr(o.payload)};case we:return{action:o.action,payload:Ir(o.payload)};case Oe:return{action:o.action,payload:Er(r,o.payload)};case Se:return{action:o.action,payload:br(o.payload)};case ke:case xe:case je:case Ne:case qe:case Re:case Ae:case Me:case Ue:return{action:o.action,payload:yn}}}({request:a.request,response:n});r({type:Q,payload:t({id:o,promise:i,resolve:c},s)})},Or=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:te})})),n.on("message",(function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=nt((0,e.getState)(),o);r({type:W,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case he:case Pe:case Ce:case De:return;default:return void wr(e,n)}}if("request_id"in n)switch(n.action){case vt:case Ct:case Nt:return void function(e,n){var r=e.dispatch,o=n.request_id,a=nt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=Tr(n);r({type:K,payload:t({id:o,promise:i,resolve:c},s)})}(e,n)}!function(e,t){var n=Tr(t);n&&e.dispatch({type:J,payload:n})}(e,n)})),n.on("disconnect",(function(){vn(e,ce),tt(e.getState())===We&&e.dispatch({type:ne})})),n.on("connection_unstable",(function(){r({type:oe})})),n.on("connection_recovered",(function(){r({type:re})})),n.off},Sr="incorrect requester structure",kr=function(e,t){return e.length?e+"\n"+t:t},Pr=function(e,n,r){var o=r.filledForm,a=r.groupId,i=r.timeZone;return n.getToken().then((function(n){var r=e.getState();null===rt(r)&&e.dispatch(an(n.entityId));var c=it(r)+"/v2/tickets/new",s=function(e,n){var r=n.fields,o=n.groupId,a=void 0===o?e.groupId:o,i=n.timeZone,c=t({licence_id:e.licenseId,ticket_message:"",offline_message:"",visitor_id:n.customerId,requester:{}},"number"==typeof a&&{group:a},e.page&&{source:{url:e.page.url}},i&&{timezone:i});return r.reduce((function(e,t){switch(t.type){case"subject":var n=t.answer,r=n?t.label+" "+n:t.label;return n&&(e.subject=n),e.offline_message=kr(e.offline_message,r),e;case"name":var o=t.answer,a=o?t.label+" "+o:t.label;return o&&(e.requester.name=o),e.offline_message=kr(e.offline_message,a),e;case"email":var i=t.answer,c=i?t.label+" "+i:t.label;return e.requester.mail=i,e.offline_message=kr(e.offline_message,c),e;case"question":case"textarea":var s=t.answer,u=s?t.label+" "+s:t.label;return e.offline_message=kr(e.offline_message,u),e.ticket_message=kr(e.ticket_message,u),e;case"radio":case"select":var d=t.answer&&t.answer.label,p=d?t.label+" "+d:t.label;return e.offline_message=kr(e.offline_message,p),e.ticket_message=kr(e.ticket_message,p),e;case"checkbox":var l=t.answers&&t.answers.map((function(e){return e.label})).join(", "),f=l?t.label+" "+l:t.label;return e.offline_message=kr(e.offline_message,f),e.ticket_message=kr(e.ticket_message,f),e;default:return e}}),c)}(r,{fields:o.fields,customerId:n.entityId,groupId:a,timeZone:i});return P(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}).then((function(e){if(e.ok)return e.json().then((function(e){return t({},e,{text:s.ticket_message})}));if(400===e.status||422===e.status){var n=function(e){if(!e||!e.errors)throw Error();var t=e.errors[0];if(Object.keys(t)[0]===Sr)throw lt({message:t[Sr][0],code:"VALIDATION"});throw Error()};return e.json().then(n,n)}throw Error()}))}))},Cr="UPLOAD_FAILED",Nr=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,s=r.withCredentials,u=void 0!==s&&s,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,s;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=Cr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Cr,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=u,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,s=new FormData,Object.keys(a).forEach((function(e){return s.append(e,a[e])})),s))})),cancel:function(){d.abort()}}},xr=1048576,jr=10485760,Dr=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(xr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},qr=function(e,t){var n,r=e.auth,o=e.store,a=t.file,i=t.onProgress,c=!1;return{promise:new Promise((function(e,t){!function(e){if(e.size>jr)throw lt({message:"The file is too big (max size is "+Dr(jr)+").",code:"TOO_BIG_FILE"})}(a);var s=o.getState(),u=w({license_id:s.licenseId}),d=ct(s)+"/action/upload_file?"+u,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=Nr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(lt({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},Rr=function(e){var t=e.licenseId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={licence_id:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"3.1.0"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=g,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",w(r))},Ar="LISTENER_IDENTITY",Mr={},Ur=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map((function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then((function(e){return console.info(t+"."+n+"() <===",e),e}),(function(e){throw console.error(t+"."+n+"() <===",e),e})):c}})).reduce((function(e,t,r){return e[n[r]]=t,e}),{})},Lr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Ar,{value:{}}),n.LISTENER_IDENTITY[t])return Mr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=y(Mr);return n.LISTENER_IDENTITY[t]=o,Mr[o]=r,r};e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,s=r.auth,u=n(r,["on","once","off","getChatHistory","auth"]),d=Ur(u);return Object.freeze(t({auth:Object.freeze(Ur(s,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then((function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e}),(function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e}))}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t.LISTENER_IDENTITY&&(n=Mr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Lr("on",e,t))},once:function(e,t){a(e,Lr("once",e,t))}}))},e.init=function(e,r){void 0===r&&(r="production"),M(e);var o=e.autoConnect,a=void 0===o||o,i=e.customerDataProvider,c=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),u=pt(t({},s,{env:r})),d=L(),p=function(e){var n=L(),r=Xn(e,n);return t({},Object.keys(r).reduce((function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e}),{}),{reinitialize:function(){r.disconnect(),(r=Xn(e,n)).connect()}})}(u),l="function"==typeof c?c():U(s,r);u.addSideEffectsHandler(Bn({emitter:d,socket:p,auth:l,customerDataProvider:i})),Or(u,p);var f=cn.bind(null,u),h=function(){u.dispatch({type:ae})},v=Object.freeze({acceptGreeting:function(e){return f(rn(le,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:l,cancelGreeting:function(e){return f(rn(fe,{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:de});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return f(rn(he,{id:e.id}))},deleteChatProperties:function(e){return f(rn(ve,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return f(rn(_e,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return f(rn(ye,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){u.dispatch($t("manual"))},disconnect:function(){u.dispatch(en("manual"))},getChat:function(e){return f(rn(me,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then((function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)}),(function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach((function(t){return t.reject(e)}))}));case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}};return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){return new Promise(r)}))}}(v,e.chatId)},getCustomer:function(){return f(rn(ge,{}))},getForm:function(e){return f(rn(Ie,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return f(rn(Ee,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return f(rn(be,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):f(rn(Te,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return f(rn(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return f(rn(Oe,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId}))},markEventsAsSeen:function(e){return f(rn(ke,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:d.on,once:d.once,off:d.off,rateChat:function(e){var t=e.chatId,n=e.rating;return v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:de});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Rr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(rn(Pe,function(e){var n=Wt(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return f(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Xt(e.event)};return t&&(n.attach_to_last_thread=!0),rn(Ce,n)}(e))})),sendTicketForm:function(e){return Pr(u,l,e)},sendRichMessagePostback:function(e){return f(rn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return f(rn(je,{session_fields:Qt(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=u.getState();ot(r,t)&&at(r)&&f(rn(xe,{chat_id:t,sneak_peek_text:n})).catch(g)},startChat:function(t){return void 0===t&&(t={}),Rr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(rn(De,Wt(t)))},updateChatProperties:function(e){return f(rn(qe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return f(rn(Re,Zt(e)))},updateCustomerPage:function(e){u.dispatch({type:ie,payload:E(["title","url"],e)})},updateEventProperties:function(e){return f(rn(Me,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return f(rn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return qr({auth:l,store:u},e)}});return a?h():u.dispatch({type:F,payload:{sessionFields:"function"==typeof i?i().sessionFields:{}}}),v},e.parseCustomEvent=Tn,e.parseEvent=kn,e.parseFile=In,e.parseFilledForm=En,e.parseForm=_r,e.parseGreeting=Pn,e.parseMessage=bn,e.parseRichMessage=On,e.parseSystemMessage=Sn,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,(function(e){"use strict";function t(){return(t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}(),c=function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)!==a?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,s=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},u=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}var h=Array.isArray;function v(e,t){return Object.keys(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function _(e){return e}function y(e){var t=Math.random().toString(36).substring(2);return l(t,e)?y(e):t}function m(e,t){return-1!==t.indexOf(e)}function g(){}function I(e){return Object.keys(e).map((function(t){return e[t]}))}function E(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}var b=function(e){return Object.keys(e).map((function(t){return[t,e[t]]}))},T=function(e,t){return e===t?0:t>e?-1:1};var w=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){var t=e.match(O);return t&&t[0]},k=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+k("javascript")+"|"+k("data")+"):","i");function P(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},s=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:s,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n})),n(s())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}var C=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},N=function(e,t){if("identity_exception"in e)throw C({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw C({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),licenseId:t}},x="https://accounts.livechatinc.com",j=function(e,t){return""+("production"===t?x:x.replace("accounts.","accounts."+t+"."))+function(e){return(e.uniqueGroups?"/licence/g"+e.licenseId+"_"+e.groupId:"")+"/customer"}(e)},D="https://accounts.livechatinc.com",q="@livechat/customer-auth",R=function(e,t){var n=function(e,t){return{license_id:e.licenseId+"",flow:"button",response_type:"token",client_id:e.clientId,redirect_uri:t,post_message_uri:t,state:q}}(e,S(window.location+"")+window.location.pathname),r=document.createElement("iframe");return r.style.display="none",r.setAttribute("src",j(e,t)+"?"+w(n)),r};function A(e,t){var n=e.licenseId,r=function(e){return"production"===e?D:D.replace("accounts.","accounts."+e+".")}(t);return new Promise((function(o,a){var i=R(e,t),c=function(){var e,t;(t=(e=i).parentNode)&&t.removeChild(e),window.removeEventListener("message",u,!1)},s=setTimeout((function(){c(),a(C({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}),15e3),u=function(e){var t=e.data;if(e.origin===r&&function(e){return e&&e.state===q}(t)){clearTimeout(s),c();try{o(N(t,n))}catch(e){a(e)}}};window.addEventListener("message",u,!1),new Promise((function(e){!function t(){document.body?e(document.body):setTimeout(t,100)}()})).then((function(e){e.appendChild(i)}))}))}var M=function(e){if("number"!=typeof e.licenseId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { licenseId, clientId }.")},U=function(e,t){M(e);var n="@@lc_auth_token:"+e.licenseId+(e.uniqueGroups?":"+e.groupId:""),r=null,o=null,a=u(n).then((function(e){null!==a&&(a=null,e&&(o=JSON.parse(e)))})),i=function(){return r=function(e,t){return e.uniqueGroups?A(e,t):P(j(e,t)+"/token",{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,license_id:e.licenseId,redirect_uri:S(window.location+"")+window.location.pathname})}).then((function(e){return e.json()})).then((function(t){return N(t,e.licenseId)}))}(e,t).then((function(e){return r=null,s(n,JSON.stringify(e)),o=e,e}),(function(e){throw r=null,e}))};return{getFreshToken:i,getToken:function e(){return r||(o&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(o)?Promise.resolve(o):a?a.then(e):i())},hasToken:function e(){return a?a.then(e):Promise.resolve(!!o)},invalidate:function(){return o=null,a=null,d(n)}}};var L=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)}))}})},H="change_region",F="check_goals",G="destroy",Y="fail_all_requests",V="login_success",z="pause_connection",B="prefetch_token",J="push_received",K="push_response_received",X="reconnect",W="request_failed",Q="response_received",Z="send_request",$="set_chat_active",ee="set_self_id",te="socket_connected",ne="socket_disconnected",re="socket_recovered",oe="socket_unstable",ae="start_connection",ie="update_customer_page",ce="CONNECTION_LOST",se="IDENTITY_MISMATCH",ue="MISDIRECTED_CONNECTION",de="MISSING_CHAT_THREAD",pe="SDK_DESTROYED",le="accept_greeting",fe="cancel_greeting",he="delete_chat_properties",ve="delete_event_properties",_e="delete_thread_properties",ye="get_chat",me="get_customer",ge="get_form",Ie="get_predicted_agent",Ee="get_url_info",be="list_chats",Te="list_group_statuses",we="list_threads",Oe="login",Se="mark_events_as_seen",ke="resume_chat",Pe="send_event",Ce="send_rich_message_postback",Ne="send_sneak_peek",xe="set_customer_session_fields",je="start_chat",De="update_chat_properties",qe="update_customer",Re="update_customer_page",Ae="update_event_properties",Me="update_thread_properties";var Ue=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")()),Le=function(){return Math.random().toString(36).substring(7).split("").join(".")},He={INIT:"@@redux/INIT"+Le(),REPLACE:"@@redux/REPLACE"+Le(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Le()}};function Fe(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 Ge(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(Ge)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,s=!1;function u(){c===i&&(c=i.slice())}function d(){if(s)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(s)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return u(),c.push(e),function(){if(t){if(s)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!Fe(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(s)throw Error("Reducers may not dispatch actions.");try{s=!0,a=o(a,e)}finally{s=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:He.REPLACE})}function h(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[Ue]=function(){return this},e}return l({type:He.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[Ue]=h,r}function Ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ve(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 ze(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ve(n,!0).forEach((function(t){Ye(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ve(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Be(){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 Je(){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 ze({},n,{dispatch:r=Be.apply(void 0,a)(n.dispatch)})}}}function Ke(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Xe="connected",We="destroyed",Qe="disconnected",Ze="agent",$e="customer",et=function(e){return e.connection.status},tt=function(e,t){return e.requests[t]},nt=function(e){return e.users.self.id},rt=function(e,t){var n=e.chats[t];return!!n&&n.active},ot=function(e){return et(e)===Xe},at=function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return 1520===e.licenseId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"},it=function(e){return at(e)+"/v3.3/customer"},ct=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})})},ut=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(We,e)},n.login_success=function(e){return st(Xe,e)},n.pause_connection=function(e){return st("paused",e)},n.request_failed=ct,n.response_received=ct,n.push_response_received=ct,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=et(e);return t({},st(n===Qe?Qe:"reconnecting",e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),l(t.type,o)?o[t.type](e,t.payload):e}};function dt(e){var n=_,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach((function(e){e(r,t)})),o}}};return t.add=function(t){e.push(t)},t}(),o=Ge(ut(function(e){var n=e.application,r=e.licenseId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,s=void 0===c?null:c,u=e.region,d=void 0===u?null:u,p=e.referrer,l=void 0===p?null:p,f=e.uniqueGroups,h=void 0!==f&&f,v=e.mobile,_=void 0!==v&&v;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"3.1.1"}),licenseId:r,env:i,groupId:a,chats:{},connection:{status:Qe},page:s,region:d,referrer:l,requests:{},users:{self:{id:null,type:$e},others:{}},uniqueGroups:h,mobile:_}}(e)),n(Je(r)));return o.addSideEffectsHandler=r.add,o}function pt(e){var t=e.code,n=Error(e.message);return n.code=t,n}var lt="customer_banned",ft="product_version_changed",ht="chat_deactivated",vt="chat_properties_deleted",_t="chat_properties_updated",yt="chat_transferred",mt="customer_disconnected",gt="customer_page_updated",It="customer_side_storage_updated",Et="customer_updated",bt="event_properties_deleted",Tt="event_properties_updated",wt="event_updated",Ot="events_marked_as_seen",St="greeting_accepted",kt="greeting_canceled",Pt="incoming_chat",Ct="incoming_event",Nt="incoming_greeting",xt="incoming_multicast",jt="incoming_rich_message_postback",Dt="incoming_typing_indicator",qt="queue_position_updated",Rt="thread_properties_deleted",At="thread_properties_updated",Mt="user_added_to_chat",Ut="user_removed_from_chat",Lt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:ht,CHAT_PROPERTIES_DELETED:vt,CHAT_PROPERTIES_UPDATED:_t,CHAT_TRANSFERRED:yt,CUSTOMER_DISCONNECTED:mt,CUSTOMER_PAGE_UPDATED:gt,CUSTOMER_SIDE_STORAGE_UPDATED:It,CUSTOMER_UPDATED:Et,EVENT_PROPERTIES_DELETED:bt,EVENT_PROPERTIES_UPDATED:Tt,EVENT_UPDATED:wt,EVENTS_MARKED_AS_SEEN:Ot,GREETING_ACCEPTED:St,GREETING_CANCELED:kt,INCOMING_CHAT:Pt,INCOMING_EVENT:Ct,INCOMING_GREETING:Nt,INCOMING_MULTICAST:xt,INCOMING_RICH_MESSAGE_POSTBACK:jt,INCOMING_TYPING_INDICATOR:Dt,QUEUE_POSITION_UPDATED:qt,THREAD_PROPERTIES_DELETED:Rt,THREAD_PROPERTIES_UPDATED:At,USER_ADDED_TO_CHAT:Mt,USER_REMOVED_FROM_CHAT:Ut}),Ht="file",Ft="form",Gt="filled_form",Yt="message",Vt="rich_message",zt="system_message",Bt="custom",Jt=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||h(t)||(n.properties=e.properties),n},Kt=function(e){switch(e.type){case Yt:var r=t({},Jt(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case Ht:return t({},Jt(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case Gt:return t({},Jt(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case zt:var o=t({},Jt(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case Bt:var a=t({},Jt(e),{type:e.type});return e.content&&(a.content=e.content),a}},Xt=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(Kt)),r&&(t.properties=r),t}(i)),o},Wt=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},Qt=function(e){var t=E(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=Wt(e.sessionFields)),t},Zt=function(e){return{type:G,payload:{reason:e}}},$t=function(e){return{type:z,payload:{reason:e}}},en=function(e){return void 0===e&&(e=!1),{type:B,payload:{fresh:e}}},tn=function(e){return{type:X,payload:{delay:e}}},nn=function(e,n,r){return{type:Z,payload:t({request:{action:e,payload:n}},r&&{source:r})}},rn=function(e,t){return{type:$,payload:{id:e,active:t}}},on=function(e){return{type:ee,payload:{id:e}}},an=function(e,t){t.payload.id=y(e.getState().requests);var n=Ke(),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},cn=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}}},sn=function(e){var t=e.getState();return"side_storage_"+t.licenseId+(t.uniqueGroups?":"+t.groupId:"")},un=function(e){return u(sn(e)).catch(g).then((function(e){return JSON.parse(e||"{}")})).catch((function(){return{}}))},dn=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}}},pn=function(e,t,n){return an(e,nn(t,n,"login"))};function ln(e,n){var r,o,a=null,i={min:300,max:6e4,jitter:.3},c=cn(i),s=cn(t({},i,{min:1e3})),u=c,d=function(e){return r.dispatch(Zt(e))},p=function(){return r.dispatch(tn(u.duration()))},l=function(){return Promise.all([e.getToken(),un(r)])},f=function(e){var t=e[0],n=e[1],o=nt(r.getState());if(null===o)r.dispatch(on(t.entityId));else if(o!==t.entityId){var a=Error("Identity has changed.");throw a.code=se,a}return[t,n]},h=function(e){var t,o,i,c=e[0],s=e[1],u=r.getState(),d=u.application,p=u.groupId,l=u.page,f=u.referrer,h=u.mobile,v={token:c.tokenType+" "+c.accessToken,customer:"function"==typeof n?Qt(n()):{},customer_side_storage:s,is_mobile:h,application:(t=["name","version"],o=d,t.reduce((function(e,t){return e[t]=o[t],e}),{}))};return"number"==typeof p&&(v.group_id=p),d.channelType&&(v.application.channel_type=d.channelType),null!==l&&(a=l,v.customer_page=l),null!==f&&(v.referrer=f),Promise.race([pn(r,Oe,v),(i=15e3,new Promise((function(e){setTimeout(e,i)}))).then((function(){return Promise.reject(pt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;r=t,null==(n=o)||n.cancel(),o=dn([l,f,h],(function(e){var t;o=null,c.reset(),s.reset(),u=c,t=r.getState().page,a!==t&&pn(r,Re,t).catch(g),a=null,r.dispatch({type:V,payload:e})}),(function(t){switch(o=null,t.code){case"AUTHENTICATION":return e.getFreshToken(),void p();case ce:case ue:case pe:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void p():void d(t.message);case"USERS_LIMIT_REACHED":return void r.dispatch($t(t.code.toLowerCase()));case se:case"CUSTOMER_BANNED":case"WRONG_PRODUCT_VERSION":return void d(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return u=s,void p();default:return void p()}}))},cancel:function(){var e;null==(e=o)||e.cancel()}}}var fn,hn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Y,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},vn=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:W,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},_n=Object.freeze({success:!0}),yn=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},mn=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},gn=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},yn(e,n),{type:Ht,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},mn(300,n)),high:t({url:n.thumbnail2x_url},mn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},yn(e,n),{type:Ht,contentType:n.content_type,url:n.url,name:n.name})},In=function(e,r){return t({},yn(e,r),{type:Gt,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}}))})},En=function(e,n){return t({},yn(e,n),{type:Yt,text:n.text})},bn=function(e,n){return t({},yn(e,n),{type:Bt},n.content&&{content:n.content})},Tn=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},wn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},yn(e,n),{type:Vt,template:n.template_id,elements:n.elements.map(Tn)});default:return null}},On=function(e,n){var r=t({},yn(e,t({},n,{author_id:"system"})),{type:zt,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Sn=function(e,n){switch(n.type){case Ht:return gn(e,n);case Ft:return function(e,n){return t({},yn(e,n),{authorId:"system",type:Ft,formId:n.form_id,fields:n.fields})}(e,n);case Gt:return In(e,n);case Yt:return En(e,n);case Vt:return wn(e,n);case zt:return On(e,n);case Bt:return bn(e,n);default:return null}},kn=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:Sn(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}}},Pn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Cn=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},Nn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Pn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Sn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Mn(t.queue):null}},xn=function(e){return{id:e.id,access:Pn(e.access),users:e.users.map(Un),properties:e.properties||{},eventsSeenUpToMap:Cn(e.users)}},jn=function(e){var t=E(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e}),{})),t},Dn=function(e){var n=jn(e);return t({id:e.id,type:$e},n,{sessionFields:n.sessionFields||{}})},qn=function(e){var n=e.statistics;return t({},Dn(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}})},Rn=function(e){var t=e.agent;return{agent:{id:t.id,type:Ze,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},An=function(e){return{position:e.position,waitTime:e.wait_time}},Mn=function(e){return t({},An(e),{queuedAt:e.queued_at})},Un=function(e){return e.type===$e?t({},Dn(r=e),{present:r.present}):{id:(n=e).id,type:Ze,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},Ln=((fn={}).CONNECTION_LOST="Connection lost.",fn.MISDIRECTED_CONNECTION="Connected to wrong region.",fn),Hn=function(e,t){var n=e.getState();switch(t.type){case K:case J:switch(t.payload.action){case ht:return void e.dispatch(rn(t.payload.payload.chatId,!1));case Pt:return void e.dispatch(rn(t.payload.payload.chat.id,!0));default:return}case Q:switch(t.payload.action){case be:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return rt(n,e.id)!==t})).forEach((function(t){e.dispatch(rn(t.id,t.active))}));default:return}}},Fn=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==$e)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},Gn=function(e,t){var n,r=t.content;"lc2"===t.type&&("groups_update"===r.name&&"groups"in r&&0!==(h(n=r.groups)?n:Object.keys(n)).length&&e("availability_updated",{availability:"offline"===r.groups[0].status?"offline":"online"}))},Yn=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case At:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(qt,{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 It:return void function(e,t){s(sn(e),JSON.stringify(t)).catch(g)}(r,o.payload.customer_side_storage);case mt:switch(o.payload.reason){case"access_token_expired":r.dispatch(en(!0)),r.dispatch(tn(100)),n("disconnected",o.payload);break;case lt:case"customer_temporarily_blocked":case"license_not_found":case ft:case"too_many_connections":case"unsupported_version":r.dispatch(Zt(o.payload.reason));break;case"misdirected_connection":hn(r,ue),r.dispatch({type:H,payload:o.payload.data});break;case"service_temporarily_unavailable":case"too_many_unauthorized_connections":hn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(tn(100)),n("disconnected",o.payload)}return;case Pt:return Fn(n,o.payload.chat.users),void n(o.action,o.payload);case Ct:if(null===o.payload.event)return;return void n(o.action,o.payload);case Dt:return void n(o.action,o.payload);case xt:return Gn(n,o.payload),void n(o.action,o.payload);case Mt:return Fn(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},Vn=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case ht:return void r.resolve(_n);case ye:return Fn(n,r.payload.users),void r.resolve(r.payload);case Pt:return Fn(n,r.payload.chat.users),void r.resolve(r.payload);case Ct:return void r.resolve(r.payload.event);case be:return Fn(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},zn=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=ln(n,e.customerDataProvider);return function(e,c){switch(e.type){case H:return void o.reinitialize();case F:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===nt(r)&&e.dispatch(on(t.entityId));var o=r.page;if(o&&o.url){var a=w({license_id:r.licenseId}),i={session_fields:Wt(n||{}),group_id:r.groupId||0,page_url:o.url};return P(it(r)+"/action/check_goals?"+a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then((function(){}))}}))}(c,n,e.payload.sessionFields).catch(g);case G:var s=e.payload;switch(i.cancel(),o.destroy(),s.reason){case"manual":hn(c,pe);break;case lt:case"license_expired":case ft:hn(c,ce),a("disconnected",s);break;default:a("disconnected",s)}return void r.off();case Y:var u=e.payload,d=u.reason,p={message:Ln[d],code:d};return void u.rejects.forEach((function(e){e(pt(p))}));case V:var l=e.payload,f=l.dynamicConfig,h=l.chats,v=l.greeting,_=t({customer:l.customer,availability:l.availability},v&&{greeting:v});return Object.defineProperty(_,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(_,"__unsafeChats",{value:h}),void a("connected",_);case z:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case B:return e.payload.fresh?void n.getFreshToken().catch(g):void n.hasToken().then((function(e){return e?n.getToken().then((function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)})):n.getToken()})).catch(g);case J:return e.payload.action===mt||Hn(c,e),void Yn({emit:a,store:c},e);case K:return Hn(c,e),void Vn({emit:a},e);case X:return hn(c,ce),void o.reconnect(e.payload.delay);case W:var E=e.payload;return void(0,E.reject)(pt(E.error));case Q:return Hn(c,e),void Vn({emit:a},e);case Z:var b=c.getState();return function(e){return et(e)===We}(b)?void vn(c,e,{code:pe,message:"SDK destroyed."}):ot(b)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Oe:var a=[];return void e.emit(t({},o,{version:"3.3",payload:t({},o.payload,{pushes:{3.3:I(Lt).filter((function(e){return e!==mt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void vn(c,e,{code:"NO_CONNECTION",message:"No connection."});case ee:return void a("customer_id",e.payload.id);case ne:return void a("disconnected",{reason:"connection_lost"});case te:return void i.sendLogin(c);case re:if(!ot(c.getState()))return;return void a("connection_recovered");case oe:if(!ot(c.getState()))return;return void a("connection_unstable");case ae:return o.connect(),void c.dispatch(en());case ie:if(!ot(c.getState()))return;return void an(c,nn(Re,e.payload)).catch(g);default:return}}},Bn=function(e,t){var n,r=(void 0===t?{}:t).query,o=w(void 0===r?{}:r),a=o?e+"?"+o:e,i=L(),c=cn({min:1e3,max:5e3,jitter:.5}),s=3,u=null,d=function(){s=1,c.reset(),i.emit("connect")},p=function(){f(),v(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),s=3,u)&&((e=u).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),u.close(),u=null)},h=function(){var e;s=0,u=new WebSocket(a),(e=u).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},v=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(h,e):h()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){if(3!==s)throw Error("Socket is already open or connecting.");clearTimeout(n),h()})),destroy:function(){i.off(),f()},disconnect:f,reconnect:v,emit:function(e){if(1!==s)throw Error("Socket is not connected.");u.send(e)},getReadyState:function(){return s},on:i.on,off:i.off}},Jn=function(e,n){var r,o,a,i,c=void 0===n?{}:n,s=c.query,u=void 0===s?{}:s,d=c.emitter,p=void 0===d?L():d,l=Bn(e,{query:u}),f=(o=g,{cancel:function(){clearTimeout(r),o=g},check:function(){var e=Ke();return o=e.resolve,r=setTimeout((function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)}),2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){clearTimeout(r),o()}))}),h=function(){return 1===l.getReadyState()},v=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach((function(e){a.on(e,(function(t){i.emit(e,t)}))})),l.on("disconnect",v),l.on("message",(function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)})),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",(function(){h()&&f.check().then((function(){f.cancel(),p.emit("connection_recovered")}),(function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()}))})),window.addEventListener("offline",(function(){f.cancel(),h()&&p.emit("connection_unstable")}))),t({},l,{destroy:function(){v(),l.destroy()},disconnect:function(){v(),l.disconnect()},reconnect:function(e){v(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},Kn=function(e,t){var n=e.getState(),r=(it(n)+"/rtm/ws").replace(/^https/,"wss");return Jn(r,{query:{license_id:n.licenseId},emitter:t})},Xn=function(e){return{chatId:e.chat_id,properties:e.properties}},Wn=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?Mn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Qn=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},Zn=function(e){return t({id:e.id},jn(e))},$n=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},er=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},tr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Sn(t,e.event)}},nr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},rr=function(e){return{uniqueId:e.unique_id}},or=function(e){var n=e.chat;return{chat:t({},xn(n),{thread:Nn(n.id,n.thread)})}},ar=function(e){return{chatId:e.chat_id,event:Sn(e.thread_id,e.event)}},ir=function(e){return kn(e)},cr=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}}},ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:An(e.queue)}},dr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},pr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},lr=function(e){return{chatId:e.chat_id,user:Un(e.user),present:e.user.present}},fr=function(e){return{chatId:e.chat_id,userId:e.user_id}},hr=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}}))},vr=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+""})})),hr(r)):hr(e.fields)}},_r=function(e){return e.enabled?t({},e,{form:vr(e.form)}):e},yr=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,e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},mr=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:Pn(e.access),properties:a,users:i.map(Un),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Cn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return Sn(e.thread_id,e.event)}),r);var s,u=r,d=Object.keys(u).map((function(e){return u[e]})),p=(s=d.sort((function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)}))).length>0?s[s.length-1]:null;return p&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c}));return{chatsSummary:(o=function(e){var t=e.lastEvent;return-1*(void 0!==t?t.timestamp:e.order)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(h(a)?[].concat(a):I(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((function(e){return e.users}),c),r=[],n.filter((function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)}))),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},gr=function(e){return e.groups_status},Ir=function(e,t){return{threads:t.threads.map((function(t){return Nn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Er=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:qn(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:kn(i)})},br=function(e){switch(e.action){case ht:return{action:e.action,payload:{chatId:e.payload.chat_id}};case vt:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case _t:return{action:e.action,payload:Xn(e.payload)};case yt:return{action:e.action,payload:Wn(e.payload)};case It:case mt:return{action:e.action,payload:e.payload};case gt:return{action:e.action,payload:Qn(e.payload)};case Et:return{action:e.action,payload:Zn(e.payload)};case bt:return{action:e.action,payload:$n(e.payload)};case Tt:return{action:e.action,payload:er(e.payload)};case wt:return{action:e.action,payload:tr(e.payload)};case Ot:return{action:e.action,payload:nr(e.payload)};case St:case kt:return{action:e.action,payload:rr(e.payload)};case Pt:return{action:e.action,payload:or(e.payload)};case Ct:return{action:e.action,payload:ar(e.payload)};case Nt:return{action:e.action,payload:ir(e.payload)};case xt:return{action:e.action,payload:e.payload};case jt:return{action:e.action,payload:cr(e.payload)};case Dt:return{action:e.action,payload:sr(e.payload)};case qt:return{action:e.action,payload:ur(e.payload)};case Rt:return{action:e.action,payload:dr(e.payload)};case At:return{action:e.action,payload:pr(e.payload)};case Mt:return{action:e.action,payload:lr(e.payload)};case Ut:return{action:e.action,payload:fr(e.payload)}}var t},Tr=function(e,n){var r=e.dispatch,o=n.request_id,a=tt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=function(e){var n,r=e.request,o=e.response;switch(o.action){case le:case fe:case he:case ve:case _e:return{action:o.action,payload:_n};case ye:return{action:o.action,payload:(n=o.payload,t({},xn(n),{thread:n.thread?Nn(n.id,n.thread):null}))};case me:return{action:o.action,payload:qn(o.payload)};case ge:return{action:o.action,payload:_r(o.payload)};case Ie:return{action:o.action,payload:Rn(o.payload)};case Ee:return{action:o.action,payload:yr(o.payload)};case be:return{action:o.action,payload:mr(o.payload)};case Te:return{action:o.action,payload:gr(o.payload)};case we:return{action:o.action,payload:Ir(r,o.payload)};case Oe:return{action:o.action,payload:Er(o.payload)};case Se:case Ne:case xe:case Ce:case De:case qe:case Re:case Ae:case Me:return{action:o.action,payload:_n}}}({request:a.request,response:n});r({type:Q,payload:t({id:o,promise:i,resolve:c},s)})},wr=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:te})})),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=tt((0,e.getState)(),o);r({type:W,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case ke:case Pe:case je:return;default:return void Tr(e,n)}}if("request_id"in n)switch(n.action){case Pt:case Ct:return void function(e,n){var r=e.dispatch,o=n.request_id,a=tt((0,e.getState)(),o),i=a.promise,c=a.resolve,s=br(n);r({type:K,payload:t({id:o,promise:i,resolve:c},s)})}(e,n)}!function(e,t){var n=br(t);n&&e.dispatch({type:J,payload:n})}(e,n)})),n.on("disconnect",(function(){hn(e,ce),et(e.getState())===Xe&&e.dispatch({type:ne})})),n.on("connection_unstable",(function(){r({type:oe})})),n.on("connection_recovered",(function(){r({type:re})})),n.off},Or="incorrect requester structure",Sr=function(e,t){return e.length?e+"\n"+t:t},kr=function(e,n,r){var o=r.filledForm,a=r.groupId,i=r.timeZone;return n.getToken().then((function(n){var r=e.getState();null===nt(r)&&e.dispatch(on(n.entityId));var c=at(r)+"/v2/tickets/new",s=function(e,n){var r=n.fields,o=n.groupId,a=void 0===o?e.groupId:o,i=n.timeZone,c=t({licence_id:e.licenseId,ticket_message:"",offline_message:"",visitor_id:n.customerId,requester:{}},"number"==typeof a&&{group:a},e.page&&{source:{url:e.page.url}},i&&{timezone:i});return r.reduce((function(e,t){switch(t.type){case"subject":var n=t.answer,r=n?t.label+" "+n:t.label;return n&&(e.subject=n),e.offline_message=Sr(e.offline_message,r),e;case"name":var o=t.answer,a=o?t.label+" "+o:t.label;return o&&(e.requester.name=o),e.offline_message=Sr(e.offline_message,a),e;case"email":var i=t.answer,c=i?t.label+" "+i:t.label;return e.requester.mail=i,e.offline_message=Sr(e.offline_message,c),e;case"question":case"textarea":var s=t.answer,u=s?t.label+" "+s:t.label;return e.offline_message=Sr(e.offline_message,u),e.ticket_message=Sr(e.ticket_message,u),e;case"radio":case"select":var d=t.answer&&t.answer.label,p=d?t.label+" "+d:t.label;return e.offline_message=Sr(e.offline_message,p),e.ticket_message=Sr(e.ticket_message,p),e;case"checkbox":var l=t.answers&&t.answers.map((function(e){return e.label})).join(", "),f=l?t.label+" "+l:t.label;return e.offline_message=Sr(e.offline_message,f),e.ticket_message=Sr(e.ticket_message,f),e;default:return e}}),c)}(r,{fields:o.fields,customerId:n.entityId,groupId:a,timeZone:i});return P(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}).then((function(e){if(e.ok)return e.json().then((function(e){return t({},e,{text:s.ticket_message})}));if(400===e.status||422===e.status){var n=function(e){if(!e||!e.errors)throw Error();var t=e.errors[0];if(Object.keys(t)[0]===Or)throw pt({message:t[Or][0],code:"VALIDATION"});throw Error()};return e.json().then(n,n)}throw Error()}))}))},Pr="UPLOAD_FAILED",Cr=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,s=r.withCredentials,u=void 0!==s&&s,d=new XMLHttpRequest;return{promise:new Promise((function(n,r){var a,s;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=Pr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Pr,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=u,o&&Object.keys(o).forEach((function(e){return d.setRequestHeader(e,o[e])})),d.send((a=t,s=new FormData,Object.keys(a).forEach((function(e){return s.append(e,a[e])})),s))})),cancel:function(){d.abort()}}},Nr=1048576,xr=10485760,jr=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(Nr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Dr=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>xr)throw pt({message:"The file is too big (max size is "+jr(xr)+").",code:"TOO_BIG_FILE"})}(a);var s=o.getState(),u=w({license_id:s.licenseId}),d=it(s)+"/action/upload_file?"+u,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=Cr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(pt({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},qr=function(e){var t=e.licenseId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={licence_id:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"3.1.1"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=g,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",w(r))},Rr="LISTENER_IDENTITY",Ar={},Mr=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}),{})},Ur=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Rr,{value:{}}),n.LISTENER_IDENTITY[t])return Ar[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=y(Ar);return n.LISTENER_IDENTITY[t]=o,Ar[o]=r,r};e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,s=r.auth,u=n(r,["on","once","off","getChatHistory","auth"]),d=Mr(u);return Object.freeze(t({auth:Object.freeze(Mr(s,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then((function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e}),(function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e}))}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t.LISTENER_IDENTITY&&(n=Ar[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Ur("on",e,t))},once:function(e,t){a(e,Ur("once",e,t))}}))},e.init=function(e,r){void 0===r&&(r="production"),M(e);var o=e.autoConnect,a=void 0===o||o,i=e.customerDataProvider,c=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),u=dt(t({},s,{env:r})),d=L(),p=function(e){var n=L(),r=Kn(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=Kn(e,n)).connect()}})}(u),l="function"==typeof c?c():U(s,r);u.addSideEffectsHandler(zn({emitter:d,socket:p,auth:l,customerDataProvider:i})),wr(u,p);var f=an.bind(null,u),h=function(){u.dispatch({type:ae})},v=Object.freeze({acceptGreeting:function(e){return f(nn(le,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:l,cancelGreeting:function(e){return f(nn(fe,{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 pt({message:'There is no thread in "'+t+'".',code:de});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return f(nn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return f(nn(he,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return f(nn(ve,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return f(nn(_e,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){u.dispatch(Zt("manual"))},disconnect:function(){u.dispatch($t("manual"))},getChat:function(e){return f(nn(ye,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then((function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)}),(function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach((function(t){return t.reject(e)}))}));case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}};return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(){return new Promise(r)}))}}(v,e.chatId)},getCustomer:function(){return f(nn(me,{}))},getForm:function(e){return f(nn(ge,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return f(nn(Ie,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return f(nn(Ee,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):f(nn(be,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return f(nn(Te,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return f(nn(we,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId}))},markEventsAsSeen:function(e){return f(nn(Se,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:d.on,once:d.once,off:d.off,rateChat:function(e){var t=e.chatId,n=e.rating;return v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw pt({message:'There is no thread in "'+t+'".',code:de});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return qr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(nn(ke,function(e){var n=Xt(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return f(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Kt(e.event)};return t&&(n.attach_to_last_thread=!0),nn(Pe,n)}(e))})),sendTicketForm:function(e){return kr(u,l,e)},sendRichMessagePostback:function(e){return f(nn(Ce,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return f(nn(xe,{session_fields:Wt(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=u.getState();rt(r,t)&&ot(r)&&f(nn(Ne,{chat_id:t,sneak_peek_text:n})).catch(g)},startChat:function(t){return void 0===t&&(t={}),qr({env:r,licenseId:e.licenseId,eventName:"chat_started"}),f(nn(je,Xt(t)))},updateChatProperties:function(e){return f(nn(De,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return f(nn(qe,Qt(e)))},updateCustomerPage:function(e){u.dispatch({type:ie,payload:E(["title","url"],e)})},updateEventProperties:function(e){return f(nn(Ae,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return f(nn(Me,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Dr({auth:l,store:u},e)}});return a?h():u.dispatch({type:F,payload:{sessionFields:"function"==typeof i?i().sessionFields:{}}}),v},e.parseCustomEvent=bn,e.parseEvent=Sn,e.parseFile=gn,e.parseFilledForm=In,e.parseForm=vr,e.parseGreeting=kn,e.parseMessage=En,e.parseRichMessage=wn,e.parseSystemMessage=On,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livechat/customer-sdk",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "SDK for connecting to LiveChat as a customer",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Konrad Kruk <k.kruk@livechatinc.com>",
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@livechat/backoff": "^0.1.0",
|
|
24
|
-
"@livechat/customer-auth": "^0.4.0-alpha.
|
|
25
|
-
"@livechat/data-utils": "^0.2.
|
|
24
|
+
"@livechat/customer-auth": "^0.4.0-alpha.7",
|
|
25
|
+
"@livechat/data-utils": "^0.2.16",
|
|
26
26
|
"@livechat/deferred": "^1.1.0",
|
|
27
27
|
"@livechat/file-upload": "^0.3.0",
|
|
28
28
|
"@livechat/isomorphic-storage": "^0.1.0",
|
|
29
29
|
"@livechat/mitt": "^0.1.2",
|
|
30
|
-
"@livechat/platform-client": "^0.3.
|
|
30
|
+
"@livechat/platform-client": "^0.3.1",
|
|
31
31
|
"@livechat/promise-try": "^0.1.0",
|
|
32
32
|
"@livechat/side-effects-middleware": "^0.2.0",
|
|
33
|
-
"@livechat/url-utils": "^0.
|
|
33
|
+
"@livechat/url-utils": "^0.2.0",
|
|
34
34
|
"redux": "^4.0.4",
|
|
35
35
|
"ts-toolbelt": "^6.7.5",
|
|
36
36
|
"unfetch": "^4.2.0"
|