@subiz/widget-v4 4.1.12 → 4.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/assets/less/form.less +5 -0
  2. package/compiled_src/chatbox/Widget.js +2 -1
  3. package/compiled_src/store/store.js +62 -36
  4. package/compiled_src/util/common.js +2 -2
  5. package/dist/132.js +6612 -0
  6. package/dist/178.js +406 -0
  7. package/dist/1857b1f5c4f.132.js +1 -0
  8. package/dist/1857b1f5c4f.178.js +1 -0
  9. package/dist/1857b1f5c4f.213.js +1 -0
  10. package/dist/1857b1f5c4f.335.js +1 -0
  11. package/dist/1857b1f5c4f.362.js +1 -0
  12. package/dist/1857b1f5c4f.441.js +1 -0
  13. package/dist/1857b1f5c4f.605.js +1 -0
  14. package/dist/1857b1f5c4f.678.js +1 -0
  15. package/dist/1857b1f5c4f.782.js +1 -0
  16. package/dist/1857b1f5c4f.app.js +1 -0
  17. package/dist/1857b1f5c4f.index.html +26 -0
  18. package/dist/1857b1f5c4f.library.html +26 -0
  19. package/dist/1857b1f5c4f.library.js +1 -0
  20. package/dist/1857b1f5c4f.preview.html +759 -0
  21. package/dist/1857b1f5c4f.preview.js +1 -0
  22. package/dist/1857b1f5c4f.screenshoot.js +1 -0
  23. package/dist/1857b1f5c4f.webview.js +1 -0
  24. package/dist/213.js +2774 -0
  25. package/dist/335.js +372 -0
  26. package/dist/362.js +107 -0
  27. package/dist/441.js +2855 -0
  28. package/dist/605.js +305 -0
  29. package/dist/678.js +107 -0
  30. package/dist/782.js +107 -0
  31. package/dist/HASH +1 -0
  32. package/dist/assets/img/Facebook.64607ec.png +0 -0
  33. package/dist/assets/img/Zalo.6845707.png +0 -0
  34. package/dist/assets/img/award1a.1a58e10.png +0 -0
  35. package/dist/assets/img/award3a.3b74423.png +0 -0
  36. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  37. package/dist/assets/img/award5.39eb7ae.png +0 -0
  38. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  39. package/dist/assets/img/caret.998eb8f.svg +1 -0
  40. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  41. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  42. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  43. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  44. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  45. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  46. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  47. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  68. package/dist/assets/img/empty.29bed2d.svg +23 -0
  69. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  70. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  71. package/dist/assets/img/external-link.90577cc.svg +1 -0
  72. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  73. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  74. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  75. package/dist/assets/img/image_default.be0698b.png +0 -0
  76. package/dist/assets/img/info.ebce7ea.svg +1 -0
  77. package/dist/assets/img/loader.37000a7.svg +1 -0
  78. package/dist/assets/img/loading_static.8f403ae.svg +10 -0
  79. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  80. package/dist/assets/img/main-service2.9b99549.png +0 -0
  81. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  82. package/dist/assets/img/package.8d37d0f.svg +5 -0
  83. package/dist/assets/img/package_fade.763c001.svg +1 -0
  84. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  85. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  86. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  87. package/dist/assets/img/search.f9705ff.svg +1 -0
  88. package/dist/assets/img/send.6db52a9.svg +3 -0
  89. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  90. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  91. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  92. package/dist/assets/img/x.26fdfa3.svg +5 -0
  93. package/dist/malicious-app.js +13 -0
  94. package/dist/screenshoot.html +7 -0
  95. package/dist/screenshoot.js +5607 -0
  96. package/package.json +4 -4
  97. package/src/chatbox/Widget.js +3 -1
  98. package/src/store/store.js +61 -32
  99. package/src/util/common.js +2 -2
@@ -53,6 +53,11 @@ textarea.form-control, select.form-control {
53
53
 
54
54
  padding: 8px;
55
55
  }
56
+
57
+ // Fix select display not fully text on Safari iOs
58
+ select.form-control {
59
+ padding: 1px 8px;
60
+ }
56
61
  input[type='text'].form-control:focus, input[type='number'].form-control:focus,input[type='date'].form-control:focus,
57
62
  textarea.form-control:focus, select.form-control:focus {
58
63
  border: 1px solid @primary-color;
@@ -198,7 +198,7 @@ class Widget extends _common.Com {
198
198
  is_lead = is_lead || key == 'emails' || key == 'phones';
199
199
  if (field.type === 'number') attr.number = parseInt(field.value);
200
200
  if (field.type === 'datetime') attr.datetime = new _index.default.Date(field.value).toISOString();
201
- if (field.type === 'list') attr.list = field.value;
201
+ if (field.type === 'list') attr.text = field.value;
202
202
  if (field.type === 'text' || field.type === 'boolean') attr[field.type] = field.value;
203
203
  _index.default.setUserAttr(user, attr);
204
204
  });
@@ -511,6 +511,7 @@ class Widget extends _common.Com {
511
511
  onAddItem: item => this.onListAddItem(key, item),
512
512
  onRemoveItem: item => this.onListRemoveItem(key, item)
513
513
  });
514
+ $field = this.renderDropdownField(field);
514
515
  } else if (field.type === 'datetime') {
515
516
  $field = (0, _preact.h)("input", {
516
517
  value: field.value,
@@ -29,7 +29,7 @@ class Store {
29
29
  _defineProperty(this, "new_visitor", true);
30
30
  _defineProperty(this, "matchUser", () => {
31
31
  this._touchAcc();
32
- return this.kv.match('user');
32
+ return this.cache.match('user');
33
33
  });
34
34
  _defineProperty(this, "suggest_addresses", keyword => this.api.suggest_address(keyword));
35
35
  _defineProperty(this, "matchAccount", () => this.cache.match('account'));
@@ -82,7 +82,7 @@ class Store {
82
82
  _defineProperty(this, "listEvents", id => {
83
83
  if (!id || id === '*' || typeof id !== 'string') return;
84
84
  if (!this.isInsync('events' + id)) {
85
- setTimeout(async () => {
85
+ _index.default.setTimeout(async () => {
86
86
  await this.readyGate.entry();
87
87
  await this.reconnectGate.entry(undefined, true);
88
88
  if (this.isInsync('events' + id)) return this.reconnectGate.open();
@@ -109,14 +109,20 @@ class Store {
109
109
  _defineProperty(this, "convoGate", new _index.default.Gate(true));
110
110
  _defineProperty(this, "reconnectGate", new _index.default.Gate(true));
111
111
  _defineProperty(this, "wsGate", new _index.default.Gate(true));
112
- _defineProperty(this, "matchLastview", () => this.kv.match('lastview') || {});
112
+ _defineProperty(this, "matchLastview", () => {
113
+ let lastView = this.kv.match('lastview') || {};
114
+ let user = this.cache.match('user') || {};
115
+ if (!user.id) return {};
116
+ if (lastView.user_id != user.id) return {};
117
+ return lastView;
118
+ });
113
119
  _defineProperty(this, "matchIsOpen", () => !!this.kv.match('isopen'));
114
120
  _defineProperty(this, "matchHasManuallyClosed", () => !!this.kv.match('hasManuallyClosed'));
115
121
  _defineProperty(this, "matchClosePreviewAt", () => this.kv.match('close_preview_at') || 0);
116
122
  _defineProperty(this, "sendPresence", _index.default.throttle(async () => {
117
123
  await this.readyGate.entry();
118
- if (!_index.default.get(this.kv.match('user'), 'id')) return;
119
- if (_index.default.isUserBanned(this.kv.match('user'))) return;
124
+ if (!_index.default.get(this.cache.match('user'), 'id')) return;
125
+ if (_index.default.isUserBanned(this.cache.match('user'))) return;
120
126
  let hasfocus = this.browserVisibility === 'visible' && document.hasFocus();
121
127
  if (!hasfocus) {
122
128
  this.api.sendLostFocus(this.device, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
@@ -149,10 +155,15 @@ class Store {
149
155
  }
150
156
  });
151
157
  _defineProperty(this, "closePreview", () => this.kv.put('close_preview_at', new _index.default.Date().getTime()));
152
- _defineProperty(this, "setLastview", (view, opts) => this.kv.put('lastview', {
153
- view,
154
- opts
155
- }));
158
+ _defineProperty(this, "setLastview", (view, opts) => {
159
+ let user = this.cache.match('user') || {};
160
+ if (!user.id) return;
161
+ this.kv.put('lastview', {
162
+ user_id: user.id,
163
+ view,
164
+ opts
165
+ });
166
+ });
156
167
  _defineProperty(this, "timeDiff", 0);
157
168
  this.g_sync = {};
158
169
  this.forceDevice = null;
@@ -175,24 +186,25 @@ class Store {
175
186
  this.inmem = inmem;
176
187
  this.cookie = inmemCookie;
177
188
  }
189
+ cleanLocalStorage();
178
190
  this.pubsub = new _index.default.Pubsub();
179
- this.kv = new _storage.default.kv(new _storage.default.lsdb('sbz2020', this.inmem), 'kv');
180
- this.cache = new _storage.default.kv(new _storage.default.lsdb('sbz2020', true), 'kv');
181
- this.chain = new _storage.default.chain(new _storage.default.lsdb('cbz2020', true), 'ch');
191
+ this.kv = new _storage.default.kv(new _storage.default.lsdb('sbz2023', this.inmem), 'kv');
192
+ this.cache = new _storage.default.kv(new _storage.default.lsdb('sbz2023', true), 'kv');
193
+ this.chain = new _storage.default.chain(new _storage.default.lsdb('cbz2023', true), 'ch');
182
194
  this.getLocaleContent = this.api.getLocaleContent;
183
195
  this.g_haveSentSeenM = {};
184
196
  window.addEventListener('blur', () => this.sendPresence());
185
197
  window.addEventListener('focus', () => this.sendPresence());
186
- setInterval(() => this.browserVisibility === 'visible' && document.hasFocus() && this.sendPresence(), 20000);
187
- setInterval(() => (this.browserVisibility !== 'visible' || document.hasFocus()) && this.sendPresence(), 60000);
198
+ _index.default.setInterval(() => this.browserVisibility === 'visible' && document.hasFocus() && this.sendPresence(), 20000);
199
+ _index.default.setInterval(() => (this.browserVisibility !== 'visible' || document.hasFocus()) && this.sendPresence(), 60000);
188
200
  onVisibilityChange(val => {
189
201
  this.browserVisibility = val;
190
202
  this.sendPresence();
191
203
  });
192
204
  this.loopTime();
193
205
  this.device = this.getDeviceInfo();
194
- const _gaInterval = setInterval(() => {
195
- let user = this.kv.match('user') || {};
206
+ const _gaInterval = _index.default.setInterval(() => {
207
+ let user = this.cache.match('user') || {};
196
208
  if (!user.id) return;
197
209
  var dev = this.getDeviceInfo();
198
210
  if (!dev.ga_tracking_ids || !dev.ga_client_id) return;
@@ -250,7 +262,7 @@ class Store {
250
262
  await this.readyGate.entry();
251
263
  this.disconnect('account');
252
264
  await this.reconnect();
253
- setTimeout(this.pubsub.publish('resetCSS'), 10);
265
+ _index.default.setTimeout(this.pubsub.publish('resetCSS'), 10);
254
266
  }
255
267
  getDeviceInfo() {
256
268
  let device = {
@@ -394,9 +406,9 @@ class Store {
394
406
  seenLoop() {
395
407
  this.seenQueue = [];
396
408
  clearInterval(this._seenInterval);
397
- this._seenInterval = setInterval(() => {
409
+ this._seenInterval = _index.default.setInterval(() => {
398
410
  this.seenQueue = [...new Set(this.seenQueue)];
399
- let user = this.kv.match('user') || {};
411
+ let user = this.cache.match('user') || {};
400
412
  _index.default.map(this.seenQueue, id => {
401
413
  var events = this.listEvents(id);
402
414
  if (!events) return;
@@ -455,7 +467,7 @@ class Store {
455
467
  }
456
468
  _setUser(user) {
457
469
  user = _index.default.cloneDeep(user);
458
- let olduser = this.kv.match('user') || {};
470
+ let olduser = this.cache.match('user') || {};
459
471
  var accid = olduser.account_id || user.account_id;
460
472
  var id = olduser.id || user.id;
461
473
  _index.default.each(user.attributes, newattr => {
@@ -469,7 +481,7 @@ class Store {
469
481
  olduser.attributes = olduser.attributes.concat(user.attributes);
470
482
  olduser.account_id = accid;
471
483
  olduser.id = id;
472
- this.kv.put('user', olduser);
484
+ this.cache.put('user', olduser);
473
485
  this.pubsub.publish('account');
474
486
  }
475
487
  async setSetting(setting) {
@@ -539,13 +551,13 @@ class Store {
539
551
  if (!ev || !ev.type) return;
540
552
  ev.created = _index.default.getMs(ev.created);
541
553
  if (ev.type === 'user_info_updated') {
542
- let user = _index.default.cloneDeep(this.kv.match('user'));
554
+ let user = _index.default.cloneDeep(this.cache.match('user'));
543
555
  let attrs = _index.default.get(ev, 'data.user.attributes') || [];
544
556
  _index.default.map(attrs, attr => _index.default.setUserAttr(user, attr));
545
557
  this._setUser(user);
546
558
  return;
547
559
  }
548
- let user = this.kv.match('user') || {};
560
+ let user = this.cache.match('user') || {};
549
561
  let cid = _index.default.convoOfEv(ev);
550
562
  let convo;
551
563
  let alreadyFetched = false;
@@ -568,7 +580,7 @@ class Store {
568
580
  this.pubsub.publish('events', ev);
569
581
  if (ev.type === 'conversation_joined') {
570
582
  let members = _index.default.get(ev, 'data.conversation.members', []);
571
- let me = _index.default.find(members, m => m.id === this.kv.match('user').id);
583
+ let me = _index.default.find(members, m => m.id === this.cache.match('user').id);
572
584
  if (me) {
573
585
  await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit));
574
586
  this.markSync('events' + cid);
@@ -598,7 +610,7 @@ class Store {
598
610
  }
599
611
  }
600
612
  async restConvoEvent(ev) {
601
- let user = this.kv.match('user');
613
+ let user = this.cache.match('user');
602
614
  let cid = _index.default.convoOfEv(ev);
603
615
  let convo = this.cache.match('convo_' + cid) || {};
604
616
  if (ev.type === 'conversation_state_updated') {
@@ -704,7 +716,7 @@ class Store {
704
716
  async sendConvoEvent(cid, type, data) {
705
717
  await this.readyGate.entry();
706
718
  var idempotency = _index.default.randomString(36);
707
- let user = this.kv.match('user') || {};
719
+ let user = this.cache.match('user') || {};
708
720
  var event = {
709
721
  id: idempotency,
710
722
  by: {
@@ -767,7 +779,7 @@ class Store {
767
779
  }
768
780
  _setConvo(convo) {
769
781
  let count = 0;
770
- let user = this.kv.match('user');
782
+ let user = this.cache.match('user');
771
783
  let channel = _index.default.get(convo, 'touchpoint.channel', '');
772
784
  if (channel && channel != 'subiz') return;
773
785
  let allconvo = {};
@@ -804,7 +816,7 @@ class Store {
804
816
  this.kv.put('bot_run_logs', log);
805
817
  }
806
818
  sendImpression(id) {
807
- let user = this.kv.match('user') || {};
819
+ let user = this.cache.match('user') || {};
808
820
  let log = this.kv.match('plugin_run_logs') || {};
809
821
  log[id] = {
810
822
  web_plugin_id: id,
@@ -821,7 +833,7 @@ class Store {
821
833
  });
822
834
  }
823
835
  sendConversion(id, fields, impressionToken) {
824
- let user = this.kv.match('user') || {};
836
+ let user = this.cache.match('user') || {};
825
837
  let submission = {
826
838
  account_id: user.account_id,
827
839
  user_id: user.id,
@@ -862,7 +874,7 @@ class Store {
862
874
  value: event
863
875
  };
864
876
  });
865
- let user = this.kv.match('user') || {};
877
+ let user = this.cache.match('user') || {};
866
878
  for (let i = 0; i < events.length; i++) {
867
879
  let ev = events[i].value;
868
880
  if (ev.type !== 'message_sent') continue;
@@ -876,17 +888,17 @@ class Store {
876
888
  }
877
889
  async loopTime() {
878
890
  let startms = _index.default.Date.now();
879
- if (!_index.default.get(this.kv.match('user'), 'id')) return setTimeout(() => this.loopTime(), 240000);
891
+ if (!_index.default.get(this.cache.match('user'), 'id')) return _index.default.setTimeout(() => this.loopTime(), 240000);
880
892
  let {
881
893
  body: t,
882
894
  error
883
895
  } = await this.api.time();
884
- if (error) return setTimeout(() => this.loopTime(), 30000);
896
+ if (error) return _index.default.setTimeout(() => this.loopTime(), 30000);
885
897
  var latences = Math.abs(_index.default.Date.now() - startms) / 2;
886
898
  var serverMs = new _index.default.Date(t).getTime() + latences;
887
899
  var localMs = _index.default.Date.now();
888
900
  this.timeDiff = Math.floor(serverMs - localMs);
889
- setTimeout(() => this.loopTime(), 240000);
901
+ _index.default.setTimeout(() => this.loopTime(), 240000);
890
902
  }
891
903
  replaceFileUrl(src) {
892
904
  if (!src) return '';
@@ -914,9 +926,9 @@ class Store {
914
926
  if ((k || '').startsWith('__sb')) this.cookie.remove(k);
915
927
  });
916
928
  this.kv.destroy();
917
- this.kv = new _storage.default.kv(new _storage.default.lsdb('sbz2020', this.inmem), 'kv');
929
+ this.kv = new _storage.default.kv(new _storage.default.lsdb('sbz2023', this.inmem), 'kv');
918
930
  this.chain.destroy();
919
- this.chain = new _storage.default.chain(new _storage.default.lsdb('cbz2020', true), 'ch');
931
+ this.chain = new _storage.default.chain(new _storage.default.lsdb('cbz2023', true), 'ch');
920
932
  }
921
933
  destroy() {
922
934
  this._die = true;
@@ -1034,4 +1046,18 @@ function sendEventToThirdParty(category, action, label) {
1034
1046
  let mobileCheck = function (a) {
1035
1047
  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4));
1036
1048
  }(navigator.userAgent || navigator.vendor || window.opera);
1037
- let tabletCheck = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(navigator.userAgent);
1049
+ let tabletCheck = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(navigator.userAgent);
1050
+ let cleanLocalStorage = () => {
1051
+ try {
1052
+ localStorage;
1053
+ } catch (e) {
1054
+ return;
1055
+ }
1056
+ _index.default.setTimeout(() => {
1057
+ for (var key in localStorage) {
1058
+ if (key && key.startsWith('cbz2020') || key.startsWith('sbz2020')) {
1059
+ localStorage.removeItem(key);
1060
+ }
1061
+ }
1062
+ });
1063
+ };
@@ -80,9 +80,9 @@ var Date = f.contentWindow.Date;
80
80
  exports.Date = Date;
81
81
  var requestAnimationFrame = f.contentWindow.requestAnimationFrame;
82
82
  exports.requestAnimationFrame = requestAnimationFrame;
83
- var setTimeout = f.contentWindow.setTimeout;
83
+ var setTimeout = f.contentWindow.setTimeout.bind(f.contentWindow);
84
84
  exports.setTimeout = setTimeout;
85
- var setInterval = f.contentWindow.setInterval;
85
+ var setInterval = f.contentWindow.setInterval.bind(f.contentWindow);
86
86
  exports.setInterval = setInterval;
87
87
  function convoOfEv(ev) {
88
88
  if (!ev) return '';