@subiz/widget-v4 4.1.49 → 4.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiled_src/lib.js +8 -0
- package/compiled_src/plugin.js +2 -1
- package/dist/178.js +1 -1
- package/dist/18c1a2c5a7f.178.js +1 -0
- package/dist/18c1a2c5a7f.213.js +1 -0
- package/dist/18c1a2c5a7f.335.js +1 -0
- package/dist/{18a02a9c54e.362.js → 18c1a2c5a7f.362.js} +1 -1
- package/dist/18c1a2c5a7f.605.js +1 -0
- package/dist/{18a02a9c54e.782.js → 18c1a2c5a7f.782.js} +1 -1
- package/dist/18c1a2c5a7f.841.js +1 -0
- package/dist/18c1a2c5a7f.app.js +1 -0
- package/dist/{18a02a9c54e.index.html → 18c1a2c5a7f.index.html} +4 -4
- package/dist/{18a02a9c54e.library.html → 18c1a2c5a7f.library.html} +4 -4
- package/dist/18c1a2c5a7f.library.js +1 -0
- package/dist/{18a02a9c54e.preview.html → 18c1a2c5a7f.preview.html} +1 -1
- package/dist/18c1a2c5a7f.preview.js +1 -0
- package/dist/18c1a2c5a7f.screenshoot.js +1 -0
- package/dist/18c1a2c5a7f.webview.js +1 -0
- package/dist/213.js +118 -102
- package/dist/335.js +25 -25
- package/dist/362.js +1 -1
- package/dist/605.js +50 -50
- package/dist/782.js +1 -1
- package/dist/{132.js → 841.js} +637 -628
- package/dist/HASH +1 -1
- package/dist/malicious-app.js +8 -3
- package/dist/screenshoot.html +1 -1
- package/dist/screenshoot.js +452 -430
- package/package.json +11 -12
- package/src/lib.js +3 -0
- package/src/plugin.js +2 -1
- package/dist/18a02a9c54e.132.js +0 -1
- package/dist/18a02a9c54e.178.js +0 -1
- package/dist/18a02a9c54e.213.js +0 -1
- package/dist/18a02a9c54e.335.js +0 -1
- package/dist/18a02a9c54e.441.js +0 -1
- package/dist/18a02a9c54e.605.js +0 -1
- package/dist/18a02a9c54e.app.js +0 -1
- package/dist/18a02a9c54e.library.js +0 -1
- package/dist/18a02a9c54e.preview.js +0 -1
- package/dist/18a02a9c54e.screenshoot.js +0 -1
- package/dist/18a02a9c54e.webview.js +0 -1
- package/dist/441.js +0 -2855
- /package/dist/{18a02a9c54e.678.js → 18c1a2c5a7f.678.js} +0 -0
package/dist/screenshoot.js
CHANGED
|
@@ -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({
|
|
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
|
|
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 = {
|
|
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
|
|
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.
|
|
491
|
+
var key = keys.shift()
|
|
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
|
|
519
|
+
module.exports = function sleep(ms) {
|
|
520
520
|
return new Promise(function (res) {
|
|
521
521
|
setTimeout(res, ms)
|
|
522
522
|
})
|
|
@@ -525,10 +525,75 @@ module.exports = function sleep (ms) {
|
|
|
525
525
|
|
|
526
526
|
/***/ }),
|
|
527
527
|
|
|
528
|
-
/***/
|
|
529
|
-
/***/ ((module
|
|
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
|
+
}
|
|
530
566
|
|
|
531
|
-
|
|
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
|
+
}
|
|
595
|
+
|
|
596
|
+
module.exports = {xhrsend, parseJSON, Pubsub}
|
|
532
597
|
|
|
533
598
|
|
|
534
599
|
/***/ }),
|
|
@@ -537,6 +602,7 @@ module.exports = __webpack_require__(608)
|
|
|
537
602
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
538
603
|
|
|
539
604
|
var flow = __webpack_require__(3165)
|
|
605
|
+
var {xhrsend, parseJSON, Pubsub} = __webpack_require__(2611)
|
|
540
606
|
|
|
541
607
|
// Conn represents a realtime connection between an user and the realtime
|
|
542
608
|
// server (https://rt-0.subiz.com)
|
|
@@ -750,74 +816,6 @@ function Realtime(apiUrls, credential, callAPI) {
|
|
|
750
816
|
reconnect()
|
|
751
817
|
}
|
|
752
818
|
|
|
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
|
-
|
|
821
819
|
// calcNextBackoff returns number of seconds we must wait
|
|
822
820
|
// before sending a next request
|
|
823
821
|
// the results is determind based on exponential backoff algorithm
|
|
@@ -862,7 +860,7 @@ module.exports = Realtime
|
|
|
862
860
|
|
|
863
861
|
"use strict";
|
|
864
862
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
865
|
-
/* harmony export */
|
|
863
|
+
/* harmony export */ Z: () => (/* binding */ Chain)
|
|
866
864
|
/* harmony export */ });
|
|
867
865
|
const ChainMaxSize = 50;
|
|
868
866
|
class Chain {
|
|
@@ -934,9 +932,7 @@ class Chain {
|
|
|
934
932
|
});
|
|
935
933
|
return out;
|
|
936
934
|
}
|
|
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;
|
|
935
|
+
async fetchMore(chain, limit = 20, api) {
|
|
940
936
|
if (this.dead) return {
|
|
941
937
|
error: 'dead'
|
|
942
938
|
};
|
|
@@ -1094,7 +1090,7 @@ function orderBy(a, k, d) {
|
|
|
1094
1090
|
|
|
1095
1091
|
"use strict";
|
|
1096
1092
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1097
|
-
/* harmony export */
|
|
1093
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1098
1094
|
/* harmony export */ });
|
|
1099
1095
|
var localStorageMemory = {};
|
|
1100
1096
|
var cache = {};
|
|
@@ -1129,7 +1125,7 @@ localStorageMemory.clear = function () {
|
|
|
1129
1125
|
|
|
1130
1126
|
"use strict";
|
|
1131
1127
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1132
|
-
/* harmony export */
|
|
1128
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1133
1129
|
/* harmony export */ });
|
|
1134
1130
|
let KvMaxSize = 500;
|
|
1135
1131
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (class {
|
|
@@ -1218,7 +1214,7 @@ let KvMaxSize = 500;
|
|
|
1218
1214
|
|
|
1219
1215
|
"use strict";
|
|
1220
1216
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1221
|
-
/* harmony export */
|
|
1217
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1222
1218
|
/* harmony export */ });
|
|
1223
1219
|
let memlocalStorage = (__webpack_require__(9489)/* ["default"] */ .Z);
|
|
1224
1220
|
let requestIdleCallback = window.requestIdleCallback || (cb => cb());
|
|
@@ -1286,11 +1282,11 @@ function toString(obj) {
|
|
|
1286
1282
|
|
|
1287
1283
|
"use strict";
|
|
1288
1284
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1289
|
-
/* harmony export */
|
|
1290
|
-
/* harmony export */
|
|
1291
|
-
/* harmony export */
|
|
1292
|
-
/* harmony export */
|
|
1293
|
-
/* harmony export */
|
|
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)
|
|
1294
1290
|
/* harmony export */ });
|
|
1295
1291
|
/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6400);
|
|
1296
1292
|
/* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4494);
|
|
@@ -1300,7 +1296,7 @@ class Com extends preact__WEBPACK_IMPORTED_MODULE_0__/* .Component */ .wA {
|
|
|
1300
1296
|
constructor(props) {
|
|
1301
1297
|
super(props);
|
|
1302
1298
|
this._isMounted = true;
|
|
1303
|
-
_util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"]
|
|
1299
|
+
_util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setTimeout(() => {
|
|
1304
1300
|
if (this.componentWillUnmount) {
|
|
1305
1301
|
let old = this.componentWillUnmount.bind(this);
|
|
1306
1302
|
this.componentWillUnmount = () => {
|
|
@@ -1339,9 +1335,9 @@ class Clickaway extends Com {
|
|
|
1339
1335
|
}
|
|
1340
1336
|
const getLocale = (plugin, loc) => {
|
|
1341
1337
|
if (!loc) loc = '';
|
|
1342
|
-
let found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"]
|
|
1338
|
+
let found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.find(plugin.locales, l => l.toLowerCase().trim() === loc.toLowerCase().trim());
|
|
1343
1339
|
if (found) return found;
|
|
1344
|
-
found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"]
|
|
1340
|
+
found = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.find(plugin.locales, l => {
|
|
1345
1341
|
l = l.replace('-', '_').split('_')[0].trim().toLowerCase();
|
|
1346
1342
|
let compareloc = loc.replace('-', '_').split('_')[0].trim().toLowerCase();
|
|
1347
1343
|
return l == compareloc;
|
|
@@ -1352,7 +1348,7 @@ const getLocale = (plugin, loc) => {
|
|
|
1352
1348
|
let langMessages = {};
|
|
1353
1349
|
let downloadLock = false;
|
|
1354
1350
|
function downloadLanguage(store, locale, force) {
|
|
1355
|
-
if (downloadLock) return new Promise(resolve => _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"]
|
|
1351
|
+
if (downloadLock) return new Promise(resolve => _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setTimeout(() => downloadLanguage(store, locale, force).then(resolve), 100));
|
|
1356
1352
|
downloadLock = true;
|
|
1357
1353
|
let messages;
|
|
1358
1354
|
if (locale === 'debug' || langMessages[locale] && !force) {
|
|
@@ -1361,7 +1357,7 @@ function downloadLanguage(store, locale, force) {
|
|
|
1361
1357
|
}
|
|
1362
1358
|
return store.getLocaleContent(locale).then(res => {
|
|
1363
1359
|
downloadLock = false;
|
|
1364
|
-
messages = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"]
|
|
1360
|
+
messages = _util_index_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.get(res, 'body.messages', []);
|
|
1365
1361
|
langMessages[locale] = messages;
|
|
1366
1362
|
});
|
|
1367
1363
|
}
|
|
@@ -1374,73 +1370,73 @@ function downloadLanguage(store, locale, force) {
|
|
|
1374
1370
|
"use strict";
|
|
1375
1371
|
__webpack_require__.r(__webpack_exports__);
|
|
1376
1372
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1377
|
-
/* harmony export */
|
|
1378
|
-
/* harmony export */
|
|
1379
|
-
/* harmony export */
|
|
1380
|
-
/* harmony export */
|
|
1381
|
-
/* harmony export */
|
|
1382
|
-
/* harmony export */
|
|
1383
|
-
/* harmony export */
|
|
1384
|
-
/* harmony export */
|
|
1385
|
-
/* harmony export */
|
|
1386
|
-
/* harmony export */
|
|
1387
|
-
/* harmony export */
|
|
1388
|
-
/* harmony export */
|
|
1389
|
-
/* harmony export */
|
|
1390
|
-
/* harmony export */
|
|
1391
|
-
/* harmony export */
|
|
1392
|
-
/* harmony export */
|
|
1393
|
-
/* harmony export */
|
|
1394
|
-
/* harmony export */
|
|
1395
|
-
/* harmony export */
|
|
1396
|
-
/* harmony export */
|
|
1397
|
-
/* harmony export */
|
|
1398
|
-
/* harmony export */
|
|
1399
|
-
/* harmony export */
|
|
1400
|
-
/* harmony export */
|
|
1401
|
-
/* harmony export */
|
|
1402
|
-
/* harmony export */
|
|
1403
|
-
/* harmony export */
|
|
1404
|
-
/* harmony export */
|
|
1405
|
-
/* harmony export */
|
|
1406
|
-
/* harmony export */
|
|
1407
|
-
/* harmony export */
|
|
1408
|
-
/* harmony export */
|
|
1409
|
-
/* harmony export */
|
|
1410
|
-
/* harmony export */
|
|
1411
|
-
/* harmony export */
|
|
1412
|
-
/* harmony export */
|
|
1413
|
-
/* harmony export */
|
|
1414
|
-
/* harmony export */
|
|
1415
|
-
/* harmony export */
|
|
1416
|
-
/* harmony export */
|
|
1417
|
-
/* harmony export */
|
|
1418
|
-
/* harmony export */
|
|
1419
|
-
/* harmony export */
|
|
1420
|
-
/* harmony export */
|
|
1421
|
-
/* harmony export */
|
|
1422
|
-
/* harmony export */
|
|
1423
|
-
/* harmony export */
|
|
1424
|
-
/* harmony export */
|
|
1425
|
-
/* harmony export */
|
|
1426
|
-
/* harmony export */
|
|
1427
|
-
/* harmony export */
|
|
1428
|
-
/* harmony export */
|
|
1429
|
-
/* harmony export */
|
|
1430
|
-
/* harmony export */
|
|
1431
|
-
/* harmony export */
|
|
1432
|
-
/* harmony export */
|
|
1433
|
-
/* harmony export */
|
|
1434
|
-
/* harmony export */
|
|
1435
|
-
/* harmony export */
|
|
1436
|
-
/* harmony export */
|
|
1437
|
-
/* harmony export */
|
|
1438
|
-
/* harmony export */
|
|
1439
|
-
/* harmony export */
|
|
1440
|
-
/* harmony export */
|
|
1441
|
-
/* harmony export */
|
|
1442
|
-
/* harmony export */
|
|
1443
|
-
/* harmony export */
|
|
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)
|
|
1444
1440
|
/* harmony export */ });
|
|
1445
1441
|
var op = __webpack_require__(6877);
|
|
1446
1442
|
function parseJSON(str) {
|
|
@@ -1527,10 +1523,7 @@ function getMsgField(ev, fieldName) {
|
|
|
1527
1523
|
function isObject(item) {
|
|
1528
1524
|
return item && typeof item === 'object' && !Array.isArray(item);
|
|
1529
1525
|
}
|
|
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
|
-
}
|
|
1526
|
+
function merge(target, ...sources) {
|
|
1534
1527
|
if (!sources.length) return target;
|
|
1535
1528
|
const source = sources.shift();
|
|
1536
1529
|
if (isObject(target) && isObject(source)) {
|
|
@@ -1758,7 +1751,7 @@ function setUserAttr(user, attr) {
|
|
|
1758
1751
|
if (!user) return;
|
|
1759
1752
|
if (!op.get(attr, 'key')) return;
|
|
1760
1753
|
user.attributes = user.attributes || [];
|
|
1761
|
-
var index = findIndex(user.attributes, a => a.key === attr.key);
|
|
1754
|
+
var index = findIndex(user.attributes, a => a && a.key === attr.key);
|
|
1762
1755
|
if (index === -1) {
|
|
1763
1756
|
user.attributes.push(attr);
|
|
1764
1757
|
return;
|
|
@@ -2093,9 +2086,9 @@ function checkRunConditions(freq, conds, lastrun, store) {
|
|
|
2093
2086
|
break;
|
|
2094
2087
|
case 'user_is_a_contact':
|
|
2095
2088
|
let attributes = op.get(store.matchUser(), 'attributes', []);
|
|
2096
|
-
let emailAttr = find(attributes, att => att.key === 'emails'
|
|
2097
|
-
let phoneAttr = find(attributes, att => att.key === 'phones'
|
|
2098
|
-
let hasContact = emailAttr
|
|
2089
|
+
let emailAttr = find(attributes, att => att.key === 'emails' && attr.text && att.key === 'related_email' && attr.text);
|
|
2090
|
+
let phoneAttr = find(attributes, att => att.key === 'phones' && attr.text && att.key === 'related_phone' && attr.text);
|
|
2091
|
+
let hasContact = emailAttr || phoneAttr;
|
|
2099
2092
|
if (cond.user_is_a_contact) {
|
|
2100
2093
|
if (!hasContact) return false;
|
|
2101
2094
|
}
|
|
@@ -2328,8 +2321,7 @@ function getUrlParameter() {
|
|
|
2328
2321
|
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
|
|
2329
2322
|
}
|
|
2330
2323
|
var sleep = ms => new Promise(res => setTimeout(res, ms));
|
|
2331
|
-
function formatCurrency(val) {
|
|
2332
|
-
let currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'VND';
|
|
2324
|
+
function formatCurrency(val, currency = 'VND') {
|
|
2333
2325
|
let currencyObj = ALL_CURRENCIES.find(cur => cur.code === currency) || {
|
|
2334
2326
|
name: 'Dong',
|
|
2335
2327
|
code: 'VND',
|
|
@@ -3049,7 +3041,7 @@ const ALL_CURRENCIES = [{
|
|
|
3049
3041
|
|
|
3050
3042
|
"use strict";
|
|
3051
3043
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3052
|
-
/* harmony export */
|
|
3044
|
+
/* harmony export */ Z: () => (/* binding */ Gate)
|
|
3053
3045
|
/* harmony export */ });
|
|
3054
3046
|
class Gate {
|
|
3055
3047
|
constructor(isOpen) {
|
|
@@ -3092,41 +3084,41 @@ class Gate {
|
|
|
3092
3084
|
|
|
3093
3085
|
// EXPORTS
|
|
3094
3086
|
__webpack_require__.d(__webpack_exports__, {
|
|
3095
|
-
|
|
3087
|
+
Z: () => (/* binding */ util)
|
|
3096
3088
|
});
|
|
3097
3089
|
|
|
3098
3090
|
// NAMESPACE OBJECT: ./src/util/extractor.js
|
|
3099
3091
|
var extractor_namespaceObject = {};
|
|
3100
3092
|
__webpack_require__.r(extractor_namespaceObject);
|
|
3101
3093
|
__webpack_require__.d(extractor_namespaceObject, {
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3094
|
+
extract: () => (extract),
|
|
3095
|
+
extractEmails: () => (extractEmails),
|
|
3096
|
+
extractEmojis: () => (extractEmojis),
|
|
3097
|
+
extractLinks: () => (extractLinks),
|
|
3098
|
+
extractPhones: () => (extractPhones),
|
|
3099
|
+
extractText: () => (extractText),
|
|
3100
|
+
pipeExtracts: () => (pipeExtracts)
|
|
3109
3101
|
});
|
|
3110
3102
|
|
|
3111
3103
|
// NAMESPACE OBJECT: ./src/util/campaign.js
|
|
3112
3104
|
var campaign_namespaceObject = {};
|
|
3113
3105
|
__webpack_require__.r(campaign_namespaceObject);
|
|
3114
3106
|
__webpack_require__.d(campaign_namespaceObject, {
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3107
|
+
trackAreaClicked: () => (trackAreaClicked),
|
|
3108
|
+
trackExitIntent: () => (trackExitIntent),
|
|
3109
|
+
trackInactivity: () => (trackInactivity),
|
|
3110
|
+
trackScrollingPercentage: () => (trackScrollingPercentage),
|
|
3111
|
+
trackTimeOnPage: () => (trackTimeOnPage)
|
|
3120
3112
|
});
|
|
3121
3113
|
|
|
3122
3114
|
// NAMESPACE OBJECT: ./src/util/order.js
|
|
3123
3115
|
var order_namespaceObject = {};
|
|
3124
3116
|
__webpack_require__.r(order_namespaceObject);
|
|
3125
3117
|
__webpack_require__.d(order_namespaceObject, {
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3118
|
+
calcOrderTotal: () => (calcOrderTotal),
|
|
3119
|
+
displayOrderShippingAddress: () => (displayOrderShippingAddress),
|
|
3120
|
+
getOrderDisplayName: () => (getOrderDisplayName),
|
|
3121
|
+
getProductPropName: () => (getProductPropName)
|
|
3130
3122
|
});
|
|
3131
3123
|
|
|
3132
3124
|
// EXTERNAL MODULE: ./src/util/common.js
|
|
@@ -3286,9 +3278,7 @@ function trackAreaClicked(selector, cb) {
|
|
|
3286
3278
|
on('click', selector, cb);
|
|
3287
3279
|
});
|
|
3288
3280
|
}
|
|
3289
|
-
function trackInactivity() {
|
|
3290
|
-
let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
3291
|
-
let cb = arguments.length > 1 ? arguments[1] : undefined;
|
|
3281
|
+
function trackInactivity(seconds = 0, cb) {
|
|
3292
3282
|
let events = ['scroll', 'keyup', 'keydown', 'mousemove', 'mousewheel', 'mouseenter', 'mouseover', 'mousedown', 'touchstart', 'touchmove', 'touchenter'];
|
|
3293
3283
|
let inactiveSeconds = 0;
|
|
3294
3284
|
let resetTime = () => {
|
|
@@ -3311,9 +3301,7 @@ let timeOnPage = 0;
|
|
|
3311
3301
|
campaign_common.setInterval(() => {
|
|
3312
3302
|
timeOnPage += 5;
|
|
3313
3303
|
}, 5000);
|
|
3314
|
-
function trackTimeOnPage() {
|
|
3315
|
-
let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
3316
|
-
let cb = arguments.length > 1 ? arguments[1] : undefined;
|
|
3304
|
+
function trackTimeOnPage(seconds = 0, cb) {
|
|
3317
3305
|
if (seconds < 1) {
|
|
3318
3306
|
return campaign_common.setTimeout(function () {
|
|
3319
3307
|
cb(seconds);
|
|
@@ -3349,8 +3337,7 @@ op.map = order_common.map;
|
|
|
3349
3337
|
op.each = order_common.each;
|
|
3350
3338
|
op.size = order_common.size;
|
|
3351
3339
|
op.find = order_common.find;
|
|
3352
|
-
function getProductPropName(product) {
|
|
3353
|
-
let seperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' - ';
|
|
3340
|
+
function getProductPropName(product, seperator = ' - ') {
|
|
3354
3341
|
let options = op.get(product, 'options', []);
|
|
3355
3342
|
let props = op.get(product, 'props', []);
|
|
3356
3343
|
let multiPropsOptions = op.filter(options, option => op.size(option.values) > 1);
|
|
@@ -3361,8 +3348,7 @@ function getProductPropName(product) {
|
|
|
3361
3348
|
});
|
|
3362
3349
|
return names.join(seperator);
|
|
3363
3350
|
}
|
|
3364
|
-
function getOrderDisplayName() {
|
|
3365
|
-
let order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3351
|
+
function getOrderDisplayName(order = {}) {
|
|
3366
3352
|
return order.number || order.id || '';
|
|
3367
3353
|
}
|
|
3368
3354
|
function displayOrderShippingAddress(order, isShorten) {
|
|
@@ -3472,7 +3458,7 @@ sb = Object.assign(sb, order_namespaceObject);
|
|
|
3472
3458
|
|
|
3473
3459
|
"use strict";
|
|
3474
3460
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3475
|
-
/* harmony export */
|
|
3461
|
+
/* harmony export */ Z: () => (/* binding */ Mutex)
|
|
3476
3462
|
/* harmony export */ });
|
|
3477
3463
|
class Mutex {
|
|
3478
3464
|
constructor() {
|
|
@@ -3507,8 +3493,8 @@ class Mutex {
|
|
|
3507
3493
|
"use strict";
|
|
3508
3494
|
__webpack_require__.r(__webpack_exports__);
|
|
3509
3495
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3510
|
-
/* harmony export */
|
|
3511
|
-
/* harmony export */
|
|
3496
|
+
/* harmony export */ get: () => (/* binding */ get),
|
|
3497
|
+
/* harmony export */ set: () => (/* binding */ set)
|
|
3512
3498
|
/* harmony export */ });
|
|
3513
3499
|
var toStr = Object.prototype.toString;
|
|
3514
3500
|
var isArray = Array.isArray || function (obj) {
|
|
@@ -3566,7 +3552,7 @@ function set(obj, path, value) {
|
|
|
3566
3552
|
|
|
3567
3553
|
"use strict";
|
|
3568
3554
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3569
|
-
/* harmony export */
|
|
3555
|
+
/* harmony export */ Z: () => (/* binding */ Pubsub)
|
|
3570
3556
|
/* harmony export */ });
|
|
3571
3557
|
var {
|
|
3572
3558
|
filter,
|
|
@@ -3578,12 +3564,9 @@ class Pubsub {
|
|
|
3578
3564
|
}
|
|
3579
3565
|
publish(topic, payload, payload2, payload3) {
|
|
3580
3566
|
this.listeners[topic] = filter(this.listeners[topic], sub => sub.obj._isMounted);
|
|
3581
|
-
map(this.listeners[topic],
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
} = _ref;
|
|
3585
|
-
return cb(payload, payload2, payload3);
|
|
3586
|
-
});
|
|
3567
|
+
map(this.listeners[topic], ({
|
|
3568
|
+
cb
|
|
3569
|
+
}) => cb(payload, payload2, payload3));
|
|
3587
3570
|
}
|
|
3588
3571
|
on2(obj, topic, cb) {
|
|
3589
3572
|
if (!this.listeners[topic]) this.listeners[topic] = [];
|
|
@@ -3788,14 +3771,14 @@ class Pubsub {
|
|
|
3788
3771
|
|
|
3789
3772
|
"use strict";
|
|
3790
3773
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3791
|
-
/* harmony export */
|
|
3792
|
-
/* harmony export */
|
|
3793
|
-
/* harmony export */
|
|
3794
|
-
/* harmony export */
|
|
3795
|
-
/* harmony export */
|
|
3774
|
+
/* harmony export */ HY: () => (/* binding */ g),
|
|
3775
|
+
/* harmony export */ Vf: () => (/* binding */ _),
|
|
3776
|
+
/* harmony export */ h: () => (/* binding */ y),
|
|
3777
|
+
/* harmony export */ sY: () => (/* binding */ q),
|
|
3778
|
+
/* harmony export */ wA: () => (/* binding */ b)
|
|
3796
3779
|
/* harmony export */ });
|
|
3797
3780
|
/* unused harmony exports cloneElement, createContext, createElement, hydrate, isValidElement, options, toChildArray */
|
|
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;
|
|
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,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function _(){return{current:null}}function g(n){return n.children}function b(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__i+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?m(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 w(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!x.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(x)}function x(){var n,u,t,o,r,e,c,s,a;for(i.sort(f);n=i.shift();)n.__d&&(u=i.length,o=void 0,e=(r=(t=n).__v).__e,s=[],a=[],(c=t.__P)&&((o=v({},r)).__v=r.__v+1,l.vnode&&l.vnode(o),L(c,o,r,t.__n,void 0!==c.ownerSVGElement,32&r.__u?[e]:null,s,null==e?m(r):e,!!(32&r.__u),a),o.__.__k[o.__i]=o,M(s,o,a),o.__e!=e&&k(o)),i.length>u&&i.sort(f));x.__r=0}function C(n,l,u,t,i,o,r,f,e,a,h){var v,p,y,d,_,g=t&&t.__k||s,b=l.length;for(u.__d=e,P(u,l,g),e=u.__d,v=0;v<b;v++)null!=(y=u.__k[v])&&"boolean"!=typeof y&&"function"!=typeof y&&(p=-1===y.__i?c:g[y.__i]||c,y.__i=v,L(n,y,p,i,o,r,f,e,a,h),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&z(p.ref,null,y),h.push(y.ref,y.__c||d,y)),null==_&&null!=d&&(_=d),65536&y.__u||p.__k===y.__k?e=S(y,e,n):"function"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=_}function P(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=n.__k[t]=null==(i=l[t])||"boolean"==typeof i||"function"==typeof i?null:"string"==typeof i||"number"==typeof i||"bigint"==typeof i||i.constructor==String?d(null,i,null,null,i):h(i)?d(g,{children:i},null,null,null):i.__b>0?d(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=H(i,u,r=t+a,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,"function"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:a=f<r&&f==r-1?f-r:0,f!==t+a&&(i.__u|=65536))):(o=u[t])&&null==o.key&&o.__e&&(o.__e==n.__d&&(n.__d=m(o)),N(o,o,!1),u[t]=null,s--);if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=m(o)),N(o,o))}function S(n,l,u){var t,i;if("function"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=S(t[i],l,u));return l}return n.__e!=l&&(u.insertBefore(n.__e,l||null),l=n.__e),l&&l.nextSibling}function $(n,l){return l=l||[],null==n||"boolean"==typeof n||(h(n)?n.some(function(n){$(n,l)}):l.push(n)),l}function H(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&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}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(/(PointerCapture)$|Capture$/,"$1")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=Date.now(),n.addEventListener(l,o?D:A,o)):n.removeEventListener(l,o?D:A,o);else{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&&"role"!==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 A(n){var u=this.l[n.type+!1];if(n.t){if(n.t<=u.u)return}else n.t=Date.now();return u(l.event?l.event(n):n)}function D(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,_,m,k,w,x,P,S,$,H,I,T,A=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if("function"==typeof A)try{if(w=u.props,x=(a=A.contextType)&&i[a.__c],P=a?x?x.props.value:a.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:("prototype"in A&&A.prototype.render?u.__c=p=new A(w,P):(u.__c=p=new b(w,P),p.constructor=A,p.render=O),x&&x.sub(p),p.props=w,p.state||(p.state={}),p.context=P,p.__n=i,y=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=A.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=v({},p.__s)),v(p.__s,A.getDerivedStateFromProps(w,p.__s))),d=p.props,_=p.state,p.__v=u,y)null==A.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==A.getDerivedStateFromProps&&w!==d&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(w,P),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(w,p.__s,P)||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,P),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(d,_,m)})}if(p.context=P,p.props=w,p.__P=n,p.__e=!1,$=l.__r,H=0,"prototype"in A&&A.prototype.render){for(p.state=p.__s,p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),I=0;I<p._sb.length;I++)p.__h.push(p._sb[I]);p._sb=[]}else do{p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=v(v({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(d,_)),C(n,h(T=null!=a&&a.type===g&&null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__u&=-161,p.__h.length&&f.push(p),k&&(p.__E=p.__=null)}catch(n){u.__v=null,c||null!=r?(u.__e=e,u.__u|=c?160:32,r[r.indexOf(e)]=null):(u.__e=t.__e,u.__k=t.__k),l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=j(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}function M(n,u,t){u.__d=void 0;for(var i=0;i<t.length;i++)z(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 j(l,u,t,i,o,r,f,e,s){var a,v,y,d,_,g,b,k=t.props,w=u.props,x=u.type;if("svg"===x&&(o=!0),null!=r)for(a=0;a<r.length;a++)if((_=r[a])&&"setAttribute"in _==!!x&&(x?_.localName===x:3===_.nodeType)){l=_,r[a]=null;break}if(null==l){if(null===x)return document.createTextNode(w);l=o?document.createElementNS("http://www.w3.org/2000/svg",x):document.createElement(x,w.is&&w),r=null,e=!1}if(null===x)k===w||e&&l.data===w||(l.data=w);else{if(r=r&&n.call(l.childNodes),k=t.props||c,!e&&null!=r)for(k={},a=0;a<l.attributes.length;a++)k[(_=l.attributes[a]).name]=_.value;for(a in k)_=k[a],"children"==a||("dangerouslySetInnerHTML"==a?y=_:"key"===a||a in w||T(l,a,null,_,o));for(a in w)_=w[a],"children"==a?d=_:"dangerouslySetInnerHTML"==a?v=_:"value"==a?g=_:"checked"==a?b=_:"key"===a||e&&"function"!=typeof _||k[a]===_||T(l,a,_,k[a],o);if(v)e||y&&(v.__html===y.__html||v.__html===l.innerHTML)||(l.innerHTML=v.__html),u.__k=[];else if(y&&(l.innerHTML=""),C(l,h(d)?d:[d],u,t,i,o&&"foreignObject"!==x,r,f,r?r[0]:t.__k&&m(t,0),e,s),null!=r)for(a=r.length;a--;)null!=r[a]&&p(r[a]);e||(a="value",void 0!==g&&(g!==l[a]||"progress"===x&&!g||"option"===x&&g!==k[a])&&T(l,a,g,k[a],!1),a="checked",void 0!==b&&b!==l[a]&&T(l,a,b,k[a],!1))}return l}function z(n,u,t){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function N(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||z(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]&&N(i[o],u,t||"function"!=typeof n.type);t||null==n.__e||p(n.__e),n.__=n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function q(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(g,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 B(n,l){q(n,l,B)}function E(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 F(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&&null==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=g,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;
|
|
3799
3782
|
//# sourceMappingURL=preact.module.js.map
|
|
3800
3783
|
|
|
3801
3784
|
|
|
@@ -3907,6 +3890,7 @@ var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]
|
|
|
3907
3890
|
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
|
3908
3891
|
/******/ }
|
|
3909
3892
|
/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key);
|
|
3893
|
+
/******/
|
|
3910
3894
|
/******/ script.src = url;
|
|
3911
3895
|
/******/ }
|
|
3912
3896
|
/******/ inProgress[url] = [done];
|
|
@@ -3919,7 +3903,7 @@ var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]
|
|
|
3919
3903
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
3920
3904
|
/******/ doneFns && doneFns.forEach((fn) => (fn(event)));
|
|
3921
3905
|
/******/ if(prev) return prev(event);
|
|
3922
|
-
/******/ }
|
|
3906
|
+
/******/ }
|
|
3923
3907
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
3924
3908
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
3925
3909
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -3988,7 +3972,7 @@ var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]
|
|
|
3988
3972
|
/******/ }
|
|
3989
3973
|
/******/ };
|
|
3990
3974
|
/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
|
|
3991
|
-
/******/ }
|
|
3975
|
+
/******/ }
|
|
3992
3976
|
/******/ }
|
|
3993
3977
|
/******/ }
|
|
3994
3978
|
/******/ };
|
|
@@ -4058,10 +4042,10 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
4058
4042
|
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); }
|
|
4059
4043
|
|
|
4060
4044
|
const ajax = __webpack_require__(7460);
|
|
4061
|
-
ajax.env.XMLHttpRequest = util/* default
|
|
4045
|
+
ajax.env.XMLHttpRequest = util/* default */.Z.XMLHttpRequest;
|
|
4062
4046
|
function jsonifyTextPlain(param, done) {
|
|
4063
4047
|
let req = param.request;
|
|
4064
|
-
if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default
|
|
4048
|
+
if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default */.Z.stringify(req.body);
|
|
4065
4049
|
done(true);
|
|
4066
4050
|
}
|
|
4067
4051
|
/* harmony default export */ const api = (class {
|
|
@@ -4071,14 +4055,12 @@ function jsonifyTextPlain(param, done) {
|
|
|
4071
4055
|
_defineProperty(this, "ajax", ajax);
|
|
4072
4056
|
_defineProperty(this, "start", extraData => {
|
|
4073
4057
|
let data = {
|
|
4074
|
-
starter_id: this.uid,
|
|
4075
|
-
starter_type: 'user',
|
|
4076
4058
|
touchpoint: {
|
|
4077
4059
|
channel: 'subiz',
|
|
4078
4060
|
source: 'web'
|
|
4079
4061
|
}
|
|
4080
4062
|
};
|
|
4081
|
-
util/* default
|
|
4063
|
+
util/* default */.Z.each(extraData, (v, k) => {
|
|
4082
4064
|
data[k] = v;
|
|
4083
4065
|
});
|
|
4084
4066
|
return this.apireq.post(`/accounts/${this.accid}/conversations`, data);
|
|
@@ -4102,7 +4084,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4102
4084
|
viewing_product_sku: sku,
|
|
4103
4085
|
viewing_product_source_id: source_id,
|
|
4104
4086
|
viewing_product_id: productid,
|
|
4105
|
-
pinged: util/* default
|
|
4087
|
+
pinged: util/* default */.Z.Date.now(),
|
|
4106
4088
|
is_focused: false
|
|
4107
4089
|
}
|
|
4108
4090
|
}
|
|
@@ -4141,7 +4123,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4141
4123
|
error
|
|
4142
4124
|
};
|
|
4143
4125
|
return {
|
|
4144
|
-
url:
|
|
4126
|
+
url: body.url
|
|
4145
4127
|
};
|
|
4146
4128
|
});
|
|
4147
4129
|
_defineProperty(this, "time", _ => ajax.setBaseUrl(this.ApiURL).withCredentials(true).setParser('json').get('/time'));
|
|
@@ -4162,7 +4144,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4162
4144
|
_defineProperty(this, "suggest_address", keyword => this.apireq.setQuery({
|
|
4163
4145
|
keyword: keyword
|
|
4164
4146
|
}).get(`/accounts/${this.accid}/addresses`));
|
|
4165
|
-
this.refreshLock = new util/* default
|
|
4147
|
+
this.refreshLock = new util/* default */.Z.Mutex();
|
|
4166
4148
|
this.FileURL = FileURL;
|
|
4167
4149
|
this.ApiURL = ApiURL;
|
|
4168
4150
|
this.apireq = ajax.setBaseUrl(ApiURL).withCredentials(true).addQuery('v', '6').setContentType('text/plain').beforeHook(jsonifyTextPlain).setParser('json').beforeHook((param, done) => {
|
|
@@ -4193,15 +4175,16 @@ function jsonifyTextPlain(param, done) {
|
|
|
4193
4175
|
let outuser;
|
|
4194
4176
|
for (let i = 0; true; i++) {
|
|
4195
4177
|
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}`);
|
|
4196
|
-
if (
|
|
4197
|
-
|
|
4198
|
-
|
|
4178
|
+
if (outuser.error && util/* default */.Z.get(outuser, 'body.code', '').indexOf('locked_account') != -1) break;
|
|
4179
|
+
if (!util/* default */.Z.get(outuser, 'body.id')) {
|
|
4180
|
+
let sleeptime = Math.min(2000 + i * 400, 60000);
|
|
4181
|
+
await util/* default */.Z.sleep(sleeptime);
|
|
4199
4182
|
continue;
|
|
4200
4183
|
}
|
|
4201
4184
|
break;
|
|
4202
4185
|
}
|
|
4203
4186
|
if (outuser.error) {
|
|
4204
|
-
if (util/* default
|
|
4187
|
+
if (util/* default */.Z.get(outuser.body.code)) return {
|
|
4205
4188
|
error: outuser.body.code
|
|
4206
4189
|
};
|
|
4207
4190
|
return outuser;
|
|
@@ -4214,7 +4197,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4214
4197
|
this.tokensession = this.tokensession || 0;
|
|
4215
4198
|
this.tokensession++;
|
|
4216
4199
|
let tokensession = this.tokensession;
|
|
4217
|
-
if (!this.accid || !util/* default
|
|
4200
|
+
if (!this.accid || !util/* default */.Z.startsWith(this.accid, 'ac')) return {
|
|
4218
4201
|
error: 'invalid_account_id'
|
|
4219
4202
|
};
|
|
4220
4203
|
if (!this.profile_id) return {
|
|
@@ -4230,13 +4213,13 @@ function jsonifyTextPlain(param, done) {
|
|
|
4230
4213
|
this.refreshLock.unlock();
|
|
4231
4214
|
return;
|
|
4232
4215
|
}
|
|
4233
|
-
let age = (util/* default
|
|
4216
|
+
let age = (util/* default */.Z.Date.now() - (this.last_token_at || 0)) / 1000;
|
|
4234
4217
|
if (!force && this.last_token && age < 1800) {
|
|
4235
4218
|
this.refreshLock.unlock();
|
|
4236
4219
|
return this.last_token;
|
|
4237
4220
|
}
|
|
4238
4221
|
if (!force && this.last_token && age < 3000) {
|
|
4239
|
-
if (this.token_generator) util/* default
|
|
4222
|
+
if (this.token_generator) util/* default */.Z.setTimeout(async () => {
|
|
4240
4223
|
let token, err;
|
|
4241
4224
|
try {
|
|
4242
4225
|
token = await tokenGenerator(profile_id);
|
|
@@ -4248,7 +4231,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4248
4231
|
return;
|
|
4249
4232
|
}
|
|
4250
4233
|
if (err) this.last_token = 'error';else this.last_token = token;
|
|
4251
|
-
this.last_token_at = util/* default
|
|
4234
|
+
this.last_token_at = util/* default */.Z.Date.now();
|
|
4252
4235
|
this.refreshLock.unlock();
|
|
4253
4236
|
});
|
|
4254
4237
|
return this.last_token;
|
|
@@ -4265,7 +4248,7 @@ function jsonifyTextPlain(param, done) {
|
|
|
4265
4248
|
return;
|
|
4266
4249
|
}
|
|
4267
4250
|
if (err) this.last_token = 'error';else this.last_token = token;
|
|
4268
|
-
this.last_token_at = util/* default
|
|
4251
|
+
this.last_token_at = util/* default */.Z.Date.now();
|
|
4269
4252
|
this.refreshLock.unlock();
|
|
4270
4253
|
return this.last_token;
|
|
4271
4254
|
};
|
|
@@ -4274,15 +4257,15 @@ function jsonifyTextPlain(param, done) {
|
|
|
4274
4257
|
await this.token_generator(true);
|
|
4275
4258
|
if (tokensession != this.tokensession) break;
|
|
4276
4259
|
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}`);
|
|
4277
|
-
if (!util/* default
|
|
4260
|
+
if (!util/* default */.Z.get(outuser, 'body.id')) {
|
|
4278
4261
|
let sleeptime = Math.min(2000 + i * 100, 120000);
|
|
4279
|
-
await util/* default
|
|
4262
|
+
await util/* default */.Z.sleep(sleeptime);
|
|
4280
4263
|
continue;
|
|
4281
4264
|
}
|
|
4282
4265
|
break;
|
|
4283
4266
|
}
|
|
4284
4267
|
if (outuser.error) {
|
|
4285
|
-
if (util/* default
|
|
4268
|
+
if (util/* default */.Z.get(outuser.body.code)) return {
|
|
4286
4269
|
error: outuser.body.code
|
|
4287
4270
|
};
|
|
4288
4271
|
return outuser;
|
|
@@ -4333,7 +4316,7 @@ api_fake_ajax.env.XMLHttpRequest = window.XMLHttpRequest;
|
|
|
4333
4316
|
const findAnswer = challenge => challenge.answer;
|
|
4334
4317
|
function api_fake_jsonifyTextPlain(param, done) {
|
|
4335
4318
|
let req = param.request;
|
|
4336
|
-
if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default
|
|
4319
|
+
if (req.content_type === 'text/plain' && req.body !== undefined) req.body = util/* default */.Z.stringify(req.body);
|
|
4337
4320
|
done(true);
|
|
4338
4321
|
}
|
|
4339
4322
|
const OK200 = Promise.resolve({
|
|
@@ -4379,7 +4362,7 @@ const OK200 = Promise.resolve({
|
|
|
4379
4362
|
api_fake_defineProperty(this, "getChallenge", accid => OK200);
|
|
4380
4363
|
api_fake_defineProperty(this, "time", _ => Promise.resolve({
|
|
4381
4364
|
code: 200,
|
|
4382
|
-
body: new util/* default
|
|
4365
|
+
body: new util/* default */.Z.Date().toISOString()
|
|
4383
4366
|
}));
|
|
4384
4367
|
api_fake_defineProperty(this, "updateUser", data => OK200);
|
|
4385
4368
|
api_fake_defineProperty(this, "getUser", _ => Promise.resolve({
|
|
@@ -4746,13 +4729,13 @@ var flow = __webpack_require__(3165);
|
|
|
4746
4729
|
|
|
4747
4730
|
|
|
4748
4731
|
|
|
4749
|
-
var Realtime = __webpack_require__(
|
|
4732
|
+
var Realtime = __webpack_require__(608);
|
|
4750
4733
|
var cookie = __webpack_require__(9554);
|
|
4751
4734
|
cookie.defaults.path = '/';
|
|
4752
4735
|
cookie.expiresMultiplier = 60 * 60 * 24;
|
|
4753
4736
|
cookie.defaults.expires = 3650;
|
|
4754
4737
|
const MAX_CONVO = 20;
|
|
4755
|
-
const page_loaded = util/* default
|
|
4738
|
+
const page_loaded = util/* default */.Z.Date.now();
|
|
4756
4739
|
class Store {
|
|
4757
4740
|
constructor(ApiURL, FileURL, RealtimeURL, inmem, fakeapi) {
|
|
4758
4741
|
store_defineProperty(this, "inmem", false);
|
|
@@ -4770,14 +4753,14 @@ class Store {
|
|
|
4770
4753
|
let user = this.matchUser();
|
|
4771
4754
|
let allconvos = this.matchConvo('*');
|
|
4772
4755
|
let unreadcount = 0;
|
|
4773
|
-
util/* default
|
|
4774
|
-
if (!util/* default
|
|
4756
|
+
util/* default */.Z.map(allconvos, convo => {
|
|
4757
|
+
if (!util/* default */.Z.isConvoSeen(convo, user.id)) unreadcount++;
|
|
4775
4758
|
});
|
|
4776
4759
|
return unreadcount;
|
|
4777
4760
|
});
|
|
4778
4761
|
store_defineProperty(this, "matchPlugin", () => {
|
|
4779
|
-
if (util/* default
|
|
4780
|
-
return util/* default
|
|
4762
|
+
if (util/* default */.Z.size(this.forcePlugins) > 0) return util/* default */.Z.cloneDeep(this.forcePlugins);
|
|
4763
|
+
return util/* default */.Z.cloneDeep(this.cache.match('plugin')) || {};
|
|
4781
4764
|
});
|
|
4782
4765
|
store_defineProperty(this, "device", {});
|
|
4783
4766
|
store_defineProperty(this, "browserVisibility", 'visible');
|
|
@@ -4790,12 +4773,13 @@ class Store {
|
|
|
4790
4773
|
if (!id) return;
|
|
4791
4774
|
if (id === '*') {
|
|
4792
4775
|
this._touchAcc();
|
|
4793
|
-
return util/* default
|
|
4776
|
+
return util/* default */.Z.filter(this.cache.all(), (value, k) => k.startsWith('convo_'));
|
|
4794
4777
|
}
|
|
4795
4778
|
if (!this.isInsync(id)) this.fetchConvo(id);
|
|
4796
4779
|
return this.cache.match('convo_' + id);
|
|
4797
4780
|
});
|
|
4798
4781
|
store_defineProperty(this, "fetchConvo", async cid => {
|
|
4782
|
+
if (this._die) return dieErr;
|
|
4799
4783
|
await this.readyGate.entry();
|
|
4800
4784
|
await this.reconnectGate.entry(undefined, true);
|
|
4801
4785
|
if (this.isInsync(cid)) return this.reconnectGate.open();
|
|
@@ -4813,7 +4797,7 @@ class Store {
|
|
|
4813
4797
|
store_defineProperty(this, "listEvents", id => {
|
|
4814
4798
|
if (!id || id === '*' || typeof id !== 'string') return;
|
|
4815
4799
|
if (!this.isInsync('events' + id)) {
|
|
4816
|
-
util/* default
|
|
4800
|
+
util/* default */.Z.setTimeout(async () => {
|
|
4817
4801
|
await this.readyGate.entry();
|
|
4818
4802
|
await this.reconnectGate.entry(undefined, true);
|
|
4819
4803
|
if (this.isInsync('events' + id)) return this.reconnectGate.open();
|
|
@@ -4836,10 +4820,10 @@ class Store {
|
|
|
4836
4820
|
});
|
|
4837
4821
|
store_defineProperty(this, "matchLocation", () => this.cache.match('location') || {});
|
|
4838
4822
|
store_defineProperty(this, "matchBot", () => this.cache.match('bot') || {});
|
|
4839
|
-
store_defineProperty(this, "readyGate", new util/* default
|
|
4840
|
-
store_defineProperty(this, "convoGate", new util/* default
|
|
4841
|
-
store_defineProperty(this, "reconnectGate", new util/* default
|
|
4842
|
-
store_defineProperty(this, "wsGate", new util/* default
|
|
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));
|
|
4843
4827
|
store_defineProperty(this, "matchLastview", () => {
|
|
4844
4828
|
let lastView = this.kv.match('lastview') || {};
|
|
4845
4829
|
let user = this.cache.match('user') || {};
|
|
@@ -4850,10 +4834,11 @@ class Store {
|
|
|
4850
4834
|
store_defineProperty(this, "matchIsOpen", () => !!this.kv.match('isopen'));
|
|
4851
4835
|
store_defineProperty(this, "matchHasManuallyClosed", () => !!this.kv.match('hasManuallyClosed'));
|
|
4852
4836
|
store_defineProperty(this, "matchClosePreviewAt", () => this.kv.match('close_preview_at') || 0);
|
|
4853
|
-
store_defineProperty(this, "sendPresence", util/* default
|
|
4837
|
+
store_defineProperty(this, "sendPresence", util/* default */.Z.throttle(async () => {
|
|
4838
|
+
if (this._die) return dieErr;
|
|
4854
4839
|
await this.readyGate.entry();
|
|
4855
|
-
if (!util/* default
|
|
4856
|
-
if (util/* default
|
|
4840
|
+
if (!util/* default */.Z.get(this.cache.match('user'), 'id')) return;
|
|
4841
|
+
if (util/* default */.Z.isUserBanned(this.cache.match('user'))) return;
|
|
4857
4842
|
let hasfocus = this.browserVisibility === 'visible' && document.hasFocus();
|
|
4858
4843
|
if (!hasfocus) {
|
|
4859
4844
|
this.api.sendLostFocus(this.device, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
|
|
@@ -4863,10 +4848,10 @@ class Store {
|
|
|
4863
4848
|
}, 1000, {
|
|
4864
4849
|
leading: false
|
|
4865
4850
|
}));
|
|
4866
|
-
store_defineProperty(this, "now", () => util/* default
|
|
4851
|
+
store_defineProperty(this, "now", () => util/* default */.Z.Date.now() + this.timeDiff);
|
|
4867
4852
|
store_defineProperty(this, "seenQueue", []);
|
|
4868
4853
|
store_defineProperty(this, "matchTrafficSource", () => this.kv.match('traffic_source'));
|
|
4869
|
-
store_defineProperty(this, "_typing", util/* default
|
|
4854
|
+
store_defineProperty(this, "_typing", util/* default */.Z.throttle(convoid => this.api.sendTyping(convoid), 3000, {
|
|
4870
4855
|
trailing: false
|
|
4871
4856
|
}));
|
|
4872
4857
|
store_defineProperty(this, "onConvoEvent", (o, cb) => this.pubsub.on2(o, 'events', cb));
|
|
@@ -4885,7 +4870,7 @@ class Store {
|
|
|
4885
4870
|
sendEventToThirdParty('SUBIZ Chat', 'Opened', 'Subiz Windows');
|
|
4886
4871
|
}
|
|
4887
4872
|
});
|
|
4888
|
-
store_defineProperty(this, "closePreview", () => this.kv.put('close_preview_at', new util/* default
|
|
4873
|
+
store_defineProperty(this, "closePreview", () => this.kv.put('close_preview_at', new util/* default */.Z.Date().getTime()));
|
|
4889
4874
|
store_defineProperty(this, "setLastview", (view, opts) => {
|
|
4890
4875
|
let user = this.cache.match('user') || {};
|
|
4891
4876
|
if (!user.id) return;
|
|
@@ -4897,6 +4882,7 @@ class Store {
|
|
|
4897
4882
|
});
|
|
4898
4883
|
store_defineProperty(this, "timeDiff", 0);
|
|
4899
4884
|
this.g_sync = {};
|
|
4885
|
+
this._die = false;
|
|
4900
4886
|
this.forceDevice = null;
|
|
4901
4887
|
this.forcePlugins = {};
|
|
4902
4888
|
this.forceAcc = {};
|
|
@@ -4918,31 +4904,38 @@ class Store {
|
|
|
4918
4904
|
this.cookie = inmemCookie;
|
|
4919
4905
|
}
|
|
4920
4906
|
cleanLocalStorage();
|
|
4921
|
-
this.pubsub = new util/* default
|
|
4907
|
+
this.pubsub = new util/* default */.Z.Pubsub();
|
|
4922
4908
|
this.kv = new storage.kv(new storage.lsdb('sbz2023', this.inmem), 'kv');
|
|
4923
4909
|
this.cache = new storage.kv(new storage.lsdb('sbz2023', true), 'kv');
|
|
4924
4910
|
this.chain = new storage.chain(new storage.lsdb('cbz2023', true), 'ch');
|
|
4925
4911
|
this.getLocaleContent = this.api.getLocaleContent;
|
|
4926
4912
|
this.g_haveSentSeenM = {};
|
|
4927
|
-
window.addEventListener('blur',
|
|
4928
|
-
window.addEventListener('focus',
|
|
4929
|
-
util/* default
|
|
4930
|
-
|
|
4913
|
+
window.addEventListener('blur', this.sendPresence);
|
|
4914
|
+
window.addEventListener('focus', this.sendPresence);
|
|
4915
|
+
this._presenceInterval1 = util/* default */.Z.setInterval(() => {
|
|
4916
|
+
if (this._die) return util/* default */.Z.clearInterval(this._presenceInterval1);
|
|
4917
|
+
if (this.browserVisibility === 'visible' && document.hasFocus()) this.sendPresence();
|
|
4918
|
+
}, 20000);
|
|
4919
|
+
this._presenceInterval2 = util/* default */.Z.setInterval(() => {
|
|
4920
|
+
if (this._die) return util/* default */.Z.clearInterval(this._presenceInterval2);
|
|
4921
|
+
if (this.browserVisibility !== 'visible' || document.hasFocus()) this.sendPresence();
|
|
4922
|
+
}, 60000);
|
|
4931
4923
|
onVisibilityChange(val => {
|
|
4924
|
+
if (this._die) return;
|
|
4932
4925
|
this.browserVisibility = val;
|
|
4933
4926
|
this.sendPresence();
|
|
4934
4927
|
});
|
|
4935
4928
|
this.loopTime();
|
|
4936
4929
|
this.device = this.getDeviceInfo();
|
|
4937
|
-
const _gaInterval = util/* default
|
|
4930
|
+
const _gaInterval = util/* default */.Z.setInterval(() => {
|
|
4938
4931
|
let user = this.cache.match('user') || {};
|
|
4939
4932
|
if (!user.id) return;
|
|
4940
4933
|
var dev = this.getDeviceInfo();
|
|
4941
4934
|
if (!dev.ga_tracking_ids || !dev.ga_client_id) return;
|
|
4942
|
-
util/* default
|
|
4935
|
+
util/* default */.Z.clearInterval(_gaInterval);
|
|
4943
4936
|
this.device = dev;
|
|
4944
4937
|
let ga_client_id = dev.ga_client_id;
|
|
4945
|
-
if (ga_client_id !== util/* default
|
|
4938
|
+
if (ga_client_id !== util/* default */.Z.getUserAttr(user, 'ga_client_id', 'text')) {
|
|
4946
4939
|
this.setUser({
|
|
4947
4940
|
attributes: [{
|
|
4948
4941
|
type: 'text',
|
|
@@ -4963,10 +4956,10 @@ class Store {
|
|
|
4963
4956
|
if (p.sku) this._currentViewingProduct.sku = (p.sku + '').trim();
|
|
4964
4957
|
}
|
|
4965
4958
|
getLinkedProduct() {
|
|
4966
|
-
return util/* default
|
|
4959
|
+
return util/* default */.Z.cloneDeep(this._currentViewingProduct);
|
|
4967
4960
|
}
|
|
4968
4961
|
isInsync(key) {
|
|
4969
|
-
return util/* default
|
|
4962
|
+
return util/* default */.Z.Date.now() - (this.g_sync[key] || 0) < 600000;
|
|
4970
4963
|
}
|
|
4971
4964
|
async fetchShippingAddresses() {
|
|
4972
4965
|
let out = await this.api.fetchShippingAddresses();
|
|
@@ -4983,7 +4976,7 @@ class Store {
|
|
|
4983
4976
|
return this.api.createShippingAddress(addr);
|
|
4984
4977
|
}
|
|
4985
4978
|
async overrideAcc(acc) {
|
|
4986
|
-
this.forceAcc = util/* default
|
|
4979
|
+
this.forceAcc = util/* default */.Z.cloneDeep(acc);
|
|
4987
4980
|
await this.readyGate.entry();
|
|
4988
4981
|
this.disconnect('account');
|
|
4989
4982
|
this.reconnect();
|
|
@@ -4993,7 +4986,7 @@ class Store {
|
|
|
4993
4986
|
await this.readyGate.entry();
|
|
4994
4987
|
this.disconnect('account');
|
|
4995
4988
|
await this.reconnect();
|
|
4996
|
-
util/* default
|
|
4989
|
+
util/* default */.Z.setTimeout(this.pubsub.publish('resetCSS'), 10);
|
|
4997
4990
|
}
|
|
4998
4991
|
getDeviceInfo() {
|
|
4999
4992
|
let device = {
|
|
@@ -5036,9 +5029,10 @@ class Store {
|
|
|
5036
5029
|
return page_loaded;
|
|
5037
5030
|
}
|
|
5038
5031
|
overridePlugin(plugins) {
|
|
5032
|
+
if (this._die) return dieErr;
|
|
5039
5033
|
if (!Array.isArray(plugins)) throw 'plugins must be be an array';
|
|
5040
5034
|
let pluginM = {};
|
|
5041
|
-
util/* default
|
|
5035
|
+
util/* default */.Z.map(plugins, function (plugin) {
|
|
5042
5036
|
pluginM[plugin.id] = plugin;
|
|
5043
5037
|
});
|
|
5044
5038
|
this.forcePlugins = pluginM;
|
|
@@ -5046,7 +5040,7 @@ class Store {
|
|
|
5046
5040
|
this.pubsub.publish('resetCSS');
|
|
5047
5041
|
}
|
|
5048
5042
|
markSync(key) {
|
|
5049
|
-
this.g_sync[key] = util/* default
|
|
5043
|
+
this.g_sync[key] = util/* default */.Z.Date.now();
|
|
5050
5044
|
}
|
|
5051
5045
|
async _touchAcc() {
|
|
5052
5046
|
if (this.isInsync('account')) return;
|
|
@@ -5070,20 +5064,18 @@ class Store {
|
|
|
5070
5064
|
if (mask) {
|
|
5071
5065
|
let parts = mask.split('@');
|
|
5072
5066
|
if (parts[0] != accid) {
|
|
5073
|
-
userRef = util/* default
|
|
5067
|
+
userRef = util/* default */.Z.randomString(40);
|
|
5074
5068
|
this.new_visitor = true;
|
|
5075
5069
|
}
|
|
5076
5070
|
this.new_visitor = false;
|
|
5077
5071
|
this.cookie.set('__sbmask', mask);
|
|
5078
5072
|
} else {
|
|
5079
|
-
userRef = util/* default
|
|
5073
|
+
userRef = util/* default */.Z.randomString(40);
|
|
5080
5074
|
this.new_visitor = true;
|
|
5081
5075
|
}
|
|
5082
5076
|
}
|
|
5083
5077
|
}
|
|
5084
|
-
if (this.cookie.get('__sbref', userRef) != userRef)
|
|
5085
|
-
cleanMyLocalStorage();
|
|
5086
|
-
}
|
|
5078
|
+
if (this.cookie.get('__sbref', userRef) != userRef) cleanMyLocalStorage();
|
|
5087
5079
|
this.api.setAuth({
|
|
5088
5080
|
accid: accid
|
|
5089
5081
|
});
|
|
@@ -5093,7 +5085,7 @@ class Store {
|
|
|
5093
5085
|
mask: mask,
|
|
5094
5086
|
ref: userRef
|
|
5095
5087
|
});
|
|
5096
|
-
if (user.error) return;
|
|
5088
|
+
if (user.error) return console.error(user);
|
|
5097
5089
|
if (this.realtime) this.realtime.stop();
|
|
5098
5090
|
if (this.fake) this.realtime = new realtime_fake();else this.realtime = new Realtime(this.RealtimeURL, {
|
|
5099
5091
|
account_id: accid,
|
|
@@ -5109,6 +5101,7 @@ class Store {
|
|
|
5109
5101
|
return user;
|
|
5110
5102
|
}
|
|
5111
5103
|
async login(accid, user_id, tokenGenerator) {
|
|
5104
|
+
if (this._die) return dieErr;
|
|
5112
5105
|
let user = await this.api.setAuth({
|
|
5113
5106
|
accid: accid,
|
|
5114
5107
|
profile_id: user_id,
|
|
@@ -5139,22 +5132,23 @@ class Store {
|
|
|
5139
5132
|
}
|
|
5140
5133
|
seenLoop() {
|
|
5141
5134
|
this.seenQueue = [];
|
|
5142
|
-
util/* default
|
|
5143
|
-
this._seenInterval = util/* default
|
|
5135
|
+
util/* default */.Z.clearInterval(this._seenInterval);
|
|
5136
|
+
this._seenInterval = util/* default */.Z.setInterval(() => {
|
|
5137
|
+
if (this._die) return util/* default */.Z.clearInterval(this._seenInterval);
|
|
5144
5138
|
this.seenQueue = [...new Set(this.seenQueue)];
|
|
5145
5139
|
let user = this.cache.match('user') || {};
|
|
5146
|
-
util/* default
|
|
5140
|
+
util/* default */.Z.map(this.seenQueue, id => {
|
|
5147
5141
|
var events = this.listEvents(id);
|
|
5148
5142
|
if (!events) return;
|
|
5149
|
-
if (util/* default
|
|
5150
|
-
events = util/* default
|
|
5151
|
-
var lastmsgsent = events[util/* default
|
|
5143
|
+
if (util/* default */.Z.size(events) === 0) return;
|
|
5144
|
+
events = util/* default */.Z.filter(events, ev => ev.type === 'message_sent');
|
|
5145
|
+
var lastmsgsent = events[util/* default */.Z.size(events) - 1];
|
|
5152
5146
|
if (!lastmsgsent) return;
|
|
5153
5147
|
if (this.g_haveSentSeenM[lastmsgsent.id]) return;
|
|
5154
|
-
if (lastmsgsent.id === util/* default
|
|
5148
|
+
if (lastmsgsent.id === util/* default */.Z.getMsgField(lastmsgsent, 'idempotency')) return;
|
|
5155
5149
|
this.api.markAsSeen(id, lastmsgsent.id);
|
|
5156
5150
|
let convo = this.cache.match('convo_' + id) || {};
|
|
5157
|
-
let mem = util/* default
|
|
5151
|
+
let mem = util/* default */.Z.find(convo.members, m => m.id === user.id);
|
|
5158
5152
|
if (mem) mem.seen_at = Date.now();
|
|
5159
5153
|
this._setConvo(convo);
|
|
5160
5154
|
this.g_haveSentSeenM[lastmsgsent.id] = true;
|
|
@@ -5174,7 +5168,7 @@ class Store {
|
|
|
5174
5168
|
if (this.isInsync('account')) return this.reconnectGate.open();
|
|
5175
5169
|
this.markSync('account');
|
|
5176
5170
|
let outs = await Promise.all([this.api.getUser(), this.api.getAccountSetting(), this.api.getIsOnline()]);
|
|
5177
|
-
let error = util/* default
|
|
5171
|
+
let error = util/* default */.Z.find(outs, out => out.error);
|
|
5178
5172
|
if (error) return console.error(error);
|
|
5179
5173
|
let set = Object.assign(outs[1].body, outs[2].body);
|
|
5180
5174
|
set.user = outs[0].body;
|
|
@@ -5183,13 +5177,13 @@ class Store {
|
|
|
5183
5177
|
error = convob.error;
|
|
5184
5178
|
let body = convob.body;
|
|
5185
5179
|
if (!error) {
|
|
5186
|
-
let convos = util/* default
|
|
5187
|
-
util/* default
|
|
5180
|
+
let convos = util/* default */.Z.get(body, 'conversations', []);
|
|
5181
|
+
util/* default */.Z.map(this.cache.all(), (value, k) => {
|
|
5188
5182
|
if (k.startsWith('convo_')) {
|
|
5189
|
-
if (this.now() - util/* default
|
|
5183
|
+
if (this.now() - util/* default */.Z.getMs(util/* default */.Z.get(value, 'actived')) > 1209600000) this.cache.del(k);
|
|
5190
5184
|
}
|
|
5191
5185
|
});
|
|
5192
|
-
util/* default
|
|
5186
|
+
util/* default */.Z.map(convos, convo => this._setConvo(convo));
|
|
5193
5187
|
}
|
|
5194
5188
|
return this.reconnectGate.open();
|
|
5195
5189
|
}
|
|
@@ -5208,13 +5202,13 @@ class Store {
|
|
|
5208
5202
|
}
|
|
5209
5203
|
}
|
|
5210
5204
|
_setUser(user) {
|
|
5211
|
-
user = util/* default
|
|
5205
|
+
user = util/* default */.Z.cloneDeep(user);
|
|
5212
5206
|
let olduser = this.cache.match('user') || {};
|
|
5213
5207
|
var accid = olduser.account_id || user.account_id;
|
|
5214
5208
|
var id = olduser.id || user.id;
|
|
5215
|
-
util/* default
|
|
5209
|
+
util/* default */.Z.each(user.attributes, newattr => {
|
|
5216
5210
|
if (!newattr) return;
|
|
5217
|
-
olduser.attributes = util/* default
|
|
5211
|
+
olduser.attributes = util/* default */.Z.filter(olduser.attributes, oldattr => {
|
|
5218
5212
|
if (!oldattr) return false;
|
|
5219
5213
|
return oldattr.key !== newattr.key;
|
|
5220
5214
|
});
|
|
@@ -5232,7 +5226,7 @@ class Store {
|
|
|
5232
5226
|
return this._setSetting(setting);
|
|
5233
5227
|
}
|
|
5234
5228
|
async _setSetting(setting) {
|
|
5235
|
-
setting = util/* default
|
|
5229
|
+
setting = util/* default */.Z.cloneDeep(setting) || {};
|
|
5236
5230
|
setting.account = Object.assign({}, setting.account, this.forceAcc);
|
|
5237
5231
|
if (!setting.account.logo_url) {
|
|
5238
5232
|
setting.account.logo_url = 'https://file-subiz.com/fiqpezhkmeyesdscyetk-default_logo.jpg';
|
|
@@ -5248,39 +5242,39 @@ class Store {
|
|
|
5248
5242
|
this.cache.put('account', setting.account);
|
|
5249
5243
|
delete setting.account;
|
|
5250
5244
|
}
|
|
5251
|
-
let location = util/* default
|
|
5245
|
+
let location = util/* default */.Z.get(setting, 'location', []);
|
|
5252
5246
|
this.cache.put('location', location);
|
|
5253
|
-
let bots = util/* default
|
|
5247
|
+
let bots = util/* default */.Z.get(setting, 'bots', []);
|
|
5254
5248
|
let botM = {};
|
|
5255
|
-
util/* default
|
|
5249
|
+
util/* default */.Z.map(bots, bot => {
|
|
5256
5250
|
botM[bot.id] = bot;
|
|
5257
5251
|
});
|
|
5258
5252
|
this.cache.put('bot', botM);
|
|
5259
|
-
let plugins = util/* default
|
|
5253
|
+
let plugins = util/* default */.Z.get(setting, 'plugins', []);
|
|
5260
5254
|
let pluginM = {};
|
|
5261
|
-
util/* default
|
|
5255
|
+
util/* default */.Z.map(plugins, plugin => {
|
|
5262
5256
|
if (plugin.type === 'chatbox') {
|
|
5263
|
-
plugin = util/* default
|
|
5257
|
+
plugin = util/* default */.Z.merge(plugin, this.forceChatbox);
|
|
5264
5258
|
}
|
|
5265
5259
|
pluginM[plugin.id] = plugin;
|
|
5266
5260
|
});
|
|
5267
5261
|
this.cache.put('plugin', pluginM);
|
|
5268
|
-
var agents = util/* default
|
|
5269
|
-
if (util/* default
|
|
5262
|
+
var agents = util/* default */.Z.get(setting, 'agents', []);
|
|
5263
|
+
if (util/* default */.Z.size(agents) > 0) {
|
|
5270
5264
|
let agentM = {};
|
|
5271
5265
|
this.api.setAgentId(agents[0].id);
|
|
5272
|
-
util/* default
|
|
5266
|
+
util/* default */.Z.map(agents, agent => {
|
|
5273
5267
|
agentM[agent.id] = agent;
|
|
5274
5268
|
});
|
|
5275
5269
|
this.cache.put('agent', agentM);
|
|
5276
5270
|
}
|
|
5277
|
-
let pms = util/* default
|
|
5271
|
+
let pms = util/* default */.Z.get(setting, 'payment_methods', []);
|
|
5278
5272
|
this.cache.put('payment_methods', pms);
|
|
5279
5273
|
this.pubsub.publish('account');
|
|
5280
5274
|
}
|
|
5281
5275
|
async track() {
|
|
5282
5276
|
let out = await this.api.sendContentView(this.device, location.href, document.title, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
|
|
5283
|
-
let traffic_source = util/* default
|
|
5277
|
+
let traffic_source = util/* default */.Z.get(out, 'body.by.device.source', '');
|
|
5284
5278
|
if (traffic_source) this.kv.put('traffic_source', traffic_source);
|
|
5285
5279
|
}
|
|
5286
5280
|
async onWs(ev) {
|
|
@@ -5290,17 +5284,18 @@ class Store {
|
|
|
5290
5284
|
this.wsGate.open();
|
|
5291
5285
|
}
|
|
5292
5286
|
async _onWs(ev) {
|
|
5287
|
+
if (this._die) return;
|
|
5293
5288
|
if (!ev || !ev.type) return;
|
|
5294
|
-
ev.created = util/* default
|
|
5289
|
+
ev.created = util/* default */.Z.getMs(ev.created);
|
|
5295
5290
|
if (ev.type === 'user_info_updated') {
|
|
5296
|
-
let user = util/* default
|
|
5297
|
-
let attrs = util/* default
|
|
5298
|
-
util/* default
|
|
5291
|
+
let user = util/* default */.Z.cloneDeep(this.cache.match('user'));
|
|
5292
|
+
let attrs = util/* default */.Z.get(ev, 'data.user.attributes') || [];
|
|
5293
|
+
util/* default */.Z.map(attrs, attr => util/* default */.Z.setUserAttr(user, attr));
|
|
5299
5294
|
this._setUser(user);
|
|
5300
5295
|
return;
|
|
5301
5296
|
}
|
|
5302
5297
|
let user = this.cache.match('user') || {};
|
|
5303
|
-
let cid = util/* default
|
|
5298
|
+
let cid = util/* default */.Z.convoOfEv(ev);
|
|
5304
5299
|
let convo;
|
|
5305
5300
|
let alreadyFetched = false;
|
|
5306
5301
|
if (cid) {
|
|
@@ -5317,12 +5312,12 @@ class Store {
|
|
|
5317
5312
|
}
|
|
5318
5313
|
}
|
|
5319
5314
|
if (!convo) return;
|
|
5320
|
-
let channel = util/* default
|
|
5315
|
+
let channel = util/* default */.Z.get(ev, 'touchpoint.channel', '');
|
|
5321
5316
|
if (channel && channel != 'subiz') return;
|
|
5322
5317
|
this.pubsub.publish('events', ev);
|
|
5323
5318
|
if (ev.type === 'conversation_joined') {
|
|
5324
|
-
let members = util/* default
|
|
5325
|
-
let me = util/* default
|
|
5319
|
+
let members = util/* default */.Z.get(ev, 'data.conversation.members', []);
|
|
5320
|
+
let me = util/* default */.Z.find(members, m => m.id === this.cache.match('user').id);
|
|
5326
5321
|
if (me) {
|
|
5327
5322
|
await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit));
|
|
5328
5323
|
this.markSync('events' + cid);
|
|
@@ -5339,13 +5334,13 @@ class Store {
|
|
|
5339
5334
|
}
|
|
5340
5335
|
}
|
|
5341
5336
|
if (ev.type === 'message_sent') {
|
|
5342
|
-
if (util/* default
|
|
5337
|
+
if (util/* default */.Z.get(ev, 'by.id') !== user.id) {
|
|
5343
5338
|
this.api.markAsReceived(cid, ev.id);
|
|
5344
5339
|
}
|
|
5345
5340
|
}
|
|
5346
|
-
if (util/* default
|
|
5341
|
+
if (util/* default */.Z.startsWith(ev.type, 'message_') || util/* default */.Z.startsWith(ev.type, 'conversation_')) {
|
|
5347
5342
|
this.restConvoEvent(ev);
|
|
5348
|
-
if (ev.type === 'message_sent' && util/* default
|
|
5343
|
+
if (ev.type === 'message_sent' && util/* default */.Z.get(ev, 'by.id') !== user.id) {
|
|
5349
5344
|
sendEventToThirdParty('SUBIZ Chat', 'Received', 'User');
|
|
5350
5345
|
}
|
|
5351
5346
|
return;
|
|
@@ -5353,36 +5348,36 @@ class Store {
|
|
|
5353
5348
|
}
|
|
5354
5349
|
async restConvoEvent(ev) {
|
|
5355
5350
|
let user = this.cache.match('user');
|
|
5356
|
-
let cid = util/* default
|
|
5351
|
+
let cid = util/* default */.Z.convoOfEv(ev);
|
|
5357
5352
|
let convo = this.cache.match('convo_' + cid) || {};
|
|
5358
5353
|
if (ev.type === 'conversation_state_updated') {
|
|
5359
|
-
if (!util/* default
|
|
5354
|
+
if (!util/* default */.Z.get(convo, 'id')) {
|
|
5360
5355
|
let {
|
|
5361
5356
|
body: convo,
|
|
5362
5357
|
error
|
|
5363
5358
|
} = await this.api.getConversation(cid);
|
|
5364
5359
|
if (error) return;
|
|
5365
5360
|
}
|
|
5366
|
-
convo = Object.assign(convo, util/* default
|
|
5361
|
+
convo = Object.assign(convo, util/* default */.Z.get(ev, 'data.conversation'));
|
|
5367
5362
|
}
|
|
5368
5363
|
if (ev.type === 'message_pong') {
|
|
5369
|
-
var msgid = util/* default
|
|
5364
|
+
var msgid = util/* default */.Z.get(ev, 'data.message.id');
|
|
5370
5365
|
var oldev = this.chain.match(cid, msgid);
|
|
5371
|
-
if (!util/* default
|
|
5372
|
-
var pongs = util/* default
|
|
5373
|
-
pongs = pongs.concat(util/* default
|
|
5366
|
+
if (!util/* default */.Z.get(oldev, 'data.message')) return;
|
|
5367
|
+
var pongs = util/* default */.Z.get(oldev, 'data.message.pongs', []);
|
|
5368
|
+
pongs = pongs.concat(util/* default */.Z.get(ev, 'data.message.pongs', []));
|
|
5374
5369
|
oldev.data.message.pongs = pongs;
|
|
5375
|
-
util/* default
|
|
5370
|
+
util/* default */.Z.map(pongs, pong => {
|
|
5376
5371
|
if (pong.member_id == user.id && pong.type === 'seen') {
|
|
5377
|
-
let mem = util/* default
|
|
5372
|
+
let mem = util/* default */.Z.find(convo.members, mem => mem.id === user.id);
|
|
5378
5373
|
if (mem) mem.seen_at = pong.created;
|
|
5379
5374
|
}
|
|
5380
5375
|
});
|
|
5381
|
-
this.chain.put(cid, oldev.id, util/* default
|
|
5376
|
+
this.chain.put(cid, oldev.id, util/* default */.Z.getMs(oldev.created), oldev);
|
|
5382
5377
|
}
|
|
5383
5378
|
if (ev.type === 'message_sent') {
|
|
5384
|
-
let idemkey = util/* default
|
|
5385
|
-
let found = util/* default
|
|
5379
|
+
let idemkey = util/* default */.Z.getMsgField(ev, 'idempotency');
|
|
5380
|
+
let found = util/* default */.Z.find(this.listEvents(cid), oldev => oldev.id === idemkey);
|
|
5386
5381
|
if (found) {
|
|
5387
5382
|
this.chain.del(cid, found.id);
|
|
5388
5383
|
ev.created = found.created;
|
|
@@ -5390,7 +5385,7 @@ class Store {
|
|
|
5390
5385
|
convo.last_message_sent = ev;
|
|
5391
5386
|
}
|
|
5392
5387
|
if (ev.type !== 'message_pong' && ev.type !== 'conversation_typing') {
|
|
5393
|
-
this.chain.put(cid, ev.id, util/* default
|
|
5388
|
+
this.chain.put(cid, ev.id, util/* default */.Z.getMs(ev.created), ev);
|
|
5394
5389
|
}
|
|
5395
5390
|
this._setConvo(convo);
|
|
5396
5391
|
this.pubsub.publish('account');
|
|
@@ -5398,31 +5393,31 @@ class Store {
|
|
|
5398
5393
|
handleFormSubmit(convoKey, ev) {
|
|
5399
5394
|
if (ev.type !== 'message_sent') return;
|
|
5400
5395
|
let formSubmits = [];
|
|
5401
|
-
let attachments = util/* default
|
|
5402
|
-
util/* default
|
|
5396
|
+
let attachments = util/* default */.Z.get(ev, 'data.message.attachments') || [];
|
|
5397
|
+
util/* default */.Z.each(attachments, att => {
|
|
5403
5398
|
if (!att) return;
|
|
5404
5399
|
if (att.type !== 'form_submit') return;
|
|
5405
5400
|
formSubmits.push(att.form_submit);
|
|
5406
5401
|
});
|
|
5407
|
-
util/* default
|
|
5408
|
-
let formev = util/* default
|
|
5402
|
+
util/* default */.Z.each(formSubmits, submit => {
|
|
5403
|
+
let formev = util/* default */.Z.get(this.convoEventM, convoKey + '.' + submit.form_message_id);
|
|
5409
5404
|
if (!formev) return;
|
|
5410
|
-
let forms = util/* default
|
|
5405
|
+
let forms = util/* default */.Z.filter(util/* default */.Z.get(formev, 'data.message.attachments'), att => {
|
|
5411
5406
|
if (!att) return false;
|
|
5412
5407
|
if (att.type !== 'form' && att.type !== 'ask_info_form') return false;
|
|
5413
5408
|
return true;
|
|
5414
5409
|
});
|
|
5415
|
-
util/* default
|
|
5410
|
+
util/* default */.Z.each(forms, form => {
|
|
5416
5411
|
form = form.form;
|
|
5417
|
-
util/* default
|
|
5418
|
-
util/* default
|
|
5412
|
+
util/* default */.Z.each(form.fields, formfield => {
|
|
5413
|
+
util/* default */.Z.each(submit.fields, submitfield => {
|
|
5419
5414
|
if (formfield.name !== submitfield.name) return;
|
|
5420
5415
|
if (formfield.default_answer) return;
|
|
5421
5416
|
formfield.default_answer = submitfield.value;
|
|
5422
5417
|
});
|
|
5423
5418
|
});
|
|
5424
5419
|
});
|
|
5425
|
-
if (util/* default
|
|
5420
|
+
if (util/* default */.Z.size(forms) > 0) this.pubsub.publish('state.convoEventM', this.convoEventM, convoKey);
|
|
5426
5421
|
});
|
|
5427
5422
|
}
|
|
5428
5423
|
typing(cid) {
|
|
@@ -5457,7 +5452,7 @@ class Store {
|
|
|
5457
5452
|
}
|
|
5458
5453
|
async sendConvoEvent(cid, type, data) {
|
|
5459
5454
|
await this.readyGate.entry();
|
|
5460
|
-
var idempotency = util/* default
|
|
5455
|
+
var idempotency = util/* default */.Z.randomString(36);
|
|
5461
5456
|
let user = this.cache.match('user') || {};
|
|
5462
5457
|
var event = {
|
|
5463
5458
|
id: idempotency,
|
|
@@ -5470,17 +5465,24 @@ class Store {
|
|
|
5470
5465
|
type,
|
|
5471
5466
|
created: this.now()
|
|
5472
5467
|
};
|
|
5473
|
-
util/* default
|
|
5468
|
+
util/* default */.Z.convoToEv(cid, event);
|
|
5474
5469
|
let files = [];
|
|
5475
5470
|
if (type === 'message_sent') {
|
|
5476
|
-
util/* default
|
|
5471
|
+
util/* default */.Z.setMsgField(event, 'idempotency', idempotency);
|
|
5477
5472
|
event.data.message.conversation_id = cid;
|
|
5478
5473
|
await flow.map(event.data.message.attachments, 2, async (att, i) => {
|
|
5479
5474
|
if (att.type !== 'file') return;
|
|
5480
5475
|
if (!att._file) return;
|
|
5481
5476
|
files.push(att);
|
|
5482
5477
|
if (ImageTypes.includes(att._file.type)) {
|
|
5483
|
-
|
|
5478
|
+
let {
|
|
5479
|
+
width,
|
|
5480
|
+
height,
|
|
5481
|
+
url
|
|
5482
|
+
} = await loadImage(att._file);
|
|
5483
|
+
att.url = url;
|
|
5484
|
+
att.width = width;
|
|
5485
|
+
att.height = height;
|
|
5484
5486
|
}
|
|
5485
5487
|
});
|
|
5486
5488
|
}
|
|
@@ -5492,7 +5494,7 @@ class Store {
|
|
|
5492
5494
|
url,
|
|
5493
5495
|
error
|
|
5494
5496
|
} = await this.api.uploadToS3(att._file);
|
|
5495
|
-
if (util/* default
|
|
5497
|
+
if (util/* default */.Z.get(body, 'code') == 'invalid_field_size') {
|
|
5496
5498
|
event._error_message = 'cannot_send_too_big_file';
|
|
5497
5499
|
}
|
|
5498
5500
|
event._error = error;
|
|
@@ -5520,23 +5522,23 @@ class Store {
|
|
|
5520
5522
|
first_interaction: 1
|
|
5521
5523
|
});
|
|
5522
5524
|
}
|
|
5523
|
-
this.kv.put('last_msg_sent', util/* default
|
|
5525
|
+
this.kv.put('last_msg_sent', util/* default */.Z.Date.now());
|
|
5524
5526
|
return ret;
|
|
5525
5527
|
}
|
|
5526
5528
|
_setConvo(convo) {
|
|
5527
5529
|
let count = 0;
|
|
5528
5530
|
let user = this.cache.match('user');
|
|
5529
|
-
let channel = util/* default
|
|
5531
|
+
let channel = util/* default */.Z.get(convo, 'touchpoint.channel', '');
|
|
5530
5532
|
if (channel && channel != 'subiz') return;
|
|
5531
5533
|
let allconvo = {};
|
|
5532
|
-
util/* default
|
|
5534
|
+
util/* default */.Z.map(this.cache.all(), (value, key) => {
|
|
5533
5535
|
if (key.startsWith('convo_')) {
|
|
5534
5536
|
allconvo[key] = value;
|
|
5535
5537
|
}
|
|
5536
5538
|
});
|
|
5537
|
-
if (util/* default
|
|
5538
|
-
allconvo = util/* default
|
|
5539
|
-
for (var i = MAX_CONVO - 2; i < util/* default
|
|
5539
|
+
if (util/* default */.Z.size(allconvo) > MAX_CONVO - 2) {
|
|
5540
|
+
allconvo = util/* default */.Z.orderBy(util/* default */.Z.map(allconvo), 'created', 'desc');
|
|
5541
|
+
for (var i = MAX_CONVO - 2; i < util/* default */.Z.size(allconvo); i++) {
|
|
5540
5542
|
let convo = allconvo[i];
|
|
5541
5543
|
this.cache.del('convo_' + convo.id);
|
|
5542
5544
|
}
|
|
@@ -5592,7 +5594,7 @@ class Store {
|
|
|
5592
5594
|
account_id: user.account_id,
|
|
5593
5595
|
web_plugin_id: id,
|
|
5594
5596
|
campaign_id: id,
|
|
5595
|
-
user_id: util/* default
|
|
5597
|
+
user_id: util/* default */.Z.get(user, 'id'),
|
|
5596
5598
|
url: window.location.href,
|
|
5597
5599
|
device: this.device,
|
|
5598
5600
|
submission,
|
|
@@ -5611,9 +5613,9 @@ class Store {
|
|
|
5611
5613
|
error
|
|
5612
5614
|
} = await this.api.listMessages(convoid, -limit, anchor);
|
|
5613
5615
|
if (error || code !== 200) return [[], anchor, error];
|
|
5614
|
-
anchor = util/* default
|
|
5615
|
-
events = util/* default
|
|
5616
|
-
event.created = util/* default
|
|
5616
|
+
anchor = util/* default */.Z.get(util/* default */.Z.last(events), 'id');
|
|
5617
|
+
events = util/* default */.Z.map(events, event => {
|
|
5618
|
+
event.created = util/* default */.Z.getMs(event.created);
|
|
5617
5619
|
return {
|
|
5618
5620
|
id: event.id,
|
|
5619
5621
|
index: event.created,
|
|
@@ -5624,8 +5626,8 @@ class Store {
|
|
|
5624
5626
|
for (let i = 0; i < events.length; i++) {
|
|
5625
5627
|
let ev = events[i].value;
|
|
5626
5628
|
if (ev.type !== 'message_sent') continue;
|
|
5627
|
-
if (util/* default
|
|
5628
|
-
let pongbyme = util/* default
|
|
5629
|
+
if (util/* default */.Z.get(ev, 'by.id') === user.id) continue;
|
|
5630
|
+
let pongbyme = util/* default */.Z.find(util/* default */.Z.get(ev, 'data.message.pongs'), p => p.member_id === user.id);
|
|
5629
5631
|
if (pongbyme) break;
|
|
5630
5632
|
this.api.markAsReceived(convoid, ev.id);
|
|
5631
5633
|
break;
|
|
@@ -5633,25 +5635,26 @@ class Store {
|
|
|
5633
5635
|
return [events, anchor];
|
|
5634
5636
|
}
|
|
5635
5637
|
async loopTime() {
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
+
if (this._die) return;
|
|
5639
|
+
let startms = util/* default */.Z.Date.now();
|
|
5640
|
+
if (!util/* default */.Z.get(this.cache.match('user'), 'id')) return util/* default */.Z.setTimeout(() => this.loopTime(), 240000);
|
|
5638
5641
|
let {
|
|
5639
5642
|
body: t,
|
|
5640
5643
|
error
|
|
5641
5644
|
} = await this.api.time();
|
|
5642
|
-
if (error) return util/* default
|
|
5643
|
-
var latences = Math.abs(util/* default
|
|
5644
|
-
var serverMs = new util/* default
|
|
5645
|
-
var localMs = util/* default
|
|
5645
|
+
if (error) return util/* default */.Z.setTimeout(() => this.loopTime(), 30000);
|
|
5646
|
+
var latences = Math.abs(util/* default */.Z.Date.now() - startms) / 2;
|
|
5647
|
+
var serverMs = new util/* default */.Z.Date(t).getTime() + latences;
|
|
5648
|
+
var localMs = util/* default */.Z.Date.now();
|
|
5646
5649
|
this.timeDiff = Math.floor(serverMs - localMs);
|
|
5647
|
-
util/* default
|
|
5650
|
+
util/* default */.Z.setTimeout(() => this.loopTime(), 240000);
|
|
5648
5651
|
}
|
|
5649
5652
|
replaceFileUrl(src) {
|
|
5650
5653
|
if (!src) return '';
|
|
5651
|
-
if (util/* default
|
|
5652
|
-
if (util/* default
|
|
5653
|
-
if (!util/* default
|
|
5654
|
-
src = util/* default
|
|
5654
|
+
if (util/* default */.Z.startsWith(src, '/')) return src;
|
|
5655
|
+
if (util/* default */.Z.startsWith(src, 'data:')) return src;
|
|
5656
|
+
if (!util/* default */.Z.startsWith(src, 'http://') && !util/* default */.Z.startsWith(src, 'https://') && !util/* default */.Z.startsWith(src, '//')) {
|
|
5657
|
+
src = util/* default */.Z.trim(this.FileURL, '/') + '/' + util/* default */.Z.trimStart(src, '/');
|
|
5655
5658
|
}
|
|
5656
5659
|
src = src.replace('https://file-subiz.com/', this.FileURL);
|
|
5657
5660
|
src = src.replace('http://file-subiz.com/', this.FileURL);
|
|
@@ -5668,7 +5671,7 @@ class Store {
|
|
|
5668
5671
|
return src;
|
|
5669
5672
|
}
|
|
5670
5673
|
clearBrowserData() {
|
|
5671
|
-
util/* default
|
|
5674
|
+
util/* default */.Z.each(this.cookie.all(), (v, k) => {
|
|
5672
5675
|
if ((k || '').startsWith('__sb')) this.cookie.remove(k);
|
|
5673
5676
|
});
|
|
5674
5677
|
this.kv.destroy();
|
|
@@ -5678,16 +5681,29 @@ class Store {
|
|
|
5678
5681
|
}
|
|
5679
5682
|
destroy() {
|
|
5680
5683
|
this._die = true;
|
|
5681
|
-
this.
|
|
5684
|
+
if (this.kv) this.kv.destroy();
|
|
5685
|
+
if (this.chain) this.chain.destroy();
|
|
5686
|
+
util/* default */.Z.clearInterval(this._seenInterval);
|
|
5682
5687
|
if (this.realtime) this.realtime.stop();
|
|
5683
5688
|
this.readyGate.close();
|
|
5689
|
+
window.removeEventListener('blur', this.sendPresence);
|
|
5690
|
+
window.removeEventListener('focus', this.sendPresence);
|
|
5684
5691
|
}
|
|
5685
5692
|
}
|
|
5686
5693
|
function loadImage(file) {
|
|
5687
5694
|
return new Promise(rs => {
|
|
5688
5695
|
var reader = new window.FileReader();
|
|
5689
5696
|
reader.onload = e => {
|
|
5690
|
-
|
|
5697
|
+
let src = e.target.result;
|
|
5698
|
+
let img = new Image();
|
|
5699
|
+
img.onload = () => {
|
|
5700
|
+
rs({
|
|
5701
|
+
url: src,
|
|
5702
|
+
width: img.width,
|
|
5703
|
+
height: img.height
|
|
5704
|
+
});
|
|
5705
|
+
};
|
|
5706
|
+
img.src = src;
|
|
5691
5707
|
};
|
|
5692
5708
|
reader.readAsDataURL(file);
|
|
5693
5709
|
});
|
|
@@ -5798,7 +5814,7 @@ let cleanLocalStorage = () => {
|
|
|
5798
5814
|
} catch (e) {
|
|
5799
5815
|
return;
|
|
5800
5816
|
}
|
|
5801
|
-
util/* default
|
|
5817
|
+
util/* default */.Z.setTimeout(() => {
|
|
5802
5818
|
for (var key in localStorage) {
|
|
5803
5819
|
if (key && (key.startsWith('cbz2020') || key.startsWith('sbz2020'))) {
|
|
5804
5820
|
localStorage.removeItem(key);
|
|
@@ -5812,7 +5828,7 @@ let cleanMyLocalStorage = () => {
|
|
|
5812
5828
|
} catch (e) {
|
|
5813
5829
|
return;
|
|
5814
5830
|
}
|
|
5815
|
-
util/* default
|
|
5831
|
+
util/* default */.Z.setTimeout(() => {
|
|
5816
5832
|
for (var key in localStorage) {
|
|
5817
5833
|
if (key && (key.startsWith('cbz2020') || key.startsWith('sbz2020') || key.startsWith('sbz2022') || key.startsWith('sbz2023'))) {
|
|
5818
5834
|
localStorage.removeItem(key);
|
|
@@ -5830,8 +5846,8 @@ function dofetch(method, url, body, cb) {
|
|
|
5830
5846
|
}).then(res => res.text().then(text => cb && cb(text, res.status))).catch(err => cb && cb(err, -1));
|
|
5831
5847
|
}
|
|
5832
5848
|
var xhrsend = function (method, url, body, cb) {
|
|
5833
|
-
if (typeof util/* default
|
|
5834
|
-
var request = new util/* default
|
|
5849
|
+
if (typeof util/* default */.Z.XMLHttpRequest === 'undefined') return dofetch(method, url, body, cb);
|
|
5850
|
+
var request = new util/* default */.Z.XMLHttpRequest();
|
|
5835
5851
|
request.onreadystatechange = function (e) {
|
|
5836
5852
|
if (request.readyState !== 4) return;
|
|
5837
5853
|
cb && cb(request.responseText, request.status);
|
|
@@ -5845,6 +5861,7 @@ var xhrsend = function (method, url, body, cb) {
|
|
|
5845
5861
|
if (body) request.setRequestHeader('content-type', 'text/plain');
|
|
5846
5862
|
request.send(body);
|
|
5847
5863
|
};
|
|
5864
|
+
const dieErr = new Error('sdk unloaded');
|
|
5848
5865
|
// EXTERNAL MODULE: ./src/common.js
|
|
5849
5866
|
var common = __webpack_require__(2493);
|
|
5850
5867
|
// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js
|
|
@@ -5853,7 +5870,7 @@ var preact_module = __webpack_require__(6400);
|
|
|
5853
5870
|
|
|
5854
5871
|
|
|
5855
5872
|
|
|
5856
|
-
const LoadChatbox = () => __webpack_require__.e(/* import() */
|
|
5873
|
+
const LoadChatbox = () => __webpack_require__.e(/* import() */ 841).then(__webpack_require__.bind(__webpack_require__, 8841));
|
|
5857
5874
|
const LoadContact = () => __webpack_require__.e(/* import() */ 335).then(__webpack_require__.bind(__webpack_require__, 2335));
|
|
5858
5875
|
const LoadPopup = () => __webpack_require__.e(/* import() */ 213).then(__webpack_require__.bind(__webpack_require__, 8213));
|
|
5859
5876
|
const LoadNotif = () => __webpack_require__.e(/* import() */ 605).then(__webpack_require__.bind(__webpack_require__, 9605));
|
|
@@ -5861,9 +5878,12 @@ function Plugin(plugin, store, $container, lib) {
|
|
|
5861
5878
|
if (!$container) throw '$div must is a valid html node';
|
|
5862
5879
|
var $div = document.createElement('div');
|
|
5863
5880
|
$div.id = plugin.id;
|
|
5881
|
+
let acc = store.matchAccount();
|
|
5882
|
+
$div.setAttribute('sbz-plugin-type', plugin.type);
|
|
5883
|
+
$div.setAttribute('sbz-plugin-account-id', acc.id);
|
|
5864
5884
|
$container.appendChild($div);
|
|
5865
|
-
let _locale = common/* getLocale */.Kd(plugin, util/* default
|
|
5866
|
-
var domGate = new util/* default
|
|
5885
|
+
let _locale = common/* getLocale */.Kd(plugin, util/* default */.Z.detectLang());
|
|
5886
|
+
var domGate = new util/* default */.Z.Gate();
|
|
5867
5887
|
var pageIndex = 0;
|
|
5868
5888
|
var highlight;
|
|
5869
5889
|
var state = 'hold';
|
|
@@ -5876,13 +5896,13 @@ function Plugin(plugin, store, $container, lib) {
|
|
|
5876
5896
|
let lastrun = store.matchLastPluginRun(plugin.id);
|
|
5877
5897
|
if (plugin.type === 'chatbox' || plugin.type === 'notification') lastrun = undefined;
|
|
5878
5898
|
if (!plugin.enabled) return;
|
|
5879
|
-
let match = util/* default
|
|
5899
|
+
let match = util/* default */.Z.checkRunConditions(plugin.initiative_frequency, plugin.conditions, lastrun, store);
|
|
5880
5900
|
if (!match) return;
|
|
5881
5901
|
state = 'running';
|
|
5882
5902
|
await _this.update(plugin);
|
|
5883
5903
|
};
|
|
5884
5904
|
this.forceRunPopup = async () => {
|
|
5885
|
-
if (util/* default
|
|
5905
|
+
if (util/* default */.Z.get(_ref, 'current')) {
|
|
5886
5906
|
_ref.current.openPopup();
|
|
5887
5907
|
} else {
|
|
5888
5908
|
_render();
|
|
@@ -5969,11 +5989,10 @@ function Plugin(plugin, store, $container, lib) {
|
|
|
5969
5989
|
};
|
|
5970
5990
|
let t = key => {
|
|
5971
5991
|
if (_locale === 'debug') return `{{${key}}}`;
|
|
5972
|
-
let messages = util/* default
|
|
5973
|
-
let message = util/* default
|
|
5974
|
-
return util/* default
|
|
5992
|
+
let messages = util/* default */.Z.get(common/* langMessages */.Rs, _locale, []);
|
|
5993
|
+
let message = util/* default */.Z.find(messages, message => message.key === key);
|
|
5994
|
+
return util/* default */.Z.get(message, 'message', key);
|
|
5975
5995
|
};
|
|
5976
|
-
let acc = store.matchAccount();
|
|
5977
5996
|
t.i18n = i18nText => {
|
|
5978
5997
|
if (!i18nText) return '';
|
|
5979
5998
|
let fallbackLocale = plugin.locale || acc.locale || 'vi-VN';
|
|
@@ -5997,29 +6016,29 @@ function Plugin(plugin, store, $container, lib) {
|
|
|
5997
6016
|
return _locale;
|
|
5998
6017
|
};
|
|
5999
6018
|
let images = {};
|
|
6000
|
-
util/* default
|
|
6019
|
+
util/* default */.Z.map(util/* default */.Z.get(plugin, 'popup.pages'), page => {
|
|
6001
6020
|
if (!page) return;
|
|
6002
|
-
util/* default
|
|
6021
|
+
util/* default */.Z.map(page.components, com => {
|
|
6003
6022
|
if (com.type === 'image' && com.image && com.image.url && com.image.url.startsWith('http')) {
|
|
6004
6023
|
images[com.image.url] = true;
|
|
6005
6024
|
}
|
|
6006
6025
|
});
|
|
6007
6026
|
});
|
|
6008
|
-
if (util/* default
|
|
6009
|
-
let triggers = util/* default
|
|
6027
|
+
if (util/* default */.Z.size(images) >= 0) util/* default */.Z.map(images, (_, image) => util/* default */.Z.preloadImg(image));
|
|
6028
|
+
let triggers = util/* default */.Z.get(plugin, 'triggers') || [{
|
|
6010
6029
|
type: 'after_pageview',
|
|
6011
6030
|
after_pageview_sec: 0,
|
|
6012
6031
|
disabled: false
|
|
6013
6032
|
}];
|
|
6014
|
-
for (var i = 0; i < util/* default
|
|
6033
|
+
for (var i = 0; i < util/* default */.Z.size(triggers); i++) {
|
|
6015
6034
|
var tr = triggers[i];
|
|
6016
6035
|
if (!tr) continue;
|
|
6017
6036
|
if (tr.disabled) continue;
|
|
6018
|
-
if (tr.type === 'exit_intent') util/* default
|
|
6019
|
-
if (tr.type === 'area_clicked') util/* default
|
|
6020
|
-
if (tr.type === 'scrolling_percentage') util/* default
|
|
6021
|
-
if (tr.type === 'inactivity_duration') util/* default
|
|
6022
|
-
if (tr.type === 'after_pageview') util/* default
|
|
6037
|
+
if (tr.type === 'exit_intent') util/* default */.Z.trackExitIntent(run);
|
|
6038
|
+
if (tr.type === 'area_clicked') util/* default */.Z.trackAreaClicked(tr.area_clicked_css_selector, run);
|
|
6039
|
+
if (tr.type === 'scrolling_percentage') util/* default */.Z.trackScrollingPercentage(tr.scrolling_percentage, run);
|
|
6040
|
+
if (tr.type === 'inactivity_duration') util/* default */.Z.trackInactivity(tr.inactivity_sec, run);
|
|
6041
|
+
if (tr.type === 'after_pageview') util/* default */.Z.trackTimeOnPage(tr.after_pageview_sec, run);
|
|
6023
6042
|
}
|
|
6024
6043
|
this.update(plugin);
|
|
6025
6044
|
common/* downloadLanguage */.WW(store, _locale).then(() => {
|
|
@@ -6047,7 +6066,7 @@ class PluginMgr {
|
|
|
6047
6066
|
if (this._destroy) return;
|
|
6048
6067
|
let pluginM = this.lib.store.matchPlugin();
|
|
6049
6068
|
let foundchatbox = false;
|
|
6050
|
-
util/* default
|
|
6069
|
+
util/* default */.Z.each(pluginM, conf => {
|
|
6051
6070
|
if (conf.type === 'chatbox') {
|
|
6052
6071
|
if (foundchatbox) return;
|
|
6053
6072
|
foundchatbox = true;
|
|
@@ -6058,7 +6077,7 @@ class PluginMgr {
|
|
|
6058
6077
|
}
|
|
6059
6078
|
this.pluginM[conf.id].update(conf);
|
|
6060
6079
|
});
|
|
6061
|
-
util/* default
|
|
6080
|
+
util/* default */.Z.each(this.pluginM, (conf, id) => {
|
|
6062
6081
|
if (pluginM[id]) return;
|
|
6063
6082
|
this.pluginM[id].destroy();
|
|
6064
6083
|
delete this.pluginM[id];
|
|
@@ -6066,7 +6085,7 @@ class PluginMgr {
|
|
|
6066
6085
|
});
|
|
6067
6086
|
let pluginM = this.lib.store.matchPlugin();
|
|
6068
6087
|
let foundchatbox = false;
|
|
6069
|
-
util/* default
|
|
6088
|
+
util/* default */.Z.each(pluginM, conf => {
|
|
6070
6089
|
if (conf.type === 'chatbox') {
|
|
6071
6090
|
if (foundchatbox) return;
|
|
6072
6091
|
foundchatbox = true;
|
|
@@ -6076,12 +6095,12 @@ class PluginMgr {
|
|
|
6076
6095
|
}
|
|
6077
6096
|
findChatbox() {
|
|
6078
6097
|
var pluginM = this.lib.store.matchPlugin();
|
|
6079
|
-
let chatboxs = util/* default
|
|
6080
|
-
if (util/* default
|
|
6098
|
+
let chatboxs = util/* default */.Z.filter(this.pluginM, (plugin, id) => pluginM[id].type === 'chatbox');
|
|
6099
|
+
if (util/* default */.Z.size(chatboxs) === 0) {
|
|
6081
6100
|
console.error('no chatbox found.');
|
|
6082
6101
|
return;
|
|
6083
6102
|
}
|
|
6084
|
-
let chatbox = util/* default
|
|
6103
|
+
let chatbox = util/* default */.Z.find(chatboxs, chatbox => chatbox.getState() === 'running');
|
|
6085
6104
|
if (!chatbox) {
|
|
6086
6105
|
chatbox = chatboxs[0];
|
|
6087
6106
|
}
|
|
@@ -6137,9 +6156,8 @@ class PluginMgr {
|
|
|
6137
6156
|
chatbox.setLocale(locale);
|
|
6138
6157
|
}
|
|
6139
6158
|
destroy() {
|
|
6140
|
-
util/* default
|
|
6141
|
-
|
|
6142
|
-
this.pluginM[id].destroy();
|
|
6159
|
+
util/* default */.Z.map(this.pluginM, (conf, id) => {
|
|
6160
|
+
conf.destroy();
|
|
6143
6161
|
delete this.pluginM[id];
|
|
6144
6162
|
});
|
|
6145
6163
|
this._destroy = true;
|
|
@@ -6156,25 +6174,25 @@ var $link = document.createElement('link');
|
|
|
6156
6174
|
$link.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap';
|
|
6157
6175
|
$link.rel = 'stylesheet';
|
|
6158
6176
|
document.head.append($link);
|
|
6159
|
-
util/* default
|
|
6177
|
+
util/* default */.Z.preloadWebfonts(['Inter'], [400, 500, 600]);
|
|
6160
6178
|
class Widget {
|
|
6161
6179
|
constructor(ApiURL, FileURL, RealtimeURL, inmem, fake) {
|
|
6162
6180
|
lib_defineProperty(this, "version", () => '4.5');
|
|
6163
6181
|
lib_defineProperty(this, "setSetting", setting => this.store.setSetting({
|
|
6164
6182
|
account_setting: setting
|
|
6165
6183
|
}));
|
|
6166
|
-
lib_defineProperty(this, "getUser", () => util/* default
|
|
6184
|
+
lib_defineProperty(this, "getUser", () => util/* default */.Z.parseJSON(util/* default */.Z.stringify(this.store.matchUser())));
|
|
6167
6185
|
lib_defineProperty(this, "setViewingProduct", p => this.store.linkProduct(p));
|
|
6168
6186
|
lib_defineProperty(this, "getViewingProduct", () => this.store.getLinkedProduct());
|
|
6169
6187
|
lib_defineProperty(this, "track", () => this.store.track());
|
|
6170
6188
|
this.impressionTokens = {};
|
|
6171
|
-
this.domGate = new util/* default
|
|
6189
|
+
this.domGate = new util/* default */.Z.Gate();
|
|
6172
6190
|
this.store = new Store(ApiURL, FileURL, RealtimeURL, inmem, fake);
|
|
6173
6191
|
window.sbz_store = this.store;
|
|
6174
6192
|
this.subs = [];
|
|
6175
6193
|
this.store.onConvoEvent({
|
|
6176
6194
|
_isMounted: true
|
|
6177
|
-
}, ev => util/* default
|
|
6195
|
+
}, ev => util/* default */.Z.map(this.subs, sub => sub(ev)));
|
|
6178
6196
|
}
|
|
6179
6197
|
async waitReady(cb) {
|
|
6180
6198
|
await this.store.readyGate.entry();
|
|
@@ -6185,10 +6203,10 @@ class Widget {
|
|
|
6185
6203
|
let user = await this.store.login(accid, user_id, tokenGenerator);
|
|
6186
6204
|
if (!$container) $container = document.body;
|
|
6187
6205
|
this.pluginMgr = new PluginMgr(this, $container);
|
|
6188
|
-
let clean = util/* default
|
|
6206
|
+
let clean = util/* default */.Z.setInterval(() => {
|
|
6189
6207
|
if ($container && $container.isConnected) return;
|
|
6190
6208
|
this.pluginMgr.destroy();
|
|
6191
|
-
util/* default
|
|
6209
|
+
util/* default */.Z.clearInterval(clean);
|
|
6192
6210
|
}, 1000);
|
|
6193
6211
|
this.domGate.open();
|
|
6194
6212
|
return user;
|
|
@@ -6203,10 +6221,10 @@ class Widget {
|
|
|
6203
6221
|
let user = await this.store.init(accid, undefined, ref);
|
|
6204
6222
|
if (!$container) $container = document.body || document;
|
|
6205
6223
|
this.pluginMgr = new PluginMgr(this, $container);
|
|
6206
|
-
let clean = util/* default
|
|
6224
|
+
let clean = util/* default */.Z.setInterval(() => {
|
|
6207
6225
|
if ($container && $container.isConnected) return;
|
|
6208
6226
|
this.pluginMgr.destroy();
|
|
6209
|
-
util/* default
|
|
6227
|
+
util/* default */.Z.clearInterval(clean);
|
|
6210
6228
|
}, 1000);
|
|
6211
6229
|
this.domGate.open();
|
|
6212
6230
|
return user;
|
|
@@ -6215,10 +6233,10 @@ class Widget {
|
|
|
6215
6233
|
let outmask = await this.store.init(id, mask);
|
|
6216
6234
|
if (!$container) $container = document.body || document;
|
|
6217
6235
|
this.pluginMgr = new PluginMgr(this, $container);
|
|
6218
|
-
let clean = util/* default
|
|
6236
|
+
let clean = util/* default */.Z.setInterval(() => {
|
|
6219
6237
|
if ($container && $container.isConnected) return;
|
|
6220
6238
|
this.pluginMgr.destroy();
|
|
6221
|
-
util/* default
|
|
6239
|
+
util/* default */.Z.clearInterval(clean);
|
|
6222
6240
|
}, 1000);
|
|
6223
6241
|
this.domGate.open();
|
|
6224
6242
|
cb && cb(outmask);
|
|
@@ -6232,12 +6250,12 @@ class Widget {
|
|
|
6232
6250
|
attributes
|
|
6233
6251
|
});
|
|
6234
6252
|
var user = this.store.matchUser();
|
|
6235
|
-
return util/* default
|
|
6253
|
+
return util/* default */.Z.cloneDeep(user.attributes);
|
|
6236
6254
|
}
|
|
6237
6255
|
async getUserAttributes() {
|
|
6238
6256
|
await this.store.readyGate.entry();
|
|
6239
6257
|
var user = this.store.matchUser();
|
|
6240
|
-
return util/* default
|
|
6258
|
+
return util/* default */.Z.cloneDeep(util/* default */.Z.get(user, 'attributes', []));
|
|
6241
6259
|
}
|
|
6242
6260
|
async getWidgetCurrentView() {
|
|
6243
6261
|
await this.domGate.entry();
|
|
@@ -6268,40 +6286,40 @@ class Widget {
|
|
|
6268
6286
|
});
|
|
6269
6287
|
}
|
|
6270
6288
|
async viewForm(formid) {
|
|
6271
|
-
if (!formid || !util/* default
|
|
6289
|
+
if (!formid || !util/* default */.Z.startsWith(formid, 'cp')) return;
|
|
6272
6290
|
let impressiontoken = this.impressionTokens[formid];
|
|
6273
6291
|
if (impressiontoken) return impressiontoken;
|
|
6274
6292
|
let {
|
|
6275
6293
|
body: impression
|
|
6276
6294
|
} = await this.store.sendImpression(formid);
|
|
6277
|
-
impressiontoken = util/* default
|
|
6295
|
+
impressiontoken = util/* default */.Z.get(impression, 'impression_token') || '';
|
|
6278
6296
|
this.impressionTokens[formid] = impressiontoken;
|
|
6279
6297
|
return impressiontoken;
|
|
6280
6298
|
}
|
|
6281
6299
|
async submitForm(formid, values) {
|
|
6282
|
-
if (!formid || !util/* default
|
|
6283
|
-
let storeuser = util/* default
|
|
6300
|
+
if (!formid || !util/* default */.Z.startsWith(formid, 'cp')) return;
|
|
6301
|
+
let storeuser = util/* default */.Z.cloneDeep(this.store.matchUser());
|
|
6284
6302
|
let user = {
|
|
6285
6303
|
id: storeuser.id,
|
|
6286
6304
|
account_id: storeuser.account_id
|
|
6287
6305
|
};
|
|
6288
6306
|
let is_lead = false;
|
|
6289
|
-
values = util/* default
|
|
6307
|
+
values = util/* default */.Z.map(values, val => {
|
|
6290
6308
|
let key = val.key;
|
|
6291
6309
|
if (key === 'email') key = 'emails';
|
|
6292
6310
|
if (key === 'phone') key = 'phones';
|
|
6293
6311
|
is_lead = is_lead || key == 'emails' || key == 'phones';
|
|
6294
|
-
util/* default
|
|
6312
|
+
util/* default */.Z.setUserAttr(user, {
|
|
6295
6313
|
key: key,
|
|
6296
6314
|
[val.type || 'text']: val.value
|
|
6297
6315
|
});
|
|
6298
6316
|
return {
|
|
6299
6317
|
key: key,
|
|
6300
6318
|
type: val.type || 'text',
|
|
6301
|
-
value: util/* default
|
|
6319
|
+
value: util/* default */.Z.stringify(val.value)
|
|
6302
6320
|
};
|
|
6303
6321
|
});
|
|
6304
|
-
if (is_lead) util/* default
|
|
6322
|
+
if (is_lead) util/* default */.Z.setUserAttr(user, {
|
|
6305
6323
|
key: 'lead_source',
|
|
6306
6324
|
text: 'plugin.' + formid
|
|
6307
6325
|
});
|
|
@@ -6346,6 +6364,10 @@ class Widget {
|
|
|
6346
6364
|
_overrideDeviceType(type) {
|
|
6347
6365
|
this.store.overrideDeviceType(type);
|
|
6348
6366
|
}
|
|
6367
|
+
unload() {
|
|
6368
|
+
if (this.pluginMgr) this.pluginMgr.destroy();
|
|
6369
|
+
this.store.destroy();
|
|
6370
|
+
}
|
|
6349
6371
|
_overridePlugin(plugins) {
|
|
6350
6372
|
this.store.overridePlugin(plugins);
|
|
6351
6373
|
}
|
|
@@ -6359,14 +6381,14 @@ class Widget {
|
|
|
6359
6381
|
this.pluginMgr.forceRunPopup(pluginid);
|
|
6360
6382
|
}
|
|
6361
6383
|
unEvent(cb) {
|
|
6362
|
-
this.subs = util/* default
|
|
6384
|
+
this.subs = util/* default */.Z.filter(this.subs, sub => sub !== cb);
|
|
6363
6385
|
}
|
|
6364
6386
|
async countUnreadMessages() {
|
|
6365
6387
|
await this.domGate.entry();
|
|
6366
6388
|
return this.store.matchUnread();
|
|
6367
6389
|
}
|
|
6368
6390
|
onEvent(cb) {
|
|
6369
|
-
this.subs = util/* default
|
|
6391
|
+
this.subs = util/* default */.Z.filter(this.subs, sub => sub !== cb);
|
|
6370
6392
|
this.subs.push(cb);
|
|
6371
6393
|
}
|
|
6372
6394
|
overrideAccount(acc) {
|
|
@@ -6374,7 +6396,7 @@ class Widget {
|
|
|
6374
6396
|
}
|
|
6375
6397
|
async overrideChatbox(chatbox) {
|
|
6376
6398
|
await this.store.overrideChatbox(chatbox);
|
|
6377
|
-
if (util/* default
|
|
6399
|
+
if (util/* default */.Z.get(chatbox, 'chatbox.greeting.greeting')) {
|
|
6378
6400
|
this.pluginMgr.showCurrentGreeting();
|
|
6379
6401
|
}
|
|
6380
6402
|
}
|