@livechat/customer-sdk 5.0.0 → 5.1.0
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 +17 -0
- package/dist/customer-sdk.cjs.js +23 -4
- package/dist/customer-sdk.cjs.native.js +23 -4
- package/dist/customer-sdk.esm.js +23 -4
- package/dist/customer-sdk.js +25 -6
- package/dist/customer-sdk.min.js +1 -1
- package/package.json +2 -2
- package/types/serverFrameParser.d.ts +4 -3
package/README.md
CHANGED
|
@@ -101,6 +101,7 @@ CustomerData:
|
|
|
101
101
|
| ------------- | ------ | ---------------- |
|
|
102
102
|
| name | string | Optional |
|
|
103
103
|
| email | string | Optional |
|
|
104
|
+
| phoneNumber | string | Optional |
|
|
104
105
|
| sessionFields | object | Key: value pairs |
|
|
105
106
|
|
|
106
107
|
CustomerAuth:
|
|
@@ -1217,6 +1218,7 @@ Updates the specified Customer properties and fields.
|
|
|
1217
1218
|
const properties = {
|
|
1218
1219
|
name: 'John Doe',
|
|
1219
1220
|
email: 'john.doe@example.com',
|
|
1221
|
+
phoneNumber: '+1234567890',
|
|
1220
1222
|
sessionFields: {
|
|
1221
1223
|
custom_property: 'BasketValue=10usd',
|
|
1222
1224
|
any_key_is_ok: 'sample custom field',
|
|
@@ -1232,6 +1234,7 @@ Parameters:
|
|
|
1232
1234
|
| properties | | |
|
|
1233
1235
|
| properties.name | string | Optional |
|
|
1234
1236
|
| properties.email | string | Optional |
|
|
1237
|
+
| properties.phoneNumber | string | Optional |
|
|
1235
1238
|
| properties.sessionFields | object | Optional; custom fields with string values |
|
|
1236
1239
|
|
|
1237
1240
|
### Errors
|
|
@@ -1242,6 +1245,8 @@ Parameters:
|
|
|
1242
1245
|
|
|
1243
1246
|
Updates information about the Customer page using the provided page object.
|
|
1244
1247
|
|
|
1248
|
+
If the page URL change triggers a group reassignment via routing rules, the [`availability_updated`](#availability_updated) event will be emitted with the new group's availability status.
|
|
1249
|
+
|
|
1245
1250
|
```js
|
|
1246
1251
|
const page = {
|
|
1247
1252
|
url: 'https://developers.livechat.com/',
|
|
@@ -2256,6 +2261,18 @@ customerSDK.on('disconnected', ({ reason }) => {
|
|
|
2256
2261
|
|
|
2257
2262
|
# Changelog
|
|
2258
2263
|
|
|
2264
|
+
## [v5.1.0] - 2026-07-21
|
|
2265
|
+
|
|
2266
|
+
### Added
|
|
2267
|
+
|
|
2268
|
+
- Support for `phoneNumber` property in the `customer` object.
|
|
2269
|
+
|
|
2270
|
+
## [v5.0.1] - 2026-07-16
|
|
2271
|
+
|
|
2272
|
+
### Fixed
|
|
2273
|
+
|
|
2274
|
+
- Fixed missing environment variable injection in the unpkg build.
|
|
2275
|
+
|
|
2259
2276
|
## [v5.0.0] - 2026-05-12
|
|
2260
2277
|
|
|
2261
2278
|
### Added
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -244,6 +244,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
|
|
|
244
244
|
};
|
|
245
245
|
var parseCustomerUpdate = function parseCustomerUpdate(update) {
|
|
246
246
|
var result = dataUtils.pickOwn(['avatar', 'name', 'email'], update);
|
|
247
|
+
if (update.phoneNumber) {
|
|
248
|
+
result.phone_number = update.phoneNumber;
|
|
249
|
+
}
|
|
247
250
|
if (update.sessionFields) {
|
|
248
251
|
result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
|
|
249
252
|
}
|
|
@@ -790,7 +793,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
790
793
|
return {
|
|
791
794
|
application: _extends({}, application, {
|
|
792
795
|
name: "customer_sdk",
|
|
793
|
-
version: "5.
|
|
796
|
+
version: "5.1.0"
|
|
794
797
|
}),
|
|
795
798
|
organizationId: organizationId,
|
|
796
799
|
env: env,
|
|
@@ -944,7 +947,7 @@ var log = function log(_ref) {
|
|
|
944
947
|
var message = {
|
|
945
948
|
event_name: eventName,
|
|
946
949
|
severity: 'Informational',
|
|
947
|
-
sdkVersion: "5.
|
|
950
|
+
sdkVersion: "5.1.0"
|
|
948
951
|
};
|
|
949
952
|
var body = {
|
|
950
953
|
organizationId: organizationId,
|
|
@@ -1439,6 +1442,9 @@ var parseChatAgent = function parseChatAgent(agent) {
|
|
|
1439
1442
|
};
|
|
1440
1443
|
var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
|
|
1441
1444
|
var optionalProps = dataUtils.pickOwn(['avatar', 'email', 'name'], customerProps);
|
|
1445
|
+
if ('phone_number' in customerProps) {
|
|
1446
|
+
optionalProps.phoneNumber = customerProps.phone_number;
|
|
1447
|
+
}
|
|
1442
1448
|
if (customerProps.session_fields) {
|
|
1443
1449
|
optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
|
|
1444
1450
|
}
|
|
@@ -2198,7 +2204,17 @@ var createSideEffectsHandler = (function (_ref8) {
|
|
|
2198
2204
|
if (!isConnected(store.getState())) {
|
|
2199
2205
|
return;
|
|
2200
2206
|
}
|
|
2201
|
-
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))
|
|
2207
|
+
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
|
|
2208
|
+
var _response$groups;
|
|
2209
|
+
if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
|
|
2210
|
+
var _response$groups2 = response.groups,
|
|
2211
|
+
group = _response$groups2[0];
|
|
2212
|
+
var _availability = parseGroupStatus(group.status);
|
|
2213
|
+
emit('availability_updated', {
|
|
2214
|
+
availability: _availability
|
|
2215
|
+
});
|
|
2216
|
+
}
|
|
2217
|
+
})["catch"](dataUtils.noop);
|
|
2202
2218
|
return;
|
|
2203
2219
|
case IDENTITY_CHANGED:
|
|
2204
2220
|
emit('identity_changed', action.payload);
|
|
@@ -2758,6 +2774,7 @@ var parsePush = function parsePush(push) {
|
|
|
2758
2774
|
}
|
|
2759
2775
|
};
|
|
2760
2776
|
var parseResponse = function parseResponse(_ref6) {
|
|
2777
|
+
var _response$payload;
|
|
2761
2778
|
var request = _ref6.request,
|
|
2762
2779
|
response = _ref6.response;
|
|
2763
2780
|
switch (response.action) {
|
|
@@ -2869,7 +2886,9 @@ var parseResponse = function parseResponse(_ref6) {
|
|
|
2869
2886
|
case UPDATE_CUSTOMER_PAGE:
|
|
2870
2887
|
return {
|
|
2871
2888
|
action: response.action,
|
|
2872
|
-
payload: SUCCESS
|
|
2889
|
+
payload: _extends({}, SUCCESS, {
|
|
2890
|
+
groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
|
|
2891
|
+
})
|
|
2873
2892
|
};
|
|
2874
2893
|
case UPDATE_EVENT_PROPERTIES:
|
|
2875
2894
|
return {
|
|
@@ -244,6 +244,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
|
|
|
244
244
|
};
|
|
245
245
|
var parseCustomerUpdate = function parseCustomerUpdate(update) {
|
|
246
246
|
var result = dataUtils.pickOwn(['avatar', 'name', 'email'], update);
|
|
247
|
+
if (update.phoneNumber) {
|
|
248
|
+
result.phone_number = update.phoneNumber;
|
|
249
|
+
}
|
|
247
250
|
if (update.sessionFields) {
|
|
248
251
|
result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
|
|
249
252
|
}
|
|
@@ -790,7 +793,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
790
793
|
return {
|
|
791
794
|
application: _extends({}, application, {
|
|
792
795
|
name: "customer_sdk",
|
|
793
|
-
version: "5.
|
|
796
|
+
version: "5.1.0"
|
|
794
797
|
}),
|
|
795
798
|
organizationId: organizationId,
|
|
796
799
|
env: env,
|
|
@@ -944,7 +947,7 @@ var log = function log(_ref) {
|
|
|
944
947
|
var message = {
|
|
945
948
|
event_name: eventName,
|
|
946
949
|
severity: 'Informational',
|
|
947
|
-
sdkVersion: "5.
|
|
950
|
+
sdkVersion: "5.1.0"
|
|
948
951
|
};
|
|
949
952
|
var body = {
|
|
950
953
|
organizationId: organizationId,
|
|
@@ -1439,6 +1442,9 @@ var parseChatAgent = function parseChatAgent(agent) {
|
|
|
1439
1442
|
};
|
|
1440
1443
|
var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
|
|
1441
1444
|
var optionalProps = dataUtils.pickOwn(['avatar', 'email', 'name'], customerProps);
|
|
1445
|
+
if ('phone_number' in customerProps) {
|
|
1446
|
+
optionalProps.phoneNumber = customerProps.phone_number;
|
|
1447
|
+
}
|
|
1442
1448
|
if (customerProps.session_fields) {
|
|
1443
1449
|
optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
|
|
1444
1450
|
}
|
|
@@ -2198,7 +2204,17 @@ var createSideEffectsHandler = (function (_ref8) {
|
|
|
2198
2204
|
if (!isConnected(store.getState())) {
|
|
2199
2205
|
return;
|
|
2200
2206
|
}
|
|
2201
|
-
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))
|
|
2207
|
+
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
|
|
2208
|
+
var _response$groups;
|
|
2209
|
+
if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
|
|
2210
|
+
var _response$groups2 = response.groups,
|
|
2211
|
+
group = _response$groups2[0];
|
|
2212
|
+
var _availability = parseGroupStatus(group.status);
|
|
2213
|
+
emit('availability_updated', {
|
|
2214
|
+
availability: _availability
|
|
2215
|
+
});
|
|
2216
|
+
}
|
|
2217
|
+
})["catch"](dataUtils.noop);
|
|
2202
2218
|
return;
|
|
2203
2219
|
case IDENTITY_CHANGED:
|
|
2204
2220
|
emit('identity_changed', action.payload);
|
|
@@ -2758,6 +2774,7 @@ var parsePush = function parsePush(push) {
|
|
|
2758
2774
|
}
|
|
2759
2775
|
};
|
|
2760
2776
|
var parseResponse = function parseResponse(_ref6) {
|
|
2777
|
+
var _response$payload;
|
|
2761
2778
|
var request = _ref6.request,
|
|
2762
2779
|
response = _ref6.response;
|
|
2763
2780
|
switch (response.action) {
|
|
@@ -2869,7 +2886,9 @@ var parseResponse = function parseResponse(_ref6) {
|
|
|
2869
2886
|
case UPDATE_CUSTOMER_PAGE:
|
|
2870
2887
|
return {
|
|
2871
2888
|
action: response.action,
|
|
2872
|
-
payload: SUCCESS
|
|
2889
|
+
payload: _extends({}, SUCCESS, {
|
|
2890
|
+
groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
|
|
2891
|
+
})
|
|
2873
2892
|
};
|
|
2874
2893
|
case UPDATE_EVENT_PROPERTIES:
|
|
2875
2894
|
return {
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -230,6 +230,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
|
|
|
230
230
|
};
|
|
231
231
|
var parseCustomerUpdate = function parseCustomerUpdate(update) {
|
|
232
232
|
var result = pickOwn(['avatar', 'name', 'email'], update);
|
|
233
|
+
if (update.phoneNumber) {
|
|
234
|
+
result.phone_number = update.phoneNumber;
|
|
235
|
+
}
|
|
233
236
|
if (update.sessionFields) {
|
|
234
237
|
result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
|
|
235
238
|
}
|
|
@@ -776,7 +779,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
776
779
|
return {
|
|
777
780
|
application: _extends({}, application, {
|
|
778
781
|
name: "customer_sdk",
|
|
779
|
-
version: "5.
|
|
782
|
+
version: "5.1.0"
|
|
780
783
|
}),
|
|
781
784
|
organizationId: organizationId,
|
|
782
785
|
env: env,
|
|
@@ -930,7 +933,7 @@ var log = function log(_ref) {
|
|
|
930
933
|
var message = {
|
|
931
934
|
event_name: eventName,
|
|
932
935
|
severity: 'Informational',
|
|
933
|
-
sdkVersion: "5.
|
|
936
|
+
sdkVersion: "5.1.0"
|
|
934
937
|
};
|
|
935
938
|
var body = {
|
|
936
939
|
organizationId: organizationId,
|
|
@@ -1425,6 +1428,9 @@ var parseChatAgent = function parseChatAgent(agent) {
|
|
|
1425
1428
|
};
|
|
1426
1429
|
var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
|
|
1427
1430
|
var optionalProps = pickOwn(['avatar', 'email', 'name'], customerProps);
|
|
1431
|
+
if ('phone_number' in customerProps) {
|
|
1432
|
+
optionalProps.phoneNumber = customerProps.phone_number;
|
|
1433
|
+
}
|
|
1428
1434
|
if (customerProps.session_fields) {
|
|
1429
1435
|
optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
|
|
1430
1436
|
}
|
|
@@ -2184,7 +2190,17 @@ var createSideEffectsHandler = (function (_ref8) {
|
|
|
2184
2190
|
if (!isConnected(store.getState())) {
|
|
2185
2191
|
return;
|
|
2186
2192
|
}
|
|
2187
|
-
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))
|
|
2193
|
+
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
|
|
2194
|
+
var _response$groups;
|
|
2195
|
+
if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
|
|
2196
|
+
var _response$groups2 = response.groups,
|
|
2197
|
+
group = _response$groups2[0];
|
|
2198
|
+
var _availability = parseGroupStatus(group.status);
|
|
2199
|
+
emit('availability_updated', {
|
|
2200
|
+
availability: _availability
|
|
2201
|
+
});
|
|
2202
|
+
}
|
|
2203
|
+
})["catch"](noop);
|
|
2188
2204
|
return;
|
|
2189
2205
|
case IDENTITY_CHANGED:
|
|
2190
2206
|
emit('identity_changed', action.payload);
|
|
@@ -2744,6 +2760,7 @@ var parsePush = function parsePush(push) {
|
|
|
2744
2760
|
}
|
|
2745
2761
|
};
|
|
2746
2762
|
var parseResponse = function parseResponse(_ref6) {
|
|
2763
|
+
var _response$payload;
|
|
2747
2764
|
var request = _ref6.request,
|
|
2748
2765
|
response = _ref6.response;
|
|
2749
2766
|
switch (response.action) {
|
|
@@ -2855,7 +2872,9 @@ var parseResponse = function parseResponse(_ref6) {
|
|
|
2855
2872
|
case UPDATE_CUSTOMER_PAGE:
|
|
2856
2873
|
return {
|
|
2857
2874
|
action: response.action,
|
|
2858
|
-
payload: SUCCESS
|
|
2875
|
+
payload: _extends({}, SUCCESS, {
|
|
2876
|
+
groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
|
|
2877
|
+
})
|
|
2859
2878
|
};
|
|
2860
2879
|
case UPDATE_EVENT_PROPERTIES:
|
|
2861
2880
|
return {
|
package/dist/customer-sdk.js
CHANGED
|
@@ -478,7 +478,7 @@
|
|
|
478
478
|
});
|
|
479
479
|
}
|
|
480
480
|
|
|
481
|
-
var ACCOUNTS_URL =
|
|
481
|
+
var ACCOUNTS_URL = "https://accounts.livechatinc.com";
|
|
482
482
|
var buildPath = function buildPath(_ref) {
|
|
483
483
|
var uniqueGroups = _ref.uniqueGroups,
|
|
484
484
|
organizationId = _ref.organizationId,
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
var configEnv = config.env;
|
|
559
559
|
var env = configEnv && ['labs', 'staging'].includes(configEnv) ? configEnv : 'production';
|
|
560
560
|
var storage = createAsyncStorage(parentStorage);
|
|
561
|
-
var tokenStoragePrefix = config.tokenStoragePrefix ||
|
|
561
|
+
var tokenStoragePrefix = config.tokenStoragePrefix || "@@lc_auth_token:";
|
|
562
562
|
var cacheKey = "" + tokenStoragePrefix + config.organizationId + (config.uniqueGroups ? ":" + config.groupId : '');
|
|
563
563
|
var pendingTokenRequest = null;
|
|
564
564
|
var cachedToken = null;
|
|
@@ -824,6 +824,9 @@
|
|
|
824
824
|
};
|
|
825
825
|
var parseCustomerUpdate = function parseCustomerUpdate(update) {
|
|
826
826
|
var result = pickOwn(['avatar', 'name', 'email'], update);
|
|
827
|
+
if (update.phoneNumber) {
|
|
828
|
+
result.phone_number = update.phoneNumber;
|
|
829
|
+
}
|
|
827
830
|
if (update.sessionFields) {
|
|
828
831
|
result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
|
|
829
832
|
}
|
|
@@ -1894,7 +1897,7 @@
|
|
|
1894
1897
|
return {
|
|
1895
1898
|
application: _extends({}, application, {
|
|
1896
1899
|
name: "customer_sdk",
|
|
1897
|
-
version: "5.
|
|
1900
|
+
version: "5.1.0"
|
|
1898
1901
|
}),
|
|
1899
1902
|
organizationId: organizationId,
|
|
1900
1903
|
env: env,
|
|
@@ -2048,7 +2051,7 @@
|
|
|
2048
2051
|
var message = {
|
|
2049
2052
|
event_name: eventName,
|
|
2050
2053
|
severity: 'Informational',
|
|
2051
|
-
sdkVersion: "5.
|
|
2054
|
+
sdkVersion: "5.1.0"
|
|
2052
2055
|
};
|
|
2053
2056
|
var body = {
|
|
2054
2057
|
organizationId: organizationId,
|
|
@@ -2543,6 +2546,9 @@
|
|
|
2543
2546
|
};
|
|
2544
2547
|
var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
|
|
2545
2548
|
var optionalProps = pickOwn(['avatar', 'email', 'name'], customerProps);
|
|
2549
|
+
if ('phone_number' in customerProps) {
|
|
2550
|
+
optionalProps.phoneNumber = customerProps.phone_number;
|
|
2551
|
+
}
|
|
2546
2552
|
if (customerProps.session_fields) {
|
|
2547
2553
|
optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
|
|
2548
2554
|
}
|
|
@@ -3302,7 +3308,17 @@
|
|
|
3302
3308
|
if (!isConnected(store.getState())) {
|
|
3303
3309
|
return;
|
|
3304
3310
|
}
|
|
3305
|
-
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))
|
|
3311
|
+
sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
|
|
3312
|
+
var _response$groups;
|
|
3313
|
+
if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
|
|
3314
|
+
var _response$groups2 = response.groups,
|
|
3315
|
+
group = _response$groups2[0];
|
|
3316
|
+
var _availability = parseGroupStatus(group.status);
|
|
3317
|
+
emit('availability_updated', {
|
|
3318
|
+
availability: _availability
|
|
3319
|
+
});
|
|
3320
|
+
}
|
|
3321
|
+
})["catch"](noop);
|
|
3306
3322
|
return;
|
|
3307
3323
|
case IDENTITY_CHANGED:
|
|
3308
3324
|
emit('identity_changed', action.payload);
|
|
@@ -4086,6 +4102,7 @@
|
|
|
4086
4102
|
}
|
|
4087
4103
|
};
|
|
4088
4104
|
var parseResponse = function parseResponse(_ref6) {
|
|
4105
|
+
var _response$payload;
|
|
4089
4106
|
var request = _ref6.request,
|
|
4090
4107
|
response = _ref6.response;
|
|
4091
4108
|
switch (response.action) {
|
|
@@ -4197,7 +4214,9 @@
|
|
|
4197
4214
|
case UPDATE_CUSTOMER_PAGE:
|
|
4198
4215
|
return {
|
|
4199
4216
|
action: response.action,
|
|
4200
|
-
payload: SUCCESS
|
|
4217
|
+
payload: _extends({}, SUCCESS, {
|
|
4218
|
+
groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
|
|
4219
|
+
})
|
|
4201
4220
|
};
|
|
4202
4221
|
case UPDATE_EVENT_PROPERTIES:
|
|
4203
4222
|
return {
|
package/dist/customer-sdk.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function r(e){var t=function(e,t){if("object"!=typeof e||!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)}}}();function c(e){try{return window.localStorage}catch(t){return"SecurityError"===t.name&&e?e: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&&(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i}}function u(e){var t=c(e);return{setItem:function(e,n){return new Promise(function(r){return r(t.setItem(e,n))})},getItem:function(e){return new Promise(function(n){return n(t.getItem(e))})},removeItem:function(e){return new Promise(function(n){return n(t.removeItem(e))})}}}u();var s={}.hasOwnProperty;function d(e,t){return s.call(t,e)}function p(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function l(e){return Array.isArray(e)}function f(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return f(t).reduce(function(n,r){return n[r]=e(t[r]),n},{})}function h(e){return e}function v(e){var t=Math.random().toString(36).substring(2);return d(t,e)?v(e):t}function y(){}function g(e){return f(e).map(function(t){return e[t]})}function m(e,t){return e.reduce(function(e,n){return e[n]=t[n],e},{})}function I(e,t){return e.reduce(function(e,n){return d(n,t)&&(e[n]=t[n]),e},{})}function E(e){return f(e).map(function(t){return[t,e[t]]})}function T(e,t){return e===t?0:t>e?-1:1}var b=function(e){return E(e).map(function(e){return e.map(encodeURIComponent).join("=")}).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+S("javascript")+"|"+S("data")+"):","i");var N=/^((http(s)?:)?\/\/)/;function C(e,t){return t=t||{},new Promise(function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var s in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n}),n(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)})}var w=process.env.PUBLIC_ACCOUNTS_URL,P=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},R=function(e,t){return C(""+function(e,t){var n="production"===t?w:w.replace("accounts.","accounts."+t+"."),r=function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e);return""+n+r}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(O),(r&&r[0])+window.location.pathname)})}).then(function(e){return e.json()}).then(function(t){return function(e,t){if("identity_exception"in e)throw P({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw P({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)});var n,r},A=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},k=function(e,t){A(e);var n=e.env,r=n&&["labs","staging"].includes(n)?n:"production",o=u(t),a=""+(e.tokenStoragePrefix||process.env.PUBLIC_TOKEN_STORAGE_PREFIX)+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,s=o.getItem(a).then(function(e){null!==s&&(s=null,e&&(c=JSON.parse(e)))}),d=function(){return i=R(e,r).then(function(e){return i=null,o.setItem(a,JSON.stringify(e)),c=e,e},function(e){throw i=null,e})},p=function(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):s?s.then(p):d())},l=function(){return s?s.then(l):Promise.resolve(!!c)};return{getFreshToken:d,getToken:p,hasToken:l,invalidate:function(){return c=null,s=null,o.removeItem(a)}}};var D=["all"],U=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,D);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)})}})},x="file",j="form",L="filled_form",M="message",q="rich_message",G="system_message",F="custom",H=Object.freeze({__proto__:null,FILE:x,FORM:j,FILLED_FORM:L,MESSAGE:M,RICH_MESSAGE:q,SYSTEM_MESSAGE:G,CUSTOM:F}),z=["groupId"],V=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||l(t)||(n.properties=e.properties),n},B=function(e){switch(e.type){case M:var r=t({},V(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 x:return t({},V(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case L:return t({},V(e),{type:e.type,form_id:e.formId},e.formType&&{form_type:e.formType},{fields:e.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,z),{group_id:o})})}return e})});case G:var o=t({},V(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case F:var a=t({},V(e),{type:e.type});return e.content&&(a.content=e.content),a}},Y=function(e){var t=e.active,n=e.chat,r=e.welcomeMessageId,o=e.continuous,a={active:void 0===t||t,chat:{}};if("boolean"==typeof o&&(a.continuous=o),r&&"string"==typeof r&&(a.welcome_message_id=r),!n)return a;var i=n.access,c=n.thread,u=n.properties;return i&&i.groupIds&&(a.chat.access={group_ids:i.groupIds}),u&&(a.chat.properties=u),c&&(a.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(B)),r&&(t.properties=r),t}(c)),a},J=function(e){return E(e).map(function(e){var t;return(t={})[e[0]]=e[1],t})},K=function(e){var t=I(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=J(e.sessionFields)),"boolean"==typeof e.nameIsDefault&&(t.name_is_default=e.nameIsDefault),t},X="change_region",W="check_goals",Q="destroy",Z="fail_all_requests",$="login_success",ee="pause_connection",te="prefetch_token",ne="push_received",re="push_response_received",oe="reconnect",ae="request_failed",ie="response_received",ce="send_request",ue="set_chat_active",se="set_self_id",de="socket_connected",pe="socket_disconnected",le="socket_recovered",fe="socket_unstable",_e="start_connection",he="update_customer_page",ve="clear_sensitive_session_state",ye="identity_changed",ge="accept_greeting",me="cancel_greeting",Ie="delete_chat_properties",Ee="delete_event_properties",Te="delete_thread_properties",be="get_chat",Oe="get_customer",Se="get_form",Ne="get_url_info",Ce="list_chats",we="list_group_statuses",Pe="list_threads",Re="login",Ae="mark_events_as_seen",ke="request_welcome_message",De="resume_chat",Ue="send_event",xe="send_greeting_button_clicked",je="send_rich_message_postback",Le="send_sneak_peek",Me="set_customer_session_fields",qe="start_chat",Ge="update_chat_properties",Fe="update_customer",He="update_customer_page",ze="update_event_properties",Ve="update_thread_properties",Be=function(e){return{type:Q,payload:{reason:e}}},Ye=function(e){return{type:ee,payload:{reason:e}}},Je=function(e){return void 0===e&&(e=!1),{type:te,payload:{fresh:e}}},Ke=function(e){return{type:oe,payload:{delay:e}}},Xe=function(e,n,r){return{type:ce,payload:t({request:{action:e,payload:n}},r&&{source:r})}},We=function(e,t){return{type:ue,payload:{id:e,active:t}}},Qe=function(e){return{type:se,payload:{id:e}}},Ze="CONNECTION_LOST",$e="MISDIRECTED_CONNECTION",et="MISSING_CHAT_THREAD",tt="SDK_DESTROYED",nt="connected",rt="destroyed",ot="disconnected",at="paused",it="reconnecting",ct=Object.freeze({__proto__:null,CONNECTED:nt,DESTROYED:rt,DISCONNECTED:ot,PAUSED:at,RECONNECTING:it}),ut="access_token_expired",st="customer_banned",dt="customer_temporarily_blocked",pt="license_expired",lt="license_not_found",ft="misdirected_connection",_t="product_version_changed",ht="service_temporarily_unavailable",vt="too_many_connections",yt="too_many_unauthorized_connections",gt="unsupported_version",mt="logged_out_remotely",It=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ut,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:st,CUSTOMER_TEMPORARILY_BLOCKED:dt,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:pt,LICENSE_NOT_FOUND:lt,MISDIRECTED_CONNECTION:ft,PRODUCT_VERSION_CHANGED:_t,SERVICE_TEMPORARILY_UNAVAILABLE:ht,TOO_MANY_CONNECTIONS:vt,TOO_MANY_UNAUTHORIZED_CONNECTIONS:yt,UNSUPPORTED_VERSION:gt,LOGGED_OUT_REMOTELY:mt}),Et="AUTHENTICATION",Tt="CUSTOMER_BANNED",bt="USERS_LIMIT_REACHED",Ot="WRONG_PRODUCT_VERSION",St=Object.freeze({__proto__:null,AUTHENTICATION:Et,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tt,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:bt,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:Ot}),Nt="chat_deactivated",Ct="chat_properties_deleted",wt="chat_properties_updated",Pt="chat_transferred",Rt="customer_disconnected",At="customer_side_storage_updated",kt="customer_updated",Dt="event_properties_deleted",Ut="event_properties_updated",xt="event_updated",jt="events_marked_as_seen",Lt="greeting_accepted",Mt="greeting_canceled",qt="groups_status_updated",Gt="incoming_chat",Ft="incoming_event",Ht="incoming_greeting",zt="incoming_multicast",Vt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Yt="incoming_welcome_message",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Wt="user_added_to_chat",Qt="user_removed_from_chat",Zt="incoming_thinking_indicator",$t="incoming_event_preview",en=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:Ct,CHAT_PROPERTIES_UPDATED:wt,CHAT_TRANSFERRED:Pt,CUSTOMER_DISCONNECTED:Rt,CUSTOMER_SIDE_STORAGE_UPDATED:At,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Dt,EVENT_PROPERTIES_UPDATED:Ut,EVENT_UPDATED:xt,EVENTS_MARKED_AS_SEEN:jt,GREETING_ACCEPTED:Lt,GREETING_CANCELED:Mt,GROUPS_STATUS_UPDATED:qt,INCOMING_CHAT:Gt,INCOMING_EVENT:Ft,INCOMING_GREETING:Ht,INCOMING_MULTICAST:zt,INCOMING_RICH_MESSAGE_POSTBACK:Vt,INCOMING_TYPING_INDICATOR:Bt,INCOMING_WELCOME_MESSAGE:Yt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Wt,USER_REMOVED_FROM_CHAT:Qt,INCOMING_THINKING_INDICATOR:Zt,INCOMING_EVENT_PREVIEW:$t}),tn=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"}),nn="agent",rn="customer",on=Object.freeze({__proto__:null,AGENT:nn,CUSTOMER:rn});function an(e){var t=e.code,n=Error(e.message);return n.code=t,n}var cn=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")()),un=function(){return Math.random().toString(36).substring(7).split("").join(".")},sn={INIT:"@@redux/INIT"+un(),REPLACE:"@@redux/REPLACE"+un(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+un()}};function dn(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(dn)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(u)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return s(),c.push(e),function(){if(t){if(u)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!function(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}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}return l({type:sn.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:sn.REPLACE})}})[cn]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[cn]=function(){return this},e},r}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(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 fn(){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 _n(){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 function(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(n,!0).forEach(function(t){pn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},n,{dispatch:r=fn.apply(void 0,a)(n.dispatch)})}}}var hn=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=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,o)},reset:function(){c=0}}};function vn(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e}var yn=function(e){return e.connection.status},gn=function(e,t){return e.requests[t]},mn=function(e){return e.users.self.id},In=function(e,t){var n=e.chats[t];return!!n&&n.active},En=function(e){return yn(e)===nt},Tn=function(e){var t;return{"x-region":null!=(t=e.region)?t:""}},bn=function(e){return function(e){return"https://api"+function(e){var t=e.env;return"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.6/customer"},On=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},Sn=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},Nn=function(e){var n,r,o;return r=e,(n={})[X]=function(e,n){return t({},e,{region:n.region})},n[Q]=function(e){return Sn(rt,e)},n[$]=function(e){return Sn(nt,e)},n[ee]=function(e){return Sn(at,e)},n[ae]=On,n[ie]=On,n[re]=On,n[ce]=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[ue]=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[se]=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n[pe]=function(e){var n=yn(e);return t({},Sn(n===ot?ot:it,e),{requests:{}})},n[he]=function(e,n){return t({},e,{page:t({},e.page,n)})},n[ve]=function(e){return t({},e,{chats:{},users:{self:{id:null,type:rn},others:{}},requests:{}})},n[ye]=function(e){return e},(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),d(t.type,o)?o[t.type](e,t.payload):e}};function Cn(e){var n=h,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=dn(Nn(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.tabId,_=void 0===f?null:f,h=e.uniqueGroups,v=void 0!==h&&h,y=e.mobile,g=void 0!==y&&y;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"5.0.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:ot},page:u,region:d,referrer:l,tabId:_,requests:{},users:{self:{id:null,type:rn},others:{}},uniqueGroups:v,mobile:g}}(e)),n(_n(r)));return o.addSideEffectsHandler=r.add,o}var wn=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"5.0.0"})};return function(e,t){return new Promise(function(n){var r=new Image;r.src=e+"?"+t,r.onerror=y,r.onload=function(){return n()}})}("https://applog.livechatinc.com/logs",b(r))},Pn=function(e,t){t.payload.id=v(e.getState().requests);var n=vn(),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},Rn=Object.freeze({success:!0}),An=["group_id"],kn=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},Dn=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},Un=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},Dn(300,n)),high:t({url:n.thumbnail2x_url},Dn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name})},xn=function(e,r){return t({},kn(e,r),{type:L,formId:r.form_id},r.form_type&&{formType:r.form_type},{fields:r.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,An),{groupId:o})})}return e})})},jn=function(e,n){return t({},kn(e,n),{type:M,text:n.text})},Ln=function(e,n){return t({},kn(e,n),{type:F},n.content&&{content:n.content})},Mn=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.ecommerce&&(n.ecommerce=t({productId:e.ecommerce.product_id,viewType:e.ecommerce.view_type},"string"==typeof e.ecommerce.label&&{label:e.ecommerce.label},Array.isArray(e.ecommerce.options)&&{options:e.ecommerce.options.map(function(e){return t({label:e.label,optionId:e.option_id},void 0!==e.price&&{price:e.price},void 0!==e.regular_price&&{regularPrice:e.regular_price},void 0!==e.max_price&&{maxPrice:e.max_price},void 0!==e.currency&&{currency:e.currency},"string"==typeof e.color&&{color:e.color},e.image_url&&t({imageUrl:e.image_url},"string"==typeof e.image_thumbnail_url&&{imageThumbnailUrl:e.image_thumbnail_url}),"boolean"==typeof e.available&&{available:e.available},"boolean"==typeof e.selected&&{selected:e.selected})})},Array.isArray(e.ecommerce.addons)&&{addons:e.ecommerce.addons.map(function(e){return"price_range"===e.addon_type?t({addonType:e.addon_type},void 0!==e.range_from&&{rangeFrom:e.range_from},void 0!==e.range_to&&{rangeTo:e.range_to},"string"==typeof e.currency&&{currency:e.currency}):{addonType:e.addon_type}})})),e.buttons&&(n.buttons=e.buttons.map(function(e){switch(e.type){case"message":case"add_to_cart":case"show_gallery":case"copy":case"phone":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"cancel":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"url":var n=t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});return e.target&&(n.target=e.target),n;case"open_external":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id},e.target&&{target:e.target});case"webview":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});default:return t({text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id})}})),n},qn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":case"ecommerce":return t({},kn(e,n),{type:q,template:n.template_id,elements:n.elements.map(Mn)});default:return null}},Gn=function(e,n){var r=t({},kn(e,t({},n,{author_id:"system"})),{type:G,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Fn=function(e,n){switch(n.type){case x:return Un(e,n);case j:return function(e,n){return t({},kn(e,n),{authorId:"system",type:j,formId:n.form_id},n.form_type&&{formType:n.form_type},{fields:n.fields})}(e,n);case L:return xn(e,n);case M:return jn(e,n);case q:return qn(e,n);case G:return Gn(e,n);case F:return Ln(e,n);default:return null}},Hn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,isExitIntent:e.is_exit_intent,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Fn(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}}},zn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Vn=function(e){return _(function(e){return e.events_seen_up_to?e.events_seen_up_to:null},(t="id",e.reduce(function(e,n){return e[n[t]]=n,e},{})));var t},Bn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:zn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map(function(e){return Fn(t.id,e)}).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Qn(t.queue):null}},Yn=function(e){return{id:e.id,access:zn(e.access),users:e.users.map(Zn),properties:e.properties||{},eventsSeenUpToMap:Vn(e.users)}},Jn=function(e){var t=I(["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},Kn=function(e){var n=Jn(e);return t({id:e.id,type:rn},n,{sessionFields:n.sessionFields||{}})},Xn=function(e){var n=e.statistics;return t({},Kn(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}})},Wn=function(e){return{position:e.position,waitTime:e.wait_time}},Qn=function(e){return t({},Wn(e),{queuedAt:e.queued_at})},Zn=function(e){return e.type===rn?t({},Kn(r=e),{present:r.present}):{id:(n=e).id,type:nn,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},$n=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},er=function(e,t){var n=u(t),r=$n(e);return n.getItem(r).catch(y).then(function(e){return JSON.parse(e||"{}")}).catch(y)},tr=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Z,payload:{rejects:Object.keys(r).map(function(e){return r[e].reject}),reason:t}})},nr=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:ae,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},rr=function(e,t,n){var r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}(e).slice(0),o=!1,a=function(e){var i,c=r.shift();(i=function(){return c(e)},new Promise(function(e){e(i())})).then(function(e){o||(r.length?a(e):t(e))},function(e){o||n(e)})};return a(),{cancel:function(){o=!0}}},or=function(e,t,n){return Pn(e,Xe(t,n,"login"))};function ar(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=hn(c),d=hn(t({},c,{min:1e3})),p=s,l=function(e){return o.dispatch(Be(e))},f=function(){return o.dispatch(Ke(p.duration()))},_=function(){return Promise.all([e.getToken(),er(o,r)])},h=function(e){var t=e[0],n=e[1],a=mn(o.getState());if(null===a)o.dispatch(Qe(t.entityId));else if(a!==t.entityId)return r&&function(e,t){u(t).removeItem($n(e)).catch(y)}(o,r),o.dispatch({type:ve}),o.dispatch(Qe(t.entityId)),o.dispatch({type:ye,payload:{previousId:a,newId:t.entityId}}),[t,{}];return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f=c.tabId,_={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?K(n()):{},customer_side_storage:a,is_mobile:l,application:m(["name","version"],u)};return"number"==typeof s&&(_.group_id=s),u.channelType&&(_.application.channel_type=u.channelType),null!==d&&(i=d,_.customer_page=d),null!==p&&(_.referrer=p),null!==f&&(_.tab_id=f),Promise.race([or(o,Re,_),(t=15e3,new Promise(function(e){setTimeout(e,t)})).then(function(){return Promise.reject(an({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))})])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=rr([_,h,v],function(e){var t;a=null,s.reset(),d.reset(),p=s,t=o.getState().page,i!==t&&or(o,He,t).catch(y),i=null,o.dispatch({type:$,payload:e})},function(t){switch(a=null,t.code){case Et:return e.getFreshToken(),void f();case Ze:case $e:case tt:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void f():void l(t.message);case bt:return void o.dispatch(Ye(t.code.toLowerCase()));case Tt:case Ot:return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void f();default:return void f()}})},cancel:function(){var e;null==(e=a)||e.cancel()}}}var ir,cr=["present"],ur=["statistics"],sr=((ir={})[Ze]="Connection lost.",ir[$e]="Connected to wrong region.",ir),dr=function(e,t){var n=e.getState();switch(t.type){case re:case ne:switch(t.payload.action){case Nt:return void e.dispatch(We(t.payload.payload.chatId,!1));case Gt:return void e.dispatch(We(t.payload.payload.chat.id,!0));default:return}case ie:return t.payload.action===Ce?void t.payload.payload.chatsSummary.filter(function(e){var t=e.active;return In(n,e.id)!==t}).forEach(function(t){e.dispatch(We(t.id,t.active))}):void 0}},pr=function(e,t){t.forEach(function(t){if("present"in t){var r=n(t,cr);e("user_data",r)}else if(t.type!==rn)e("user_data",t);else{var o=n(t,ur);e("user_data",o)}})},lr=function(e,t,n){var r=e.emit,o=e.store,a=t.payload;switch(a.action){case Xt:return a.payload.properties.lc2&&"queue_pos"in a.payload.properties.lc2&&r(Jt,{chatId:a.payload.chatId,threadId:a.payload.threadId,queue:{position:a.payload.properties.lc2.queue_pos,waitTime:a.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",a.payload);case At:return void function(e,t,n){u(n).setItem($n(e),JSON.stringify(t)).catch(y)}(o,a.payload.customer_side_storage,n);case Rt:switch(a.payload.reason){case ut:o.dispatch(Je(!0)),o.dispatch(Ke(100)),r("disconnected",a.payload);break;case st:case dt:case lt:case _t:case vt:case gt:case mt:o.dispatch(Be(a.payload.reason));break;case ft:tr(o,$e),o.dispatch({type:X,payload:a.payload.data});break;case ht:case yt:tr(o,a.payload.reason.toUpperCase());break;default:o.dispatch(Ke(100)),r("disconnected",a.payload)}return;case qt:return void r("availability_updated",{availability:"offline"===a.payload.groups[0].status?"offline":"online"});case Gt:return pr(r,a.payload.chat.users),void r(a.action,a.payload);case Ft:if(null===a.payload.event)return;return void r(a.action,a.payload);case Bt:case Zt:case $t:return void r(a.action,a.payload);case Wt:return pr(r,[a.payload.user]),void r(a.action,a.payload);default:return void r(a.action,a.payload)}},fr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Rn);case be:return pr(n,r.payload.users),void r.resolve(r.payload);case Gt:return pr(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case Ce:return pr(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},_r=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=e.parentStorage,i=r.emit,c=ar(n,e.customerDataProvider,a);return function(e,u){switch(e.type){case X:return void o.reinitialize();case W:return void function(e,n,r){return n.getToken().then(function(n){var o=e.getState();null===mn(o)&&e.dispatch(Qe(n.entityId));var a=o.page;if(a&&a.url){var i=b(t({organization_id:o.organizationId},Tn(o))),c={session_fields:J(r||{}),group_id:o.groupId||0,page_url:a.url};return C(bn(o)+"/action/check_goals?"+i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:n.tokenType+" "+n.accessToken},body:JSON.stringify(c)}).then(function(){})}})}(u,n,e.payload.sessionFields).catch(y);case Q:var s=e.payload;switch(c.cancel(),o.destroy(),s.reason){case"manual":tr(u,tt);break;case st:case pt:case _t:case mt:tr(u,Ze),i("disconnected",s);break;default:i("disconnected",s)}return void r.off();case Z:var d=e.payload,p=d.reason,l={message:sr[p],code:p};return void d.rejects.forEach(function(e){e(an(l))});case $:var f=e.payload,_=f.dynamicConfig,h=f.chats,v=f.greeting,m=t({customer:f.customer,availability:f.availability},v&&{greeting:v});return Object.defineProperty(m,"__unsafeDynamicConfig",{value:_}),Object.defineProperty(m,"__unsafeChats",{value:h}),void i("connected",m);case ee:var I=e.payload;return o.disconnect(),void("manual"!==I.reason&&i("disconnected",I));case te:return e.payload.fresh?void n.getFreshToken().catch(y):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(y);case ne:return e.payload.action===Rt||dr(u,e),void lr({emit:i,store:u},e,a);case re:return dr(u,e),void fr({emit:i},e);case oe:return tr(u,Ze),void o.reconnect(e.payload.delay);case ae:var E=e.payload;return void(0,E.reject)(an(E.error));case ie:return dr(u,e),void fr({emit:i},e);case ce:var T=u.getState();return function(e){return yn(e)===rt}(T)?void nr(u,e,{code:tt,message:"SDK destroyed."}):En(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);if(o.action!==Re)e.emit(o);else{var a={3.6:g(en).filter(function(e){return e!==Rt})};e.emit(t({},o,{version:"3.6",payload:t({},o.payload,{pushes:a})}))}}(o,e):void nr(u,e,{code:"NO_CONNECTION",message:"No connection."});case se:return void i("customer_id",e.payload.id);case pe:return void i("disconnected",{reason:"connection_lost"});case de:return void c.sendLogin(u);case le:if(!En(u.getState()))return;return void i("connection_recovered");case fe:if(!En(u.getState()))return;return void i("connection_unstable");case _e:return o.connect(),void u.dispatch(Je());case he:if(!En(u.getState()))return;return void Pn(u,Xe(He,e.payload)).catch(y);case ye:return void i("identity_changed",e.payload);default:return}}},hr=function(e,t){var n,r=(void 0===t?{}:t).query,o=b(void 0===r?{}:r),a=o?e+"?"+o:e,i=U(),c=hn({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()}),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},vr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?U():d,l=hr(e,{query:s}),f=(o=y,{cancel:function(){clearTimeout(r),o=y},check:function(){var e=vn();return o=e.resolve,r=setTimeout(function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)},2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){clearTimeout(r),o()})}),_=function(){return 1===l.getReadyState()},h=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach(function(e){a.on(e,function(t){i.emit(e,t)})}),l.on("disconnect",h),l.on("message",function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",function(){_()&&f.check().then(function(){f.cancel(),p.emit("connection_recovered")},function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()})}),window.addEventListener("offline",function(){f.cancel(),_()&&p.emit("connection_unstable")})),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},yr=function(e,n){var r=e.getState(),o=(bn(r)+"/rtm/ws").replace(/^https/,"wss");return vr(o,{query:t({organization_id:r.organizationId},Tn(r)),emitter:n})},gr=["group_id"],mr=["comment_label"],Ir=function(e){return{chatId:e.chat_id,properties:e.properties}},Er=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Tr=function(e){return t({id:e.id},Jn(e))},br=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Or=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Sr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Fn(t,e.event)}},Nr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Cr=function(e){return{uniqueId:e.unique_id}},wr=function(e){var n=e.chat;return{chat:t({},Yn(n),{thread:Bn(n.id,n.thread)})}},Pr=function(e){return{chatId:e.chat_id,event:Fn(e.thread_id,e.event)}},Rr=function(e){return Hn(e)},Ar=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},kr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Dr=function(e){var n=e.custom_id,r=e.title,o=e.description;return t({chatId:e.chat_id,threadId:e.thread_id,authorId:e.author_id,sentAt:e.sent_at},n&&{customId:n},r&&{title:r},o&&{description:o})},Ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,event:Fn(e.thread_id,e.event)}},xr=function(e){return{id:e.id,event:Fn(null,e.event)}},jr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Wn(e.queue)}},Lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Mr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},qr=function(e){return{chatId:e.chat_id,user:Zn(e.user),present:e.user.present}},Gr=function(e){return{chatId:e.chat_id,userId:e.user_id,reason:e.reason}},Fr=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,gr),{groupId:r})})});case"rating":var r=e.comment_label;return t({},n(e,mr),{commentLabel:r});default:return e}})},Hr=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+""})}),Fr(r)):Fr(e.fields)}},zr=function(e){return e.enabled?t({},e,{form:Hr(e.form)}):e},Vr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(N,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},Br=function(e){var t=e.predicted_agent;return{id:e.id,predictedAgent:{id:t.id,type:t.type,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot,botType:t.bot_type},queue:e.queue}},Yr=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:zn(e.access),properties:a,users:i.map(Zn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Vn(i)};if(!r)return c;c.lastEventsPerType=_(function(e){return Fn(e.thread_id,e.event)},r);var u,s=r,d=Object.keys(s).map(function(e){return s[e]}),p=(u=d.sort(function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)})).length>0?u[u.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c});return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(l(a)?[].concat(a):g(a)).sort(function(e,t){return i(e)-i(t)})),totalChats:e.total_chats,users:(t=function(e){return e.id},n=p(function(e){return e.users},c),r=[],n.filter(function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)})),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Jr=function(e){return e.groups_status},Kr=function(e,t){return{threads:t.threads.map(function(t){return Bn(e.payload.chat_id,t)}),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Xr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&-1!==r.indexOf(n.customer_groups.monitoring.id)?"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:Hn(i)})},Wr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case Ct:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case wt:return{action:e.action,payload:Ir(e.payload)};case Pt:return{action:e.action,payload:Er(e.payload)};case At:case Rt:return{action:e.action,payload:e.payload};case kt:return{action:e.action,payload:Tr(e.payload)};case Dt:return{action:e.action,payload:br(e.payload)};case Ut:return{action:e.action,payload:Or(e.payload)};case xt:return{action:e.action,payload:Sr(e.payload)};case jt:return{action:e.action,payload:Nr(e.payload)};case Lt:case Mt:return{action:e.action,payload:Cr(e.payload)};case qt:return{action:e.action,payload:e.payload};case Gt:return{action:e.action,payload:wr(e.payload)};case Ft:return{action:e.action,payload:Pr(e.payload)};case Ht:return{action:e.action,payload:Rr(e.payload)};case zt:return{action:e.action,payload:e.payload};case Vt:return{action:e.action,payload:Ar(e.payload)};case Bt:return{action:e.action,payload:kr(e.payload)};case Zt:return{action:e.action,payload:Dr(e.payload)};case $t:return{action:e.action,payload:Ur(e.payload)};case Yt:return{action:e.action,payload:xr(e.payload)};case Jt:return{action:e.action,payload:jr(e.payload)};case Kt:return{action:e.action,payload:Lr(e.payload)};case Xt:return{action:e.action,payload:Mr(e.payload)};case Wt:return{action:e.action,payload:qr(e.payload)};case Qt:return{action:e.action,payload:Gr(e.payload)}}var t},Qr=function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r=e.request,o=e.response;switch(o.action){case ge:case me:case Ie:case Ee:case Te:return{action:o.action,payload:Rn};case be:return{action:o.action,payload:(n=o.payload,t({},Yn(n),{thread:n.thread?Bn(n.id,n.thread):null}))};case Oe:return{action:o.action,payload:Xn(o.payload)};case Se:return{action:o.action,payload:zr(o.payload)};case Ne:return{action:o.action,payload:Vr(o.payload)};case Ce:return{action:o.action,payload:Yr(o.payload)};case we:return{action:o.action,payload:Jr(o.payload)};case Pe:return{action:o.action,payload:Kr(r,o.payload)};case Re:return{action:o.action,payload:Xr(o.payload)};case Ae:return{action:o.action,payload:Rn};case ke:return{action:o.action,payload:Br(o.payload)};case Le:case Me:case xe:case je:case Ge:case Fe:case He:case ze:case Ve:return{action:o.action,payload:Rn}}}({request:a.request,response:n});r({type:ie,payload:t({id:o,promise:i,resolve:c},u)})},Zr=function(e,n){var r=e.dispatch;return n.on("connect",function(){r({type:de})}),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=gn((0,e.getState)(),o);r({type:ae,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case De:case Ue:case qe:return;default:return void Qr(e,n)}}if("request_id"in n)switch(n.action){case Gt:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=Wr(n);r({type:re,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=Wr(t);n&&e.dispatch({type:ne,payload:n})}(e,n)}),n.on("disconnect",function(){tr(e,Ze),yn(e.getState())===nt&&e.dispatch({type:pe})}),n.on("connection_unstable",function(){r({type:fe})}),n.on("connection_recovered",function(){r({type:le})}),n.off},$r="UPLOAD_FAILED",eo=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise(function(n,r){var a,u;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=$r,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=$r,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach(function(e){return d.setRequestHeader(e,o[e])}),d.send((a=t,u=new FormData,Object.keys(a).forEach(function(e){return u.append(e,a[e])}),u))}),cancel:function(){d.abort()}}},to=1048576,no=10485760,ro=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(to>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},oo=function(e,n){var r,o=e.auth,a=e.store,i=n.file,c=n.onProgress,u=!1;return{promise:new Promise(function(e,n){!function(e){if(e.size>no)throw an({message:"The file is too big (max size is "+ro(no)+").",code:"TOO_BIG_FILE"})}(i);var s=a.getState(),d=b(t({organization_id:s.organizationId},Tn(s))),p=bn(s)+"/action/upload_file?"+d,l={file:i};o.getToken().then(function(t){u?n(Error("Upload cancelled.")):(r=eo(p,l,{headers:{Authorization:t.tokenType+" "+t.accessToken},onProgress:c})).promise.then(e,function(e){if(e.response){var t=e.response.error;n(an({message:t.message,code:t.type.toUpperCase()}))}else n(e)})})}),cancel:function(){u||(u=!0,r&&r.cancel())}}},ao=["on","once","off","getChatHistory","auth"],io="LISTENER_IDENTITY",co={},uo=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},{})},so=function(e,t,n){if(void 0===n[io]&&Object.defineProperty(n,io,{value:{}}),n[io][t])return co[n[io][t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=v(co);return n[io][t]=o,co[o]=r,r},po=["autoConnect","customerDataProvider","identityProvider","parentStorage","env"];e.connectionStatuses=ct,e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,u=r.auth,s=n(r,ao),d=uo(s);return Object.freeze(t({auth:Object.freeze(uo(u,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then(function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e},function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e})}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t[io]&&(n=co[t[io][e]]);i(e,n)},on:function(e,t){o(e,so("on",e,t))},once:function(e,t){a(e,so("once",e,t))}}))},e.eventTypes=H,e.init=function(e){A(e);var r=e.autoConnect,o=void 0===r||r,a=e.customerDataProvider,i=e.identityProvider,c=e.parentStorage,u=e.env,s=n(e,po),d=u&&["labs","staging"].includes(u)?u:"production",p=Cn(t({},s,{env:d})),l=U(),f=function(e){var n=U(),r=yr(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=yr(e,n)).connect()}})}(p),_="function"==typeof i,h=_?i():k(t({},s,{env:d}),c);p.addSideEffectsHandler(_r({emitter:l,socket:f,auth:h,customerDataProvider:a,parentStorage:c,hasCustomIdentityProvider:_})),Zr(p,f);var v=Pn.bind(null,p),g=function(){p.dispatch({type:_e})},m=Object.freeze({acceptGreeting:function(e){return v(Xe(ge,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:h,cancelGreeting:function(e){return v(Xe(me,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return m.listThreads({chatId:t}).then(function(e){var n=e.threads;if(!n.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})})},connect:g,deactivateChat:function(e){return v(Xe("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return v(Xe(Ie,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return v(Xe(Ee,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return v(Xe(Te,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){p.dispatch(Be("manual"))},disconnect:function(){p.dispatch(Ye("manual"))},getChat:function(e){return v(Xe(be,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(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)})}}(m,e.chatId)},getCustomer:function(){return v(Xe(Oe,{}))},getForm:function(e){return v(Xe(Se,{group_id:e.groupId,type:e.type}))},getUrlInfo:function(e){return v(Xe(Ne,{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).")):v(Xe(Ce,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return v(Xe(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return v(Xe(Pe,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 v(Xe(Ae,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:l.on,once:l.once,off:l.off,rateChat:function(e){var t=e.chatId,n=e.rating;return m.listThreads({chatId:t}).then(function(e){var r=e.threads;if(!r.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})})},requestWelcomeMessage:function(e){var t=(void 0===e?{}:e).id;return v(Xe(ke,t?{id:t}:{}))},resumeChat:function(n){return wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(De,function(e){var n=Y(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){return v(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:B(e.event)};return t&&(n.attach_to_last_thread=!0),Xe(Ue,n)}(e))},sendGreetingButtonClicked:function(e){return function(e,n){var r=e.store,o=n.greetingUniqueId,a=n.buttonId;return e.auth.getToken().then(function(e){var n=r.getState(),i=b(t({organization_id:n.organizationId},Tn(n))),c=bn(n)+"/action/"+xe+"?"+i;return fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({greeting_unique_id:o,button_id:a}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendCustomerActions:function(e){return function(e,n){var r=e.store,o=n.actions;return e.auth.getToken().then(function(e){var n=r.getState(),a=b(t({organization_id:n.organizationId},Tn(n))),i=bn(n)+"/action/send_customer_actions?"+a;return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({actions:o}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendRichMessagePostback:function(e){return v(Xe(je,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return v(Xe(Me,{session_fields:J(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=p.getState();In(r,t)&&En(r)&&v(Xe(Le,{chat_id:t,sneak_peek_text:n})).catch(y)},startChat:function(t){return void 0===t&&(t={}),wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(qe,Y(t)))},updateChatProperties:function(e){return v(Xe(Ge,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return v(Xe(Fe,K(e)))},updateCustomerPage:function(e){p.dispatch({type:he,payload:I(["title","url"],e)})},updateEventProperties:function(e){return v(Xe(ze,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return v(Xe(Ve,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return oo({auth:h,store:p},e)}});return o?g():p.dispatch({type:W,payload:{sessionFields:"function"==typeof a?a().sessionFields:{}}}),m},e.parseCustomEvent=Ln,e.parseEvent=Fn,e.parseFile=Un,e.parseFilledForm=xn,e.parseForm=Hr,e.parseGreeting=Hn,e.parseMessage=jn,e.parseRichMessage=qn,e.parseSystemMessage=Gn,e.serverDisconnectionReasons=It,e.serverErrorCodes=St,e.serverPushActions=en,e.sortOrders=tn,e.userTypes=on,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)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function r(e){var t=function(e,t){if("object"!=typeof e||!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)}}}();function c(e){try{return window.localStorage}catch(t){return"SecurityError"===t.name&&e?e: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&&(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i}}function u(e){var t=c(e);return{setItem:function(e,n){return new Promise(function(r){return r(t.setItem(e,n))})},getItem:function(e){return new Promise(function(n){return n(t.getItem(e))})},removeItem:function(e){return new Promise(function(n){return n(t.removeItem(e))})}}}u();var s={}.hasOwnProperty;function d(e,t){return s.call(t,e)}function p(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function l(e){return Array.isArray(e)}function f(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return f(t).reduce(function(n,r){return n[r]=e(t[r]),n},{})}function h(e){return e}function v(e){var t=Math.random().toString(36).substring(2);return d(t,e)?v(e):t}function y(){}function g(e){return f(e).map(function(t){return e[t]})}function m(e,t){return e.reduce(function(e,n){return e[n]=t[n],e},{})}function I(e,t){return e.reduce(function(e,n){return d(n,t)&&(e[n]=t[n]),e},{})}function E(e){return f(e).map(function(t){return[t,e[t]]})}function T(e,t){return e===t?0:t>e?-1:1}var b=function(e){return E(e).map(function(e){return e.map(encodeURIComponent).join("=")}).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+S("javascript")+"|"+S("data")+"):","i");var N=/^((http(s)?:)?\/\/)/;function C(e,t){return t=t||{},new Promise(function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var s in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n}),n(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)})}var w="https://accounts.livechatinc.com",P=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},R=function(e,t){return C(""+function(e,t){var n="production"===t?w:w.replace("accounts.","accounts."+t+"."),r=function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e);return""+n+r}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(O),(r&&r[0])+window.location.pathname)})}).then(function(e){return e.json()}).then(function(t){return function(e,t){if("identity_exception"in e)throw P({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw P({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)});var n,r},A=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},k=function(e,t){A(e);var n=e.env,r=n&&["labs","staging"].includes(n)?n:"production",o=u(t),a=""+(e.tokenStoragePrefix||"@@lc_auth_token:")+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,s=o.getItem(a).then(function(e){null!==s&&(s=null,e&&(c=JSON.parse(e)))}),d=function(){return i=R(e,r).then(function(e){return i=null,o.setItem(a,JSON.stringify(e)),c=e,e},function(e){throw i=null,e})},p=function(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):s?s.then(p):d())},l=function(){return s?s.then(l):Promise.resolve(!!c)};return{getFreshToken:d,getToken:p,hasToken:l,invalidate:function(){return c=null,s=null,o.removeItem(a)}}};var D=["all"],x=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,D);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)})}})},U="file",j="form",L="filled_form",M="message",q="rich_message",G="system_message",F="custom",H=Object.freeze({__proto__:null,FILE:U,FORM:j,FILLED_FORM:L,MESSAGE:M,RICH_MESSAGE:q,SYSTEM_MESSAGE:G,CUSTOM:F}),z=["groupId"],V=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||l(t)||(n.properties=e.properties),n},Y=function(e){switch(e.type){case M:var r=t({},V(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 U:return t({},V(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case L:return t({},V(e),{type:e.type,form_id:e.formId},e.formType&&{form_type:e.formType},{fields:e.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,z),{group_id:o})})}return e})});case G:var o=t({},V(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case F:var a=t({},V(e),{type:e.type});return e.content&&(a.content=e.content),a}},B=function(e){var t=e.active,n=e.chat,r=e.welcomeMessageId,o=e.continuous,a={active:void 0===t||t,chat:{}};if("boolean"==typeof o&&(a.continuous=o),r&&"string"==typeof r&&(a.welcome_message_id=r),!n)return a;var i=n.access,c=n.thread,u=n.properties;return i&&i.groupIds&&(a.chat.access={group_ids:i.groupIds}),u&&(a.chat.properties=u),c&&(a.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(Y)),r&&(t.properties=r),t}(c)),a},J=function(e){return E(e).map(function(e){var t;return(t={})[e[0]]=e[1],t})},K=function(e){var t=I(["avatar","name","email"],e);return e.phoneNumber&&(t.phone_number=e.phoneNumber),e.sessionFields&&(t.session_fields=J(e.sessionFields)),"boolean"==typeof e.nameIsDefault&&(t.name_is_default=e.nameIsDefault),t},X="change_region",W="check_goals",Q="destroy",Z="fail_all_requests",$="login_success",ee="pause_connection",te="prefetch_token",ne="push_received",re="push_response_received",oe="reconnect",ae="request_failed",ie="response_received",ce="send_request",ue="set_chat_active",se="set_self_id",de="socket_connected",pe="socket_disconnected",le="socket_recovered",fe="socket_unstable",_e="start_connection",he="update_customer_page",ve="clear_sensitive_session_state",ye="identity_changed",ge="accept_greeting",me="cancel_greeting",Ie="delete_chat_properties",Ee="delete_event_properties",Te="delete_thread_properties",be="get_chat",Oe="get_customer",Se="get_form",Ne="get_url_info",Ce="list_chats",we="list_group_statuses",Pe="list_threads",Re="login",Ae="mark_events_as_seen",ke="request_welcome_message",De="resume_chat",xe="send_event",Ue="send_greeting_button_clicked",je="send_rich_message_postback",Le="send_sneak_peek",Me="set_customer_session_fields",qe="start_chat",Ge="update_chat_properties",Fe="update_customer",He="update_customer_page",ze="update_event_properties",Ve="update_thread_properties",Ye=function(e){return{type:Q,payload:{reason:e}}},Be=function(e){return{type:ee,payload:{reason:e}}},Je=function(e){return void 0===e&&(e=!1),{type:te,payload:{fresh:e}}},Ke=function(e){return{type:oe,payload:{delay:e}}},Xe=function(e,n,r){return{type:ce,payload:t({request:{action:e,payload:n}},r&&{source:r})}},We=function(e,t){return{type:ue,payload:{id:e,active:t}}},Qe=function(e){return{type:se,payload:{id:e}}},Ze="CONNECTION_LOST",$e="MISDIRECTED_CONNECTION",et="MISSING_CHAT_THREAD",tt="SDK_DESTROYED",nt="connected",rt="destroyed",ot="disconnected",at="paused",it="reconnecting",ct=Object.freeze({__proto__:null,CONNECTED:nt,DESTROYED:rt,DISCONNECTED:ot,PAUSED:at,RECONNECTING:it}),ut="access_token_expired",st="customer_banned",dt="customer_temporarily_blocked",pt="license_expired",lt="license_not_found",ft="misdirected_connection",_t="product_version_changed",ht="service_temporarily_unavailable",vt="too_many_connections",yt="too_many_unauthorized_connections",gt="unsupported_version",mt="logged_out_remotely",It=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ut,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:st,CUSTOMER_TEMPORARILY_BLOCKED:dt,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:pt,LICENSE_NOT_FOUND:lt,MISDIRECTED_CONNECTION:ft,PRODUCT_VERSION_CHANGED:_t,SERVICE_TEMPORARILY_UNAVAILABLE:ht,TOO_MANY_CONNECTIONS:vt,TOO_MANY_UNAUTHORIZED_CONNECTIONS:yt,UNSUPPORTED_VERSION:gt,LOGGED_OUT_REMOTELY:mt}),Et="AUTHENTICATION",Tt="CUSTOMER_BANNED",bt="USERS_LIMIT_REACHED",Ot="WRONG_PRODUCT_VERSION",St=Object.freeze({__proto__:null,AUTHENTICATION:Et,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tt,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:bt,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:Ot}),Nt="chat_deactivated",Ct="chat_properties_deleted",wt="chat_properties_updated",Pt="chat_transferred",Rt="customer_disconnected",At="customer_side_storage_updated",kt="customer_updated",Dt="event_properties_deleted",xt="event_properties_updated",Ut="event_updated",jt="events_marked_as_seen",Lt="greeting_accepted",Mt="greeting_canceled",qt="groups_status_updated",Gt="incoming_chat",Ft="incoming_event",Ht="incoming_greeting",zt="incoming_multicast",Vt="incoming_rich_message_postback",Yt="incoming_typing_indicator",Bt="incoming_welcome_message",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Wt="user_added_to_chat",Qt="user_removed_from_chat",Zt="incoming_thinking_indicator",$t="incoming_event_preview",en=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:Ct,CHAT_PROPERTIES_UPDATED:wt,CHAT_TRANSFERRED:Pt,CUSTOMER_DISCONNECTED:Rt,CUSTOMER_SIDE_STORAGE_UPDATED:At,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Dt,EVENT_PROPERTIES_UPDATED:xt,EVENT_UPDATED:Ut,EVENTS_MARKED_AS_SEEN:jt,GREETING_ACCEPTED:Lt,GREETING_CANCELED:Mt,GROUPS_STATUS_UPDATED:qt,INCOMING_CHAT:Gt,INCOMING_EVENT:Ft,INCOMING_GREETING:Ht,INCOMING_MULTICAST:zt,INCOMING_RICH_MESSAGE_POSTBACK:Vt,INCOMING_TYPING_INDICATOR:Yt,INCOMING_WELCOME_MESSAGE:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Wt,USER_REMOVED_FROM_CHAT:Qt,INCOMING_THINKING_INDICATOR:Zt,INCOMING_EVENT_PREVIEW:$t}),tn=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"}),nn="agent",rn="customer",on=Object.freeze({__proto__:null,AGENT:nn,CUSTOMER:rn});function an(e){var t=e.code,n=Error(e.message);return n.code=t,n}var cn=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")()),un=function(){return Math.random().toString(36).substring(7).split("").join(".")},sn={INIT:"@@redux/INIT"+un(),REPLACE:"@@redux/REPLACE"+un(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+un()}};function dn(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(dn)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(u)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return s(),c.push(e),function(){if(t){if(u)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!function(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}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}return l({type:sn.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:sn.REPLACE})}})[cn]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[cn]=function(){return this},e},r}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(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 fn(){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 _n(){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 function(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(n,!0).forEach(function(t){pn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},n,{dispatch:r=fn.apply(void 0,a)(n.dispatch)})}}}var hn=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=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,o)},reset:function(){c=0}}};function vn(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e}var yn=function(e){return e.connection.status},gn=function(e,t){return e.requests[t]},mn=function(e){return e.users.self.id},In=function(e,t){var n=e.chats[t];return!!n&&n.active},En=function(e){return yn(e)===nt},Tn=function(e){var t;return{"x-region":null!=(t=e.region)?t:""}},bn=function(e){return function(e){return"https://api"+function(e){var t=e.env;return"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.6/customer"},On=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},Sn=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},Nn=function(e){var n,r,o;return r=e,(n={})[X]=function(e,n){return t({},e,{region:n.region})},n[Q]=function(e){return Sn(rt,e)},n[$]=function(e){return Sn(nt,e)},n[ee]=function(e){return Sn(at,e)},n[ae]=On,n[ie]=On,n[re]=On,n[ce]=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[ue]=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[se]=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n[pe]=function(e){var n=yn(e);return t({},Sn(n===ot?ot:it,e),{requests:{}})},n[he]=function(e,n){return t({},e,{page:t({},e.page,n)})},n[ve]=function(e){return t({},e,{chats:{},users:{self:{id:null,type:rn},others:{}},requests:{}})},n[ye]=function(e){return e},(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),d(t.type,o)?o[t.type](e,t.payload):e}};function Cn(e){var n=h,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=dn(Nn(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.tabId,_=void 0===f?null:f,h=e.uniqueGroups,v=void 0!==h&&h,y=e.mobile,g=void 0!==y&&y;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"5.1.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:ot},page:u,region:d,referrer:l,tabId:_,requests:{},users:{self:{id:null,type:rn},others:{}},uniqueGroups:v,mobile:g}}(e)),n(_n(r)));return o.addSideEffectsHandler=r.add,o}var wn=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"5.1.0"})};return function(e,t){return new Promise(function(n){var r=new Image;r.src=e+"?"+t,r.onerror=y,r.onload=function(){return n()}})}("https://applog.livechatinc.com/logs",b(r))},Pn=function(e,t){t.payload.id=v(e.getState().requests);var n=vn(),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},Rn=Object.freeze({success:!0}),An=["group_id"],kn=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},Dn=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},xn=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},kn(e,n),{type:U,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},Dn(300,n)),high:t({url:n.thumbnail2x_url},Dn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},kn(e,n),{type:U,contentType:n.content_type,url:n.url,name:n.name})},Un=function(e,r){return t({},kn(e,r),{type:L,formId:r.form_id},r.form_type&&{formType:r.form_type},{fields:r.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,An),{groupId:o})})}return e})})},jn=function(e,n){return t({},kn(e,n),{type:M,text:n.text})},Ln=function(e,n){return t({},kn(e,n),{type:F},n.content&&{content:n.content})},Mn=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.ecommerce&&(n.ecommerce=t({productId:e.ecommerce.product_id,viewType:e.ecommerce.view_type},"string"==typeof e.ecommerce.label&&{label:e.ecommerce.label},Array.isArray(e.ecommerce.options)&&{options:e.ecommerce.options.map(function(e){return t({label:e.label,optionId:e.option_id},void 0!==e.price&&{price:e.price},void 0!==e.regular_price&&{regularPrice:e.regular_price},void 0!==e.max_price&&{maxPrice:e.max_price},void 0!==e.currency&&{currency:e.currency},"string"==typeof e.color&&{color:e.color},e.image_url&&t({imageUrl:e.image_url},"string"==typeof e.image_thumbnail_url&&{imageThumbnailUrl:e.image_thumbnail_url}),"boolean"==typeof e.available&&{available:e.available},"boolean"==typeof e.selected&&{selected:e.selected})})},Array.isArray(e.ecommerce.addons)&&{addons:e.ecommerce.addons.map(function(e){return"price_range"===e.addon_type?t({addonType:e.addon_type},void 0!==e.range_from&&{rangeFrom:e.range_from},void 0!==e.range_to&&{rangeTo:e.range_to},"string"==typeof e.currency&&{currency:e.currency}):{addonType:e.addon_type}})})),e.buttons&&(n.buttons=e.buttons.map(function(e){switch(e.type){case"message":case"add_to_cart":case"show_gallery":case"copy":case"phone":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"cancel":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"url":var n=t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});return e.target&&(n.target=e.target),n;case"open_external":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id},e.target&&{target:e.target});case"webview":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});default:return t({text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id})}})),n},qn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":case"ecommerce":return t({},kn(e,n),{type:q,template:n.template_id,elements:n.elements.map(Mn)});default:return null}},Gn=function(e,n){var r=t({},kn(e,t({},n,{author_id:"system"})),{type:G,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Fn=function(e,n){switch(n.type){case U:return xn(e,n);case j:return function(e,n){return t({},kn(e,n),{authorId:"system",type:j,formId:n.form_id},n.form_type&&{formType:n.form_type},{fields:n.fields})}(e,n);case L:return Un(e,n);case M:return jn(e,n);case q:return qn(e,n);case G:return Gn(e,n);case F:return Ln(e,n);default:return null}},Hn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,isExitIntent:e.is_exit_intent,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Fn(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}}},zn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Vn=function(e){return _(function(e){return e.events_seen_up_to?e.events_seen_up_to:null},(t="id",e.reduce(function(e,n){return e[n[t]]=n,e},{})));var t},Yn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:zn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map(function(e){return Fn(t.id,e)}).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Qn(t.queue):null}},Bn=function(e){return{id:e.id,access:zn(e.access),users:e.users.map(Zn),properties:e.properties||{},eventsSeenUpToMap:Vn(e.users)}},Jn=function(e){var t=I(["avatar","email","name"],e);return"phone_number"in e&&(t.phoneNumber=e.phone_number),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},Kn=function(e){var n=Jn(e);return t({id:e.id,type:rn},n,{sessionFields:n.sessionFields||{}})},Xn=function(e){var n=e.statistics;return t({},Kn(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}})},Wn=function(e){return{position:e.position,waitTime:e.wait_time}},Qn=function(e){return t({},Wn(e),{queuedAt:e.queued_at})},Zn=function(e){return e.type===rn?t({},Kn(r=e),{present:r.present}):{id:(n=e).id,type:nn,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},$n=function(e){return"offline"===e?"offline":"online"},er=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},tr=function(e,t){var n=u(t),r=er(e);return n.getItem(r).catch(y).then(function(e){return JSON.parse(e||"{}")}).catch(y)},nr=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Z,payload:{rejects:Object.keys(r).map(function(e){return r[e].reject}),reason:t}})},rr=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:ae,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},or=function(e,t,n){var r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}(e).slice(0),o=!1,a=function(e){var i,c=r.shift();(i=function(){return c(e)},new Promise(function(e){e(i())})).then(function(e){o||(r.length?a(e):t(e))},function(e){o||n(e)})};return a(),{cancel:function(){o=!0}}},ar=function(e,t,n){return Pn(e,Xe(t,n,"login"))};function ir(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=hn(c),d=hn(t({},c,{min:1e3})),p=s,l=function(e){return o.dispatch(Ye(e))},f=function(){return o.dispatch(Ke(p.duration()))},_=function(){return Promise.all([e.getToken(),tr(o,r)])},h=function(e){var t=e[0],n=e[1],a=mn(o.getState());if(null===a)o.dispatch(Qe(t.entityId));else if(a!==t.entityId)return r&&function(e,t){u(t).removeItem(er(e)).catch(y)}(o,r),o.dispatch({type:ve}),o.dispatch(Qe(t.entityId)),o.dispatch({type:ye,payload:{previousId:a,newId:t.entityId}}),[t,{}];return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f=c.tabId,_={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?K(n()):{},customer_side_storage:a,is_mobile:l,application:m(["name","version"],u)};return"number"==typeof s&&(_.group_id=s),u.channelType&&(_.application.channel_type=u.channelType),null!==d&&(i=d,_.customer_page=d),null!==p&&(_.referrer=p),null!==f&&(_.tab_id=f),Promise.race([ar(o,Re,_),(t=15e3,new Promise(function(e){setTimeout(e,t)})).then(function(){return Promise.reject(an({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))})])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=or([_,h,v],function(e){var t;a=null,s.reset(),d.reset(),p=s,t=o.getState().page,i!==t&&ar(o,He,t).catch(y),i=null,o.dispatch({type:$,payload:e})},function(t){switch(a=null,t.code){case Et:return e.getFreshToken(),void f();case Ze:case $e:case tt:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void f():void l(t.message);case bt:return void o.dispatch(Be(t.code.toLowerCase()));case Tt:case Ot:return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void f();default:return void f()}})},cancel:function(){var e;null==(e=a)||e.cancel()}}}var cr,ur=["present"],sr=["statistics"],dr=((cr={})[Ze]="Connection lost.",cr[$e]="Connected to wrong region.",cr),pr=function(e,t){var n=e.getState();switch(t.type){case re:case ne:switch(t.payload.action){case Nt:return void e.dispatch(We(t.payload.payload.chatId,!1));case Gt:return void e.dispatch(We(t.payload.payload.chat.id,!0));default:return}case ie:return t.payload.action===Ce?void t.payload.payload.chatsSummary.filter(function(e){var t=e.active;return In(n,e.id)!==t}).forEach(function(t){e.dispatch(We(t.id,t.active))}):void 0}},lr=function(e,t){t.forEach(function(t){if("present"in t){var r=n(t,ur);e("user_data",r)}else if(t.type!==rn)e("user_data",t);else{var o=n(t,sr);e("user_data",o)}})},fr=function(e,t,n){var r=e.emit,o=e.store,a=t.payload;switch(a.action){case Xt:return a.payload.properties.lc2&&"queue_pos"in a.payload.properties.lc2&&r(Jt,{chatId:a.payload.chatId,threadId:a.payload.threadId,queue:{position:a.payload.properties.lc2.queue_pos,waitTime:a.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",a.payload);case At:return void function(e,t,n){u(n).setItem(er(e),JSON.stringify(t)).catch(y)}(o,a.payload.customer_side_storage,n);case Rt:switch(a.payload.reason){case ut:o.dispatch(Je(!0)),o.dispatch(Ke(100)),r("disconnected",a.payload);break;case st:case dt:case lt:case _t:case vt:case gt:case mt:o.dispatch(Ye(a.payload.reason));break;case ft:nr(o,$e),o.dispatch({type:X,payload:a.payload.data});break;case ht:case yt:nr(o,a.payload.reason.toUpperCase());break;default:o.dispatch(Ke(100)),r("disconnected",a.payload)}return;case qt:return void r("availability_updated",{availability:$n(a.payload.groups[0].status)});case Gt:return lr(r,a.payload.chat.users),void r(a.action,a.payload);case Ft:if(null===a.payload.event)return;return void r(a.action,a.payload);case Yt:case Zt:case $t:return void r(a.action,a.payload);case Wt:return lr(r,[a.payload.user]),void r(a.action,a.payload);default:return void r(a.action,a.payload)}},_r=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Rn);case be:return lr(n,r.payload.users),void r.resolve(r.payload);case Gt:return lr(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case Ce:return lr(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},hr=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=e.parentStorage,i=r.emit,c=ir(n,e.customerDataProvider,a);return function(e,u){switch(e.type){case X:return void o.reinitialize();case W:return void function(e,n,r){return n.getToken().then(function(n){var o=e.getState();null===mn(o)&&e.dispatch(Qe(n.entityId));var a=o.page;if(a&&a.url){var i=b(t({organization_id:o.organizationId},Tn(o))),c={session_fields:J(r||{}),group_id:o.groupId||0,page_url:a.url};return C(bn(o)+"/action/check_goals?"+i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:n.tokenType+" "+n.accessToken},body:JSON.stringify(c)}).then(function(){})}})}(u,n,e.payload.sessionFields).catch(y);case Q:var s=e.payload;switch(c.cancel(),o.destroy(),s.reason){case"manual":nr(u,tt);break;case st:case pt:case _t:case mt:nr(u,Ze),i("disconnected",s);break;default:i("disconnected",s)}return void r.off();case Z:var d=e.payload,p=d.reason,l={message:dr[p],code:p};return void d.rejects.forEach(function(e){e(an(l))});case $:var f=e.payload,_=f.dynamicConfig,h=f.chats,v=f.greeting,m=t({customer:f.customer,availability:f.availability},v&&{greeting:v});return Object.defineProperty(m,"__unsafeDynamicConfig",{value:_}),Object.defineProperty(m,"__unsafeChats",{value:h}),void i("connected",m);case ee:var I=e.payload;return o.disconnect(),void("manual"!==I.reason&&i("disconnected",I));case te:return e.payload.fresh?void n.getFreshToken().catch(y):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(y);case ne:return e.payload.action===Rt||pr(u,e),void fr({emit:i,store:u},e,a);case re:return pr(u,e),void _r({emit:i},e);case oe:return nr(u,Ze),void o.reconnect(e.payload.delay);case ae:var E=e.payload;return void(0,E.reject)(an(E.error));case ie:return pr(u,e),void _r({emit:i},e);case ce:var T=u.getState();return function(e){return yn(e)===rt}(T)?void rr(u,e,{code:tt,message:"SDK destroyed."}):En(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);if(o.action!==Re)e.emit(o);else{var a={3.6:g(en).filter(function(e){return e!==Rt})};e.emit(t({},o,{version:"3.6",payload:t({},o.payload,{pushes:a})}))}}(o,e):void rr(u,e,{code:"NO_CONNECTION",message:"No connection."});case se:return void i("customer_id",e.payload.id);case pe:return void i("disconnected",{reason:"connection_lost"});case de:return void c.sendLogin(u);case le:if(!En(u.getState()))return;return void i("connection_recovered");case fe:if(!En(u.getState()))return;return void i("connection_unstable");case _e:return o.connect(),void u.dispatch(Je());case he:if(!En(u.getState()))return;return void Pn(u,Xe(He,e.payload)).then(function(e){var t;if(null!=e&&null!=(t=e.groups)&&t.length){var n=$n(e.groups[0].status);i("availability_updated",{availability:n})}}).catch(y);case ye:return void i("identity_changed",e.payload);default:return}}},vr=function(e,t){var n,r=(void 0===t?{}:t).query,o=b(void 0===r?{}:r),a=o?e+"?"+o:e,i=x(),c=hn({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()}),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},yr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?x():d,l=vr(e,{query:s}),f=(o=y,{cancel:function(){clearTimeout(r),o=y},check:function(){var e=vn();return o=e.resolve,r=setTimeout(function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)},2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){clearTimeout(r),o()})}),_=function(){return 1===l.getReadyState()},h=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach(function(e){a.on(e,function(t){i.emit(e,t)})}),l.on("disconnect",h),l.on("message",function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",function(){_()&&f.check().then(function(){f.cancel(),p.emit("connection_recovered")},function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()})}),window.addEventListener("offline",function(){f.cancel(),_()&&p.emit("connection_unstable")})),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},gr=function(e,n){var r=e.getState(),o=(bn(r)+"/rtm/ws").replace(/^https/,"wss");return yr(o,{query:t({organization_id:r.organizationId},Tn(r)),emitter:n})},mr=["group_id"],Ir=["comment_label"],Er=function(e){return{chatId:e.chat_id,properties:e.properties}},Tr=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},br=function(e){return t({id:e.id},Jn(e))},Or=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Sr=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:Fn(t,e.event)}},Cr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},wr=function(e){return{uniqueId:e.unique_id}},Pr=function(e){var n=e.chat;return{chat:t({},Bn(n),{thread:Yn(n.id,n.thread)})}},Rr=function(e){return{chatId:e.chat_id,event:Fn(e.thread_id,e.event)}},Ar=function(e){return Hn(e)},kr=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Dr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},xr=function(e){var n=e.custom_id,r=e.title,o=e.description;return t({chatId:e.chat_id,threadId:e.thread_id,authorId:e.author_id,sentAt:e.sent_at},n&&{customId:n},r&&{title:r},o&&{description:o})},Ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,event:Fn(e.thread_id,e.event)}},jr=function(e){return{id:e.id,event:Fn(null,e.event)}},Lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Wn(e.queue)}},Mr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},qr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Gr=function(e){return{chatId:e.chat_id,user:Zn(e.user),present:e.user.present}},Fr=function(e){return{chatId:e.chat_id,userId:e.user_id,reason:e.reason}},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,mr),{groupId:r})})});case"rating":var r=e.comment_label;return t({},n(e,Ir),{commentLabel:r});default:return e}})},zr=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)}},Vr=function(e){return e.enabled?t({},e,{form:zr(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.replace(N,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},Br=function(e){var t=e.predicted_agent;return{id:e.id,predictedAgent:{id:t.id,type:t.type,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot,botType:t.bot_type},queue:e.queue}},Jr=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:zn(e.access),properties:a,users:i.map(Zn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Vn(i)};if(!r)return c;c.lastEventsPerType=_(function(e){return Fn(e.thread_id,e.event)},r);var u,s=r,d=Object.keys(s).map(function(e){return s[e]}),p=(u=d.sort(function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)})).length>0?u[u.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c});return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(l(a)?[].concat(a):g(a)).sort(function(e,t){return i(e)-i(t)})),totalChats:e.total_chats,users:(t=function(e){return e.id},n=p(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}},Kr=function(e){return e.groups_status},Xr=function(e,t){return{threads:t.threads.map(function(t){return Yn(e.payload.chat_id,t)}),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Wr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&-1!==r.indexOf(n.customer_groups.monitoring.id)?"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:Hn(i)})},Qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case Ct:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case wt:return{action:e.action,payload:Er(e.payload)};case Pt:return{action:e.action,payload:Tr(e.payload)};case At:case Rt:return{action:e.action,payload:e.payload};case kt:return{action:e.action,payload:br(e.payload)};case Dt:return{action:e.action,payload:Or(e.payload)};case xt:return{action:e.action,payload:Sr(e.payload)};case Ut:return{action:e.action,payload:Nr(e.payload)};case jt:return{action:e.action,payload:Cr(e.payload)};case Lt:case Mt:return{action:e.action,payload:wr(e.payload)};case qt:return{action:e.action,payload:e.payload};case Gt:return{action:e.action,payload:Pr(e.payload)};case Ft:return{action:e.action,payload:Rr(e.payload)};case Ht:return{action:e.action,payload:Ar(e.payload)};case zt:return{action:e.action,payload:e.payload};case Vt:return{action:e.action,payload:kr(e.payload)};case Yt:return{action:e.action,payload:Dr(e.payload)};case Zt:return{action:e.action,payload:xr(e.payload)};case $t:return{action:e.action,payload:Ur(e.payload)};case Bt:return{action:e.action,payload:jr(e.payload)};case Jt:return{action:e.action,payload:Lr(e.payload)};case Kt:return{action:e.action,payload:Mr(e.payload)};case Xt:return{action:e.action,payload:qr(e.payload)};case Wt:return{action:e.action,payload:Gr(e.payload)};case Qt:return{action:e.action,payload:Fr(e.payload)}}var t},Zr=function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r,o=e.request,a=e.response;switch(a.action){case ge:case me:case Ie:case Ee:case Te:return{action:a.action,payload:Rn};case be:return{action:a.action,payload:(r=a.payload,t({},Bn(r),{thread:r.thread?Yn(r.id,r.thread):null}))};case Oe:return{action:a.action,payload:Xn(a.payload)};case Se:return{action:a.action,payload:Vr(a.payload)};case Ne:return{action:a.action,payload:Yr(a.payload)};case Ce:return{action:a.action,payload:Jr(a.payload)};case we:return{action:a.action,payload:Kr(a.payload)};case Pe:return{action:a.action,payload:Xr(o,a.payload)};case Re:return{action:a.action,payload:Wr(a.payload)};case Ae:return{action:a.action,payload:Rn};case ke:return{action:a.action,payload:Br(a.payload)};case Le:case Me:case Ue:case je:case Ge:case Fe:return{action:a.action,payload:Rn};case He:return{action:a.action,payload:t({},Rn,{groups:null==(n=a.payload)?void 0:n.groups})};case ze:case Ve:return{action:a.action,payload:Rn}}}({request:a.request,response:n});r({type:ie,payload:t({id:o,promise:i,resolve:c},u)})},$r=function(e,n){var r=e.dispatch;return n.on("connect",function(){r({type:de})}),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=gn((0,e.getState)(),o);r({type:ae,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case De:case xe:case qe:return;default:return void Zr(e,n)}}if("request_id"in n)switch(n.action){case Gt:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=Qr(n);r({type:re,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=Qr(t);n&&e.dispatch({type:ne,payload:n})}(e,n)}),n.on("disconnect",function(){nr(e,Ze),yn(e.getState())===nt&&e.dispatch({type:pe})}),n.on("connection_unstable",function(){r({type:fe})}),n.on("connection_recovered",function(){r({type:le})}),n.off},eo="UPLOAD_FAILED",to=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise(function(n,r){var a,u;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=eo,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=eo,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach(function(e){return d.setRequestHeader(e,o[e])}),d.send((a=t,u=new FormData,Object.keys(a).forEach(function(e){return u.append(e,a[e])}),u))}),cancel:function(){d.abort()}}},no=1048576,ro=10485760,oo=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(no>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},ao=function(e,n){var r,o=e.auth,a=e.store,i=n.file,c=n.onProgress,u=!1;return{promise:new Promise(function(e,n){!function(e){if(e.size>ro)throw an({message:"The file is too big (max size is "+oo(ro)+").",code:"TOO_BIG_FILE"})}(i);var s=a.getState(),d=b(t({organization_id:s.organizationId},Tn(s))),p=bn(s)+"/action/upload_file?"+d,l={file:i};o.getToken().then(function(t){u?n(Error("Upload cancelled.")):(r=to(p,l,{headers:{Authorization:t.tokenType+" "+t.accessToken},onProgress:c})).promise.then(e,function(e){if(e.response){var t=e.response.error;n(an({message:t.message,code:t.type.toUpperCase()}))}else n(e)})})}),cancel:function(){u||(u=!0,r&&r.cancel())}}},io=["on","once","off","getChatHistory","auth"],co="LISTENER_IDENTITY",uo={},so=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},{})},po=function(e,t,n){if(void 0===n[co]&&Object.defineProperty(n,co,{value:{}}),n[co][t])return uo[n[co][t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=v(uo);return n[co][t]=o,uo[o]=r,r},lo=["autoConnect","customerDataProvider","identityProvider","parentStorage","env"];e.connectionStatuses=ct,e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,u=r.auth,s=n(r,io),d=so(s);return Object.freeze(t({auth:Object.freeze(so(u,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then(function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e},function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e})}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t[co]&&(n=uo[t[co][e]]);i(e,n)},on:function(e,t){o(e,po("on",e,t))},once:function(e,t){a(e,po("once",e,t))}}))},e.eventTypes=H,e.init=function(e){A(e);var r=e.autoConnect,o=void 0===r||r,a=e.customerDataProvider,i=e.identityProvider,c=e.parentStorage,u=e.env,s=n(e,lo),d=u&&["labs","staging"].includes(u)?u:"production",p=Cn(t({},s,{env:d})),l=x(),f=function(e){var n=x(),r=gr(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=gr(e,n)).connect()}})}(p),_="function"==typeof i,h=_?i():k(t({},s,{env:d}),c);p.addSideEffectsHandler(hr({emitter:l,socket:f,auth:h,customerDataProvider:a,parentStorage:c,hasCustomIdentityProvider:_})),$r(p,f);var v=Pn.bind(null,p),g=function(){p.dispatch({type:_e})},m=Object.freeze({acceptGreeting:function(e){return v(Xe(ge,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:h,cancelGreeting:function(e){return v(Xe(me,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return m.listThreads({chatId:t}).then(function(e){var n=e.threads;if(!n.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})})},connect:g,deactivateChat:function(e){return v(Xe("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return v(Xe(Ie,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return v(Xe(Ee,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return v(Xe(Te,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){p.dispatch(Ye("manual"))},disconnect:function(){p.dispatch(Be("manual"))},getChat:function(e){return v(Xe(be,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(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)})}}(m,e.chatId)},getCustomer:function(){return v(Xe(Oe,{}))},getForm:function(e){return v(Xe(Se,{group_id:e.groupId,type:e.type}))},getUrlInfo:function(e){return v(Xe(Ne,{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).")):v(Xe(Ce,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return v(Xe(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return v(Xe(Pe,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 v(Xe(Ae,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:l.on,once:l.once,off:l.off,rateChat:function(e){var t=e.chatId,n=e.rating;return m.listThreads({chatId:t}).then(function(e){var r=e.threads;if(!r.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})})},requestWelcomeMessage:function(e){var t=(void 0===e?{}:e).id;return v(Xe(ke,t?{id:t}:{}))},resumeChat:function(n){return wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(De,function(e){var n=B(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){return v(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Y(e.event)};return t&&(n.attach_to_last_thread=!0),Xe(xe,n)}(e))},sendGreetingButtonClicked:function(e){return function(e,n){var r=e.store,o=n.greetingUniqueId,a=n.buttonId;return e.auth.getToken().then(function(e){var n=r.getState(),i=b(t({organization_id:n.organizationId},Tn(n))),c=bn(n)+"/action/"+Ue+"?"+i;return fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({greeting_unique_id:o,button_id:a}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendCustomerActions:function(e){return function(e,n){var r=e.store,o=n.actions;return e.auth.getToken().then(function(e){var n=r.getState(),a=b(t({organization_id:n.organizationId},Tn(n))),i=bn(n)+"/action/send_customer_actions?"+a;return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({actions:o}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendRichMessagePostback:function(e){return v(Xe(je,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return v(Xe(Me,{session_fields:J(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=p.getState();In(r,t)&&En(r)&&v(Xe(Le,{chat_id:t,sneak_peek_text:n})).catch(y)},startChat:function(t){return void 0===t&&(t={}),wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(qe,B(t)))},updateChatProperties:function(e){return v(Xe(Ge,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return v(Xe(Fe,K(e)))},updateCustomerPage:function(e){p.dispatch({type:he,payload:I(["title","url"],e)})},updateEventProperties:function(e){return v(Xe(ze,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return v(Xe(Ve,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return ao({auth:h,store:p},e)}});return o?g():p.dispatch({type:W,payload:{sessionFields:"function"==typeof a?a().sessionFields:{}}}),m},e.parseCustomEvent=Ln,e.parseEvent=Fn,e.parseFile=xn,e.parseFilledForm=Un,e.parseForm=zr,e.parseGreeting=Hn,e.parseMessage=jn,e.parseRichMessage=qn,e.parseSystemMessage=Gn,e.serverDisconnectionReasons=It,e.serverErrorCodes=St,e.serverPushActions=en,e.sortOrders=tn,e.userTypes=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": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "SDK for connecting to LiveChat as a customer",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Konrad Kruk <k.kruk@livechatinc.com>",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"unfetch": "^4.2.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@babel/core": "7.
|
|
39
|
+
"@babel/core": "7.29.6",
|
|
40
40
|
"@babel/preset-env": "7.28.5",
|
|
41
41
|
"@babel/preset-typescript": "7.28.5",
|
|
42
42
|
"@livechat/customer-api-fake": "*",
|
|
@@ -402,9 +402,10 @@ export declare const parseResponse: ({ request, response, }: {
|
|
|
402
402
|
}>;
|
|
403
403
|
} | {
|
|
404
404
|
action: "update_customer_page";
|
|
405
|
-
payload:
|
|
406
|
-
|
|
407
|
-
|
|
405
|
+
payload: {
|
|
406
|
+
groups: never;
|
|
407
|
+
success: true;
|
|
408
|
+
};
|
|
408
409
|
} | {
|
|
409
410
|
action: "update_event_properties";
|
|
410
411
|
payload: Readonly<{
|