@subiz/widget-v4 4.1.37 → 4.1.40

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.
Files changed (52) hide show
  1. package/compiled_src/chatbox/Typing.js +2 -2
  2. package/compiled_src/chatbox/Widget.js +6 -0
  3. package/compiled_src/lib.js +24 -5
  4. package/compiled_src/popup/popup.js +20 -2
  5. package/compiled_src/store/store.js +8 -0
  6. package/compiled_src/util/campaign.js +6 -2
  7. package/compiled_src/util/common.js +9 -5
  8. package/compiled_src/util/order.js +4 -2
  9. package/compiled_src/util/pubsub.js +6 -3
  10. package/dist/132.js +524 -524
  11. package/dist/18a02a9c54e.132.js +1 -0
  12. package/dist/18a02a9c54e.213.js +1 -0
  13. package/dist/18a02a9c54e.335.js +1 -0
  14. package/dist/18a02a9c54e.441.js +1 -0
  15. package/dist/18a02a9c54e.605.js +1 -0
  16. package/dist/18a02a9c54e.app.js +1 -0
  17. package/dist/{189cbc6136e.index.html → 18a02a9c54e.index.html} +1 -1
  18. package/dist/{189cbc6136e.library.html → 18a02a9c54e.library.html} +1 -1
  19. package/dist/18a02a9c54e.library.js +1 -0
  20. package/dist/{189cbc6136e.preview.html → 18a02a9c54e.preview.html} +1 -1
  21. package/dist/18a02a9c54e.preview.js +1 -0
  22. package/dist/18a02a9c54e.screenshoot.js +1 -0
  23. package/dist/18a02a9c54e.webview.js +1 -0
  24. package/dist/213.js +98 -98
  25. package/dist/335.js +25 -25
  26. package/dist/441.js +1484 -886
  27. package/dist/605.js +50 -50
  28. package/dist/HASH +1 -1
  29. package/dist/screenshoot.html +1 -1
  30. package/dist/screenshoot.js +437 -394
  31. package/index.html +3 -3
  32. package/package.json +9 -9
  33. package/src/chatbox/Typing.js +2 -3
  34. package/src/chatbox/Widget.js +9 -0
  35. package/src/lib.js +15 -1
  36. package/src/popup/popup.js +23 -3
  37. package/src/store/store.js +10 -1
  38. package/src/util/common.js +9 -3
  39. package/dist/189cbc6136e.132.js +0 -1
  40. package/dist/189cbc6136e.213.js +0 -1
  41. package/dist/189cbc6136e.335.js +0 -1
  42. package/dist/189cbc6136e.441.js +0 -1
  43. package/dist/189cbc6136e.605.js +0 -1
  44. package/dist/189cbc6136e.app.js +0 -1
  45. package/dist/189cbc6136e.library.js +0 -1
  46. package/dist/189cbc6136e.preview.js +0 -1
  47. package/dist/189cbc6136e.screenshoot.js +0 -1
  48. package/dist/189cbc6136e.webview.js +0 -1
  49. /package/dist/{189cbc6136e.178.js → 18a02a9c54e.178.js} +0 -0
  50. /package/dist/{189cbc6136e.362.js → 18a02a9c54e.362.js} +0 -0
  51. /package/dist/{189cbc6136e.678.js → 18a02a9c54e.678.js} +0 -0
  52. /package/dist/{189cbc6136e.782.js → 18a02a9c54e.782.js} +0 -0
@@ -366,7 +366,7 @@ module.exports = function (maxBatch, maxDelay, handler) {
366
366
 
367
367
  this.push = function (payload, priority) {
368
368
  return new Promise(function (resolve) {
369
- myBuffers.push({payload: payload, priority: priority, created: Date.now(), rs: resolve})
369
+ myBuffers.push({ payload: payload, priority: priority, created: Date.now(), rs: resolve })
370
370
  myFlush()
371
371
  })
372
372
  }
@@ -380,7 +380,7 @@ module.exports = function (maxBatch, maxDelay, handler) {
380
380
  /***/ 3538:
381
381
  /***/ ((module) => {
382
382
 
383
- function map(collection, predicate) {
383
+ function map (collection, predicate) {
384
384
  if (!collection) return []
385
385
  if (!predicate) {
386
386
  predicate = function (a) {
@@ -408,7 +408,7 @@ function map(collection, predicate) {
408
408
  return out
409
409
  }
410
410
 
411
- module.exports = {map: map}
411
+ module.exports = { map: map }
412
412
 
413
413
 
414
414
  /***/ }),
@@ -435,7 +435,7 @@ module.exports = {
435
435
  /***/ ((module) => {
436
436
 
437
437
  // loop keep calling promise sequenctially until the promise resolve a false value
438
- module.exports = function loop(promise) {
438
+ module.exports = function loop (promise) {
439
439
  var out = promise()
440
440
  if (!out || !out.then) {
441
441
  var saveout = out
@@ -459,7 +459,7 @@ module.exports = function loop(promise) {
459
459
 
460
460
  var co = __webpack_require__(3538)
461
461
 
462
- module.exports = function (collections, func, limit) {
462
+ module.exports = function(collections, func, limit) {
463
463
  if (typeof func === 'number') {
464
464
  // backword compatible
465
465
  let tmp = limit
@@ -467,12 +467,12 @@ module.exports = function (collections, func, limit) {
467
467
  func = tmp
468
468
  }
469
469
 
470
- if (!func) func = function () {}
470
+ if (!func) func = function() {}
471
471
  if (typeof limit !== 'number' || limit <= 0) limit = 1
472
472
 
473
473
  // prepare input map
474
474
  var ins = {} // inputs
475
- co.map(collections, function (i, k) {
475
+ co.map(collections, function(i, k) {
476
476
  ins[k] = i
477
477
  })
478
478
 
@@ -481,14 +481,14 @@ module.exports = function (collections, func, limit) {
481
481
  if (Object.keys(ins).length < limit) limit = Object.keys(ins).length
482
482
 
483
483
  var outs = {} // outputs
484
- return new Promise(function (resolve) {
484
+ return new Promise(function(resolve) {
485
485
  let total = Object.keys(ins).length
486
486
 
487
- var doJob = function () {
487
+ var doJob = function() {
488
488
  var keys = Object.keys(ins)
489
489
  if (keys.length === 0) return
490
490
 
491
- var key = keys.shift()
491
+ var key = keys.pop()
492
492
  var value = ins[key]
493
493
  delete ins[key]
494
494
 
@@ -497,7 +497,7 @@ module.exports = function (collections, func, limit) {
497
497
  // we treat the out put as a promise
498
498
  if (!pro || !pro.then) pro = Promise.resolve(pro)
499
499
 
500
- pro.then(function (ret) {
500
+ pro.then(function(ret) {
501
501
  outs[key] = ret
502
502
  if (Object.keys(outs).length === total) return resolve(co.map(outs))
503
503
  doJob()
@@ -516,7 +516,7 @@ module.exports = function (collections, func, limit) {
516
516
 
517
517
  // sleep won't resolve after a given milliseconds
518
518
  // e.g: await sleep(100)
519
- module.exports = function sleep(ms) {
519
+ module.exports = function sleep (ms) {
520
520
  return new Promise(function (res) {
521
521
  setTimeout(res, ms)
522
522
  })
@@ -525,75 +525,10 @@ module.exports = function sleep(ms) {
525
525
 
526
526
  /***/ }),
527
527
 
528
- /***/ 2611:
529
- /***/ ((module) => {
530
-
531
- function dofetch(method, url, body, cb) {
532
- let headers = {}
533
- if (body) headers['content-type'] = 'text/plain'
534
- fetch(url, {method: method, headers: headers, body: body})
535
- .then((res) => res.text().then((text) => cb && cb(text, res.status)))
536
- .catch((err) => cb && cb(err, -1))
537
- }
538
-
539
- // xhrsend sends an HTTP request
540
- var xhrsend = function (method, url, body, cb) {
541
- if (typeof XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb)
542
- var request = new XMLHttpRequest()
543
- request.onreadystatechange = function (e) {
544
- if (request.readyState !== 4) return
545
- cb && cb(request.responseText, request.status)
546
- cb = undefined // dont call cb anymore
547
- }
548
-
549
- request.onerror = function () {
550
- cb && cb(request.responseText, -1) // network error
551
- cb = undefined // dont call cb anymore
552
- }
553
-
554
- request.open(method, url)
555
- if (body) request.setRequestHeader('content-type', 'text/plain')
556
- request.send(body)
557
- }
558
-
559
- // JSON.parse without exeption
560
- // return undefined when parsing invalid JSON string
561
- function parseJSON(str) {
562
- try {
563
- return JSON.parse(str)
564
- } catch (e) {}
565
- }
566
-
567
- function Pubsub() {
568
- // holds all subscriptions for all topics
569
- // example {
570
- // topic1: [cb1, cb2],
571
- // topic2: [cb3, cb4],
572
- // }
573
- var listeners = {}
574
-
575
- // emit notifies any callback functions that previously
576
- // subscribed to the topic (by the on function)
577
- this.emit = function (topic) {
578
- // skip the first item in arguments, which is the topic
579
- var args = []
580
- for (var i = 1; i < arguments.length; i++) args.push(arguments[i])
581
-
582
- var cbs = listeners[topic]
583
- if (!cbs) return
584
- for (var i = 0; i < cbs.length; i++) cbs[i].apply(undefined, args)
585
- }
586
-
587
- // register a callback function for a topic
588
- // when something is sent to the topic (by the emit function),
589
- // the callback function will be called
590
- this.on = function (topic, cb) {
591
- if (!listeners[topic]) listeners[topic] = []
592
- listeners[topic].push(cb)
593
- }
594
- }
528
+ /***/ 8454:
529
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
595
530
 
596
- module.exports = {xhrsend, parseJSON, Pubsub}
531
+ module.exports = __webpack_require__(608)
597
532
 
598
533
 
599
534
  /***/ }),
@@ -602,7 +537,6 @@ module.exports = {xhrsend, parseJSON, Pubsub}
602
537
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
603
538
 
604
539
  var flow = __webpack_require__(3165)
605
- var {xhrsend, parseJSON, Pubsub} = __webpack_require__(2611)
606
540
 
607
541
  // Conn represents a realtime connection between an user and the realtime
608
542
  // server (https://rt-0.subiz.com)
@@ -816,6 +750,74 @@ function Realtime(apiUrls, credential, callAPI) {
816
750
  reconnect()
817
751
  }
818
752
 
753
+ var dofetch = function (method, url, body, cb) {
754
+ let headers = {}
755
+ if (body) headers['content-type'] = 'text/plain'
756
+ fetch(url, {
757
+ method: method,
758
+ headers: headers,
759
+ body: body,
760
+ })
761
+ .then((res) => res.text().then((text) => cb && cb(text, res.status)))
762
+ .catch((err) => cb && cb(err, -1))
763
+ }
764
+ // xhrsend sends an HTTP request
765
+ var xhrsend = function (method, url, body, cb) {
766
+ if (typeof XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb)
767
+ var request = new XMLHttpRequest()
768
+ request.onreadystatechange = function (e) {
769
+ if (request.readyState !== 4) return
770
+ cb && cb(request.responseText, request.status)
771
+ cb = undefined // dont call cb anymore
772
+ }
773
+
774
+ request.onerror = function () {
775
+ cb && cb(request.responseText, -1) // network error
776
+ cb = undefined // dont call cb anymore
777
+ }
778
+
779
+ request.open(method, url)
780
+ if (body) request.setRequestHeader('content-type', 'text/plain')
781
+ request.send(body)
782
+ }
783
+
784
+ // JSON.parse without exeption
785
+ // return undefined when parsing invalid JSON string
786
+ function parseJSON(str) {
787
+ try {
788
+ return JSON.parse(str)
789
+ } catch (e) {}
790
+ }
791
+
792
+ function Pubsub() {
793
+ // holds all subscriptions for all topics
794
+ // example {
795
+ // topic1: [cb1, cb2],
796
+ // topic2: [cb3, cb4],
797
+ // }
798
+ var listeners = {}
799
+
800
+ // emit notifies any callback functions that previously
801
+ // subscribed to the topic (by the on function)
802
+ this.emit = function (topic) {
803
+ // skip the first item in arguments, which is the topic
804
+ var args = []
805
+ for (var i = 1; i < arguments.length; i++) args.push(arguments[i])
806
+
807
+ var cbs = listeners[topic]
808
+ if (!cbs) return
809
+ for (var i = 0; i < cbs.length; i++) cbs[i].apply(undefined, args)
810
+ }
811
+
812
+ // register a callback function for a topic
813
+ // when something is sent to the topic (by the emit function),
814
+ // the callback function will be called
815
+ this.on = function (topic, cb) {
816
+ if (!listeners[topic]) listeners[topic] = []
817
+ listeners[topic].push(cb)
818
+ }
819
+ }
820
+
819
821
  // calcNextBackoff returns number of seconds we must wait
820
822
  // before sending a next request
821
823
  // the results is determind based on exponential backoff algorithm
@@ -860,7 +862,7 @@ module.exports = Realtime
860
862
 
861
863
  "use strict";
862
864
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
863
- /* harmony export */ Z: () => (/* binding */ Chain)
865
+ /* harmony export */ "Z": () => (/* binding */ Chain)
864
866
  /* harmony export */ });
865
867
  const ChainMaxSize = 50;
866
868
  class Chain {
@@ -932,7 +934,9 @@ class Chain {
932
934
  });
933
935
  return out;
934
936
  }
935
- async fetchMore(chain, limit = 20, api) {
937
+ async fetchMore(chain) {
938
+ let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
939
+ let api = arguments.length > 2 ? arguments[2] : undefined;
936
940
  if (this.dead) return {
937
941
  error: 'dead'
938
942
  };
@@ -1090,7 +1094,7 @@ function orderBy(a, k, d) {
1090
1094
 
1091
1095
  "use strict";
1092
1096
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1093
- /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
1097
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1094
1098
  /* harmony export */ });
1095
1099
  var localStorageMemory = {};
1096
1100
  var cache = {};
@@ -1125,7 +1129,7 @@ localStorageMemory.clear = function () {
1125
1129
 
1126
1130
  "use strict";
1127
1131
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1128
- /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
1132
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1129
1133
  /* harmony export */ });
1130
1134
  let KvMaxSize = 500;
1131
1135
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (class {
@@ -1214,7 +1218,7 @@ let KvMaxSize = 500;
1214
1218
 
1215
1219
  "use strict";
1216
1220
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1217
- /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
1221
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1218
1222
  /* harmony export */ });
1219
1223
  let memlocalStorage = (__webpack_require__(9489)/* ["default"] */ .Z);
1220
1224
  let requestIdleCallback = window.requestIdleCallback || (cb => cb());
@@ -1282,11 +1286,11 @@ function toString(obj) {
1282
1286
 
1283
1287
  "use strict";
1284
1288
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1285
- /* harmony export */ Kd: () => (/* binding */ getLocale),
1286
- /* harmony export */ Rs: () => (/* binding */ langMessages),
1287
- /* harmony export */ WW: () => (/* binding */ downloadLanguage),
1288
- /* harmony export */ u$: () => (/* binding */ Clickaway),
1289
- /* harmony export */ up: () => (/* binding */ Com)
1289
+ /* harmony export */ "Kd": () => (/* binding */ getLocale),
1290
+ /* harmony export */ "Rs": () => (/* binding */ langMessages),
1291
+ /* harmony export */ "WW": () => (/* binding */ downloadLanguage),
1292
+ /* harmony export */ "u$": () => (/* binding */ Clickaway),
1293
+ /* harmony export */ "up": () => (/* binding */ Com)
1290
1294
  /* harmony export */ });
1291
1295
  /* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6400);
1292
1296
  /* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4494);
@@ -1296,7 +1300,7 @@ class Com extends preact__WEBPACK_IMPORTED_MODULE_0__/* .Component */ .wA {
1296
1300
  constructor(props) {
1297
1301
  super(props);
1298
1302
  this._isMounted = true;
1299
- _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setTimeout(() => {
1303
+ _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"].setTimeout */ .Z.setTimeout(() => {
1300
1304
  if (this.componentWillUnmount) {
1301
1305
  let old = this.componentWillUnmount.bind(this);
1302
1306
  this.componentWillUnmount = () => {
@@ -1335,9 +1339,9 @@ class Clickaway extends Com {
1335
1339
  }
1336
1340
  const getLocale = (plugin, loc) => {
1337
1341
  if (!loc) loc = '';
1338
- let found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.find(plugin.locales, l => l.toLowerCase().trim() === loc.toLowerCase().trim());
1342
+ let found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"].find */ .Z.find(plugin.locales, l => l.toLowerCase().trim() === loc.toLowerCase().trim());
1339
1343
  if (found) return found;
1340
- found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.find(plugin.locales, l => {
1344
+ found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"].find */ .Z.find(plugin.locales, l => {
1341
1345
  l = l.replace('-', '_').split('_')[0].trim().toLowerCase();
1342
1346
  let compareloc = loc.replace('-', '_').split('_')[0].trim().toLowerCase();
1343
1347
  return l == compareloc;
@@ -1348,7 +1352,7 @@ const getLocale = (plugin, loc) => {
1348
1352
  let langMessages = {};
1349
1353
  let downloadLock = false;
1350
1354
  function downloadLanguage(store, locale, force) {
1351
- if (downloadLock) return new Promise(resolve => _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setTimeout(() => downloadLanguage(store, locale, force).then(resolve), 100));
1355
+ if (downloadLock) return new Promise(resolve => _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"].setTimeout */ .Z.setTimeout(() => downloadLanguage(store, locale, force).then(resolve), 100));
1352
1356
  downloadLock = true;
1353
1357
  let messages;
1354
1358
  if (locale === 'debug' || langMessages[locale] && !force) {
@@ -1357,7 +1361,7 @@ function downloadLanguage(store, locale, force) {
1357
1361
  }
1358
1362
  return store.getLocaleContent(locale).then(res => {
1359
1363
  downloadLock = false;
1360
- messages = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.get(res, 'body.messages', []);
1364
+ messages = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"].get */ .Z.get(res, 'body.messages', []);
1361
1365
  langMessages[locale] = messages;
1362
1366
  });
1363
1367
  }
@@ -1370,73 +1374,73 @@ function downloadLanguage(store, locale, force) {
1370
1374
  "use strict";
1371
1375
  __webpack_require__.r(__webpack_exports__);
1372
1376
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1373
- /* harmony export */ DEFVAL: () => (/* binding */ DEFVAL),
1374
- /* harmony export */ DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL: () => (/* binding */ DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL),
1375
- /* harmony export */ Date: () => (/* binding */ Date),
1376
- /* harmony export */ XMLHttpRequest: () => (/* binding */ XMLHttpRequest),
1377
- /* harmony export */ agentsOfConvo: () => (/* binding */ agentsOfConvo),
1378
- /* harmony export */ checkRunConditions: () => (/* binding */ checkRunConditions),
1379
- /* harmony export */ clearInterval: () => (/* binding */ clearInterval),
1380
- /* harmony export */ clearTimeout: () => (/* binding */ clearTimeout),
1381
- /* harmony export */ cloneDeep: () => (/* binding */ cloneDeep),
1382
- /* harmony export */ convoOfEv: () => (/* binding */ convoOfEv),
1383
- /* harmony export */ convoToEv: () => (/* binding */ convoToEv),
1384
- /* harmony export */ detectLang: () => (/* binding */ detectLang),
1385
- /* harmony export */ diffDay: () => (/* binding */ diffDay),
1386
- /* harmony export */ diffYear: () => (/* binding */ diffYear),
1387
- /* harmony export */ each: () => (/* binding */ each),
1388
- /* harmony export */ filter: () => (/* binding */ filter),
1389
- /* harmony export */ find: () => (/* binding */ find),
1390
- /* harmony export */ formatCurrency: () => (/* binding */ formatCurrency),
1391
- /* harmony export */ getAgentDisplayName: () => (/* binding */ getAgentDisplayName),
1392
- /* harmony export */ getDayName: () => (/* binding */ getDayName),
1393
- /* harmony export */ getMs: () => (/* binding */ getMs),
1394
- /* harmony export */ getMsgField: () => (/* binding */ getMsgField),
1395
- /* harmony export */ getUrlParameter: () => (/* binding */ getUrlParameter),
1396
- /* harmony export */ getUserAttr: () => (/* binding */ getUserAttr),
1397
- /* harmony export */ includes: () => (/* binding */ includes),
1398
- /* harmony export */ isConvoSeen: () => (/* binding */ isConvoSeen),
1399
- /* harmony export */ isEmail: () => (/* binding */ isEmail),
1400
- /* harmony export */ isNumber: () => (/* binding */ isNumber),
1401
- /* harmony export */ isPhone: () => (/* binding */ isPhone),
1402
- /* harmony export */ isURL: () => (/* binding */ isURL),
1403
- /* harmony export */ isUserBanned: () => (/* binding */ isUserBanned),
1404
- /* harmony export */ js2css: () => (/* binding */ js2css),
1405
- /* harmony export */ last: () => (/* binding */ last),
1406
- /* harmony export */ map: () => (/* binding */ map),
1407
- /* harmony export */ merge: () => (/* binding */ merge),
1408
- /* harmony export */ noop: () => (/* binding */ noop),
1409
- /* harmony export */ norm: () => (/* binding */ norm),
1410
- /* harmony export */ offsetToMin: () => (/* binding */ offsetToMin),
1411
- /* harmony export */ orderBy: () => (/* binding */ orderBy),
1412
- /* harmony export */ orderByF: () => (/* binding */ orderByF),
1413
- /* harmony export */ parseJSON: () => (/* binding */ parseJSON),
1414
- /* harmony export */ preloadImg: () => (/* binding */ preloadImg),
1415
- /* harmony export */ preloadWebfonts: () => (/* binding */ preloadWebfonts),
1416
- /* harmony export */ randomString: () => (/* binding */ randomString),
1417
- /* harmony export */ replaceAll: () => (/* binding */ replaceAll),
1418
- /* harmony export */ replaceCssVariable: () => (/* binding */ replaceCssVariable),
1419
- /* harmony export */ replaceCssVariablePlugin: () => (/* binding */ replaceCssVariablePlugin),
1420
- /* harmony export */ requestAnimationFrame: () => (/* binding */ requestAnimationFrame),
1421
- /* harmony export */ sameDay: () => (/* binding */ sameDay),
1422
- /* harmony export */ scrollIntoViewIfNeeded: () => (/* binding */ scrollIntoViewIfNeeded),
1423
- /* harmony export */ setCss: () => (/* binding */ setCss),
1424
- /* harmony export */ setInterval: () => (/* binding */ setInterval),
1425
- /* harmony export */ setMsgField: () => (/* binding */ setMsgField),
1426
- /* harmony export */ setTimeout: () => (/* binding */ setTimeout),
1427
- /* harmony export */ setUserAttr: () => (/* binding */ setUserAttr),
1428
- /* harmony export */ shortTime: () => (/* binding */ shortTime),
1429
- /* harmony export */ size: () => (/* binding */ size),
1430
- /* harmony export */ sleep: () => (/* binding */ sleep),
1431
- /* harmony export */ startsWith: () => (/* binding */ startsWith),
1432
- /* harmony export */ stringify: () => (/* binding */ stringify),
1433
- /* harmony export */ throttle: () => (/* binding */ throttle),
1434
- /* harmony export */ tokenize: () => (/* binding */ tokenize),
1435
- /* harmony export */ trim: () => (/* binding */ trim),
1436
- /* harmony export */ trimStart: () => (/* binding */ trimStart),
1437
- /* harmony export */ unicodeToAscii: () => (/* binding */ unicodeToAscii),
1438
- /* harmony export */ unixSec: () => (/* binding */ unixSec),
1439
- /* harmony export */ usersOfConvo: () => (/* binding */ usersOfConvo)
1377
+ /* harmony export */ "DEFVAL": () => (/* binding */ DEFVAL),
1378
+ /* harmony export */ "DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL": () => (/* binding */ DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL),
1379
+ /* harmony export */ "Date": () => (/* binding */ Date),
1380
+ /* harmony export */ "XMLHttpRequest": () => (/* binding */ XMLHttpRequest),
1381
+ /* harmony export */ "agentsOfConvo": () => (/* binding */ agentsOfConvo),
1382
+ /* harmony export */ "checkRunConditions": () => (/* binding */ checkRunConditions),
1383
+ /* harmony export */ "clearInterval": () => (/* binding */ clearInterval),
1384
+ /* harmony export */ "clearTimeout": () => (/* binding */ clearTimeout),
1385
+ /* harmony export */ "cloneDeep": () => (/* binding */ cloneDeep),
1386
+ /* harmony export */ "convoOfEv": () => (/* binding */ convoOfEv),
1387
+ /* harmony export */ "convoToEv": () => (/* binding */ convoToEv),
1388
+ /* harmony export */ "detectLang": () => (/* binding */ detectLang),
1389
+ /* harmony export */ "diffDay": () => (/* binding */ diffDay),
1390
+ /* harmony export */ "diffYear": () => (/* binding */ diffYear),
1391
+ /* harmony export */ "each": () => (/* binding */ each),
1392
+ /* harmony export */ "filter": () => (/* binding */ filter),
1393
+ /* harmony export */ "find": () => (/* binding */ find),
1394
+ /* harmony export */ "formatCurrency": () => (/* binding */ formatCurrency),
1395
+ /* harmony export */ "getAgentDisplayName": () => (/* binding */ getAgentDisplayName),
1396
+ /* harmony export */ "getDayName": () => (/* binding */ getDayName),
1397
+ /* harmony export */ "getMs": () => (/* binding */ getMs),
1398
+ /* harmony export */ "getMsgField": () => (/* binding */ getMsgField),
1399
+ /* harmony export */ "getUrlParameter": () => (/* binding */ getUrlParameter),
1400
+ /* harmony export */ "getUserAttr": () => (/* binding */ getUserAttr),
1401
+ /* harmony export */ "includes": () => (/* binding */ includes),
1402
+ /* harmony export */ "isConvoSeen": () => (/* binding */ isConvoSeen),
1403
+ /* harmony export */ "isEmail": () => (/* binding */ isEmail),
1404
+ /* harmony export */ "isNumber": () => (/* binding */ isNumber),
1405
+ /* harmony export */ "isPhone": () => (/* binding */ isPhone),
1406
+ /* harmony export */ "isURL": () => (/* binding */ isURL),
1407
+ /* harmony export */ "isUserBanned": () => (/* binding */ isUserBanned),
1408
+ /* harmony export */ "js2css": () => (/* binding */ js2css),
1409
+ /* harmony export */ "last": () => (/* binding */ last),
1410
+ /* harmony export */ "map": () => (/* binding */ map),
1411
+ /* harmony export */ "merge": () => (/* binding */ merge),
1412
+ /* harmony export */ "noop": () => (/* binding */ noop),
1413
+ /* harmony export */ "norm": () => (/* binding */ norm),
1414
+ /* harmony export */ "offsetToMin": () => (/* binding */ offsetToMin),
1415
+ /* harmony export */ "orderBy": () => (/* binding */ orderBy),
1416
+ /* harmony export */ "orderByF": () => (/* binding */ orderByF),
1417
+ /* harmony export */ "parseJSON": () => (/* binding */ parseJSON),
1418
+ /* harmony export */ "preloadImg": () => (/* binding */ preloadImg),
1419
+ /* harmony export */ "preloadWebfonts": () => (/* binding */ preloadWebfonts),
1420
+ /* harmony export */ "randomString": () => (/* binding */ randomString),
1421
+ /* harmony export */ "replaceAll": () => (/* binding */ replaceAll),
1422
+ /* harmony export */ "replaceCssVariable": () => (/* binding */ replaceCssVariable),
1423
+ /* harmony export */ "replaceCssVariablePlugin": () => (/* binding */ replaceCssVariablePlugin),
1424
+ /* harmony export */ "requestAnimationFrame": () => (/* binding */ requestAnimationFrame),
1425
+ /* harmony export */ "sameDay": () => (/* binding */ sameDay),
1426
+ /* harmony export */ "scrollIntoViewIfNeeded": () => (/* binding */ scrollIntoViewIfNeeded),
1427
+ /* harmony export */ "setCss": () => (/* binding */ setCss),
1428
+ /* harmony export */ "setInterval": () => (/* binding */ setInterval),
1429
+ /* harmony export */ "setMsgField": () => (/* binding */ setMsgField),
1430
+ /* harmony export */ "setTimeout": () => (/* binding */ setTimeout),
1431
+ /* harmony export */ "setUserAttr": () => (/* binding */ setUserAttr),
1432
+ /* harmony export */ "shortTime": () => (/* binding */ shortTime),
1433
+ /* harmony export */ "size": () => (/* binding */ size),
1434
+ /* harmony export */ "sleep": () => (/* binding */ sleep),
1435
+ /* harmony export */ "startsWith": () => (/* binding */ startsWith),
1436
+ /* harmony export */ "stringify": () => (/* binding */ stringify),
1437
+ /* harmony export */ "throttle": () => (/* binding */ throttle),
1438
+ /* harmony export */ "tokenize": () => (/* binding */ tokenize),
1439
+ /* harmony export */ "trim": () => (/* binding */ trim),
1440
+ /* harmony export */ "trimStart": () => (/* binding */ trimStart),
1441
+ /* harmony export */ "unicodeToAscii": () => (/* binding */ unicodeToAscii),
1442
+ /* harmony export */ "unixSec": () => (/* binding */ unixSec),
1443
+ /* harmony export */ "usersOfConvo": () => (/* binding */ usersOfConvo)
1440
1444
  /* harmony export */ });
1441
1445
  var op = __webpack_require__(6877);
1442
1446
  function parseJSON(str) {
@@ -1523,7 +1527,10 @@ function getMsgField(ev, fieldName) {
1523
1527
  function isObject(item) {
1524
1528
  return item && typeof item === 'object' && !Array.isArray(item);
1525
1529
  }
1526
- function merge(target, ...sources) {
1530
+ function merge(target) {
1531
+ for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1532
+ sources[_key - 1] = arguments[_key];
1533
+ }
1527
1534
  if (!sources.length) return target;
1528
1535
  const source = sources.shift();
1529
1536
  if (isObject(target) && isObject(source)) {
@@ -2086,9 +2093,9 @@ function checkRunConditions(freq, conds, lastrun, store) {
2086
2093
  break;
2087
2094
  case 'user_is_a_contact':
2088
2095
  let attributes = op.get(store.matchUser(), 'attributes', []);
2089
- let email = find(attributes, att => att.key === 'emails');
2090
- let phone = find(attributes, att => att.key === 'phones');
2091
- let hasContact = email || phone;
2096
+ let emailAttr = find(attributes, att => att.key === 'emails') || {};
2097
+ let phoneAttr = find(attributes, att => att.key === 'phones') || {};
2098
+ let hasContact = emailAttr.text || phoneAttr.text;
2092
2099
  if (cond.user_is_a_contact) {
2093
2100
  if (!hasContact) return false;
2094
2101
  }
@@ -2321,7 +2328,8 @@ function getUrlParameter() {
2321
2328
  return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
2322
2329
  }
2323
2330
  var sleep = ms => new Promise(res => setTimeout(res, ms));
2324
- function formatCurrency(val, currency = 'VND') {
2331
+ function formatCurrency(val) {
2332
+ let currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'VND';
2325
2333
  let currencyObj = ALL_CURRENCIES.find(cur => cur.code === currency) || {
2326
2334
  name: 'Dong',
2327
2335
  code: 'VND',
@@ -3041,7 +3049,7 @@ const ALL_CURRENCIES = [{
3041
3049
 
3042
3050
  "use strict";
3043
3051
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3044
- /* harmony export */ Z: () => (/* binding */ Gate)
3052
+ /* harmony export */ "Z": () => (/* binding */ Gate)
3045
3053
  /* harmony export */ });
3046
3054
  class Gate {
3047
3055
  constructor(isOpen) {
@@ -3084,41 +3092,41 @@ class Gate {
3084
3092
 
3085
3093
  // EXPORTS
3086
3094
  __webpack_require__.d(__webpack_exports__, {
3087
- Z: () => (/* binding */ util)
3095
+ "Z": () => (/* binding */ util)
3088
3096
  });
3089
3097
 
3090
3098
  // NAMESPACE OBJECT: ./src/util/extractor.js
3091
3099
  var extractor_namespaceObject = {};
3092
3100
  __webpack_require__.r(extractor_namespaceObject);
3093
3101
  __webpack_require__.d(extractor_namespaceObject, {
3094
- extract: () => (extract),
3095
- extractEmails: () => (extractEmails),
3096
- extractEmojis: () => (extractEmojis),
3097
- extractLinks: () => (extractLinks),
3098
- extractPhones: () => (extractPhones),
3099
- extractText: () => (extractText),
3100
- pipeExtracts: () => (pipeExtracts)
3102
+ "extract": () => (extract),
3103
+ "extractEmails": () => (extractEmails),
3104
+ "extractEmojis": () => (extractEmojis),
3105
+ "extractLinks": () => (extractLinks),
3106
+ "extractPhones": () => (extractPhones),
3107
+ "extractText": () => (extractText),
3108
+ "pipeExtracts": () => (pipeExtracts)
3101
3109
  });
3102
3110
 
3103
3111
  // NAMESPACE OBJECT: ./src/util/campaign.js
3104
3112
  var campaign_namespaceObject = {};
3105
3113
  __webpack_require__.r(campaign_namespaceObject);
3106
3114
  __webpack_require__.d(campaign_namespaceObject, {
3107
- trackAreaClicked: () => (trackAreaClicked),
3108
- trackExitIntent: () => (trackExitIntent),
3109
- trackInactivity: () => (trackInactivity),
3110
- trackScrollingPercentage: () => (trackScrollingPercentage),
3111
- trackTimeOnPage: () => (trackTimeOnPage)
3115
+ "trackAreaClicked": () => (trackAreaClicked),
3116
+ "trackExitIntent": () => (trackExitIntent),
3117
+ "trackInactivity": () => (trackInactivity),
3118
+ "trackScrollingPercentage": () => (trackScrollingPercentage),
3119
+ "trackTimeOnPage": () => (trackTimeOnPage)
3112
3120
  });
3113
3121
 
3114
3122
  // NAMESPACE OBJECT: ./src/util/order.js
3115
3123
  var order_namespaceObject = {};
3116
3124
  __webpack_require__.r(order_namespaceObject);
3117
3125
  __webpack_require__.d(order_namespaceObject, {
3118
- calcOrderTotal: () => (calcOrderTotal),
3119
- displayOrderShippingAddress: () => (displayOrderShippingAddress),
3120
- getOrderDisplayName: () => (getOrderDisplayName),
3121
- getProductPropName: () => (getProductPropName)
3126
+ "calcOrderTotal": () => (calcOrderTotal),
3127
+ "displayOrderShippingAddress": () => (displayOrderShippingAddress),
3128
+ "getOrderDisplayName": () => (getOrderDisplayName),
3129
+ "getProductPropName": () => (getProductPropName)
3122
3130
  });
3123
3131
 
3124
3132
  // EXTERNAL MODULE: ./src/util/common.js
@@ -3278,7 +3286,9 @@ function trackAreaClicked(selector, cb) {
3278
3286
  on('click', selector, cb);
3279
3287
  });
3280
3288
  }
3281
- function trackInactivity(seconds = 0, cb) {
3289
+ function trackInactivity() {
3290
+ let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
3291
+ let cb = arguments.length > 1 ? arguments[1] : undefined;
3282
3292
  let events = ['scroll', 'keyup', 'keydown', 'mousemove', 'mousewheel', 'mouseenter', 'mouseover', 'mousedown', 'touchstart', 'touchmove', 'touchenter'];
3283
3293
  let inactiveSeconds = 0;
3284
3294
  let resetTime = () => {
@@ -3301,7 +3311,9 @@ let timeOnPage = 0;
3301
3311
  campaign_common.setInterval(() => {
3302
3312
  timeOnPage += 5;
3303
3313
  }, 5000);
3304
- function trackTimeOnPage(seconds = 0, cb) {
3314
+ function trackTimeOnPage() {
3315
+ let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
3316
+ let cb = arguments.length > 1 ? arguments[1] : undefined;
3305
3317
  if (seconds < 1) {
3306
3318
  return campaign_common.setTimeout(function () {
3307
3319
  cb(seconds);
@@ -3337,7 +3349,8 @@ op.map = order_common.map;
3337
3349
  op.each = order_common.each;
3338
3350
  op.size = order_common.size;
3339
3351
  op.find = order_common.find;
3340
- function getProductPropName(product, seperator = ' - ') {
3352
+ function getProductPropName(product) {
3353
+ let seperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' - ';
3341
3354
  let options = op.get(product, 'options', []);
3342
3355
  let props = op.get(product, 'props', []);
3343
3356
  let multiPropsOptions = op.filter(options, option => op.size(option.values) > 1);
@@ -3348,7 +3361,8 @@ function getProductPropName(product, seperator = ' - ') {
3348
3361
  });
3349
3362
  return names.join(seperator);
3350
3363
  }
3351
- function getOrderDisplayName(order = {}) {
3364
+ function getOrderDisplayName() {
3365
+ let order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3352
3366
  return order.number || order.id || '';
3353
3367
  }
3354
3368
  function displayOrderShippingAddress(order, isShorten) {
@@ -3458,7 +3472,7 @@ sb = Object.assign(sb, order_namespaceObject);
3458
3472
 
3459
3473
  "use strict";
3460
3474
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3461
- /* harmony export */ Z: () => (/* binding */ Mutex)
3475
+ /* harmony export */ "Z": () => (/* binding */ Mutex)
3462
3476
  /* harmony export */ });
3463
3477
  class Mutex {
3464
3478
  constructor() {
@@ -3493,8 +3507,8 @@ class Mutex {
3493
3507
  "use strict";
3494
3508
  __webpack_require__.r(__webpack_exports__);
3495
3509
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3496
- /* harmony export */ get: () => (/* binding */ get),
3497
- /* harmony export */ set: () => (/* binding */ set)
3510
+ /* harmony export */ "get": () => (/* binding */ get),
3511
+ /* harmony export */ "set": () => (/* binding */ set)
3498
3512
  /* harmony export */ });
3499
3513
  var toStr = Object.prototype.toString;
3500
3514
  var isArray = Array.isArray || function (obj) {
@@ -3552,7 +3566,7 @@ function set(obj, path, value) {
3552
3566
 
3553
3567
  "use strict";
3554
3568
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3555
- /* harmony export */ Z: () => (/* binding */ Pubsub)
3569
+ /* harmony export */ "Z": () => (/* binding */ Pubsub)
3556
3570
  /* harmony export */ });
3557
3571
  var {
3558
3572
  filter,
@@ -3564,9 +3578,12 @@ class Pubsub {
3564
3578
  }
3565
3579
  publish(topic, payload, payload2, payload3) {
3566
3580
  this.listeners[topic] = filter(this.listeners[topic], sub => sub.obj._isMounted);
3567
- map(this.listeners[topic], ({
3568
- cb
3569
- }) => cb(payload, payload2, payload3));
3581
+ map(this.listeners[topic], _ref => {
3582
+ let {
3583
+ cb
3584
+ } = _ref;
3585
+ return cb(payload, payload2, payload3);
3586
+ });
3570
3587
  }
3571
3588
  on2(obj, topic, cb) {
3572
3589
  if (!this.listeners[topic]) this.listeners[topic] = [];
@@ -3771,14 +3788,14 @@ class Pubsub {
3771
3788
 
3772
3789
  "use strict";
3773
3790
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3774
- /* harmony export */ HY: () => (/* binding */ k),
3775
- /* harmony export */ Vf: () => (/* binding */ _),
3776
- /* harmony export */ h: () => (/* binding */ y),
3777
- /* harmony export */ sY: () => (/* binding */ D),
3778
- /* harmony export */ wA: () => (/* binding */ b)
3791
+ /* harmony export */ "HY": () => (/* binding */ p),
3792
+ /* harmony export */ "Vf": () => (/* binding */ y),
3793
+ /* harmony export */ "h": () => (/* binding */ h),
3794
+ /* harmony export */ "sY": () => (/* binding */ P),
3795
+ /* harmony export */ "wA": () => (/* binding */ d)
3779
3796
  /* harmony export */ });
3780
3797
  /* unused harmony exports cloneElement, createContext, createElement, hydrate, isValidElement, options, toChildArray */
3781
- var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h=Array.isArray;function v(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function _(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function g(n,l){if(null==l)return n.__?g(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?g(n):null}function m(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return m(n)}}function w(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!x.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(x)}function x(){var n,l,u,t,o,r,e,c,s;for(i.sort(f);n=i.shift();)n.__d&&(l=i.length,t=void 0,o=void 0,r=void 0,c=(e=(u=n).__v).__e,(s=u.__P)&&(t=[],o=[],(r=v({},e)).__v=e.__v+1,L(s,e,r,u.__n,void 0!==s.ownerSVGElement,null!=e.__h?[c]:null,t,null==c?g(e):c,e.__h,o),M(t,e,o),e.__e!=c&&m(e)),i.length>l&&i.sort(f));x.__r=0}function P(n,l,u,t,i,o,r,f,e,a,v){var p,y,_,b,g,m,w,x,P,S,H=0,I=t&&t.__k||s,T=I.length,j=T,z=l.length;for(u.__k=[],p=0;p<z;p++)null!=(b=u.__k[p]=null==(b=l[p])||"boolean"==typeof b||"function"==typeof b?null:"string"==typeof b||"number"==typeof b||"bigint"==typeof b?d(null,b,null,null,b):h(b)?d(k,{children:b},null,null,null):b.__b>0?d(b.type,b.props,b.key,b.ref?b.ref:null,b.__v):b)&&(b.__=u,b.__b=u.__b+1,-1===(x=A(b,I,w=p+H,j))?_=c:(_=I[x]||c,I[x]=void 0,j--),L(n,b,_,i,o,r,f,e,a,v),g=b.__e,(y=b.ref)&&_.ref!=y&&(_.ref&&O(_.ref,null,b),v.push(y,b.__c||g,b)),null!=g&&(null==m&&(m=g),S=!(P=_===c||null===_.__v)&&x===w,P?-1==x&&H--:x!==w&&(x===w+1?(H++,S=!0):x>w?j>z-w?(H+=x-w,S=!0):H--:H=x<w&&x==w-1?x-w:0),w=p+H,S=S||x==p&&!P,"function"!=typeof b.type||x===w&&_.__k!==b.__k?"function"==typeof b.type||S?void 0!==b.__d?(e=b.__d,b.__d=void 0):e=g.nextSibling:e=$(n,g,e):e=C(b,e,n),"function"==typeof u.type&&(u.__d=e)));for(u.__e=m,p=T;p--;)null!=I[p]&&("function"==typeof u.type&&null!=I[p].__e&&I[p].__e==u.__d&&(u.__d=I[p].__e.nextSibling),q(I[p],I[p]))}function C(n,l,u){for(var t,i=n.__k,o=0;i&&o<i.length;o++)(t=i[o])&&(t.__=n,l="function"==typeof t.type?C(t,l,u):$(u,t.__e,l));return l}function S(n,l){return l=l||[],null==n||"boolean"==typeof n||(h(n)?n.some(function(n){S(n,l)}):l.push(n)),l}function $(n,l,u){return null==u||u.parentNode!==n?n.insertBefore(l,null):l==u&&null!=l.parentNode||n.insertBefore(l,u),l.nextSibling}function A(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type)return u;if(t>(null!=e?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&i==e.key&&o===e.type)return f;f++}}return-1}function H(n,l,u,t,i){var o;for(o in u)"children"===o||"key"===o||o in l||T(n,o,null,u[o],t);for(o in l)i&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||T(n,o,l[o],u[o],t)}function I(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||a.test(l)?u:u+"px"}function T(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||I(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||I(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t||n.addEventListener(l,o?z:j,o):n.removeEventListener(l,o?z:j,o);else if("dangerouslySetInnerHTML"!==l){if(i)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==l&&"height"!==l&&"href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&"rowSpan"!==l&&"colSpan"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&"-"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function j(n){return this.l[n.type+!1](l.event?l.event(n):n)}function z(n){return this.l[n.type+!0](l.event?l.event(n):n)}function L(n,u,t,i,o,r,f,e,c,s){var a,p,y,d,_,g,m,w,x,C,S,$,A,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=t.__h&&(c=t.__h,e=u.__e=t.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if("function"==typeof T){if(w=u.props,x=(a=T.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?m=(p=u.__c=t.__c).__=p.__E:("prototype"in T&&T.prototype.render?u.__c=p=new T(w,C):(u.__c=p=new b(w,C),p.constructor=T,p.render=B),x&&x.sub(p),p.props=w,p.state||(p.state={}),p.context=C,p.__n=i,y=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=T.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=v({},p.__s)),v(p.__s,T.getDerivedStateFromProps(w,p.__s))),d=p.props,_=p.state,p.__v=u,y)null==T.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==T.getDerivedStateFromProps&&w!==d&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(w,C),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(w,p.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v&&(p.props=w,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),S=0;S<p._sb.length;S++)p.__h.push(p._sb[S]);p._sb=[],p.__h.length&&f.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(w,p.__s,C),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(d,_,g)})}if(p.context=C,p.props=w,p.__P=n,p.__e=!1,$=l.__r,A=0,"prototype"in T&&T.prototype.render){for(p.state=p.__s,p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),H=0;H<p._sb.length;H++)p.__h.push(p._sb[H]);p._sb=[]}else do{p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++A<25);p.state=p.__s,null!=p.getChildContext&&(i=v(v({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(g=p.getSnapshotBeforeUpdate(d,_)),P(n,h(I=null!=a&&a.type===k&&null==a.key?a.props.children:a)?I:[I],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__h=null,p.__h.length&&f.push(p),m&&(p.__E=p.__=null)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=N(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,t)}}function M(n,u,t){for(var i=0;i<t.length;i++)O(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(l,u,t,i,o,r,f,e,s){var a,v,y,d=t.props,_=u.props,k=u.type,b=0;if("svg"===k&&(o=!0),null!=r)for(;b<r.length;b++)if((a=r[b])&&"setAttribute"in a==!!k&&(k?a.localName===k:3===a.nodeType)){l=a,r[b]=null;break}if(null==l){if(null===k)return document.createTextNode(_);l=o?document.createElementNS("http://www.w3.org/2000/svg",k):document.createElement(k,_.is&&_),r=null,e=!1}if(null===k)d===_||e&&l.data===_||(l.data=_);else{if(r=r&&n.call(l.childNodes),v=(d=t.props||c).dangerouslySetInnerHTML,y=_.dangerouslySetInnerHTML,!e){if(null!=r)for(d={},b=0;b<l.attributes.length;b++)d[l.attributes[b].name]=l.attributes[b].value;(y||v)&&(y&&(v&&y.__html==v.__html||y.__html===l.innerHTML)||(l.innerHTML=y&&y.__html||""))}if(H(l,_,d,o,e),y)u.__k=[];else if(P(l,h(b=u.props.children)?b:[b],u,t,i,o&&"foreignObject"!==k,r,f,r?r[0]:t.__k&&g(t,0),e,s),null!=r)for(b=r.length;b--;)null!=r[b]&&p(r[b]);e||("value"in _&&void 0!==(b=_.value)&&(b!==l.value||"progress"===k&&!b||"option"===k&&b!==d.value)&&T(l,"value",b,d.value,!1),"checked"in _&&void 0!==(b=_.checked)&&b!==l.checked&&T(l,"checked",b,d.checked,!1))}return l}function O(n,u,t){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function q(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||O(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null,n.__c=void 0}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&q(i[o],u,t||"function"!=typeof n.type);t||null==n.__e||p(n.__e),n.__=n.__e=n.__d=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,t,i){var o,r,f,e;l.__&&l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],L(t,u=(!o&&i||t).__k=y(k,null,[u]),r||c,c,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),M(f,u,e)}function E(n,l){D(n,l,E)}function F(l,u,t){var i,o,r,f,e=v({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)"key"==r?i=u[r]:"ref"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),d(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l="__cC"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,w(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),"function"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),w(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),w(this))},b.prototype.render=k,i=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},x.__r=0,e=0;
3798
+ var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,"checked",k,y.checked,!1))}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a(n.__e),n.__=n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l="__cC"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;
3782
3799
  //# sourceMappingURL=preact.module.js.map
3783
3800
 
3784
3801
 
@@ -3890,7 +3907,6 @@ var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine
3890
3907
  /******/ script.setAttribute("nonce", __webpack_require__.nc);
3891
3908
  /******/ }
3892
3909
  /******/ script.setAttribute("data-webpack", dataWebpackPrefix + key);
3893
- /******/
3894
3910
  /******/ script.src = url;
3895
3911
  /******/ }
3896
3912
  /******/ inProgress[url] = [done];
@@ -3903,7 +3919,7 @@ var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine
3903
3919
  /******/ script.parentNode && script.parentNode.removeChild(script);
3904
3920
  /******/ doneFns && doneFns.forEach((fn) => (fn(event)));
3905
3921
  /******/ if(prev) return prev(event);
3906
- /******/ }
3922
+ /******/ };
3907
3923
  /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
3908
3924
  /******/ script.onerror = onScriptComplete.bind(null, script.onerror);
3909
3925
  /******/ script.onload = onScriptComplete.bind(null, script.onload);
@@ -3972,7 +3988,7 @@ var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine
3972
3988
  /******/ }
3973
3989
  /******/ };
3974
3990
  /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
3975
- /******/ }
3991
+ /******/ } else installedChunks[chunkId] = 0;
3976
3992
  /******/ }
3977
3993
  /******/ }
3978
3994
  /******/ };
@@ -4042,10 +4058,10 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
4042
4058
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4043
4059
 
4044
4060
  const ajax = __webpack_require__(7460);
4045
- ajax.env.XMLHttpRequest = util/* default */.Z.XMLHttpRequest;
4061
+ ajax.env.XMLHttpRequest = util/* default.XMLHttpRequest */.Z.XMLHttpRequest;
4046
4062
  function jsonifyTextPlain(param, done) {
4047
4063
  let req = param.request;
4048
- if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default */.Z.stringify(req.body);
4064
+ if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default.stringify */.Z.stringify(req.body);
4049
4065
  done(true);
4050
4066
  }
4051
4067
  /* harmony default export */ const api = (class {
@@ -4062,7 +4078,7 @@ function jsonifyTextPlain(param, done) {
4062
4078
  source: 'web'
4063
4079
  }
4064
4080
  };
4065
- util/* default */.Z.each(extraData, (v, k) => {
4081
+ util/* default.each */.Z.each(extraData, (v, k) => {
4066
4082
  data[k] = v;
4067
4083
  });
4068
4084
  return this.apireq.post(`/accounts/${this.accid}/conversations`, data);
@@ -4086,7 +4102,7 @@ function jsonifyTextPlain(param, done) {
4086
4102
  viewing_product_sku: sku,
4087
4103
  viewing_product_source_id: source_id,
4088
4104
  viewing_product_id: productid,
4089
- pinged: util/* default */.Z.Date.now(),
4105
+ pinged: util/* default.Date.now */.Z.Date.now(),
4090
4106
  is_focused: false
4091
4107
  }
4092
4108
  }
@@ -4146,7 +4162,7 @@ function jsonifyTextPlain(param, done) {
4146
4162
  _defineProperty(this, "suggest_address", keyword => this.apireq.setQuery({
4147
4163
  keyword: keyword
4148
4164
  }).get(`/accounts/${this.accid}/addresses`));
4149
- this.refreshLock = new util/* default */.Z.Mutex();
4165
+ this.refreshLock = new util/* default.Mutex */.Z.Mutex();
4150
4166
  this.FileURL = FileURL;
4151
4167
  this.ApiURL = ApiURL;
4152
4168
  this.apireq = ajax.setBaseUrl(ApiURL).withCredentials(true).addQuery('v', '6').setContentType('text/plain').beforeHook(jsonifyTextPlain).setParser('json').beforeHook((param, done) => {
@@ -4177,15 +4193,15 @@ function jsonifyTextPlain(param, done) {
4177
4193
  let outuser;
4178
4194
  for (let i = 0; true; i++) {
4179
4195
  outuser = await ajax.setBaseUrl(this.ApiURL).withCredentials(true).addQuery('v', '6').addQuery('x-user-ref', this.ref).setParser('json').get(`/accounts/${this.accid}/users/${this.ref}`);
4180
- if (!util/* default */.Z.get(outuser, 'body.id')) {
4196
+ if (!util/* default.get */.Z.get(outuser, 'body.id')) {
4181
4197
  let sleeptime = Math.min(2000 + i * 200, 60000);
4182
- await util/* default */.Z.sleep(sleeptime);
4198
+ await util/* default.sleep */.Z.sleep(sleeptime);
4183
4199
  continue;
4184
4200
  }
4185
4201
  break;
4186
4202
  }
4187
4203
  if (outuser.error) {
4188
- if (util/* default */.Z.get(outuser.body.code)) return {
4204
+ if (util/* default.get */.Z.get(outuser.body.code)) return {
4189
4205
  error: outuser.body.code
4190
4206
  };
4191
4207
  return outuser;
@@ -4198,7 +4214,7 @@ function jsonifyTextPlain(param, done) {
4198
4214
  this.tokensession = this.tokensession || 0;
4199
4215
  this.tokensession++;
4200
4216
  let tokensession = this.tokensession;
4201
- if (!this.accid || !util/* default */.Z.startsWith(this.accid, 'ac')) return {
4217
+ if (!this.accid || !util/* default.startsWith */.Z.startsWith(this.accid, 'ac')) return {
4202
4218
  error: 'invalid_account_id'
4203
4219
  };
4204
4220
  if (!this.profile_id) return {
@@ -4214,13 +4230,13 @@ function jsonifyTextPlain(param, done) {
4214
4230
  this.refreshLock.unlock();
4215
4231
  return;
4216
4232
  }
4217
- let age = (util/* default */.Z.Date.now() - (this.last_token_at || 0)) / 1000;
4233
+ let age = (util/* default.Date.now */.Z.Date.now() - (this.last_token_at || 0)) / 1000;
4218
4234
  if (!force && this.last_token && age < 1800) {
4219
4235
  this.refreshLock.unlock();
4220
4236
  return this.last_token;
4221
4237
  }
4222
4238
  if (!force && this.last_token && age < 3000) {
4223
- if (this.token_generator) util/* default */.Z.setTimeout(async () => {
4239
+ if (this.token_generator) util/* default.setTimeout */.Z.setTimeout(async () => {
4224
4240
  let token, err;
4225
4241
  try {
4226
4242
  token = await tokenGenerator(profile_id);
@@ -4232,7 +4248,7 @@ function jsonifyTextPlain(param, done) {
4232
4248
  return;
4233
4249
  }
4234
4250
  if (err) this.last_token = 'error';else this.last_token = token;
4235
- this.last_token_at = util/* default */.Z.Date.now();
4251
+ this.last_token_at = util/* default.Date.now */.Z.Date.now();
4236
4252
  this.refreshLock.unlock();
4237
4253
  });
4238
4254
  return this.last_token;
@@ -4249,7 +4265,7 @@ function jsonifyTextPlain(param, done) {
4249
4265
  return;
4250
4266
  }
4251
4267
  if (err) this.last_token = 'error';else this.last_token = token;
4252
- this.last_token_at = util/* default */.Z.Date.now();
4268
+ this.last_token_at = util/* default.Date.now */.Z.Date.now();
4253
4269
  this.refreshLock.unlock();
4254
4270
  return this.last_token;
4255
4271
  };
@@ -4258,15 +4274,15 @@ function jsonifyTextPlain(param, done) {
4258
4274
  await this.token_generator(true);
4259
4275
  if (tokensession != this.tokensession) break;
4260
4276
  outuser = await ajax.setBaseUrl(this.ApiURL).withCredentials(true).addQuery('v', '6').addQuery('x-access-token', this.last_token).setParser('json').get(`/accounts/${this.accid}/users/${profile_id}`);
4261
- if (!util/* default */.Z.get(outuser, 'body.id')) {
4277
+ if (!util/* default.get */.Z.get(outuser, 'body.id')) {
4262
4278
  let sleeptime = Math.min(2000 + i * 100, 120000);
4263
- await util/* default */.Z.sleep(sleeptime);
4279
+ await util/* default.sleep */.Z.sleep(sleeptime);
4264
4280
  continue;
4265
4281
  }
4266
4282
  break;
4267
4283
  }
4268
4284
  if (outuser.error) {
4269
- if (util/* default */.Z.get(outuser.body.code)) return {
4285
+ if (util/* default.get */.Z.get(outuser.body.code)) return {
4270
4286
  error: outuser.body.code
4271
4287
  };
4272
4288
  return outuser;
@@ -4317,7 +4333,7 @@ api_fake_ajax.env.XMLHttpRequest = window.XMLHttpRequest;
4317
4333
  const findAnswer = challenge => challenge.answer;
4318
4334
  function api_fake_jsonifyTextPlain(param, done) {
4319
4335
  let req = param.request;
4320
- if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default */.Z.stringify(req.body);
4336
+ if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default.stringify */.Z.stringify(req.body);
4321
4337
  done(true);
4322
4338
  }
4323
4339
  const OK200 = Promise.resolve({
@@ -4363,7 +4379,7 @@ const OK200 = Promise.resolve({
4363
4379
  api_fake_defineProperty(this, "getChallenge", accid => OK200);
4364
4380
  api_fake_defineProperty(this, "time", _ => Promise.resolve({
4365
4381
  code: 200,
4366
- body: new util/* default */.Z.Date().toISOString()
4382
+ body: new util/* default.Date */.Z.Date().toISOString()
4367
4383
  }));
4368
4384
  api_fake_defineProperty(this, "updateUser", data => OK200);
4369
4385
  api_fake_defineProperty(this, "getUser", _ => Promise.resolve({
@@ -4730,13 +4746,13 @@ var flow = __webpack_require__(3165);
4730
4746
 
4731
4747
 
4732
4748
 
4733
- var Realtime = __webpack_require__(608);
4749
+ var Realtime = __webpack_require__(8454);
4734
4750
  var cookie = __webpack_require__(9554);
4735
4751
  cookie.defaults.path = '/';
4736
4752
  cookie.expiresMultiplier = 60 * 60 * 24;
4737
4753
  cookie.defaults.expires = 3650;
4738
4754
  const MAX_CONVO = 20;
4739
- const page_loaded = util/* default */.Z.Date.now();
4755
+ const page_loaded = util/* default.Date.now */.Z.Date.now();
4740
4756
  class Store {
4741
4757
  constructor(ApiURL, FileURL, RealtimeURL, inmem, fakeapi) {
4742
4758
  store_defineProperty(this, "inmem", false);
@@ -4754,14 +4770,14 @@ class Store {
4754
4770
  let user = this.matchUser();
4755
4771
  let allconvos = this.matchConvo('*');
4756
4772
  let unreadcount = 0;
4757
- util/* default */.Z.map(allconvos, convo => {
4758
- if (!util/* default */.Z.isConvoSeen(convo, user.id)) unreadcount++;
4773
+ util/* default.map */.Z.map(allconvos, convo => {
4774
+ if (!util/* default.isConvoSeen */.Z.isConvoSeen(convo, user.id)) unreadcount++;
4759
4775
  });
4760
4776
  return unreadcount;
4761
4777
  });
4762
4778
  store_defineProperty(this, "matchPlugin", () => {
4763
- if (util/* default */.Z.size(this.forcePlugins) > 0) return util/* default */.Z.cloneDeep(this.forcePlugins);
4764
- return util/* default */.Z.cloneDeep(this.cache.match('plugin')) || {};
4779
+ if (util/* default.size */.Z.size(this.forcePlugins) > 0) return util/* default.cloneDeep */.Z.cloneDeep(this.forcePlugins);
4780
+ return util/* default.cloneDeep */.Z.cloneDeep(this.cache.match('plugin')) || {};
4765
4781
  });
4766
4782
  store_defineProperty(this, "device", {});
4767
4783
  store_defineProperty(this, "browserVisibility", 'visible');
@@ -4774,7 +4790,7 @@ class Store {
4774
4790
  if (!id) return;
4775
4791
  if (id === '*') {
4776
4792
  this._touchAcc();
4777
- return util/* default */.Z.filter(this.cache.all(), (value, k) => k.startsWith('convo_'));
4793
+ return util/* default.filter */.Z.filter(this.cache.all(), (value, k) => k.startsWith('convo_'));
4778
4794
  }
4779
4795
  if (!this.isInsync(id)) this.fetchConvo(id);
4780
4796
  return this.cache.match('convo_' + id);
@@ -4797,7 +4813,7 @@ class Store {
4797
4813
  store_defineProperty(this, "listEvents", id => {
4798
4814
  if (!id || id === '*' || typeof id !== 'string') return;
4799
4815
  if (!this.isInsync('events' + id)) {
4800
- util/* default */.Z.setTimeout(async () => {
4816
+ util/* default.setTimeout */.Z.setTimeout(async () => {
4801
4817
  await this.readyGate.entry();
4802
4818
  await this.reconnectGate.entry(undefined, true);
4803
4819
  if (this.isInsync('events' + id)) return this.reconnectGate.open();
@@ -4820,10 +4836,10 @@ class Store {
4820
4836
  });
4821
4837
  store_defineProperty(this, "matchLocation", () => this.cache.match('location') || {});
4822
4838
  store_defineProperty(this, "matchBot", () => this.cache.match('bot') || {});
4823
- store_defineProperty(this, "readyGate", new util/* default */.Z.Gate());
4824
- store_defineProperty(this, "convoGate", new util/* default */.Z.Gate(true));
4825
- store_defineProperty(this, "reconnectGate", new util/* default */.Z.Gate(true));
4826
- store_defineProperty(this, "wsGate", new util/* default */.Z.Gate(true));
4839
+ store_defineProperty(this, "readyGate", new util/* default.Gate */.Z.Gate());
4840
+ store_defineProperty(this, "convoGate", new util/* default.Gate */.Z.Gate(true));
4841
+ store_defineProperty(this, "reconnectGate", new util/* default.Gate */.Z.Gate(true));
4842
+ store_defineProperty(this, "wsGate", new util/* default.Gate */.Z.Gate(true));
4827
4843
  store_defineProperty(this, "matchLastview", () => {
4828
4844
  let lastView = this.kv.match('lastview') || {};
4829
4845
  let user = this.cache.match('user') || {};
@@ -4834,10 +4850,10 @@ class Store {
4834
4850
  store_defineProperty(this, "matchIsOpen", () => !!this.kv.match('isopen'));
4835
4851
  store_defineProperty(this, "matchHasManuallyClosed", () => !!this.kv.match('hasManuallyClosed'));
4836
4852
  store_defineProperty(this, "matchClosePreviewAt", () => this.kv.match('close_preview_at') || 0);
4837
- store_defineProperty(this, "sendPresence", util/* default */.Z.throttle(async () => {
4853
+ store_defineProperty(this, "sendPresence", util/* default.throttle */.Z.throttle(async () => {
4838
4854
  await this.readyGate.entry();
4839
- if (!util/* default */.Z.get(this.cache.match('user'), 'id')) return;
4840
- if (util/* default */.Z.isUserBanned(this.cache.match('user'))) return;
4855
+ if (!util/* default.get */.Z.get(this.cache.match('user'), 'id')) return;
4856
+ if (util/* default.isUserBanned */.Z.isUserBanned(this.cache.match('user'))) return;
4841
4857
  let hasfocus = this.browserVisibility === 'visible' && document.hasFocus();
4842
4858
  if (!hasfocus) {
4843
4859
  this.api.sendLostFocus(this.device, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
@@ -4847,10 +4863,10 @@ class Store {
4847
4863
  }, 1000, {
4848
4864
  leading: false
4849
4865
  }));
4850
- store_defineProperty(this, "now", () => util/* default */.Z.Date.now() + this.timeDiff);
4866
+ store_defineProperty(this, "now", () => util/* default.Date.now */.Z.Date.now() + this.timeDiff);
4851
4867
  store_defineProperty(this, "seenQueue", []);
4852
4868
  store_defineProperty(this, "matchTrafficSource", () => this.kv.match('traffic_source'));
4853
- store_defineProperty(this, "_typing", util/* default */.Z.throttle(convoid => this.api.sendTyping(convoid), 3000, {
4869
+ store_defineProperty(this, "_typing", util/* default.throttle */.Z.throttle(convoid => this.api.sendTyping(convoid), 3000, {
4854
4870
  trailing: false
4855
4871
  }));
4856
4872
  store_defineProperty(this, "onConvoEvent", (o, cb) => this.pubsub.on2(o, 'events', cb));
@@ -4869,7 +4885,7 @@ class Store {
4869
4885
  sendEventToThirdParty('SUBIZ Chat', 'Opened', 'Subiz Windows');
4870
4886
  }
4871
4887
  });
4872
- store_defineProperty(this, "closePreview", () => this.kv.put('close_preview_at', new util/* default */.Z.Date().getTime()));
4888
+ store_defineProperty(this, "closePreview", () => this.kv.put('close_preview_at', new util/* default.Date */.Z.Date().getTime()));
4873
4889
  store_defineProperty(this, "setLastview", (view, opts) => {
4874
4890
  let user = this.cache.match('user') || {};
4875
4891
  if (!user.id) return;
@@ -4902,7 +4918,7 @@ class Store {
4902
4918
  this.cookie = inmemCookie;
4903
4919
  }
4904
4920
  cleanLocalStorage();
4905
- this.pubsub = new util/* default */.Z.Pubsub();
4921
+ this.pubsub = new util/* default.Pubsub */.Z.Pubsub();
4906
4922
  this.kv = new storage.kv(new storage.lsdb('sbz2023', this.inmem), 'kv');
4907
4923
  this.cache = new storage.kv(new storage.lsdb('sbz2023', true), 'kv');
4908
4924
  this.chain = new storage.chain(new storage.lsdb('cbz2023', true), 'ch');
@@ -4910,23 +4926,23 @@ class Store {
4910
4926
  this.g_haveSentSeenM = {};
4911
4927
  window.addEventListener('blur', () => this.sendPresence());
4912
4928
  window.addEventListener('focus', () => this.sendPresence());
4913
- util/* default */.Z.setInterval(() => this.browserVisibility === 'visible' && document.hasFocus() && this.sendPresence(), 20000);
4914
- util/* default */.Z.setInterval(() => (this.browserVisibility !== 'visible' || document.hasFocus()) && this.sendPresence(), 60000);
4929
+ util/* default.setInterval */.Z.setInterval(() => this.browserVisibility === 'visible' && document.hasFocus() && this.sendPresence(), 20000);
4930
+ util/* default.setInterval */.Z.setInterval(() => (this.browserVisibility !== 'visible' || document.hasFocus()) && this.sendPresence(), 60000);
4915
4931
  onVisibilityChange(val => {
4916
4932
  this.browserVisibility = val;
4917
4933
  this.sendPresence();
4918
4934
  });
4919
4935
  this.loopTime();
4920
4936
  this.device = this.getDeviceInfo();
4921
- const _gaInterval = util/* default */.Z.setInterval(() => {
4937
+ const _gaInterval = util/* default.setInterval */.Z.setInterval(() => {
4922
4938
  let user = this.cache.match('user') || {};
4923
4939
  if (!user.id) return;
4924
4940
  var dev = this.getDeviceInfo();
4925
4941
  if (!dev.ga_tracking_ids || !dev.ga_client_id) return;
4926
- util/* default */.Z.clearInterval(_gaInterval);
4942
+ util/* default.clearInterval */.Z.clearInterval(_gaInterval);
4927
4943
  this.device = dev;
4928
4944
  let ga_client_id = dev.ga_client_id;
4929
- if (ga_client_id !== util/* default */.Z.getUserAttr(user, 'ga_client_id', 'text')) {
4945
+ if (ga_client_id !== util/* default.getUserAttr */.Z.getUserAttr(user, 'ga_client_id', 'text')) {
4930
4946
  this.setUser({
4931
4947
  attributes: [{
4932
4948
  type: 'text',
@@ -4947,10 +4963,10 @@ class Store {
4947
4963
  if (p.sku) this._currentViewingProduct.sku = (p.sku + '').trim();
4948
4964
  }
4949
4965
  getLinkedProduct() {
4950
- return util/* default */.Z.cloneDeep(this._currentViewingProduct);
4966
+ return util/* default.cloneDeep */.Z.cloneDeep(this._currentViewingProduct);
4951
4967
  }
4952
4968
  isInsync(key) {
4953
- return util/* default */.Z.Date.now() - (this.g_sync[key] || 0) < 600000;
4969
+ return util/* default.Date.now */.Z.Date.now() - (this.g_sync[key] || 0) < 600000;
4954
4970
  }
4955
4971
  async fetchShippingAddresses() {
4956
4972
  let out = await this.api.fetchShippingAddresses();
@@ -4967,7 +4983,7 @@ class Store {
4967
4983
  return this.api.createShippingAddress(addr);
4968
4984
  }
4969
4985
  async overrideAcc(acc) {
4970
- this.forceAcc = util/* default */.Z.cloneDeep(acc);
4986
+ this.forceAcc = util/* default.cloneDeep */.Z.cloneDeep(acc);
4971
4987
  await this.readyGate.entry();
4972
4988
  this.disconnect('account');
4973
4989
  this.reconnect();
@@ -4977,7 +4993,7 @@ class Store {
4977
4993
  await this.readyGate.entry();
4978
4994
  this.disconnect('account');
4979
4995
  await this.reconnect();
4980
- util/* default */.Z.setTimeout(this.pubsub.publish('resetCSS'), 10);
4996
+ util/* default.setTimeout */.Z.setTimeout(this.pubsub.publish('resetCSS'), 10);
4981
4997
  }
4982
4998
  getDeviceInfo() {
4983
4999
  let device = {
@@ -5022,7 +5038,7 @@ class Store {
5022
5038
  overridePlugin(plugins) {
5023
5039
  if (!Array.isArray(plugins)) throw 'plugins must be be an array';
5024
5040
  let pluginM = {};
5025
- util/* default */.Z.map(plugins, function (plugin) {
5041
+ util/* default.map */.Z.map(plugins, function (plugin) {
5026
5042
  pluginM[plugin.id] = plugin;
5027
5043
  });
5028
5044
  this.forcePlugins = pluginM;
@@ -5030,7 +5046,7 @@ class Store {
5030
5046
  this.pubsub.publish('resetCSS');
5031
5047
  }
5032
5048
  markSync(key) {
5033
- this.g_sync[key] = util/* default */.Z.Date.now();
5049
+ this.g_sync[key] = util/* default.Date.now */.Z.Date.now();
5034
5050
  }
5035
5051
  async _touchAcc() {
5036
5052
  if (this.isInsync('account')) return;
@@ -5054,13 +5070,13 @@ class Store {
5054
5070
  if (mask) {
5055
5071
  let parts = mask.split('@');
5056
5072
  if (parts[0] != accid) {
5057
- userRef = util/* default */.Z.randomString(40);
5073
+ userRef = util/* default.randomString */.Z.randomString(40);
5058
5074
  this.new_visitor = true;
5059
5075
  }
5060
5076
  this.new_visitor = false;
5061
5077
  this.cookie.set('__sbmask', mask);
5062
5078
  } else {
5063
- userRef = util/* default */.Z.randomString(40);
5079
+ userRef = util/* default.randomString */.Z.randomString(40);
5064
5080
  this.new_visitor = true;
5065
5081
  }
5066
5082
  }
@@ -5123,22 +5139,22 @@ class Store {
5123
5139
  }
5124
5140
  seenLoop() {
5125
5141
  this.seenQueue = [];
5126
- util/* default */.Z.clearInterval(this._seenInterval);
5127
- this._seenInterval = util/* default */.Z.setInterval(() => {
5142
+ util/* default.clearInterval */.Z.clearInterval(this._seenInterval);
5143
+ this._seenInterval = util/* default.setInterval */.Z.setInterval(() => {
5128
5144
  this.seenQueue = [...new Set(this.seenQueue)];
5129
5145
  let user = this.cache.match('user') || {};
5130
- util/* default */.Z.map(this.seenQueue, id => {
5146
+ util/* default.map */.Z.map(this.seenQueue, id => {
5131
5147
  var events = this.listEvents(id);
5132
5148
  if (!events) return;
5133
- if (util/* default */.Z.size(events) === 0) return;
5134
- events = util/* default */.Z.filter(events, ev => ev.type === 'message_sent');
5135
- var lastmsgsent = events[util/* default */.Z.size(events) - 1];
5149
+ if (util/* default.size */.Z.size(events) === 0) return;
5150
+ events = util/* default.filter */.Z.filter(events, ev => ev.type === 'message_sent');
5151
+ var lastmsgsent = events[util/* default.size */.Z.size(events) - 1];
5136
5152
  if (!lastmsgsent) return;
5137
5153
  if (this.g_haveSentSeenM[lastmsgsent.id]) return;
5138
- if (lastmsgsent.id === util/* default */.Z.getMsgField(lastmsgsent, 'idempotency')) return;
5154
+ if (lastmsgsent.id === util/* default.getMsgField */.Z.getMsgField(lastmsgsent, 'idempotency')) return;
5139
5155
  this.api.markAsSeen(id, lastmsgsent.id);
5140
5156
  let convo = this.cache.match('convo_' + id) || {};
5141
- let mem = util/* default */.Z.find(convo.members, m => m.id === user.id);
5157
+ let mem = util/* default.find */.Z.find(convo.members, m => m.id === user.id);
5142
5158
  if (mem) mem.seen_at = Date.now();
5143
5159
  this._setConvo(convo);
5144
5160
  this.g_haveSentSeenM[lastmsgsent.id] = true;
@@ -5158,7 +5174,7 @@ class Store {
5158
5174
  if (this.isInsync('account')) return this.reconnectGate.open();
5159
5175
  this.markSync('account');
5160
5176
  let outs = await Promise.all([this.api.getUser(), this.api.getAccountSetting(), this.api.getIsOnline()]);
5161
- let error = util/* default */.Z.find(outs, out => out.error);
5177
+ let error = util/* default.find */.Z.find(outs, out => out.error);
5162
5178
  if (error) return console.error(error);
5163
5179
  let set = Object.assign(outs[1].body, outs[2].body);
5164
5180
  set.user = outs[0].body;
@@ -5167,13 +5183,13 @@ class Store {
5167
5183
  error = convob.error;
5168
5184
  let body = convob.body;
5169
5185
  if (!error) {
5170
- let convos = util/* default */.Z.get(body, 'conversations', []);
5171
- util/* default */.Z.map(this.cache.all(), (value, k) => {
5186
+ let convos = util/* default.get */.Z.get(body, 'conversations', []);
5187
+ util/* default.map */.Z.map(this.cache.all(), (value, k) => {
5172
5188
  if (k.startsWith('convo_')) {
5173
- if (this.now() - util/* default */.Z.getMs(util/* default */.Z.get(value, 'actived')) > 1209600000) this.cache.del(k);
5189
+ if (this.now() - util/* default.getMs */.Z.getMs(util/* default.get */.Z.get(value, 'actived')) > 1209600000) this.cache.del(k);
5174
5190
  }
5175
5191
  });
5176
- util/* default */.Z.map(convos, convo => this._setConvo(convo));
5192
+ util/* default.map */.Z.map(convos, convo => this._setConvo(convo));
5177
5193
  }
5178
5194
  return this.reconnectGate.open();
5179
5195
  }
@@ -5183,14 +5199,22 @@ class Store {
5183
5199
  this._setUser(user);
5184
5200
  return this.api.updateUser(user);
5185
5201
  }
5202
+ async setUserDiff(user) {
5203
+ if (!user) return;
5204
+ await this.readyGate.entry();
5205
+ let out = await this.api.updateUser(user);
5206
+ if (out && out.code == 200 && out.body.id) {
5207
+ this._setUser(out.body);
5208
+ }
5209
+ }
5186
5210
  _setUser(user) {
5187
- user = util/* default */.Z.cloneDeep(user);
5211
+ user = util/* default.cloneDeep */.Z.cloneDeep(user);
5188
5212
  let olduser = this.cache.match('user') || {};
5189
5213
  var accid = olduser.account_id || user.account_id;
5190
5214
  var id = olduser.id || user.id;
5191
- util/* default */.Z.each(user.attributes, newattr => {
5215
+ util/* default.each */.Z.each(user.attributes, newattr => {
5192
5216
  if (!newattr) return;
5193
- olduser.attributes = util/* default */.Z.filter(olduser.attributes, oldattr => {
5217
+ olduser.attributes = util/* default.filter */.Z.filter(olduser.attributes, oldattr => {
5194
5218
  if (!oldattr) return false;
5195
5219
  return oldattr.key !== newattr.key;
5196
5220
  });
@@ -5208,7 +5232,7 @@ class Store {
5208
5232
  return this._setSetting(setting);
5209
5233
  }
5210
5234
  async _setSetting(setting) {
5211
- setting = util/* default */.Z.cloneDeep(setting) || {};
5235
+ setting = util/* default.cloneDeep */.Z.cloneDeep(setting) || {};
5212
5236
  setting.account = Object.assign({}, setting.account, this.forceAcc);
5213
5237
  if (!setting.account.logo_url) {
5214
5238
  setting.account.logo_url = 'https://file-subiz.com/fiqpezhkmeyesdscyetk-default_logo.jpg';
@@ -5224,39 +5248,39 @@ class Store {
5224
5248
  this.cache.put('account', setting.account);
5225
5249
  delete setting.account;
5226
5250
  }
5227
- let location = util/* default */.Z.get(setting, 'location', []);
5251
+ let location = util/* default.get */.Z.get(setting, 'location', []);
5228
5252
  this.cache.put('location', location);
5229
- let bots = util/* default */.Z.get(setting, 'bots', []);
5253
+ let bots = util/* default.get */.Z.get(setting, 'bots', []);
5230
5254
  let botM = {};
5231
- util/* default */.Z.map(bots, bot => {
5255
+ util/* default.map */.Z.map(bots, bot => {
5232
5256
  botM[bot.id] = bot;
5233
5257
  });
5234
5258
  this.cache.put('bot', botM);
5235
- let plugins = util/* default */.Z.get(setting, 'plugins', []);
5259
+ let plugins = util/* default.get */.Z.get(setting, 'plugins', []);
5236
5260
  let pluginM = {};
5237
- util/* default */.Z.map(plugins, plugin => {
5261
+ util/* default.map */.Z.map(plugins, plugin => {
5238
5262
  if (plugin.type === 'chatbox') {
5239
- plugin = util/* default */.Z.merge(plugin, this.forceChatbox);
5263
+ plugin = util/* default.merge */.Z.merge(plugin, this.forceChatbox);
5240
5264
  }
5241
5265
  pluginM[plugin.id] = plugin;
5242
5266
  });
5243
5267
  this.cache.put('plugin', pluginM);
5244
- var agents = util/* default */.Z.get(setting, 'agents', []);
5245
- if (util/* default */.Z.size(agents) > 0) {
5268
+ var agents = util/* default.get */.Z.get(setting, 'agents', []);
5269
+ if (util/* default.size */.Z.size(agents) > 0) {
5246
5270
  let agentM = {};
5247
5271
  this.api.setAgentId(agents[0].id);
5248
- util/* default */.Z.map(agents, agent => {
5272
+ util/* default.map */.Z.map(agents, agent => {
5249
5273
  agentM[agent.id] = agent;
5250
5274
  });
5251
5275
  this.cache.put('agent', agentM);
5252
5276
  }
5253
- let pms = util/* default */.Z.get(setting, 'payment_methods', []);
5277
+ let pms = util/* default.get */.Z.get(setting, 'payment_methods', []);
5254
5278
  this.cache.put('payment_methods', pms);
5255
5279
  this.pubsub.publish('account');
5256
5280
  }
5257
5281
  async track() {
5258
5282
  let out = await this.api.sendContentView(this.device, location.href, document.title, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
5259
- let traffic_source = util/* default */.Z.get(out, 'body.by.device.source', '');
5283
+ let traffic_source = util/* default.get */.Z.get(out, 'body.by.device.source', '');
5260
5284
  if (traffic_source) this.kv.put('traffic_source', traffic_source);
5261
5285
  }
5262
5286
  async onWs(ev) {
@@ -5267,16 +5291,16 @@ class Store {
5267
5291
  }
5268
5292
  async _onWs(ev) {
5269
5293
  if (!ev || !ev.type) return;
5270
- ev.created = util/* default */.Z.getMs(ev.created);
5294
+ ev.created = util/* default.getMs */.Z.getMs(ev.created);
5271
5295
  if (ev.type === 'user_info_updated') {
5272
- let user = util/* default */.Z.cloneDeep(this.cache.match('user'));
5273
- let attrs = util/* default */.Z.get(ev, 'data.user.attributes') || [];
5274
- util/* default */.Z.map(attrs, attr => util/* default */.Z.setUserAttr(user, attr));
5296
+ let user = util/* default.cloneDeep */.Z.cloneDeep(this.cache.match('user'));
5297
+ let attrs = util/* default.get */.Z.get(ev, 'data.user.attributes') || [];
5298
+ util/* default.map */.Z.map(attrs, attr => util/* default.setUserAttr */.Z.setUserAttr(user, attr));
5275
5299
  this._setUser(user);
5276
5300
  return;
5277
5301
  }
5278
5302
  let user = this.cache.match('user') || {};
5279
- let cid = util/* default */.Z.convoOfEv(ev);
5303
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(ev);
5280
5304
  let convo;
5281
5305
  let alreadyFetched = false;
5282
5306
  if (cid) {
@@ -5293,12 +5317,12 @@ class Store {
5293
5317
  }
5294
5318
  }
5295
5319
  if (!convo) return;
5296
- let channel = util/* default */.Z.get(ev, 'touchpoint.channel', '');
5320
+ let channel = util/* default.get */.Z.get(ev, 'touchpoint.channel', '');
5297
5321
  if (channel && channel != 'subiz') return;
5298
5322
  this.pubsub.publish('events', ev);
5299
5323
  if (ev.type === 'conversation_joined') {
5300
- let members = util/* default */.Z.get(ev, 'data.conversation.members', []);
5301
- let me = util/* default */.Z.find(members, m => m.id === this.cache.match('user').id);
5324
+ let members = util/* default.get */.Z.get(ev, 'data.conversation.members', []);
5325
+ let me = util/* default.find */.Z.find(members, m => m.id === this.cache.match('user').id);
5302
5326
  if (me) {
5303
5327
  await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit));
5304
5328
  this.markSync('events' + cid);
@@ -5315,13 +5339,13 @@ class Store {
5315
5339
  }
5316
5340
  }
5317
5341
  if (ev.type === 'message_sent') {
5318
- if (util/* default */.Z.get(ev, 'by.id') !== user.id) {
5342
+ if (util/* default.get */.Z.get(ev, 'by.id') !== user.id) {
5319
5343
  this.api.markAsReceived(cid, ev.id);
5320
5344
  }
5321
5345
  }
5322
- if (util/* default */.Z.startsWith(ev.type, 'message_') || util/* default */.Z.startsWith(ev.type, 'conversation_')) {
5346
+ if (util/* default.startsWith */.Z.startsWith(ev.type, 'message_') || util/* default.startsWith */.Z.startsWith(ev.type, 'conversation_')) {
5323
5347
  this.restConvoEvent(ev);
5324
- if (ev.type === 'message_sent' && util/* default */.Z.get(ev, 'by.id') !== user.id) {
5348
+ if (ev.type === 'message_sent' && util/* default.get */.Z.get(ev, 'by.id') !== user.id) {
5325
5349
  sendEventToThirdParty('SUBIZ Chat', 'Received', 'User');
5326
5350
  }
5327
5351
  return;
@@ -5329,36 +5353,36 @@ class Store {
5329
5353
  }
5330
5354
  async restConvoEvent(ev) {
5331
5355
  let user = this.cache.match('user');
5332
- let cid = util/* default */.Z.convoOfEv(ev);
5356
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(ev);
5333
5357
  let convo = this.cache.match('convo_' + cid) || {};
5334
5358
  if (ev.type === 'conversation_state_updated') {
5335
- if (!util/* default */.Z.get(convo, 'id')) {
5359
+ if (!util/* default.get */.Z.get(convo, 'id')) {
5336
5360
  let {
5337
5361
  body: convo,
5338
5362
  error
5339
5363
  } = await this.api.getConversation(cid);
5340
5364
  if (error) return;
5341
5365
  }
5342
- convo = Object.assign(convo, util/* default */.Z.get(ev, 'data.conversation'));
5366
+ convo = Object.assign(convo, util/* default.get */.Z.get(ev, 'data.conversation'));
5343
5367
  }
5344
5368
  if (ev.type === 'message_pong') {
5345
- var msgid = util/* default */.Z.get(ev, 'data.message.id');
5369
+ var msgid = util/* default.get */.Z.get(ev, 'data.message.id');
5346
5370
  var oldev = this.chain.match(cid, msgid);
5347
- if (!util/* default */.Z.get(oldev, 'data.message')) return;
5348
- var pongs = util/* default */.Z.get(oldev, 'data.message.pongs', []);
5349
- pongs = pongs.concat(util/* default */.Z.get(ev, 'data.message.pongs', []));
5371
+ if (!util/* default.get */.Z.get(oldev, 'data.message')) return;
5372
+ var pongs = util/* default.get */.Z.get(oldev, 'data.message.pongs', []);
5373
+ pongs = pongs.concat(util/* default.get */.Z.get(ev, 'data.message.pongs', []));
5350
5374
  oldev.data.message.pongs = pongs;
5351
- util/* default */.Z.map(pongs, pong => {
5375
+ util/* default.map */.Z.map(pongs, pong => {
5352
5376
  if (pong.member_id == user.id && pong.type === 'seen') {
5353
- let mem = util/* default */.Z.find(convo.members, mem => mem.id === user.id);
5377
+ let mem = util/* default.find */.Z.find(convo.members, mem => mem.id === user.id);
5354
5378
  if (mem) mem.seen_at = pong.created;
5355
5379
  }
5356
5380
  });
5357
- this.chain.put(cid, oldev.id, util/* default */.Z.getMs(oldev.created), oldev);
5381
+ this.chain.put(cid, oldev.id, util/* default.getMs */.Z.getMs(oldev.created), oldev);
5358
5382
  }
5359
5383
  if (ev.type === 'message_sent') {
5360
- let idemkey = util/* default */.Z.getMsgField(ev, 'idempotency');
5361
- let found = util/* default */.Z.find(this.listEvents(cid), oldev => oldev.id === idemkey);
5384
+ let idemkey = util/* default.getMsgField */.Z.getMsgField(ev, 'idempotency');
5385
+ let found = util/* default.find */.Z.find(this.listEvents(cid), oldev => oldev.id === idemkey);
5362
5386
  if (found) {
5363
5387
  this.chain.del(cid, found.id);
5364
5388
  ev.created = found.created;
@@ -5366,7 +5390,7 @@ class Store {
5366
5390
  convo.last_message_sent = ev;
5367
5391
  }
5368
5392
  if (ev.type !== 'message_pong' && ev.type !== 'conversation_typing') {
5369
- this.chain.put(cid, ev.id, util/* default */.Z.getMs(ev.created), ev);
5393
+ this.chain.put(cid, ev.id, util/* default.getMs */.Z.getMs(ev.created), ev);
5370
5394
  }
5371
5395
  this._setConvo(convo);
5372
5396
  this.pubsub.publish('account');
@@ -5374,31 +5398,31 @@ class Store {
5374
5398
  handleFormSubmit(convoKey, ev) {
5375
5399
  if (ev.type !== 'message_sent') return;
5376
5400
  let formSubmits = [];
5377
- let attachments = util/* default */.Z.get(ev, 'data.message.attachments') || [];
5378
- util/* default */.Z.each(attachments, att => {
5401
+ let attachments = util/* default.get */.Z.get(ev, 'data.message.attachments') || [];
5402
+ util/* default.each */.Z.each(attachments, att => {
5379
5403
  if (!att) return;
5380
5404
  if (att.type !== 'form_submit') return;
5381
5405
  formSubmits.push(att.form_submit);
5382
5406
  });
5383
- util/* default */.Z.each(formSubmits, submit => {
5384
- let formev = util/* default */.Z.get(this.convoEventM, convoKey + '.' + submit.form_message_id);
5407
+ util/* default.each */.Z.each(formSubmits, submit => {
5408
+ let formev = util/* default.get */.Z.get(this.convoEventM, convoKey + '.' + submit.form_message_id);
5385
5409
  if (!formev) return;
5386
- let forms = util/* default */.Z.filter(util/* default */.Z.get(formev, 'data.message.attachments'), att => {
5410
+ let forms = util/* default.filter */.Z.filter(util/* default.get */.Z.get(formev, 'data.message.attachments'), att => {
5387
5411
  if (!att) return false;
5388
5412
  if (att.type !== 'form' && att.type !== 'ask_info_form') return false;
5389
5413
  return true;
5390
5414
  });
5391
- util/* default */.Z.each(forms, form => {
5415
+ util/* default.each */.Z.each(forms, form => {
5392
5416
  form = form.form;
5393
- util/* default */.Z.each(form.fields, formfield => {
5394
- util/* default */.Z.each(submit.fields, submitfield => {
5417
+ util/* default.each */.Z.each(form.fields, formfield => {
5418
+ util/* default.each */.Z.each(submit.fields, submitfield => {
5395
5419
  if (formfield.name !== submitfield.name) return;
5396
5420
  if (formfield.default_answer) return;
5397
5421
  formfield.default_answer = submitfield.value;
5398
5422
  });
5399
5423
  });
5400
5424
  });
5401
- if (util/* default */.Z.size(forms) > 0) this.pubsub.publish('state.convoEventM', this.convoEventM, convoKey);
5425
+ if (util/* default.size */.Z.size(forms) > 0) this.pubsub.publish('state.convoEventM', this.convoEventM, convoKey);
5402
5426
  });
5403
5427
  }
5404
5428
  typing(cid) {
@@ -5433,7 +5457,7 @@ class Store {
5433
5457
  }
5434
5458
  async sendConvoEvent(cid, type, data) {
5435
5459
  await this.readyGate.entry();
5436
- var idempotency = util/* default */.Z.randomString(36);
5460
+ var idempotency = util/* default.randomString */.Z.randomString(36);
5437
5461
  let user = this.cache.match('user') || {};
5438
5462
  var event = {
5439
5463
  id: idempotency,
@@ -5446,10 +5470,10 @@ class Store {
5446
5470
  type,
5447
5471
  created: this.now()
5448
5472
  };
5449
- util/* default */.Z.convoToEv(cid, event);
5473
+ util/* default.convoToEv */.Z.convoToEv(cid, event);
5450
5474
  let files = [];
5451
5475
  if (type === 'message_sent') {
5452
- util/* default */.Z.setMsgField(event, 'idempotency', idempotency);
5476
+ util/* default.setMsgField */.Z.setMsgField(event, 'idempotency', idempotency);
5453
5477
  event.data.message.conversation_id = cid;
5454
5478
  await flow.map(event.data.message.attachments, 2, async (att, i) => {
5455
5479
  if (att.type !== 'file') return;
@@ -5468,7 +5492,7 @@ class Store {
5468
5492
  url,
5469
5493
  error
5470
5494
  } = await this.api.uploadToS3(att._file);
5471
- if (util/* default */.Z.get(body, 'code') == 'invalid_field_size') {
5495
+ if (util/* default.get */.Z.get(body, 'code') == 'invalid_field_size') {
5472
5496
  event._error_message = 'cannot_send_too_big_file';
5473
5497
  }
5474
5498
  event._error = error;
@@ -5496,23 +5520,23 @@ class Store {
5496
5520
  first_interaction: 1
5497
5521
  });
5498
5522
  }
5499
- this.kv.put('last_msg_sent', util/* default */.Z.Date.now());
5523
+ this.kv.put('last_msg_sent', util/* default.Date.now */.Z.Date.now());
5500
5524
  return ret;
5501
5525
  }
5502
5526
  _setConvo(convo) {
5503
5527
  let count = 0;
5504
5528
  let user = this.cache.match('user');
5505
- let channel = util/* default */.Z.get(convo, 'touchpoint.channel', '');
5529
+ let channel = util/* default.get */.Z.get(convo, 'touchpoint.channel', '');
5506
5530
  if (channel && channel != 'subiz') return;
5507
5531
  let allconvo = {};
5508
- util/* default */.Z.map(this.cache.all(), (value, key) => {
5532
+ util/* default.map */.Z.map(this.cache.all(), (value, key) => {
5509
5533
  if (key.startsWith('convo_')) {
5510
5534
  allconvo[key] = value;
5511
5535
  }
5512
5536
  });
5513
- if (util/* default */.Z.size(allconvo) > MAX_CONVO - 2) {
5514
- allconvo = util/* default */.Z.orderBy(util/* default */.Z.map(allconvo), 'created', 'desc');
5515
- for (var i = MAX_CONVO - 2; i < util/* default */.Z.size(allconvo); i++) {
5537
+ if (util/* default.size */.Z.size(allconvo) > MAX_CONVO - 2) {
5538
+ allconvo = util/* default.orderBy */.Z.orderBy(util/* default.map */.Z.map(allconvo), 'created', 'desc');
5539
+ for (var i = MAX_CONVO - 2; i < util/* default.size */.Z.size(allconvo); i++) {
5516
5540
  let convo = allconvo[i];
5517
5541
  this.cache.del('convo_' + convo.id);
5518
5542
  }
@@ -5568,7 +5592,7 @@ class Store {
5568
5592
  account_id: user.account_id,
5569
5593
  web_plugin_id: id,
5570
5594
  campaign_id: id,
5571
- user_id: util/* default */.Z.get(user, 'id'),
5595
+ user_id: util/* default.get */.Z.get(user, 'id'),
5572
5596
  url: window.location.href,
5573
5597
  device: this.device,
5574
5598
  submission,
@@ -5587,9 +5611,9 @@ class Store {
5587
5611
  error
5588
5612
  } = await this.api.listMessages(convoid, -limit, anchor);
5589
5613
  if (error || code !== 200) return [[], anchor, error];
5590
- anchor = util/* default */.Z.get(util/* default */.Z.last(events), 'id');
5591
- events = util/* default */.Z.map(events, event => {
5592
- event.created = util/* default */.Z.getMs(event.created);
5614
+ anchor = util/* default.get */.Z.get(util/* default.last */.Z.last(events), 'id');
5615
+ events = util/* default.map */.Z.map(events, event => {
5616
+ event.created = util/* default.getMs */.Z.getMs(event.created);
5593
5617
  return {
5594
5618
  id: event.id,
5595
5619
  index: event.created,
@@ -5600,8 +5624,8 @@ class Store {
5600
5624
  for (let i = 0; i < events.length; i++) {
5601
5625
  let ev = events[i].value;
5602
5626
  if (ev.type !== 'message_sent') continue;
5603
- if (util/* default */.Z.get(ev, 'by.id') === user.id) continue;
5604
- let pongbyme = util/* default */.Z.find(util/* default */.Z.get(ev, 'data.message.pongs'), p => p.member_id === user.id);
5627
+ if (util/* default.get */.Z.get(ev, 'by.id') === user.id) continue;
5628
+ let pongbyme = util/* default.find */.Z.find(util/* default.get */.Z.get(ev, 'data.message.pongs'), p => p.member_id === user.id);
5605
5629
  if (pongbyme) break;
5606
5630
  this.api.markAsReceived(convoid, ev.id);
5607
5631
  break;
@@ -5609,25 +5633,25 @@ class Store {
5609
5633
  return [events, anchor];
5610
5634
  }
5611
5635
  async loopTime() {
5612
- let startms = util/* default */.Z.Date.now();
5613
- if (!util/* default */.Z.get(this.cache.match('user'), 'id')) return util/* default */.Z.setTimeout(() => this.loopTime(), 240000);
5636
+ let startms = util/* default.Date.now */.Z.Date.now();
5637
+ if (!util/* default.get */.Z.get(this.cache.match('user'), 'id')) return util/* default.setTimeout */.Z.setTimeout(() => this.loopTime(), 240000);
5614
5638
  let {
5615
5639
  body: t,
5616
5640
  error
5617
5641
  } = await this.api.time();
5618
- if (error) return util/* default */.Z.setTimeout(() => this.loopTime(), 30000);
5619
- var latences = Math.abs(util/* default */.Z.Date.now() - startms) / 2;
5620
- var serverMs = new util/* default */.Z.Date(t).getTime() + latences;
5621
- var localMs = util/* default */.Z.Date.now();
5642
+ if (error) return util/* default.setTimeout */.Z.setTimeout(() => this.loopTime(), 30000);
5643
+ var latences = Math.abs(util/* default.Date.now */.Z.Date.now() - startms) / 2;
5644
+ var serverMs = new util/* default.Date */.Z.Date(t).getTime() + latences;
5645
+ var localMs = util/* default.Date.now */.Z.Date.now();
5622
5646
  this.timeDiff = Math.floor(serverMs - localMs);
5623
- util/* default */.Z.setTimeout(() => this.loopTime(), 240000);
5647
+ util/* default.setTimeout */.Z.setTimeout(() => this.loopTime(), 240000);
5624
5648
  }
5625
5649
  replaceFileUrl(src) {
5626
5650
  if (!src) return '';
5627
- if (util/* default */.Z.startsWith(src, '/')) return src;
5628
- if (util/* default */.Z.startsWith(src, 'data:')) return src;
5629
- if (!util/* default */.Z.startsWith(src, 'http://') && !util/* default */.Z.startsWith(src, 'https://') && !util/* default */.Z.startsWith(src, '//')) {
5630
- src = util/* default */.Z.trim(this.FileURL, '/') + '/' + util/* default */.Z.trimStart(src, '/');
5651
+ if (util/* default.startsWith */.Z.startsWith(src, '/')) return src;
5652
+ if (util/* default.startsWith */.Z.startsWith(src, 'data:')) return src;
5653
+ if (!util/* default.startsWith */.Z.startsWith(src, 'http://') && !util/* default.startsWith */.Z.startsWith(src, 'https://') && !util/* default.startsWith */.Z.startsWith(src, '//')) {
5654
+ src = util/* default.trim */.Z.trim(this.FileURL, '/') + '/' + util/* default.trimStart */.Z.trimStart(src, '/');
5631
5655
  }
5632
5656
  src = src.replace('https://file-subiz.com/', this.FileURL);
5633
5657
  src = src.replace('http://file-subiz.com/', this.FileURL);
@@ -5644,7 +5668,7 @@ class Store {
5644
5668
  return src;
5645
5669
  }
5646
5670
  clearBrowserData() {
5647
- util/* default */.Z.each(this.cookie.all(), (v, k) => {
5671
+ util/* default.each */.Z.each(this.cookie.all(), (v, k) => {
5648
5672
  if ((k || '').startsWith('__sb')) this.cookie.remove(k);
5649
5673
  });
5650
5674
  this.kv.destroy();
@@ -5774,7 +5798,7 @@ let cleanLocalStorage = () => {
5774
5798
  } catch (e) {
5775
5799
  return;
5776
5800
  }
5777
- util/* default */.Z.setTimeout(() => {
5801
+ util/* default.setTimeout */.Z.setTimeout(() => {
5778
5802
  for (var key in localStorage) {
5779
5803
  if (key && (key.startsWith('cbz2020') || key.startsWith('sbz2020'))) {
5780
5804
  localStorage.removeItem(key);
@@ -5788,7 +5812,7 @@ let cleanMyLocalStorage = () => {
5788
5812
  } catch (e) {
5789
5813
  return;
5790
5814
  }
5791
- util/* default */.Z.setTimeout(() => {
5815
+ util/* default.setTimeout */.Z.setTimeout(() => {
5792
5816
  for (var key in localStorage) {
5793
5817
  if (key && (key.startsWith('cbz2020') || key.startsWith('sbz2020') || key.startsWith('sbz2022') || key.startsWith('sbz2023'))) {
5794
5818
  localStorage.removeItem(key);
@@ -5806,8 +5830,8 @@ function dofetch(method, url, body, cb) {
5806
5830
  }).then(res => res.text().then(text => cb && cb(text, res.status))).catch(err => cb && cb(err, -1));
5807
5831
  }
5808
5832
  var xhrsend = function (method, url, body, cb) {
5809
- if (typeof util/* default */.Z.XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb);
5810
- var request = new util/* default */.Z.XMLHttpRequest();
5833
+ if (typeof util/* default.XMLHttpRequest */.Z.XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb);
5834
+ var request = new util/* default.XMLHttpRequest */.Z.XMLHttpRequest();
5811
5835
  request.onreadystatechange = function (e) {
5812
5836
  if (request.readyState !== 4) return;
5813
5837
  cb && cb(request.responseText, request.status);
@@ -5838,8 +5862,8 @@ function Plugin(plugin, store, $container, lib) {
5838
5862
  var $div = document.createElement('div');
5839
5863
  $div.id = plugin.id;
5840
5864
  $container.appendChild($div);
5841
- let _locale = common/* getLocale */.Kd(plugin, util/* default */.Z.detectLang());
5842
- var domGate = new util/* default */.Z.Gate();
5865
+ let _locale = common/* getLocale */.Kd(plugin, util/* default.detectLang */.Z.detectLang());
5866
+ var domGate = new util/* default.Gate */.Z.Gate();
5843
5867
  var pageIndex = 0;
5844
5868
  var highlight;
5845
5869
  var state = 'hold';
@@ -5852,13 +5876,13 @@ function Plugin(plugin, store, $container, lib) {
5852
5876
  let lastrun = store.matchLastPluginRun(plugin.id);
5853
5877
  if (plugin.type === 'chatbox' || plugin.type === 'notification') lastrun = undefined;
5854
5878
  if (!plugin.enabled) return;
5855
- let match = util/* default */.Z.checkRunConditions(plugin.initiative_frequency, plugin.conditions, lastrun, store);
5879
+ let match = util/* default.checkRunConditions */.Z.checkRunConditions(plugin.initiative_frequency, plugin.conditions, lastrun, store);
5856
5880
  if (!match) return;
5857
5881
  state = 'running';
5858
5882
  await _this.update(plugin);
5859
5883
  };
5860
5884
  this.forceRunPopup = async () => {
5861
- if (util/* default */.Z.get(_ref, 'current')) {
5885
+ if (util/* default.get */.Z.get(_ref, 'current')) {
5862
5886
  _ref.current.openPopup();
5863
5887
  } else {
5864
5888
  _render();
@@ -5945,9 +5969,9 @@ function Plugin(plugin, store, $container, lib) {
5945
5969
  };
5946
5970
  let t = key => {
5947
5971
  if (_locale === 'debug') return `{{${key}}}`;
5948
- let messages = util/* default */.Z.get(common/* langMessages */.Rs, _locale, []);
5949
- let message = util/* default */.Z.find(messages, message => message.key === key);
5950
- return util/* default */.Z.get(message, 'message', key);
5972
+ let messages = util/* default.get */.Z.get(common/* langMessages */.Rs, _locale, []);
5973
+ let message = util/* default.find */.Z.find(messages, message => message.key === key);
5974
+ return util/* default.get */.Z.get(message, 'message', key);
5951
5975
  };
5952
5976
  let acc = store.matchAccount();
5953
5977
  t.i18n = i18nText => {
@@ -5973,29 +5997,29 @@ function Plugin(plugin, store, $container, lib) {
5973
5997
  return _locale;
5974
5998
  };
5975
5999
  let images = {};
5976
- util/* default */.Z.map(util/* default */.Z.get(plugin, 'popup.pages'), page => {
6000
+ util/* default.map */.Z.map(util/* default.get */.Z.get(plugin, 'popup.pages'), page => {
5977
6001
  if (!page) return;
5978
- util/* default */.Z.map(page.components, com => {
6002
+ util/* default.map */.Z.map(page.components, com => {
5979
6003
  if (com.type === 'image' && com.image && com.image.url && com.image.url.startsWith('http')) {
5980
6004
  images[com.image.url] = true;
5981
6005
  }
5982
6006
  });
5983
6007
  });
5984
- if (util/* default */.Z.size(images) >= 0) util/* default */.Z.map(images, (_, image) => util/* default */.Z.preloadImg(image));
5985
- let triggers = util/* default */.Z.get(plugin, 'triggers') || [{
6008
+ if (util/* default.size */.Z.size(images) >= 0) util/* default.map */.Z.map(images, (_, image) => util/* default.preloadImg */.Z.preloadImg(image));
6009
+ let triggers = util/* default.get */.Z.get(plugin, 'triggers') || [{
5986
6010
  type: 'after_pageview',
5987
6011
  after_pageview_sec: 0,
5988
6012
  disabled: false
5989
6013
  }];
5990
- for (var i = 0; i < util/* default */.Z.size(triggers); i++) {
6014
+ for (var i = 0; i < util/* default.size */.Z.size(triggers); i++) {
5991
6015
  var tr = triggers[i];
5992
6016
  if (!tr) continue;
5993
6017
  if (tr.disabled) continue;
5994
- if (tr.type === 'exit_intent') util/* default */.Z.trackExitIntent(run);
5995
- if (tr.type === 'area_clicked') util/* default */.Z.trackAreaClicked(tr.area_clicked_css_selector, run);
5996
- if (tr.type === 'scrolling_percentage') util/* default */.Z.trackScrollingPercentage(tr.scrolling_percentage, run);
5997
- if (tr.type === 'inactivity_duration') util/* default */.Z.trackInactivity(tr.inactivity_sec, run);
5998
- if (tr.type === 'after_pageview') util/* default */.Z.trackTimeOnPage(tr.after_pageview_sec, run);
6018
+ if (tr.type === 'exit_intent') util/* default.trackExitIntent */.Z.trackExitIntent(run);
6019
+ if (tr.type === 'area_clicked') util/* default.trackAreaClicked */.Z.trackAreaClicked(tr.area_clicked_css_selector, run);
6020
+ if (tr.type === 'scrolling_percentage') util/* default.trackScrollingPercentage */.Z.trackScrollingPercentage(tr.scrolling_percentage, run);
6021
+ if (tr.type === 'inactivity_duration') util/* default.trackInactivity */.Z.trackInactivity(tr.inactivity_sec, run);
6022
+ if (tr.type === 'after_pageview') util/* default.trackTimeOnPage */.Z.trackTimeOnPage(tr.after_pageview_sec, run);
5999
6023
  }
6000
6024
  this.update(plugin);
6001
6025
  common/* downloadLanguage */.WW(store, _locale).then(() => {
@@ -6023,7 +6047,7 @@ class PluginMgr {
6023
6047
  if (this._destroy) return;
6024
6048
  let pluginM = this.lib.store.matchPlugin();
6025
6049
  let foundchatbox = false;
6026
- util/* default */.Z.each(pluginM, conf => {
6050
+ util/* default.each */.Z.each(pluginM, conf => {
6027
6051
  if (conf.type === 'chatbox') {
6028
6052
  if (foundchatbox) return;
6029
6053
  foundchatbox = true;
@@ -6034,7 +6058,7 @@ class PluginMgr {
6034
6058
  }
6035
6059
  this.pluginM[conf.id].update(conf);
6036
6060
  });
6037
- util/* default */.Z.each(this.pluginM, (conf, id) => {
6061
+ util/* default.each */.Z.each(this.pluginM, (conf, id) => {
6038
6062
  if (pluginM[id]) return;
6039
6063
  this.pluginM[id].destroy();
6040
6064
  delete this.pluginM[id];
@@ -6042,7 +6066,7 @@ class PluginMgr {
6042
6066
  });
6043
6067
  let pluginM = this.lib.store.matchPlugin();
6044
6068
  let foundchatbox = false;
6045
- util/* default */.Z.each(pluginM, conf => {
6069
+ util/* default.each */.Z.each(pluginM, conf => {
6046
6070
  if (conf.type === 'chatbox') {
6047
6071
  if (foundchatbox) return;
6048
6072
  foundchatbox = true;
@@ -6052,12 +6076,12 @@ class PluginMgr {
6052
6076
  }
6053
6077
  findChatbox() {
6054
6078
  var pluginM = this.lib.store.matchPlugin();
6055
- let chatboxs = util/* default */.Z.filter(this.pluginM, (plugin, id) => pluginM[id].type === 'chatbox');
6056
- if (util/* default */.Z.size(chatboxs) === 0) {
6079
+ let chatboxs = util/* default.filter */.Z.filter(this.pluginM, (plugin, id) => pluginM[id].type === 'chatbox');
6080
+ if (util/* default.size */.Z.size(chatboxs) === 0) {
6057
6081
  console.error('no chatbox found.');
6058
6082
  return;
6059
6083
  }
6060
- let chatbox = util/* default */.Z.find(chatboxs, chatbox => chatbox.getState() === 'running');
6084
+ let chatbox = util/* default.find */.Z.find(chatboxs, chatbox => chatbox.getState() === 'running');
6061
6085
  if (!chatbox) {
6062
6086
  chatbox = chatboxs[0];
6063
6087
  }
@@ -6113,7 +6137,7 @@ class PluginMgr {
6113
6137
  chatbox.setLocale(locale);
6114
6138
  }
6115
6139
  destroy() {
6116
- util/* default */.Z.map(this.pluginM, (conf, id) => {
6140
+ util/* default.map */.Z.map(this.pluginM, (conf, id) => {
6117
6141
  if (this.pluginM[id]) return;
6118
6142
  this.pluginM[id].destroy();
6119
6143
  delete this.pluginM[id];
@@ -6132,25 +6156,25 @@ var $link = document.createElement('link');
6132
6156
  $link.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap';
6133
6157
  $link.rel = 'stylesheet';
6134
6158
  document.head.append($link);
6135
- util/* default */.Z.preloadWebfonts(['Inter'], [400, 500, 600]);
6159
+ util/* default.preloadWebfonts */.Z.preloadWebfonts(['Inter'], [400, 500, 600]);
6136
6160
  class Widget {
6137
6161
  constructor(ApiURL, FileURL, RealtimeURL, inmem, fake) {
6138
6162
  lib_defineProperty(this, "version", () => '4.5');
6139
6163
  lib_defineProperty(this, "setSetting", setting => this.store.setSetting({
6140
6164
  account_setting: setting
6141
6165
  }));
6142
- lib_defineProperty(this, "getUser", () => util/* default */.Z.parseJSON(util/* default */.Z.stringify(this.store.matchUser())));
6166
+ lib_defineProperty(this, "getUser", () => util/* default.parseJSON */.Z.parseJSON(util/* default.stringify */.Z.stringify(this.store.matchUser())));
6143
6167
  lib_defineProperty(this, "setViewingProduct", p => this.store.linkProduct(p));
6144
6168
  lib_defineProperty(this, "getViewingProduct", () => this.store.getLinkedProduct());
6145
6169
  lib_defineProperty(this, "track", () => this.store.track());
6146
6170
  this.impressionTokens = {};
6147
- this.domGate = new util/* default */.Z.Gate();
6171
+ this.domGate = new util/* default.Gate */.Z.Gate();
6148
6172
  this.store = new Store(ApiURL, FileURL, RealtimeURL, inmem, fake);
6149
6173
  window.sbz_store = this.store;
6150
6174
  this.subs = [];
6151
6175
  this.store.onConvoEvent({
6152
6176
  _isMounted: true
6153
- }, ev => util/* default */.Z.map(this.subs, sub => sub(ev)));
6177
+ }, ev => util/* default.map */.Z.map(this.subs, sub => sub(ev)));
6154
6178
  }
6155
6179
  async waitReady(cb) {
6156
6180
  await this.store.readyGate.entry();
@@ -6161,10 +6185,10 @@ class Widget {
6161
6185
  let user = await this.store.login(accid, user_id, tokenGenerator);
6162
6186
  if (!$container) $container = document.body;
6163
6187
  this.pluginMgr = new PluginMgr(this, $container);
6164
- let clean = util/* default */.Z.setInterval(() => {
6188
+ let clean = util/* default.setInterval */.Z.setInterval(() => {
6165
6189
  if ($container && $container.isConnected) return;
6166
6190
  this.pluginMgr.destroy();
6167
- util/* default */.Z.clearInterval(clean);
6191
+ util/* default.clearInterval */.Z.clearInterval(clean);
6168
6192
  }, 1000);
6169
6193
  this.domGate.open();
6170
6194
  return user;
@@ -6179,10 +6203,10 @@ class Widget {
6179
6203
  let user = await this.store.init(accid, undefined, ref);
6180
6204
  if (!$container) $container = document.body || document;
6181
6205
  this.pluginMgr = new PluginMgr(this, $container);
6182
- let clean = util/* default */.Z.setInterval(() => {
6206
+ let clean = util/* default.setInterval */.Z.setInterval(() => {
6183
6207
  if ($container && $container.isConnected) return;
6184
6208
  this.pluginMgr.destroy();
6185
- util/* default */.Z.clearInterval(clean);
6209
+ util/* default.clearInterval */.Z.clearInterval(clean);
6186
6210
  }, 1000);
6187
6211
  this.domGate.open();
6188
6212
  return user;
@@ -6191,10 +6215,10 @@ class Widget {
6191
6215
  let outmask = await this.store.init(id, mask);
6192
6216
  if (!$container) $container = document.body || document;
6193
6217
  this.pluginMgr = new PluginMgr(this, $container);
6194
- let clean = util/* default */.Z.setInterval(() => {
6218
+ let clean = util/* default.setInterval */.Z.setInterval(() => {
6195
6219
  if ($container && $container.isConnected) return;
6196
6220
  this.pluginMgr.destroy();
6197
- util/* default */.Z.clearInterval(clean);
6221
+ util/* default.clearInterval */.Z.clearInterval(clean);
6198
6222
  }, 1000);
6199
6223
  this.domGate.open();
6200
6224
  cb && cb(outmask);
@@ -6208,12 +6232,12 @@ class Widget {
6208
6232
  attributes
6209
6233
  });
6210
6234
  var user = this.store.matchUser();
6211
- return util/* default */.Z.cloneDeep(user.attributes);
6235
+ return util/* default.cloneDeep */.Z.cloneDeep(user.attributes);
6212
6236
  }
6213
6237
  async getUserAttributes() {
6214
6238
  await this.store.readyGate.entry();
6215
6239
  var user = this.store.matchUser();
6216
- return util/* default */.Z.cloneDeep(util/* default */.Z.get(user, 'attributes', []));
6240
+ return util/* default.cloneDeep */.Z.cloneDeep(util/* default.get */.Z.get(user, 'attributes', []));
6217
6241
  }
6218
6242
  async getWidgetCurrentView() {
6219
6243
  await this.domGate.entry();
@@ -6244,26 +6268,45 @@ class Widget {
6244
6268
  });
6245
6269
  }
6246
6270
  async viewForm(formid) {
6247
- if (!formid || !util/* default */.Z.startsWith(formid, 'cp')) return;
6271
+ if (!formid || !util/* default.startsWith */.Z.startsWith(formid, 'cp')) return;
6248
6272
  let impressiontoken = this.impressionTokens[formid];
6249
6273
  if (impressiontoken) return impressiontoken;
6250
6274
  let {
6251
6275
  body: impression
6252
6276
  } = await this.store.sendImpression(formid);
6253
- impressiontoken = util/* default */.Z.get(impression, 'impression_token') || '';
6277
+ impressiontoken = util/* default.get */.Z.get(impression, 'impression_token') || '';
6254
6278
  this.impressionTokens[formid] = impressiontoken;
6255
6279
  return impressiontoken;
6256
6280
  }
6257
6281
  async submitForm(formid, values) {
6258
- if (!formid || !util/* default */.Z.startsWith(formid, 'cp')) return;
6259
- values = util/* default */.Z.map(values, val => {
6282
+ if (!formid || !util/* default.startsWith */.Z.startsWith(formid, 'cp')) return;
6283
+ let storeuser = util/* default.cloneDeep */.Z.cloneDeep(this.store.matchUser());
6284
+ let user = {
6285
+ id: storeuser.id,
6286
+ account_id: storeuser.account_id
6287
+ };
6288
+ let is_lead = false;
6289
+ values = util/* default.map */.Z.map(values, val => {
6290
+ let key = val.key;
6291
+ if (key === 'email') key = 'emails';
6292
+ if (key === 'phone') key = 'phones';
6293
+ is_lead = is_lead || key == 'emails' || key == 'phones';
6294
+ util/* default.setUserAttr */.Z.setUserAttr(user, {
6295
+ key: key,
6296
+ [val.type || 'text']: val.value
6297
+ });
6260
6298
  return {
6261
- key: val.key,
6299
+ key: key,
6262
6300
  type: val.type || 'text',
6263
- value: util/* default */.Z.stringify(val.value)
6301
+ value: util/* default.stringify */.Z.stringify(val.value)
6264
6302
  };
6265
6303
  });
6304
+ if (is_lead) util/* default.setUserAttr */.Z.setUserAttr(user, {
6305
+ key: 'lead_source',
6306
+ text: 'plugin.' + formid
6307
+ });
6266
6308
  let impressiontoken = await this.viewForm(formid);
6309
+ this.store.setUserDiff(user);
6267
6310
  return this.store.sendConversion(formid, values, impressiontoken);
6268
6311
  }
6269
6312
  startConvo(req) {
@@ -6316,14 +6359,14 @@ class Widget {
6316
6359
  this.pluginMgr.forceRunPopup(pluginid);
6317
6360
  }
6318
6361
  unEvent(cb) {
6319
- this.subs = util/* default */.Z.filter(this.subs, sub => sub !== cb);
6362
+ this.subs = util/* default.filter */.Z.filter(this.subs, sub => sub !== cb);
6320
6363
  }
6321
6364
  async countUnreadMessages() {
6322
6365
  await this.domGate.entry();
6323
6366
  return this.store.matchUnread();
6324
6367
  }
6325
6368
  onEvent(cb) {
6326
- this.subs = util/* default */.Z.filter(this.subs, sub => sub !== cb);
6369
+ this.subs = util/* default.filter */.Z.filter(this.subs, sub => sub !== cb);
6327
6370
  this.subs.push(cb);
6328
6371
  }
6329
6372
  overrideAccount(acc) {
@@ -6331,7 +6374,7 @@ class Widget {
6331
6374
  }
6332
6375
  async overrideChatbox(chatbox) {
6333
6376
  await this.store.overrideChatbox(chatbox);
6334
- if (util/* default */.Z.get(chatbox, 'chatbox.greeting.greeting')) {
6377
+ if (util/* default.get */.Z.get(chatbox, 'chatbox.greeting.greeting')) {
6335
6378
  this.pluginMgr.showCurrentGreeting();
6336
6379
  }
6337
6380
  }