@subiz/widget-v4 4.0.98 → 4.1.1
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/assets/less/chatbox.less +1 -1
- package/assets/less/notif.less +1 -1
- package/compiled_src/call/call.js +3 -3
- package/compiled_src/chatbox/AgentsAvatar.js +0 -3
- package/compiled_src/chatbox/ButtonAttachments.js +0 -1
- package/compiled_src/chatbox/ChatButton.js +0 -5
- package/compiled_src/chatbox/DropdownSelect.js +4 -5
- package/compiled_src/chatbox/Event.js +0 -2
- package/compiled_src/chatbox/Events.js +1 -9
- package/compiled_src/chatbox/FormAttachment.js +0 -1
- package/compiled_src/chatbox/GenericTemplateAttachments.js +0 -3
- package/compiled_src/chatbox/Header.js +5 -2
- package/compiled_src/chatbox/InfoMessage.js +0 -1
- package/compiled_src/chatbox/MessageInput.js +3 -3
- package/compiled_src/chatbox/Order.js +3 -1
- package/compiled_src/chatbox/OrderAttachments.js +0 -1
- package/compiled_src/chatbox/QuickReplies.js +0 -1
- package/compiled_src/chatbox/Rating.js +3 -1
- package/compiled_src/chatbox/ShadowDomRoot.js +1 -1
- package/compiled_src/chatbox/TextMessage.js +0 -2
- package/compiled_src/chatbox/Typing.js +0 -1
- package/compiled_src/chatbox/Widget.js +13 -34
- package/compiled_src/chatbox/main.js +0 -1
- package/compiled_src/chatbox/releaseAnimation.js +0 -1
- package/compiled_src/contact/contact.js +3 -7
- package/compiled_src/lib.js +9 -20
- package/compiled_src/notif/notif.js +3 -3
- package/compiled_src/order/address_picker.js +4 -6
- package/compiled_src/order/index.js +0 -2
- package/compiled_src/order/order.js +4 -7
- package/compiled_src/plugin.js +0 -9
- package/compiled_src/popup/countdown.js +3 -5
- package/compiled_src/popup/popup.js +3 -8
- package/compiled_src/popup/tick.core.commonjs.js +16 -158
- package/compiled_src/popup/tick.view.flip.commonjs.js +0 -25
- package/compiled_src/store/api.js +3 -9
- package/compiled_src/store/api_fake.js +3 -3
- package/compiled_src/store/store.js +25 -56
- package/compiled_src/util/campaign.js +0 -5
- package/compiled_src/util/common.js +0 -27
- package/compiled_src/util/extractor.js +0 -1
- package/compiled_src/util/gate.test.js +0 -1
- package/compiled_src/util/index.js +0 -1
- package/compiled_src/util/op.js +0 -1
- package/compiled_src/util/order.js +0 -4
- package/dist/132.js +6582 -0
- package/dist/178.js +406 -0
- package/dist/184d8eee275.132.js +1 -0
- package/dist/184d8eee275.178.js +1 -0
- package/dist/184d8eee275.213.js +1 -0
- package/dist/184d8eee275.335.js +1 -0
- package/dist/184d8eee275.362.js +1 -0
- package/dist/184d8eee275.441.js +1 -0
- package/dist/184d8eee275.605.js +1 -0
- package/dist/184d8eee275.678.js +1 -0
- package/dist/184d8eee275.782.js +1 -0
- package/dist/184d8eee275.app.js +1 -0
- package/dist/184d8eee275.index.html +26 -0
- package/dist/184d8eee275.library.html +26 -0
- package/dist/184d8eee275.library.js +1 -0
- package/dist/184d8eee275.preview.html +759 -0
- package/dist/184d8eee275.preview.js +1 -0
- package/dist/184d8eee275.screenshoot.js +1 -0
- package/dist/213.js +2774 -0
- package/dist/335.js +372 -0
- package/dist/362.js +107 -0
- package/dist/441.js +2840 -0
- package/dist/605.js +297 -0
- package/dist/678.js +107 -0
- package/dist/782.js +107 -0
- package/dist/HASH +1 -0
- 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 +20 -0
- package/dist/assets/img/caret.998eb8f.svg +1 -0
- package/dist/assets/img/convos_empty.2353007.svg +72 -0
- 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 +4 -0
- package/dist/assets/img/done_green.b817fd4.svg +4 -0
- 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 +23 -0
- package/dist/assets/img/empty_1.0b98af0.svg +11 -0
- package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
- package/dist/assets/img/external-link.90577cc.svg +1 -0
- package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
- package/dist/assets/img/ghn.070f8e3.svg +17 -0
- package/dist/assets/img/ghtk.326eac1.svg +18 -0
- package/dist/assets/img/image_default.be0698b.png +0 -0
- package/dist/assets/img/info.ebce7ea.svg +1 -0
- package/dist/assets/img/loader.37000a7.svg +1 -0
- package/dist/assets/img/loading_static.8f403ae.svg +10 -0
- 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 +5 -0
- package/dist/assets/img/package_fade.763c001.svg +1 -0
- package/dist/assets/img/rating--average.1ea492c.svg +12 -0
- package/dist/assets/img/rating--great.e3d712e.svg +16 -0
- package/dist/assets/img/rating--poor.2938a25.svg +12 -0
- package/dist/assets/img/search.f9705ff.svg +1 -0
- package/dist/assets/img/send.6db52a9.svg +3 -0
- package/dist/assets/img/shop.f7dc7d8.svg +1 -0
- package/dist/assets/img/shop_faded.df7845a.svg +1 -0
- package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
- package/dist/assets/img/x.26fdfa3.svg +5 -0
- package/dist/malicious-app.js +13 -0
- package/dist/screenshoot.html +7 -0
- package/dist/screenshoot.js +5573 -0
- package/package.json +5 -5
- package/src/chatbox/Header.js +9 -3
- package/src/chatbox/ShadowDomRoot.js +1 -1
- package/src/chatbox/Widget.js +6 -10
- package/src/lib.js +7 -17
- package/src/store/store.js +20 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subiz/widget-v4",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"main": "./compiled_src/lib.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "npx webpack serve --config webpack.dev.js",
|
|
@@ -19,22 +19,22 @@
|
|
|
19
19
|
"file-loader": "^6.2.0",
|
|
20
20
|
"less": "^4.1.3",
|
|
21
21
|
"less-loader": "^11.1.0",
|
|
22
|
-
"marked": "^4.2.
|
|
22
|
+
"marked": "^4.2.4",
|
|
23
23
|
"preact": "^10.11.3"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@babel/cli": "^7.19.3",
|
|
27
|
-
"@babel/core": "^7.20.
|
|
27
|
+
"@babel/core": "^7.20.5",
|
|
28
28
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
29
29
|
"@babel/plugin-transform-react-jsx": "^7.19.0",
|
|
30
30
|
"@babel/preset-env": "^7.20.2",
|
|
31
31
|
"babel-loader": "^9.1.0",
|
|
32
32
|
"babel-plugin-syntax-jsx": "^6.18.0",
|
|
33
33
|
"html-webpack-plugin": "^5.5.0",
|
|
34
|
-
"puppeteer": "^19.
|
|
34
|
+
"puppeteer": "^19.4.0",
|
|
35
35
|
"webpack": "^5.75.0",
|
|
36
36
|
"webpack-bundle-analyzer": "^4.7.0",
|
|
37
|
-
"webpack-cli": "^5.0.
|
|
37
|
+
"webpack-cli": "^5.0.1",
|
|
38
38
|
"webpack-dev-server": "^4.11.1"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/src/chatbox/Header.js
CHANGED
|
@@ -187,7 +187,8 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
|
|
|
187
187
|
return (
|
|
188
188
|
<div
|
|
189
189
|
class={`widget-header--wrap-button-back ${unreadcount ? 'widget-header--has-convo-unred' : ''}`}
|
|
190
|
-
onClick={(e) => this.onBackClick(e)}
|
|
190
|
+
onClick={(e) => this.onBackClick(e)}
|
|
191
|
+
>
|
|
191
192
|
<div class='widget-header--button-back' data-tooltip={this.props.t('menu_back')}></div>
|
|
192
193
|
{$unreadcount}
|
|
193
194
|
</div>
|
|
@@ -202,7 +203,8 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
|
|
|
202
203
|
class='widget-header--button widget-header--button-close'
|
|
203
204
|
data-tooltip={this.props.t('close')}
|
|
204
205
|
data-tooltip-position='bottom'
|
|
205
|
-
onClick={(e) => this.onCloseClick(e)}
|
|
206
|
+
onClick={(e) => this.onCloseClick(e)}
|
|
207
|
+
>
|
|
206
208
|
<span class='widget-header--button-close-icon'></span>
|
|
207
209
|
</div>
|
|
208
210
|
)
|
|
@@ -227,4 +229,8 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
|
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
231
|
|
|
230
|
-
let getJoinedNameMember = (agents) =>
|
|
232
|
+
let getJoinedNameMember = (agents) => {
|
|
233
|
+
agents = sb.filter(agents, (agent) => sb.trim(agent.fullname))
|
|
234
|
+
if (!agents.length) return null
|
|
235
|
+
return sb.map(agents, (agent) => agent.fullname).join(', ')
|
|
236
|
+
}
|
|
@@ -14,7 +14,7 @@ export default class ShadowDomRoot extends Com {
|
|
|
14
14
|
|
|
15
15
|
update (html) {
|
|
16
16
|
this.shadowRoot.innerHTML = `<style type="text/css">
|
|
17
|
-
body { font-family: '
|
|
17
|
+
body { font-family: 'Inter', sans-serif!important; font-size: 14px!important; line-height: 20px; overflow-y: hidden; margin:0 }
|
|
18
18
|
h{ font-size: 14/18px!important; }
|
|
19
19
|
a { text-decoration: none;}
|
|
20
20
|
img { max-width: 100%; display: block; margin: 10px auto; }
|
package/src/chatbox/Widget.js
CHANGED
|
@@ -875,18 +875,13 @@ export default class Widget extends Com {
|
|
|
875
875
|
|
|
876
876
|
var $you = null
|
|
877
877
|
if (convo.lastSenderType === 'user') {
|
|
878
|
-
$you = <span
|
|
878
|
+
$you = <span>{this.props.t('you')}:</span>
|
|
879
879
|
}
|
|
880
880
|
|
|
881
881
|
let seen = sb.isConvoSeen(convo, this.props.store.matchUser().id)
|
|
882
|
-
var lastmsg = this.renderMessagePreview(convo.last_message_sent
|
|
883
|
-
|
|
884
|
-
var time =
|
|
885
|
-
sb.getMs(sb.get(convo, 'last_message_sent.created')) ||
|
|
886
|
-
sb.getMs(sb.get(convo, 'last_sent.created')) ||
|
|
887
|
-
sb.getMs(convo.created)
|
|
888
|
-
var $tim = <Time ago time={time} key={time} short />
|
|
882
|
+
var lastmsg = this.renderMessagePreview(convo.last_message_sent)
|
|
889
883
|
|
|
884
|
+
var time = sb.getMs(sb.get(convo, 'last_message_sent.created')) || sb.getMs(convo.created)
|
|
890
885
|
let $unread = seen ? null : <div class='convo-list--item-unread'></div>
|
|
891
886
|
if (convo.state === 'ended') {
|
|
892
887
|
$unread = (
|
|
@@ -903,7 +898,9 @@ export default class Widget extends Com {
|
|
|
903
898
|
<div class='convo-list--convo-last-info'>
|
|
904
899
|
<div class='d-flex flex-row'>
|
|
905
900
|
<div class='convo-list--convo-name'>{name}</div>
|
|
906
|
-
<div class='convo-list--convo-time'>
|
|
901
|
+
<div class='convo-list--convo-time'>
|
|
902
|
+
<Time ago time={time} key={time} short />
|
|
903
|
+
</div>
|
|
907
904
|
</div>
|
|
908
905
|
|
|
909
906
|
<div class='d-flex flex-row'>
|
|
@@ -925,7 +922,6 @@ export default class Widget extends Com {
|
|
|
925
922
|
|
|
926
923
|
renderMessagePreview(ev) {
|
|
927
924
|
let defmsg = this.props.t('sent_you_a_message')
|
|
928
|
-
|
|
929
925
|
let message = sb.get(ev, 'data.message.text')
|
|
930
926
|
var format = sb.get(ev, 'data.message.format')
|
|
931
927
|
|
package/src/lib.js
CHANGED
|
@@ -3,11 +3,11 @@ import sb from './util/index.js'
|
|
|
3
3
|
import PluginMgr from './plugin.js'
|
|
4
4
|
|
|
5
5
|
var $link = document.createElement('link')
|
|
6
|
-
$link.href = 'https://fonts.googleapis.com/css2?family=
|
|
6
|
+
$link.href = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap'
|
|
7
7
|
$link.rel = 'stylesheet'
|
|
8
8
|
document.head.append($link)
|
|
9
9
|
|
|
10
|
-
sb.preloadWebfonts(['
|
|
10
|
+
sb.preloadWebfonts(['Inter'], [400, 500, 600])
|
|
11
11
|
|
|
12
12
|
class Widget {
|
|
13
13
|
constructor(ApiURL, FileURL, RealtimeURL, inmem, fake) {
|
|
@@ -20,18 +20,6 @@ class Widget {
|
|
|
20
20
|
this.store.onConvoEvent({_isMounted: true}, (ev) => sb.map(this.subs, (sub) => sub(ev)))
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
setLang(obj) {
|
|
24
|
-
var xhttp = new XMLHttpRequest()
|
|
25
|
-
xhttp.open('GET', 'https://api.sbz.vn/4.0/oldlang', true)
|
|
26
|
-
xhttp.send()
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
toggleLangDebugMode() {
|
|
30
|
-
var xhttp = new XMLHttpRequest()
|
|
31
|
-
xhttp.open('GET', 'https://api.sbz.vn/4.0/oldlangdebug', true)
|
|
32
|
-
xhttp.send()
|
|
33
|
-
}
|
|
34
|
-
|
|
35
23
|
async waitReady(cb) {
|
|
36
24
|
await this.store.readyGate.entry()
|
|
37
25
|
cb()
|
|
@@ -146,10 +134,7 @@ class Widget {
|
|
|
146
134
|
version = () => '4.5'
|
|
147
135
|
|
|
148
136
|
setSetting = (setting) => this.store.setSetting({account_setting: setting})
|
|
149
|
-
getSetting = (_) => ({account_setting: sb.cloneDeep(this.store.matchAccountSetting())})
|
|
150
|
-
|
|
151
137
|
getUser = () => sb.parseJSON(sb.stringify(this.store.matchUser()))
|
|
152
|
-
|
|
153
138
|
setViewingProduct = (p) => this.store.linkProduct(p)
|
|
154
139
|
getViewingProduct = () => this.store.getLinkedProduct()
|
|
155
140
|
|
|
@@ -160,6 +145,11 @@ class Widget {
|
|
|
160
145
|
return this.pluginMgr.setCurrentChatboxLocale(locale)
|
|
161
146
|
}
|
|
162
147
|
|
|
148
|
+
async setLanguage(locale) {
|
|
149
|
+
await this.domGate.entry()
|
|
150
|
+
return this.pluginMgr.setCurrentChatboxLocale(locale)
|
|
151
|
+
}
|
|
152
|
+
|
|
163
153
|
async setPluginLocale(id, locale) {
|
|
164
154
|
await this.domGate.entry()
|
|
165
155
|
return this.pluginMgr.setPluginLocale(id, locale)
|
package/src/store/store.js
CHANGED
|
@@ -310,6 +310,7 @@ export default class Store {
|
|
|
310
310
|
readyGate = new sb.Gate()
|
|
311
311
|
convoGate = new sb.Gate(true)
|
|
312
312
|
reconnectGate = new sb.Gate(true)
|
|
313
|
+
wsGate = new sb.Gate(true)
|
|
313
314
|
|
|
314
315
|
// last widget screen
|
|
315
316
|
matchLastview = () => this.kv.match('lastview') || {}
|
|
@@ -646,6 +647,13 @@ export default class Store {
|
|
|
646
647
|
matchTrafficSource = () => this.kv.match('traffic_source')
|
|
647
648
|
|
|
648
649
|
async onWs(ev) {
|
|
650
|
+
await this.wsGate.entry()
|
|
651
|
+
this.wsGate.close()
|
|
652
|
+
await this._onWs(ev)
|
|
653
|
+
this.wsGate.open()
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
async _onWs(ev) {
|
|
649
657
|
if (!ev || !ev.type) return
|
|
650
658
|
ev.created = sb.getMs(ev.created)
|
|
651
659
|
if (ev.type === 'user_info_updated') {
|
|
@@ -660,12 +668,16 @@ export default class Store {
|
|
|
660
668
|
let user = this.kv.match('user') || {}
|
|
661
669
|
let cid = sb.convoOfEv(ev)
|
|
662
670
|
let convo
|
|
671
|
+
|
|
672
|
+
let alreadyFetched = false
|
|
663
673
|
if (cid) {
|
|
664
|
-
convo = this.
|
|
674
|
+
convo = this.cache.match('convo_' + cid)
|
|
665
675
|
if (!convo || !convo.id) {
|
|
666
676
|
let {body: apiconvo, error} = await this.api.getConversation(cid)
|
|
667
677
|
if (!apiconvo) return
|
|
668
678
|
convo = apiconvo
|
|
679
|
+
alreadyFetched = true
|
|
680
|
+
this._setConvo(convo)
|
|
669
681
|
}
|
|
670
682
|
}
|
|
671
683
|
|
|
@@ -685,14 +697,14 @@ export default class Store {
|
|
|
685
697
|
if (me) {
|
|
686
698
|
await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit))
|
|
687
699
|
this.markSync('events' + cid)
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
700
|
+
if (!alreadyFetched) {
|
|
701
|
+
let {body: apiconvo} = await this.api.getConversation(cid)
|
|
702
|
+
if (apiconvo) {
|
|
703
|
+
convo = apiconvo
|
|
704
|
+
this._setConvo(convo)
|
|
705
|
+
}
|
|
706
|
+
this.pubsub.publish('account')
|
|
693
707
|
}
|
|
694
|
-
|
|
695
|
-
this.pubsub.publish('account')
|
|
696
708
|
}
|
|
697
709
|
}
|
|
698
710
|
|