@subiz/widget-v4 4.1.35 → 4.1.37

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 (100) hide show
  1. package/assets/less/widget.less +1 -1
  2. package/compiled_src/lib.js +24 -0
  3. package/compiled_src/util/campaign.js +2 -6
  4. package/compiled_src/util/common.js +5 -7
  5. package/compiled_src/util/order.js +2 -4
  6. package/compiled_src/util/pubsub.js +3 -6
  7. package/dist/132.js +6661 -0
  8. package/dist/178.js +406 -0
  9. package/dist/189cbc6136e.132.js +1 -0
  10. package/dist/189cbc6136e.178.js +1 -0
  11. package/dist/189cbc6136e.213.js +1 -0
  12. package/dist/189cbc6136e.335.js +1 -0
  13. package/dist/189cbc6136e.362.js +1 -0
  14. package/dist/189cbc6136e.441.js +1 -0
  15. package/dist/189cbc6136e.605.js +1 -0
  16. package/dist/189cbc6136e.678.js +1 -0
  17. package/dist/189cbc6136e.782.js +1 -0
  18. package/dist/189cbc6136e.app.js +1 -0
  19. package/dist/189cbc6136e.index.html +33 -0
  20. package/dist/189cbc6136e.library.html +33 -0
  21. package/dist/189cbc6136e.library.js +1 -0
  22. package/dist/189cbc6136e.preview.html +759 -0
  23. package/dist/189cbc6136e.preview.js +1 -0
  24. package/dist/189cbc6136e.screenshoot.js +1 -0
  25. package/dist/189cbc6136e.webview.js +1 -0
  26. package/dist/213.js +2780 -0
  27. package/dist/335.js +372 -0
  28. package/dist/362.js +107 -0
  29. package/dist/441.js +2257 -0
  30. package/dist/605.js +305 -0
  31. package/dist/678.js +107 -0
  32. package/dist/782.js +107 -0
  33. package/dist/HASH +1 -0
  34. package/dist/assets/img/Facebook.64607ec.png +0 -0
  35. package/dist/assets/img/Zalo.6845707.png +0 -0
  36. package/dist/assets/img/award1a.1a58e10.png +0 -0
  37. package/dist/assets/img/award3a.3b74423.png +0 -0
  38. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  39. package/dist/assets/img/award5.39eb7ae.png +0 -0
  40. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  41. package/dist/assets/img/caret.998eb8f.svg +1 -0
  42. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  43. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  44. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  45. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  46. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  47. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  69. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  70. package/dist/assets/img/empty.29bed2d.svg +23 -0
  71. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  72. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  73. package/dist/assets/img/external-link.90577cc.svg +1 -0
  74. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  75. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  76. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  77. package/dist/assets/img/image_default.be0698b.png +0 -0
  78. package/dist/assets/img/info.ebce7ea.svg +1 -0
  79. package/dist/assets/img/loader.37000a7.svg +1 -0
  80. package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
  81. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  82. package/dist/assets/img/main-service2.9b99549.png +0 -0
  83. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  84. package/dist/assets/img/package.8d37d0f.svg +5 -0
  85. package/dist/assets/img/package_fade.763c001.svg +1 -0
  86. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  87. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  88. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  89. package/dist/assets/img/search.f9705ff.svg +1 -0
  90. package/dist/assets/img/send.6db52a9.svg +3 -0
  91. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  92. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  93. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  94. package/dist/assets/img/x.26fdfa3.svg +5 -0
  95. package/dist/malicious-app.js +13 -0
  96. package/dist/screenshoot.html +7 -0
  97. package/dist/screenshoot.js +6391 -0
  98. package/package.json +12 -12
  99. package/src/lib.js +24 -0
  100. package/src/util/common.js +5 -1
@@ -9,6 +9,7 @@
9
9
 
10
10
  padding-left: @spacer3;
11
11
  padding-right: @spacer3;
12
+ padding-bottom: @spacer3;
12
13
  }
13
14
 
14
15
  .convo-list--list {
@@ -243,7 +244,6 @@
243
244
  align-items: center;
244
245
  margin-left: auto;
245
246
  margin-right: auto;
246
- margin-bottom: @spacer3;
247
247
  &::after {
248
248
  display: none;
249
249
  }
@@ -26,6 +26,7 @@ class Widget {
26
26
  _defineProperty(this, "setViewingProduct", p => this.store.linkProduct(p));
27
27
  _defineProperty(this, "getViewingProduct", () => this.store.getLinkedProduct());
28
28
  _defineProperty(this, "track", () => this.store.track());
29
+ this.impressionTokens = {};
29
30
  this.domGate = new _index.default.Gate();
30
31
  this.store = new _store.default(ApiURL, FileURL, RealtimeURL, inmem, fake);
31
32
  window.sbz_store = this.store;
@@ -125,6 +126,29 @@ class Widget {
125
126
  message
126
127
  });
127
128
  }
129
+ async viewForm(formid) {
130
+ if (!formid || !_index.default.startsWith(formid, 'cp')) return;
131
+ let impressiontoken = this.impressionTokens[formid];
132
+ if (impressiontoken) return impressiontoken;
133
+ let {
134
+ body: impression
135
+ } = await this.store.sendImpression(formid);
136
+ impressionToken = _index.default.get(impression, 'impression_token') || '';
137
+ this.impressionTokens[formid] = impressionToken;
138
+ return impressionToken;
139
+ }
140
+ async submitForm(formid, values) {
141
+ if (!formid || !_index.default.startsWith(formid, 'cp')) return;
142
+ values = _index.default.map(values, val => {
143
+ return {
144
+ key: val.key,
145
+ type: val.type || 'text',
146
+ value: _index.default.stringify(val.value)
147
+ };
148
+ });
149
+ let impressiontoken = await this.viewForm(formid);
150
+ return this.store.sendConversion(formid, values, impressionToken);
151
+ }
128
152
  startConvo(req) {
129
153
  return this.store.startConvo(req);
130
154
  }
@@ -37,9 +37,7 @@ function trackAreaClicked(selector, cb) {
37
37
  on('click', selector, cb);
38
38
  });
39
39
  }
40
- function trackInactivity() {
41
- let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
42
- let cb = arguments.length > 1 ? arguments[1] : undefined;
40
+ function trackInactivity(seconds = 0, cb) {
43
41
  let events = ['scroll', 'keyup', 'keydown', 'mousemove', 'mousewheel', 'mouseenter', 'mouseover', 'mousedown', 'touchstart', 'touchmove', 'touchenter'];
44
42
  let inactiveSeconds = 0;
45
43
  let resetTime = () => {
@@ -62,9 +60,7 @@ let timeOnPage = 0;
62
60
  common.setInterval(() => {
63
61
  timeOnPage += 5;
64
62
  }, 5000);
65
- function trackTimeOnPage() {
66
- let seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
67
- let cb = arguments.length > 1 ? arguments[1] : undefined;
63
+ function trackTimeOnPage(seconds = 0, cb) {
68
64
  if (seconds < 1) {
69
65
  return common.setTimeout(function () {
70
66
  cb(seconds);
@@ -159,10 +159,7 @@ function getMsgField(ev, fieldName) {
159
159
  function isObject(item) {
160
160
  return item && typeof item === 'object' && !Array.isArray(item);
161
161
  }
162
- function merge(target) {
163
- for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
164
- sources[_key - 1] = arguments[_key];
165
- }
162
+ function merge(target, ...sources) {
166
163
  if (!sources.length) return target;
167
164
  const source = sources.shift();
168
165
  if (isObject(target) && isObject(source)) {
@@ -406,7 +403,9 @@ function getUserAttr(user, key, type) {
406
403
  if (type === 'boolean') value = attr.boolean;
407
404
  if (type === 'number') value = attr.number;
408
405
  if (type === 'text') value = attr.text;
409
- if (type === 'list') value = attr.list;
406
+ if (type === 'list') {
407
+ value = [attr.text].concat(attr.other_values);
408
+ }
410
409
  });
411
410
  return value;
412
411
  }
@@ -961,8 +960,7 @@ function getUrlParameter() {
961
960
  }
962
961
  var sleep = ms => new Promise(res => setTimeout(res, ms));
963
962
  exports.sleep = sleep;
964
- function formatCurrency(val) {
965
- let currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'VND';
963
+ function formatCurrency(val, currency = 'VND') {
966
964
  let currencyObj = ALL_CURRENCIES.find(cur => cur.code === currency) || {
967
965
  name: 'Dong',
968
966
  code: 'VND',
@@ -14,8 +14,7 @@ op.map = common.map;
14
14
  op.each = common.each;
15
15
  op.size = common.size;
16
16
  op.find = common.find;
17
- function getProductPropName(product) {
18
- let seperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' - ';
17
+ function getProductPropName(product, seperator = ' - ') {
19
18
  let options = op.get(product, 'options', []);
20
19
  let props = op.get(product, 'props', []);
21
20
  let multiPropsOptions = op.filter(options, option => op.size(option.values) > 1);
@@ -26,8 +25,7 @@ function getProductPropName(product) {
26
25
  });
27
26
  return names.join(seperator);
28
27
  }
29
- function getOrderDisplayName() {
30
- let order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
+ function getOrderDisplayName(order = {}) {
31
29
  return order.number || order.id || '';
32
30
  }
33
31
  function displayOrderShippingAddress(order, isShorten) {
@@ -14,12 +14,9 @@ class Pubsub {
14
14
  }
15
15
  publish(topic, payload, payload2, payload3) {
16
16
  this.listeners[topic] = filter(this.listeners[topic], sub => sub.obj._isMounted);
17
- map(this.listeners[topic], _ref => {
18
- let {
19
- cb
20
- } = _ref;
21
- return cb(payload, payload2, payload3);
22
- });
17
+ map(this.listeners[topic], ({
18
+ cb
19
+ }) => cb(payload, payload2, payload3));
23
20
  }
24
21
  on2(obj, topic, cb) {
25
22
  if (!this.listeners[topic]) this.listeners[topic] = [];