@subiz/widget-v4 4.1.108 → 4.1.109
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/chatbox/TextMessage.js +4 -2
- package/compiled_src/chatbox/Widget.js +1 -0
- package/compiled_src/chatbox/block.js +27 -1
- package/compiled_src/store/store.js +10 -6
- package/package.json +10 -10
- package/src/chatbox/TextMessage.js +2 -2
- package/src/chatbox/Widget.js +1 -0
- package/src/chatbox/block.js +29 -2
- package/src/store/store.js +7 -3
- package/dist/132.js +0 -6661
- package/dist/178.js +0 -406
- 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.362.js +0 -1
- package/dist/18a02a9c54e.441.js +0 -1
- package/dist/18a02a9c54e.605.js +0 -1
- package/dist/18a02a9c54e.678.js +0 -1
- package/dist/18a02a9c54e.782.js +0 -1
- package/dist/18a02a9c54e.app.js +0 -1
- package/dist/18a02a9c54e.index.html +0 -33
- package/dist/18a02a9c54e.library.html +0 -33
- package/dist/18a02a9c54e.library.js +0 -1
- package/dist/18a02a9c54e.preview.html +0 -759
- package/dist/18a02a9c54e.preview.js +0 -1
- package/dist/18a02a9c54e.screenshoot.js +0 -1
- package/dist/18a02a9c54e.webview.js +0 -1
- package/dist/213.js +0 -2780
- package/dist/335.js +0 -372
- package/dist/362.js +0 -107
- package/dist/441.js +0 -2855
- package/dist/605.js +0 -305
- package/dist/678.js +0 -107
- package/dist/782.js +0 -107
- package/dist/HASH +0 -1
- package/dist/assets/img/Facebook.64607ec.png +0 -0
- package/dist/assets/img/Zalo.6845707.png +0 -0
- package/dist/assets/img/award1a.1a58e10.png +0 -0
- package/dist/assets/img/award3a.3b74423.png +0 -0
- package/dist/assets/img/award4a.ed6ccd4.png +0 -0
- package/dist/assets/img/award5.39eb7ae.png +0 -0
- package/dist/assets/img/bubble_default.7d5e4ab.svg +0 -20
- package/dist/assets/img/caret.998eb8f.svg +0 -1
- package/dist/assets/img/convos_empty.2353007.svg +0 -72
- package/dist/assets/img/default.06e6ee0.jpg +0 -0
- package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
- package/dist/assets/img/done_gray.d7e8203.svg +0 -4
- package/dist/assets/img/done_green.b817fd4.svg +0 -4
- package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
- package/dist/assets/img/empty.29bed2d.svg +0 -23
- package/dist/assets/img/empty_1.0b98af0.svg +0 -11
- package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
- package/dist/assets/img/external-link.90577cc.svg +0 -1
- package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
- package/dist/assets/img/ghn.070f8e3.svg +0 -17
- package/dist/assets/img/ghtk.326eac1.svg +0 -18
- package/dist/assets/img/image_default.be0698b.png +0 -0
- package/dist/assets/img/info.ebce7ea.svg +0 -1
- package/dist/assets/img/loader.37000a7.svg +0 -1
- package/dist/assets/img/loading_static.a27f0ac.svg +0 -10
- package/dist/assets/img/main-service1.d536cc2.png +0 -0
- package/dist/assets/img/main-service2.9b99549.png +0 -0
- package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
- package/dist/assets/img/package.8d37d0f.svg +0 -5
- package/dist/assets/img/package_fade.763c001.svg +0 -1
- package/dist/assets/img/rating--average.1ea492c.svg +0 -12
- package/dist/assets/img/rating--great.e3d712e.svg +0 -16
- package/dist/assets/img/rating--poor.2938a25.svg +0 -12
- package/dist/assets/img/search.f9705ff.svg +0 -1
- package/dist/assets/img/send.6db52a9.svg +0 -3
- package/dist/assets/img/shop.f7dc7d8.svg +0 -1
- package/dist/assets/img/shop_faded.df7845a.svg +0 -1
- package/dist/assets/img/subiz-mono.877e9f5.svg +0 -3
- package/dist/assets/img/x.26fdfa3.svg +0 -5
- package/dist/malicious-app.js +0 -13
- package/dist/screenshoot.html +0 -7
- package/dist/screenshoot.js +0 -6434
|
@@ -63,13 +63,15 @@ class TextMessage extends _common.Com {
|
|
|
63
63
|
return (0, _preact.h)("div", {
|
|
64
64
|
class: "message-agent message-text--agent"
|
|
65
65
|
}, (0, _preact.h)(_block.default, {
|
|
66
|
-
block: block
|
|
66
|
+
block: block,
|
|
67
|
+
onLink: this.props.onLink
|
|
67
68
|
}));
|
|
68
69
|
}
|
|
69
70
|
return (0, _preact.h)("div", {
|
|
70
71
|
class: "message-user message-text--user"
|
|
71
72
|
}, (0, _preact.h)(_block.default, {
|
|
72
|
-
block: block
|
|
73
|
+
block: block,
|
|
74
|
+
onLink: this.props.onLink
|
|
73
75
|
}));
|
|
74
76
|
}
|
|
75
77
|
}
|
|
@@ -949,6 +949,7 @@ class Widget extends _common.Com {
|
|
|
949
949
|
return joined;
|
|
950
950
|
}
|
|
951
951
|
hasSentMessage(cid) {
|
|
952
|
+
if (this.userSent[cid]) return true;
|
|
952
953
|
let convo = this.props.store.matchConvo(cid) || {};
|
|
953
954
|
let joined = _index.default.find(convo.members, mem => {
|
|
954
955
|
if (mem.type === 'bot') return true;
|
|
@@ -100,7 +100,33 @@ class Block extends _common.Com {
|
|
|
100
100
|
return null;
|
|
101
101
|
}
|
|
102
102
|
let $body = null;
|
|
103
|
-
if (_index.default.size(block.content))
|
|
103
|
+
if (_index.default.size(block.content)) {
|
|
104
|
+
$body = _index.default.map(block.content, block => this.renderBlock(block));
|
|
105
|
+
} else if (block.type === 'text') {
|
|
106
|
+
let $tags = _index.default.extractText(ele.text).map(tag => {
|
|
107
|
+
if (tag.type === 'link') {
|
|
108
|
+
let url = tag.text || '';
|
|
109
|
+
if (!url.startsWith('//') && !url.startsWith('https://') && !url.startsWith('http://') && !url.startsWith('data:')) {
|
|
110
|
+
url = '//' + url;
|
|
111
|
+
}
|
|
112
|
+
return (0, _preact.h)("a", {
|
|
113
|
+
href: url,
|
|
114
|
+
target: "_blank",
|
|
115
|
+
onClick: e => this.props.onLink(e, url)
|
|
116
|
+
}, tag.text);
|
|
117
|
+
}
|
|
118
|
+
if (tag.type === 'phone') return (0, _preact.h)("a", {
|
|
119
|
+
href: 'tel:' + tag.text
|
|
120
|
+
}, tag.text);
|
|
121
|
+
if (tag.type === 'email') return (0, _preact.h)("a", {
|
|
122
|
+
href: 'mailto:' + tag.text
|
|
123
|
+
}, tag.text);
|
|
124
|
+
return tag.text;
|
|
125
|
+
});
|
|
126
|
+
$body = $tags;
|
|
127
|
+
} else {
|
|
128
|
+
$body = ele.text;
|
|
129
|
+
}
|
|
104
130
|
switch (ele.tag) {
|
|
105
131
|
case 'div':
|
|
106
132
|
return (0, _preact.h)("div", null, $body);
|
|
@@ -1109,6 +1109,16 @@ function sendToFBPixel(category, action, label) {
|
|
|
1109
1109
|
});
|
|
1110
1110
|
}
|
|
1111
1111
|
function sendToGA(category, action, label) {
|
|
1112
|
+
if (window.sbz_no_gtag) {
|
|
1113
|
+
console.log('SKIPSENT.', category, action, label);
|
|
1114
|
+
return;
|
|
1115
|
+
}
|
|
1116
|
+
let dataLayer = window.dataLayer || [];
|
|
1117
|
+
dataLayer.push({
|
|
1118
|
+
event: category,
|
|
1119
|
+
event_action: action,
|
|
1120
|
+
event_label: label
|
|
1121
|
+
});
|
|
1112
1122
|
if (window.gtag) window.gtag('event', category, {
|
|
1113
1123
|
Action: action,
|
|
1114
1124
|
Label: label
|
|
@@ -1131,12 +1141,6 @@ function sendEventToThirdParty(category, action, label) {
|
|
|
1131
1141
|
}));
|
|
1132
1142
|
sendToGA(category, action, label);
|
|
1133
1143
|
sendToFBPixel(category, action, label);
|
|
1134
|
-
let dataLayer = window.dataLayer || [];
|
|
1135
|
-
dataLayer.push({
|
|
1136
|
-
event: category,
|
|
1137
|
-
event_action: action,
|
|
1138
|
-
event_label: label
|
|
1139
|
-
});
|
|
1140
1144
|
}
|
|
1141
1145
|
let cleanLocalStorage = () => {
|
|
1142
1146
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subiz/widget-v4",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.109",
|
|
4
4
|
"main": "./compiled_src/lib.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "npx webpack serve --config webpack.dev.js",
|
|
@@ -14,24 +14,24 @@
|
|
|
14
14
|
"@subiz/storage": "0.0.8",
|
|
15
15
|
"@subiz/wsclient": "^4.0.27",
|
|
16
16
|
"cookie_js": "1.4.2",
|
|
17
|
-
"core-js": "^3.
|
|
17
|
+
"core-js": "^3.39.0",
|
|
18
18
|
"css-loader": "5.2.7",
|
|
19
19
|
"file-loader": "^6.2.0",
|
|
20
|
-
"less": "^4.2.
|
|
20
|
+
"less": "^4.2.1",
|
|
21
21
|
"less-loader": "^12.2.0",
|
|
22
22
|
"preact": "10.19.3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/cli": "^7.
|
|
26
|
-
"@babel/core": "^7.
|
|
25
|
+
"@babel/cli": "^7.26.4",
|
|
26
|
+
"@babel/core": "^7.26.0",
|
|
27
27
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
28
|
-
"@babel/plugin-transform-react-jsx": "^7.25.
|
|
29
|
-
"@babel/preset-env": "^7.
|
|
28
|
+
"@babel/plugin-transform-react-jsx": "^7.25.9",
|
|
29
|
+
"@babel/preset-env": "^7.26.0",
|
|
30
30
|
"babel-loader": "^9.2.1",
|
|
31
31
|
"babel-plugin-syntax-jsx": "^6.18.0",
|
|
32
|
-
"html-webpack-plugin": "^5.6.
|
|
33
|
-
"puppeteer": "^23.
|
|
34
|
-
"webpack": "^5.
|
|
32
|
+
"html-webpack-plugin": "^5.6.3",
|
|
33
|
+
"puppeteer": "^23.10.2",
|
|
34
|
+
"webpack": "^5.97.1",
|
|
35
35
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
36
36
|
"webpack-cli": "^5.1.4",
|
|
37
37
|
"webpack-dev-server": "^5.1.0"
|
|
@@ -55,13 +55,13 @@ export default class TextMessage extends Com {
|
|
|
55
55
|
if (byType === 'agent') {
|
|
56
56
|
return (
|
|
57
57
|
<div class='message-agent message-text--agent'>
|
|
58
|
-
<Block block={block} />
|
|
58
|
+
<Block block={block} onLink={this.props.onLink} />
|
|
59
59
|
</div>
|
|
60
60
|
)
|
|
61
61
|
}
|
|
62
62
|
return (
|
|
63
63
|
<div class='message-user message-text--user'>
|
|
64
|
-
<Block block={block} />
|
|
64
|
+
<Block block={block} onLink={this.props.onLink} />
|
|
65
65
|
</div>
|
|
66
66
|
)
|
|
67
67
|
}
|
package/src/chatbox/Widget.js
CHANGED
|
@@ -1029,6 +1029,7 @@ export default class Widget extends Com {
|
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
1031
1031
|
hasSentMessage(cid) {
|
|
1032
|
+
if (this.userSent[cid]) return true
|
|
1032
1033
|
let convo = this.props.store.matchConvo(cid) || {}
|
|
1033
1034
|
let joined = sb.find(convo.members, (mem) => {
|
|
1034
1035
|
// sometime bot didnt update last_sent
|
package/src/chatbox/block.js
CHANGED
|
@@ -108,8 +108,35 @@ export default class Block extends Com {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
let $body = null
|
|
111
|
-
if (sb.size(block.content))
|
|
112
|
-
|
|
111
|
+
if (sb.size(block.content)) {
|
|
112
|
+
$body = sb.map(block.content, (block) => this.renderBlock(block))
|
|
113
|
+
} else if (block.type === 'text') {
|
|
114
|
+
let $tags = sb.extractText(ele.text).map((tag) => {
|
|
115
|
+
if (tag.type === 'link') {
|
|
116
|
+
let url = tag.text || ''
|
|
117
|
+
if (
|
|
118
|
+
!url.startsWith('//') &&
|
|
119
|
+
!url.startsWith('https://') &&
|
|
120
|
+
!url.startsWith('http://') &&
|
|
121
|
+
!url.startsWith('data:')
|
|
122
|
+
) {
|
|
123
|
+
url = '//' + url
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<a href={url} target='_blank' onClick={(e) => this.props.onLink(e, url)}>
|
|
128
|
+
{tag.text}
|
|
129
|
+
</a>
|
|
130
|
+
)
|
|
131
|
+
}
|
|
132
|
+
if (tag.type === 'phone') return <a href={'tel:' + tag.text}>{tag.text}</a>
|
|
133
|
+
if (tag.type === 'email') return <a href={'mailto:' + tag.text}>{tag.text}</a>
|
|
134
|
+
return tag.text
|
|
135
|
+
})
|
|
136
|
+
$body = $tags
|
|
137
|
+
} else {
|
|
138
|
+
$body = ele.text
|
|
139
|
+
}
|
|
113
140
|
switch (ele.tag) {
|
|
114
141
|
case 'div':
|
|
115
142
|
return <div>{$body}</div>
|
package/src/store/store.js
CHANGED
|
@@ -1306,7 +1306,13 @@ function sendToFBPixel(category, action, label) {
|
|
|
1306
1306
|
}
|
|
1307
1307
|
|
|
1308
1308
|
function sendToGA(category, action, label) {
|
|
1309
|
-
|
|
1309
|
+
if (window.sbz_no_gtag) {
|
|
1310
|
+
console.log('SKIPSENT.', category, action, label)
|
|
1311
|
+
return
|
|
1312
|
+
}
|
|
1313
|
+
let dataLayer = window.dataLayer || []
|
|
1314
|
+
dataLayer.push({event: category, event_action: action, event_label: label})
|
|
1315
|
+
|
|
1310
1316
|
if (window.gtag) window.gtag('event', category, {Action: action, Label: label})
|
|
1311
1317
|
if (window.ga && window.ga.getAll) {
|
|
1312
1318
|
// only send gtag when ga is not available
|
|
@@ -1322,8 +1328,6 @@ function sendEventToThirdParty(category, action, label) {
|
|
|
1322
1328
|
document.dispatchEvent(new CustomEvent('subiz', {detail: {category, action, label}}))
|
|
1323
1329
|
sendToGA(category, action, label)
|
|
1324
1330
|
sendToFBPixel(category, action, label)
|
|
1325
|
-
let dataLayer = window.dataLayer || []
|
|
1326
|
-
dataLayer.push({event: category, event_action: action, event_label: label})
|
|
1327
1331
|
}
|
|
1328
1332
|
|
|
1329
1333
|
let cleanLocalStorage = () => {
|