@subiz/widget-v4 4.1.191 → 4.1.196
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 +0 -1
- package/assets/less/message.less +71 -4
- package/compiled_src/chatbox/Event.js +37 -6
- package/compiled_src/chatbox/Events.js +20 -0
- package/compiled_src/chatbox/FileAttachments.js +36 -4
- package/compiled_src/chatbox/ImageAttachments.js +31 -4
- package/compiled_src/chatbox/QuoteMessage.js +99 -0
- package/compiled_src/chatbox/Rating.js +4 -0
- package/compiled_src/chatbox/TextMessage.js +49 -4
- package/compiled_src/chatbox/Widget.js +43 -1
- package/compiled_src/store/api.js +2 -0
- package/compiled_src/store/store.js +45 -3
- package/compiled_src/util/common.js +13 -1
- package/dist/127.js +273 -0
- package/dist/132.js +2802 -0
- package/dist/185.js +1827 -0
- package/dist/19b9941db90.127.js +1 -0
- package/dist/19b9941db90.132.js +1 -0
- package/dist/19b9941db90.185.js +1 -0
- package/dist/19b9941db90.27.js +1 -0
- package/dist/19b9941db90.278.js +1 -0
- package/dist/19b9941db90.339.js +1 -0
- package/dist/19b9941db90.459.js +1 -0
- package/dist/19b9941db90.490.js +1 -0
- package/dist/19b9941db90.74.js +1 -0
- package/dist/19b9941db90.997.js +1 -0
- package/dist/19b9941db90.app.js +1 -0
- package/dist/19b9941db90.chat.html +1 -0
- package/dist/19b9941db90.chat.js +1 -0
- package/dist/19b9941db90.form.html +1 -0
- package/dist/19b9941db90.form.js +1 -0
- package/dist/19b9941db90.index.html +72 -0
- package/dist/19b9941db90.library.html +72 -0
- package/dist/19b9941db90.library.js +1 -0
- package/dist/19b9941db90.preview.html +759 -0
- package/dist/19b9941db90.preview.js +1 -0
- package/dist/19b9941db90.webview.js +1 -0
- package/dist/27.js +35 -0
- package/dist/459.js +35 -0
- package/dist/490.js +305 -0
- package/dist/74.js +372 -0
- package/dist/997.js +35 -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.a27f0ac.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/stars_v2.79cf728.png +0 -0
- package/dist/assets/img/subiz-mono.8fbc067.svg +3 -0
- package/dist/assets/img/x.26fdfa3.svg +5 -0
- package/dist/malicious-app.js +17 -0
- package/dist/screenshoot.html +7 -0
- package/dist/screenshoot.js +13026 -0
- package/package.json +8 -8
- package/src/chatbox/Event.js +48 -7
- package/src/chatbox/Events.js +21 -1
- package/src/chatbox/FileAttachments.js +31 -4
- package/src/chatbox/ImageAttachments.js +26 -3
- package/src/chatbox/QuoteMessage.js +94 -0
- package/src/chatbox/Rating.js +5 -0
- package/src/chatbox/TextMessage.js +50 -2
- package/src/chatbox/Widget.js +52 -0
- package/src/store/api.js +3 -0
- package/src/store/store.js +51 -2
- package/src/util/common.js +19 -1
package/src/store/store.js
CHANGED
|
@@ -15,6 +15,8 @@ let memlocalStorage = require('./inmem_localstorage.js')
|
|
|
15
15
|
const MAX_CONVO = 20
|
|
16
16
|
const page_loaded = sb.Date.now()
|
|
17
17
|
|
|
18
|
+
const DEBUG_ACCOUNT_IDS = ['acqsulrowbxiugvginhw', 'acryguzgwxmamhzmqlyx'] // acc test and minvoice
|
|
19
|
+
|
|
18
20
|
// available localstorage key mask, user, hasManuallyClosed, isopen, close_preview_at, lastview, bot_run_logs, plugin_run_logs
|
|
19
21
|
export default class Store {
|
|
20
22
|
inmem = false
|
|
@@ -25,6 +27,7 @@ export default class Store {
|
|
|
25
27
|
this.CONNECTION_CHECK_INTERVAL = 3000
|
|
26
28
|
this.reconnectTimestamp = 0
|
|
27
29
|
this.g_sync = {}
|
|
30
|
+
this.agent_rt_message_sent_dict = {}
|
|
28
31
|
this._die = false
|
|
29
32
|
this.forceDevice = null
|
|
30
33
|
this.forcePlugins = {}
|
|
@@ -461,6 +464,18 @@ export default class Store {
|
|
|
461
464
|
return this._doFetchMsg(convoid)
|
|
462
465
|
}
|
|
463
466
|
|
|
467
|
+
reloadConvoEvents = async (convoid) => {
|
|
468
|
+
await this.chain.reload(convoid, () => {
|
|
469
|
+
return [[], '']
|
|
470
|
+
})
|
|
471
|
+
let {error} = await this.chain.fetchMore(convoid, 150, async (type, anchor, limit) => {
|
|
472
|
+
let [events, newanchor, error, outofmsg] = await this.listmessageapi(type, anchor, limit)
|
|
473
|
+
if (outofmsg) this.outofmsgM[convoid] = true
|
|
474
|
+
return [events, newanchor, error]
|
|
475
|
+
})
|
|
476
|
+
return {error}
|
|
477
|
+
}
|
|
478
|
+
|
|
464
479
|
_doFetchMsg = async (convoid) => {
|
|
465
480
|
let {error} = await this.chain.fetchMore(convoid, 150, async (type, anchor, limit) => {
|
|
466
481
|
if (this.outofmsgM[convoid]) return [[], '']
|
|
@@ -607,6 +622,7 @@ export default class Store {
|
|
|
607
622
|
|
|
608
623
|
async _initResource(accid, auth, realtimep) {
|
|
609
624
|
this.g_sync = {}
|
|
625
|
+
this._current_acc_id = accid
|
|
610
626
|
|
|
611
627
|
let user = await this.api.setAuth(auth)
|
|
612
628
|
if (typeof sbz_info != 'undefined') sbz_info.store_7 = true
|
|
@@ -621,7 +637,7 @@ export default class Store {
|
|
|
621
637
|
this.cache = new KV(new LSDB('sbz2023', true), 'kv')
|
|
622
638
|
if (this.realtime) this.realtime.stop()
|
|
623
639
|
if (this.fake) this.realtime = new RealtimeFake()
|
|
624
|
-
else this.realtime = new Realtime(this.RealtimeURL, realtimep, xhrsend)
|
|
640
|
+
else this.realtime = new Realtime(this.RealtimeURL, realtimep, xhrsend, accid)
|
|
625
641
|
|
|
626
642
|
this.realtime.onEvent(this.onWs.bind(this))
|
|
627
643
|
this.realtime.onInterrupted(async () => {
|
|
@@ -733,6 +749,7 @@ export default class Store {
|
|
|
733
749
|
`message_pong.account.${accid}.user.${userid}`,
|
|
734
750
|
`conversation_rating_requested.account.${accid}.user.${userid}`,
|
|
735
751
|
`conversation_rated.account.${accid}.user.${userid}`,
|
|
752
|
+
`conversation_events.account.${accid}.user.${userid}`,
|
|
736
753
|
])
|
|
737
754
|
await this.readyGate.entry()
|
|
738
755
|
}
|
|
@@ -910,7 +927,33 @@ export default class Store {
|
|
|
910
927
|
this.wsGate.open()
|
|
911
928
|
}
|
|
912
929
|
|
|
930
|
+
sendBugReport = (str) => this.api.sendBugReport(str)
|
|
931
|
+
|
|
932
|
+
matchDebugAccountIds = () => DEBUG_ACCOUNT_IDS
|
|
933
|
+
|
|
934
|
+
handleLogCompare(ev) {
|
|
935
|
+
if (!DEBUG_ACCOUNT_IDS.includes(this._current_acc_id)) return
|
|
936
|
+
if (ev.type !== 'message_sent') return
|
|
937
|
+
let byType = sb.get(ev, 'by.type')
|
|
938
|
+
if (byType === 'user') return
|
|
939
|
+
|
|
940
|
+
this.agent_rt_message_sent_dict[ev.id] = ev
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
sbzListConversations = () => {
|
|
944
|
+
return this.api.listConversations()
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
sbzListMessages = (cid) => {
|
|
948
|
+
return this.api.listMessages(cid, 100, '')
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
listAgentRealtimeMessageSent = () => {
|
|
952
|
+
return this.agent_rt_message_sent_dict
|
|
953
|
+
}
|
|
954
|
+
|
|
913
955
|
async _onWs(ev) {
|
|
956
|
+
this.handleLogCompare(ev)
|
|
914
957
|
if (this._die) return
|
|
915
958
|
if (!ev || !ev.type) return
|
|
916
959
|
ev.created = sb.getMs(ev.created)
|
|
@@ -923,6 +966,11 @@ export default class Store {
|
|
|
923
966
|
return
|
|
924
967
|
}
|
|
925
968
|
|
|
969
|
+
if (ev.type === 'message_deleted') {
|
|
970
|
+
this.pubsub.publish('message_updated', ev)
|
|
971
|
+
return
|
|
972
|
+
}
|
|
973
|
+
|
|
926
974
|
// convo events
|
|
927
975
|
let user = this.cache.match('user') || {}
|
|
928
976
|
let cid = sb.convoOfEv(ev)
|
|
@@ -940,7 +988,7 @@ export default class Store {
|
|
|
940
988
|
}
|
|
941
989
|
}
|
|
942
990
|
|
|
943
|
-
if (cid.startsWith('cslight')) {
|
|
991
|
+
if (cid && cid.startsWith('cslight')) {
|
|
944
992
|
convo = this.lightConvos[cid]
|
|
945
993
|
if (!convo) return
|
|
946
994
|
convo.events.push(ev)
|
|
@@ -1213,6 +1261,7 @@ export default class Store {
|
|
|
1213
1261
|
|
|
1214
1262
|
onConvoEvent = (o, cb) => this.pubsub.on2(o, 'events', cb)
|
|
1215
1263
|
onWidgetClose = (o, cb) => this.pubsub.on2(o, 'sbz_close_widget', cb)
|
|
1264
|
+
onMessageUpdated = (o, cb) => this.pubsub.on2(o, 'message_updated', cb)
|
|
1216
1265
|
|
|
1217
1266
|
seenConvo = (id) => {
|
|
1218
1267
|
if (!id || id === 'create') return
|
package/src/util/common.js
CHANGED
|
@@ -274,6 +274,7 @@ export function convoToEv(convoid, ev) {
|
|
|
274
274
|
switch (ev.type) {
|
|
275
275
|
case 'message_sent':
|
|
276
276
|
case 'message_updated':
|
|
277
|
+
case 'message_deleted':
|
|
277
278
|
case 'message_pong':
|
|
278
279
|
return op.set(ev, 'data.message.conversation_id', convoid)
|
|
279
280
|
case 'ticket_updated':
|
|
@@ -1596,5 +1597,22 @@ export function isEmptyBlock(block) {
|
|
|
1596
1597
|
|
|
1597
1598
|
export function isEmptyMessage(msg) {
|
|
1598
1599
|
if (!msg) return true
|
|
1599
|
-
if (!msg.text && isEmptyBlock(msg.block) &&
|
|
1600
|
+
if (!msg.text && isEmptyBlock(msg.block) && isEmptyAttachment(msg)) return true
|
|
1601
|
+
return false
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
function isEmptyAttachment(msg) {
|
|
1605
|
+
if (!msg) return true
|
|
1606
|
+
if (!size(msg.attachments)) return true
|
|
1607
|
+
return (
|
|
1608
|
+
size(
|
|
1609
|
+
filter(msg.attachments, (att) => {
|
|
1610
|
+
// true => has value
|
|
1611
|
+
if (att.type == 'quick_replies') {
|
|
1612
|
+
return size(filter(att.quick_replies, (r) => size(trim(r)) > 0)) > 0
|
|
1613
|
+
}
|
|
1614
|
+
return true
|
|
1615
|
+
}),
|
|
1616
|
+
) == 0
|
|
1617
|
+
)
|
|
1600
1618
|
}
|