@subiz/widget-v4 4.0.66 → 4.0.69

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 (97) hide show
  1. package/compiled_src/lib.js +18 -4
  2. package/compiled_src/store/store.js +27 -10
  3. package/compiled_src/util/common.js +1 -1
  4. package/package.json +7 -7
  5. package/src/lib.js +13 -4
  6. package/src/store/store.js +27 -11
  7. package/src/util/common.js +1 -1
  8. package/dist/132.js +0 -6819
  9. package/dist/178.js +0 -406
  10. package/dist/17fdfed03d1.132.js +0 -1
  11. package/dist/17fdfed03d1.178.js +0 -1
  12. package/dist/17fdfed03d1.213.js +0 -1
  13. package/dist/17fdfed03d1.335.js +0 -1
  14. package/dist/17fdfed03d1.362.js +0 -1
  15. package/dist/17fdfed03d1.441.js +0 -1
  16. package/dist/17fdfed03d1.605.js +0 -1
  17. package/dist/17fdfed03d1.678.js +0 -1
  18. package/dist/17fdfed03d1.782.js +0 -1
  19. package/dist/17fdfed03d1.app.js +0 -1
  20. package/dist/17fdfed03d1.index.html +0 -22
  21. package/dist/17fdfed03d1.library.html +0 -22
  22. package/dist/17fdfed03d1.library.js +0 -1
  23. package/dist/17fdfed03d1.preview.html +0 -759
  24. package/dist/17fdfed03d1.preview.js +0 -1
  25. package/dist/17fdfed03d1.screenshoot.js +0 -1
  26. package/dist/213.js +0 -3188
  27. package/dist/335.js +0 -411
  28. package/dist/362.js +0 -107
  29. package/dist/441.js +0 -2732
  30. package/dist/605.js +0 -328
  31. package/dist/678.js +0 -107
  32. package/dist/782.js +0 -107
  33. package/dist/HASH +0 -1
  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 +0 -20
  41. package/dist/assets/img/caret.998eb8f.svg +0 -1
  42. package/dist/assets/img/convos_empty.2353007.svg +0 -72
  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 +0 -4
  46. package/dist/assets/img/done_green.b817fd4.svg +0 -4
  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 +0 -23
  71. package/dist/assets/img/empty_1.0b98af0.svg +0 -11
  72. package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
  73. package/dist/assets/img/external-link.90577cc.svg +0 -1
  74. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  75. package/dist/assets/img/ghn.070f8e3.svg +0 -17
  76. package/dist/assets/img/ghtk.326eac1.svg +0 -18
  77. package/dist/assets/img/image_default.be0698b.png +0 -0
  78. package/dist/assets/img/info.ebce7ea.svg +0 -1
  79. package/dist/assets/img/loader.37000a7.svg +0 -1
  80. package/dist/assets/img/loading_static.8f403ae.svg +0 -10
  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 +0 -5
  85. package/dist/assets/img/package_fade.763c001.svg +0 -1
  86. package/dist/assets/img/rating--average.1ea492c.svg +0 -12
  87. package/dist/assets/img/rating--great.e3d712e.svg +0 -16
  88. package/dist/assets/img/rating--poor.2938a25.svg +0 -12
  89. package/dist/assets/img/search.f9705ff.svg +0 -1
  90. package/dist/assets/img/send.6db52a9.svg +0 -3
  91. package/dist/assets/img/shop.f7dc7d8.svg +0 -1
  92. package/dist/assets/img/shop_faded.df7845a.svg +0 -1
  93. package/dist/assets/img/subiz-mono.877e9f5.svg +0 -3
  94. package/dist/assets/img/x.26fdfa3.svg +0 -5
  95. package/dist/malicious-app.js +0 -13
  96. package/dist/screenshoot.html +0 -7
  97. package/dist/screenshoot.js +0 -5941
@@ -24,7 +24,7 @@ _index.default.preloadWebfonts(['Roboto'], [400, 500]);
24
24
 
25
25
  class Widget {
26
26
  constructor(ApiURL, FileURL, RealtimeURL, inmem, fake, agenttoken) {
27
- _defineProperty(this, "version", () => '4.4');
27
+ _defineProperty(this, "version", () => '4.5');
28
28
 
29
29
  _defineProperty(this, "setSetting", setting => this.store.setSetting({
30
30
  account_setting: setting
@@ -108,7 +108,21 @@ class Widget {
108
108
  }
109
109
 
110
110
  async sendMessage(convoid, message) {
111
- this.store.sendConvoEvent(convoid, 'message_sent', {
111
+ if (!convoid) {
112
+ const {
113
+ convo,
114
+ error
115
+ } = await this.store.startConvo({
116
+ message: message.text,
117
+ initial_by: this.store.matchUser().id
118
+ });
119
+ if (error) return {
120
+ error
121
+ };
122
+ convoid = convo.id;
123
+ }
124
+
125
+ return this.store.sendConvoEvent(convoid, 'message_sent', {
112
126
  message
113
127
  });
114
128
  }
@@ -127,11 +141,11 @@ class Widget {
127
141
  this.pluginMgr.hideCurrentGreeting();
128
142
  }
129
143
 
130
- async showWidget(view, convo) {
144
+ async showWidget(view, cid) {
131
145
  await this.domGate.entry();
132
146
  this.pluginMgr.showCurrentChatbox({
133
147
  view,
134
- cid: convo
148
+ cid: cid
135
149
  });
136
150
  }
137
151
 
@@ -29,6 +29,14 @@ cookie.defaults.path = '/';
29
29
  cookie.expiresMultiplier = 60 * 60 * 24;
30
30
  cookie.defaults.expires = 3650;
31
31
  const MAX_CONVO = 20;
32
+ const ga_client_id = '';
33
+ setTimeout(() => {
34
+ if (window.gtag) {
35
+ window.gtag('get', 'UA-XXXXXXXX-Y', 'client_id', clientid => {
36
+ ga_client_id = clientid;
37
+ });
38
+ }
39
+ }, 100);
32
40
 
33
41
  const page_loaded = _index.default.Date.now();
34
42
 
@@ -920,6 +928,7 @@ class Store {
920
928
  }
921
929
 
922
930
  this.kv.put('last_msg_sent', _index.default.Date.now());
931
+ return ret;
923
932
  }
924
933
 
925
934
  _setConvo(convo) {
@@ -1181,16 +1190,16 @@ const inmemCookie = {
1181
1190
  };
1182
1191
 
1183
1192
  function getGaClientId() {
1184
- var clientId = '';
1185
- if (!hasGA()) return clientId;
1193
+ if (ga_client_id) return ga_client_id;
1194
+ if (!hasGA()) return ga_client_id;
1186
1195
  var allTrackers = window.ga.getAll() || [];
1187
1196
  allTrackers.forEach(function (tracker) {
1188
- clientId = tracker.get('clientId');
1197
+ ga_client_id = tracker.get('clientId');
1189
1198
  });
1190
- return clientId;
1199
+ return ga_client_id;
1191
1200
  }
1192
1201
 
1193
- const hasGA = () => !!(window.ga && window.ga.getAll);
1202
+ const hasGA = () => !!(window.ga && window.ga.getAll || window.gtag);
1194
1203
 
1195
1204
  function getGaTrackingIds() {
1196
1205
  var trackingIds = [];
@@ -1213,11 +1222,19 @@ function sendToFBPixel(category, action, label) {
1213
1222
 
1214
1223
  function sendToGA(category, action, label) {
1215
1224
  if (!hasGA()) return;
1216
- const allTrackers = window.ga.getAll() || [];
1217
- allTrackers.forEach(function (tracker) {
1218
- const name = tracker.get('name');
1219
- window.ga(name + '.send', 'event', category, action, label);
1220
- });
1225
+
1226
+ if (window.gtag) {
1227
+ window.gtag('event', category + '.' + action, label);
1228
+ return;
1229
+ }
1230
+
1231
+ if (window.ga) {
1232
+ const allTrackers = window.ga.getAll() || [];
1233
+ allTrackers.forEach(function (tracker) {
1234
+ const name = tracker.get('name');
1235
+ window.ga(name + '.send', 'event', category, action, label);
1236
+ });
1237
+ }
1221
1238
  }
1222
1239
 
1223
1240
  function sendEventToThirdParty(category, action, label) {
@@ -422,7 +422,7 @@ function isURL(url) {
422
422
  }
423
423
 
424
424
  function isNumber(num) {
425
- var reg = /^\d+$/;
425
+ var re = /^\d+$/;
426
426
  return re.test(String(num));
427
427
  }
428
428
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.0.66",
3
+ "version": "4.0.69",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -14,16 +14,16 @@
14
14
  "@subiz/storage": "0.0.8",
15
15
  "@subiz/wsclient": "^3.1.7",
16
16
  "cookie_js": "1.4.2",
17
- "core-js": "^3.21.1",
17
+ "core-js": "^3.22.0",
18
18
  "css-loader": "5.2.7",
19
19
  "file-loader": "^6.2.0",
20
20
  "less": "^4.1.2",
21
21
  "less-loader": "^10.2.0",
22
- "marked": "^4.0.12",
23
- "preact": "^10.7.0"
22
+ "marked": "^4.0.14",
23
+ "preact": "^10.7.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@babel/core": "^7.17.8",
26
+ "@babel/core": "^7.17.9",
27
27
  "@babel/plugin-proposal-class-properties": "^7.16.7",
28
28
  "@babel/plugin-transform-react-jsx": "^7.17.3",
29
29
  "@babel/preset-env": "^7.16.11",
@@ -32,9 +32,9 @@
32
32
  "babel-plugin-syntax-jsx": "^6.18.0",
33
33
  "html-webpack-plugin": "^5.5.0",
34
34
  "puppeteer": "^13.5.2",
35
- "webpack": "^5.70.0",
35
+ "webpack": "^5.72.0",
36
36
  "webpack-bundle-analyzer": "^4.5.0",
37
37
  "webpack-cli": "^4.9.2",
38
- "webpack-dev-server": "^4.7.4"
38
+ "webpack-dev-server": "^4.8.1"
39
39
  }
40
40
  }
package/src/lib.js CHANGED
@@ -85,7 +85,15 @@ class Widget {
85
85
  }
86
86
 
87
87
  async sendMessage(convoid, message) {
88
- this.store.sendConvoEvent(convoid, 'message_sent', {message})
88
+ if (!convoid) {
89
+ const {convo, error} = await this.store.startConvo({
90
+ message: message.text,
91
+ initial_by: this.store.matchUser().id,
92
+ })
93
+ if (error) return {error}
94
+ convoid = convo.id
95
+ }
96
+ return this.store.sendConvoEvent(convoid, 'message_sent', {message})
89
97
  }
90
98
 
91
99
  startConvo(req) {
@@ -102,9 +110,10 @@ class Widget {
102
110
  this.pluginMgr.hideCurrentGreeting()
103
111
  }
104
112
 
105
- async showWidget(view, convo) {
113
+ // view could be: chat, list, offline_form
114
+ async showWidget(view, cid) {
106
115
  await this.domGate.entry()
107
- this.pluginMgr.showCurrentChatbox({view, cid: convo})
116
+ this.pluginMgr.showCurrentChatbox({view, cid: cid})
108
117
  }
109
118
 
110
119
  async hideWidget() {
@@ -112,7 +121,7 @@ class Widget {
112
121
  this.pluginMgr.hideCurrentChatbox()
113
122
  }
114
123
 
115
- version = () => '4.4'
124
+ version = () => '4.5'
116
125
 
117
126
  setSetting = (setting) => this.store.setSetting({account_setting: setting})
118
127
  getSetting = (_) => ({account_setting: sb.cloneDeep(this.store.matchAccountSetting())})
@@ -11,6 +11,15 @@ cookie.expiresMultiplier = 60 * 60 * 24 // days
11
11
  cookie.defaults.expires = 3650 // 10 year
12
12
 
13
13
  const MAX_CONVO = 20
14
+ const ga_client_id = ''
15
+
16
+ setTimeout(() => {
17
+ if (window.gtag) {
18
+ window.gtag('get', 'UA-XXXXXXXX-Y', 'client_id', (clientid) => {
19
+ ga_client_id = clientid
20
+ })
21
+ }
22
+ }, 100)
14
23
 
15
24
  const page_loaded = sb.Date.now()
16
25
 
@@ -824,6 +833,7 @@ export default class Store {
824
833
  }
825
834
 
826
835
  this.kv.put('last_msg_sent', sb.Date.now())
836
+ return ret
827
837
  }
828
838
 
829
839
  onConvoEvent = (o, cb) => this.pubsub.on2(o, 'events', cb)
@@ -1090,19 +1100,18 @@ const inmemCookie = {
1090
1100
  // getGaClientId returns ID of the client in Google Analytics
1091
1101
  // return empty string if GA is not installed
1092
1102
  function getGaClientId() {
1093
- var clientId = ''
1094
- if (!hasGA()) return clientId
1095
-
1103
+ if (ga_client_id) return ga_client_id
1104
+ if (!hasGA()) return ga_client_id
1096
1105
  var allTrackers = window.ga.getAll() || []
1097
1106
  allTrackers.forEach(function (tracker) {
1098
- clientId = tracker.get('clientId')
1107
+ ga_client_id = tracker.get('clientId')
1099
1108
  })
1100
1109
 
1101
- return clientId
1110
+ return ga_client_id
1102
1111
  }
1103
1112
 
1104
1113
  // hasGA tells if the website is using Google Analytics or not
1105
- const hasGA = () => !!(window.ga && window.ga.getAll)
1114
+ const hasGA = () => !!((window.ga && window.ga.getAll) || window.gtag)
1106
1115
 
1107
1116
  // getGaTrackingIds returns all tracking ids in Google Analytics
1108
1117
  // return empty array if GA is not installed
@@ -1128,11 +1137,18 @@ function sendToFBPixel(category, action, label) {
1128
1137
  function sendToGA(category, action, label) {
1129
1138
  if (!hasGA()) return
1130
1139
 
1131
- const allTrackers = window.ga.getAll() || []
1132
- allTrackers.forEach(function (tracker) {
1133
- const name = tracker.get('name')
1134
- window.ga(name + '.send', 'event', category, action, label)
1135
- })
1140
+ if (window.gtag) {
1141
+ window.gtag('event', category + '.' + action, label)
1142
+ return
1143
+ }
1144
+
1145
+ if (window.ga) {
1146
+ const allTrackers = window.ga.getAll() || []
1147
+ allTrackers.forEach(function (tracker) {
1148
+ const name = tracker.get('name')
1149
+ window.ga(name + '.send', 'event', category, action, label)
1150
+ })
1151
+ }
1136
1152
  }
1137
1153
 
1138
1154
  function sendEventToThirdParty(category, action, label) {
@@ -326,7 +326,7 @@ export function isURL(url) {
326
326
  }
327
327
 
328
328
  export function isNumber(num) {
329
- var reg = /^\d+$/
329
+ var re = /^\d+$/
330
330
  return re.test(String(num))
331
331
  }
332
332