@subiz/widget-v4 4.0.75 → 4.0.77

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 (116) hide show
  1. package/compiled_src/lib.js +6 -0
  2. package/compiled_src/store/api.js +24 -18
  3. package/compiled_src/store/api_fake.js +0 -24
  4. package/compiled_src/store/store.js +21 -5
  5. package/dist/132.js +6821 -0
  6. package/dist/178.js +406 -0
  7. package/dist/180d0eaa4dc.132.js +1 -0
  8. package/dist/180d0eaa4dc.178.js +1 -0
  9. package/dist/180d0eaa4dc.213.js +1 -0
  10. package/dist/180d0eaa4dc.335.js +1 -0
  11. package/dist/180d0eaa4dc.362.js +1 -0
  12. package/dist/180d0eaa4dc.441.js +1 -0
  13. package/dist/180d0eaa4dc.605.js +1 -0
  14. package/dist/180d0eaa4dc.678.js +1 -0
  15. package/dist/180d0eaa4dc.782.js +1 -0
  16. package/dist/180d0eaa4dc.app.js +1 -0
  17. package/dist/180d0eaa4dc.index.html +22 -0
  18. package/dist/180d0eaa4dc.library.html +22 -0
  19. package/dist/180d0eaa4dc.library.js +1 -0
  20. package/dist/180d0eaa4dc.preview.html +759 -0
  21. package/dist/180d0eaa4dc.preview.js +1 -0
  22. package/dist/180d0eaa4dc.screenshoot.js +1 -0
  23. package/dist/180efeaa053.132.js +1 -0
  24. package/dist/180efeaa053.178.js +1 -0
  25. package/dist/180efeaa053.213.js +1 -0
  26. package/dist/180efeaa053.335.js +1 -0
  27. package/dist/180efeaa053.362.js +1 -0
  28. package/dist/180efeaa053.441.js +1 -0
  29. package/dist/180efeaa053.605.js +1 -0
  30. package/dist/180efeaa053.678.js +1 -0
  31. package/dist/180efeaa053.782.js +1 -0
  32. package/dist/180efeaa053.app.js +1 -0
  33. package/dist/180efeaa053.index.html +22 -0
  34. package/dist/180efeaa053.library.html +22 -0
  35. package/dist/180efeaa053.library.js +1 -0
  36. package/dist/180efeaa053.preview.html +759 -0
  37. package/dist/180efeaa053.preview.js +1 -0
  38. package/dist/180efeaa053.screenshoot.js +1 -0
  39. package/dist/213.js +3188 -0
  40. package/dist/335.js +411 -0
  41. package/dist/362.js +107 -0
  42. package/dist/441.js +2814 -0
  43. package/dist/605.js +328 -0
  44. package/dist/678.js +107 -0
  45. package/dist/782.js +107 -0
  46. package/dist/HASH +1 -0
  47. package/dist/assets/img/Facebook.64607ec.png +0 -0
  48. package/dist/assets/img/Zalo.6845707.png +0 -0
  49. package/dist/assets/img/award1a.1a58e10.png +0 -0
  50. package/dist/assets/img/award3a.3b74423.png +0 -0
  51. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  52. package/dist/assets/img/award5.39eb7ae.png +0 -0
  53. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  54. package/dist/assets/img/caret.998eb8f.svg +1 -0
  55. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  56. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  57. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  58. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  59. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  60. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  69. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  70. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  71. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  72. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  73. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  74. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  75. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  76. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  77. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  78. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  79. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  80. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  81. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  82. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  83. package/dist/assets/img/empty.29bed2d.svg +23 -0
  84. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  85. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  86. package/dist/assets/img/external-link.90577cc.svg +1 -0
  87. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  88. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  89. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  90. package/dist/assets/img/image_default.be0698b.png +0 -0
  91. package/dist/assets/img/info.ebce7ea.svg +1 -0
  92. package/dist/assets/img/loader.37000a7.svg +1 -0
  93. package/dist/assets/img/loading_static.8f403ae.svg +10 -0
  94. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  95. package/dist/assets/img/main-service2.9b99549.png +0 -0
  96. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  97. package/dist/assets/img/package.8d37d0f.svg +5 -0
  98. package/dist/assets/img/package_fade.763c001.svg +1 -0
  99. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  100. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  101. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  102. package/dist/assets/img/search.f9705ff.svg +1 -0
  103. package/dist/assets/img/send.6db52a9.svg +3 -0
  104. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  105. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  106. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  107. package/dist/assets/img/x.26fdfa3.svg +5 -0
  108. package/dist/malicious-app.js +13 -0
  109. package/dist/screenshoot.html +7 -0
  110. package/dist/screenshoot.js +5969 -0
  111. package/index.html +6 -2
  112. package/package.json +10 -10
  113. package/src/lib.js +5 -0
  114. package/src/store/api.js +16 -10
  115. package/src/store/api_fake.js +0 -16
  116. package/src/store/store.js +38 -4
@@ -36,6 +36,12 @@ class Widget {
36
36
 
37
37
  _defineProperty(this, "getUser", () => _index.default.parseJSON(_index.default.stringify(this.store.matchUser())));
38
38
 
39
+ _defineProperty(this, "setViewingProduct", p => this.store.linkProduct(p));
40
+
41
+ _defineProperty(this, "getViewingProduct", () => this.store.getLinkedProduct());
42
+
43
+ _defineProperty(this, "track", () => this.store.track());
44
+
39
45
  this.domGate = new _index.default.Gate();
40
46
  this.store = new _store.default(ApiURL, FileURL, RealtimeURL, inmem, fake, agenttoken);
41
47
  window.sbz_store = this.store;
@@ -61,6 +61,23 @@ class _default {
61
61
 
62
62
  _defineProperty(this, "sendTyping", cid => this.apireq.post(`/conversations/${cid}/typing`));
63
63
 
64
+ _defineProperty(this, "sendPresence", (device, is_focused, productid, source_id, sku) => this.sendEvent({
65
+ by: {
66
+ id: this.uid,
67
+ device: device
68
+ },
69
+ type: 'presence_updated',
70
+ data: {
71
+ presence: {
72
+ viewing_product_sku: sku,
73
+ viewing_product_source_id: source_id,
74
+ viewing_product_id: productid,
75
+ pinged: _index.default.Date.now(),
76
+ is_focused
77
+ }
78
+ }
79
+ }));
80
+
64
81
  _defineProperty(this, "uploadToS3", async file => {
65
82
  let {
66
83
  body: signed,
@@ -151,23 +168,9 @@ class _default {
151
168
  this.uid = obj.uid;
152
169
  }
153
170
 
154
- sendPresence(device, is_focused) {
155
- return this.sendEvent({
156
- by: {
157
- id: this.uid,
158
- device: device
159
- },
160
- type: 'presence_updated',
161
- data: {
162
- presence: {
163
- pinged: _index.default.Date.now(),
164
- is_focused
165
- }
166
- }
167
- });
168
- }
169
-
170
- sendContent(device, pageUrl, pageTitle) {
171
+ sendContentView(device, pageUrl, pageTitle, id, source_id, sku) {
172
+ if (!id) id = undefined;
173
+ if (!source_id) source_id = undefined;
171
174
  return this.sendEvent({
172
175
  by: {
173
176
  id: this.uid,
@@ -176,9 +179,12 @@ class _default {
176
179
  type: 'content_viewed',
177
180
  data: {
178
181
  product: {
182
+ id: id,
183
+ source_id: source_id,
179
184
  url: pageUrl,
180
185
  name: pageTitle,
181
- title: pageTitle
186
+ title: pageTitle,
187
+ sku: sku
182
188
  }
183
189
  }
184
190
  });
@@ -162,30 +162,6 @@ function makeFakeConvo(accid, convoid, userid, agentid) {
162
162
  id: inteid
163
163
  },
164
164
  actived: 1610453070259,
165
- last_event: {
166
- id: 'evqyiykaoizbwnkaecwphttwk',
167
- account_id: accid,
168
- created: 1616213311830,
169
- type: 'message_sent',
170
- by: {
171
- id: userid,
172
- client_id: 'clsubizapi',
173
- type: 'user'
174
- },
175
- data: {
176
- message: {
177
- conversation_id: convoid,
178
- text: 'ok cám ơn!',
179
- format: 'plaintext',
180
- integration_id: inteid,
181
- pongs: [{
182
- member_id: userid,
183
- type: 'seen',
184
- created: 1616213312110
185
- }]
186
- }
187
- }
188
- },
189
165
  last_message_sent: {
190
166
  id: 'evqyiykaoizbwnkaecwphttwk',
191
167
  account_id: accid,
@@ -38,6 +38,8 @@ class Store {
38
38
 
39
39
  _defineProperty(this, "cookie", cookie);
40
40
 
41
+ _defineProperty(this, "_currentViewingProduct", {});
42
+
41
43
  _defineProperty(this, "new_visitor", true);
42
44
 
43
45
  _defineProperty(this, "matchUser", () => {
@@ -163,7 +165,7 @@ class Store {
163
165
  await this.readyGate.entry();
164
166
  if (!_index.default.get(this.kv.match('user'), 'id')) return;
165
167
  if (_index.default.isUserBanned(this.kv.match('user'))) return;
166
- return this.api.sendPresence(this.device, this.browserVisibility === 'visible' && document.hasFocus());
168
+ return this.api.sendPresence(this.device, this.browserVisibility === 'visible' && document.hasFocus(), this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
167
169
  }, 1000));
168
170
 
169
171
  _defineProperty(this, "now", () => _index.default.Date.now() + this.timeDiff);
@@ -231,7 +233,8 @@ class Store {
231
233
  this.g_haveSentSeenM = {};
232
234
  window.addEventListener('blur', () => this.sendPresence());
233
235
  window.addEventListener('focus', () => this.sendPresence());
234
- setInterval(() => this.sendPresence(), 30000);
236
+ setInterval(() => this.browserVisibility === 'visible' && document.hasFocus() && this.sendPresence(), 20000);
237
+ setInterval(() => (this.browserVisibility !== 'visible' || document.hasFocus()) && this.sendPresence(), 60000);
235
238
  onVisibilityChange(val => {
236
239
  this.browserVisibility = val;
237
240
  this.sendPresence();
@@ -260,6 +263,21 @@ class Store {
260
263
  }, 2000);
261
264
  }
262
265
 
266
+ linkProduct(p) {
267
+ if (!p) {
268
+ this._currentViewingProduct = {};
269
+ return;
270
+ }
271
+
272
+ if (p.id) this._currentViewingProduct.id = (p.id + '').trim();
273
+ if (p.source_id) this._currentViewingProduct.source_id = (p.source_id + '').trim();
274
+ if (p.sku) this._currentViewingProduct.sku = (p.sku + '').trim();
275
+ }
276
+
277
+ getLinkedProduct() {
278
+ return _index.default.cloneDeep(this._currentViewingProduct);
279
+ }
280
+
263
281
  isInsync(key) {
264
282
  return _index.default.Date.now() - (this.g_sync[key] || 0) < 300000;
265
283
  }
@@ -619,7 +637,7 @@ class Store {
619
637
 
620
638
  async track() {
621
639
  let user = this.kv.match('user') || {};
622
- await this.api.sendContent(this.device, location.href, document.title);
640
+ await this.api.sendContentView(this.device, location.href, document.title, this._currentViewingProduct.id, this._currentViewingProduct.source_id, this._currentViewingProduct.sku);
623
641
  this.sendPresence();
624
642
  }
625
643
 
@@ -765,8 +783,6 @@ class Store {
765
783
  this.chain.put(cid, ev.id, _index.default.getMs(ev.created), ev);
766
784
  }
767
785
 
768
- convo.last_event = ev;
769
-
770
786
  this._setConvo(convo);
771
787
 
772
788
  this.pubsub.publish('account');