@subiz/widget-v4 4.0.92 → 4.0.94
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 +8 -0
- package/assets/less/message.less +8 -3
- package/assets/less/order.less +10 -0
- package/compiled_src/bot.js +0 -11
- package/compiled_src/call/call.js +0 -61
- package/compiled_src/call/css.js +0 -2
- package/compiled_src/chatbox/AgentsAvatar.js +0 -16
- package/compiled_src/chatbox/AudioAttachments.js +0 -14
- package/compiled_src/chatbox/ButtonAttachments.js +1 -14
- package/compiled_src/chatbox/Buttons.js +0 -13
- package/compiled_src/chatbox/ChatButton.js +1 -78
- package/compiled_src/chatbox/DropdownSelect.js +3 -44
- package/compiled_src/chatbox/Emoji.js +0 -7
- package/compiled_src/chatbox/Event.js +0 -59
- package/compiled_src/chatbox/Events.js +4 -44
- package/compiled_src/chatbox/FileAttachments.js +0 -14
- package/compiled_src/chatbox/FormAttachment.js +1 -52
- package/compiled_src/chatbox/FormAttachments.js +0 -14
- package/compiled_src/chatbox/FormSubmitAttachments.js +0 -11
- package/compiled_src/chatbox/GenericTemplateAttachments.js +1 -20
- package/compiled_src/chatbox/Header.js +1 -46
- package/compiled_src/chatbox/ImageAttachments.js +0 -16
- package/compiled_src/chatbox/InfoMessage.js +0 -13
- package/compiled_src/chatbox/ListField.js +0 -16
- package/compiled_src/chatbox/MessageInput.js +1 -47
- package/compiled_src/chatbox/Order.js +0 -35
- package/compiled_src/chatbox/OrderAttachments.js +98 -39
- package/compiled_src/chatbox/PoweredBy.js +0 -7
- package/compiled_src/chatbox/ProductAttachments.js +0 -19
- package/compiled_src/chatbox/QuickReplies.js +0 -18
- package/compiled_src/chatbox/Rating.js +0 -37
- package/compiled_src/chatbox/ShadowDomRoot.js +0 -9
- package/compiled_src/chatbox/TextMessage.js +0 -64
- package/compiled_src/chatbox/Typing.js +0 -15
- package/compiled_src/chatbox/VideoAttachments.js +0 -14
- package/compiled_src/chatbox/Widget.js +6 -167
- package/compiled_src/chatbox/css.js +0 -2
- package/compiled_src/chatbox/dragscroll.js +1 -5
- package/compiled_src/chatbox/main.js +1 -40
- package/compiled_src/chatbox/releaseAnimation.js +0 -11
- package/compiled_src/chatbox/spinner.js +0 -10
- package/compiled_src/chatbox/time.js +0 -22
- package/compiled_src/chatbox/touchscroll.js +0 -7
- package/compiled_src/common.js +0 -22
- package/compiled_src/contact/contact.js +2 -52
- package/compiled_src/contact/css.js +0 -2
- package/compiled_src/lib.js +19 -46
- package/compiled_src/notif/css.js +0 -2
- package/compiled_src/notif/notif.js +0 -63
- package/compiled_src/order/address_picker.js +4 -38
- package/compiled_src/order/icon.js +0 -16
- package/compiled_src/order/index.js +1 -34
- package/compiled_src/order/order.js +2 -156
- package/compiled_src/plugin.js +1 -77
- package/compiled_src/popup/countdown.js +2 -33
- package/compiled_src/popup/css.js +0 -2
- package/compiled_src/popup/popup.js +2 -165
- package/compiled_src/popup/tick.core.commonjs.js +72 -222
- package/compiled_src/popup/tick.view.flip.commonjs.js +23 -31
- package/compiled_src/store/api.js +99 -65
- package/compiled_src/store/api_fake.js +3 -39
- package/compiled_src/store/realtime_fake.js +0 -6
- package/compiled_src/store/store.js +46 -249
- package/compiled_src/util/campaign.js +0 -13
- package/compiled_src/util/common.js +15 -185
- package/compiled_src/util/common.test.js +0 -4
- package/compiled_src/util/extractor.js +1 -21
- package/compiled_src/util/extractor.test.js +0 -3
- package/compiled_src/util/gate.js +0 -7
- package/compiled_src/util/gate.test.js +1 -2
- package/compiled_src/util/index.js +3 -7
- package/compiled_src/util/mutex.js +31 -0
- package/compiled_src/util/op.js +1 -14
- package/compiled_src/util/order.js +118 -0
- package/compiled_src/util/pubsub.js +0 -6
- package/compiled_src/util/pubsub.test.js +0 -2
- package/package.json +12 -13
- package/src/chatbox/OrderAttachments.js +111 -18
- package/src/lib.js +24 -2
- package/src/store/api.js +110 -21
- package/src/store/api_fake.js +5 -6
- package/src/store/store.js +47 -17
- package/src/util/index.js +4 -0
- package/src/util/mutex.js +27 -0
- package/src/util/order.js +120 -0
- package/dist/132.js +0 -7092
- package/dist/178.js +0 -406
- package/dist/18364d15f37.132.js +0 -1
- package/dist/18364d15f37.178.js +0 -1
- package/dist/18364d15f37.213.js +0 -1
- package/dist/18364d15f37.335.js +0 -1
- package/dist/18364d15f37.362.js +0 -1
- package/dist/18364d15f37.441.js +0 -1
- package/dist/18364d15f37.605.js +0 -1
- package/dist/18364d15f37.678.js +0 -1
- package/dist/18364d15f37.782.js +0 -1
- package/dist/18364d15f37.app.js +0 -1
- package/dist/18364d15f37.index.html +0 -26
- package/dist/18364d15f37.library.html +0 -26
- package/dist/18364d15f37.library.js +0 -1
- package/dist/18364d15f37.preview.html +0 -759
- package/dist/18364d15f37.preview.js +0 -1
- package/dist/18364d15f37.screenshoot.js +0 -1
- package/dist/213.js +0 -3215
- package/dist/335.js +0 -411
- package/dist/362.js +0 -107
- package/dist/441.js +0 -2834
- package/dist/605.js +0 -328
- 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.8f403ae.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 -5953
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _Emoji = _interopRequireDefault(require("./Emoji.js"));
|
|
11
|
-
|
|
12
9
|
var _common = require("../common.js");
|
|
13
|
-
|
|
14
10
|
var _preact = require("preact");
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
var defaultBubble = require('../../assets/img/bubble_default.svg');
|
|
19
|
-
|
|
20
13
|
let defaultAvatar = require('../../assets/img/default_avatar.png');
|
|
21
|
-
|
|
22
14
|
class ChatButton extends _common.Com {
|
|
23
15
|
constructor(props) {
|
|
24
16
|
super(props);
|
|
@@ -31,20 +23,15 @@ class ChatButton extends _common.Com {
|
|
|
31
23
|
this.props.store.onUpdate(this, _ => this.forceUpdate());
|
|
32
24
|
this.props.store.onConvoEvent(this, ev => {
|
|
33
25
|
if (_index.default.get(ev, 'type') !== 'message_sent') return;
|
|
34
|
-
|
|
35
26
|
let bytype = _index.default.get(ev, 'by.type');
|
|
36
|
-
|
|
37
27
|
if (bytype !== 'system' && bytype !== 'agent') return;
|
|
38
28
|
let isquickreplies = false;
|
|
39
|
-
|
|
40
29
|
_index.default.map(_index.default.get(ev, 'data.message.attachments', []), att => {
|
|
41
30
|
if (!att) return;
|
|
42
|
-
|
|
43
31
|
if (att.type === 'quick_replies') {
|
|
44
32
|
isquickreplies = true;
|
|
45
33
|
}
|
|
46
34
|
});
|
|
47
|
-
|
|
48
35
|
if (isquickreplies) return;
|
|
49
36
|
this.setState({
|
|
50
37
|
displayPreview: true,
|
|
@@ -52,52 +39,38 @@ class ChatButton extends _common.Com {
|
|
|
52
39
|
});
|
|
53
40
|
});
|
|
54
41
|
}
|
|
55
|
-
|
|
56
42
|
fixMissingSetting(chatbox) {
|
|
57
43
|
chatbox = _index.default.cloneDeep(chatbox);
|
|
58
|
-
|
|
59
44
|
if (_index.default.get(chatbox, 'desktop_button.background_image_url')) {
|
|
60
45
|
chatbox.desktop_button.background_image_url = this.props.store.replaceFileUrl(chatbox.desktop_button.background_image_url);
|
|
61
46
|
}
|
|
62
|
-
|
|
63
47
|
if (_index.default.get(chatbox, 'desktop_button.background_mask_url')) {
|
|
64
48
|
chatbox.desktop_button.background_mask_url = this.props.store.replaceFileUrl(chatbox.desktop_button.background_mask_url);
|
|
65
49
|
}
|
|
66
|
-
|
|
67
50
|
if (_index.default.get(chatbox, 'mobile_button.background_image_url')) {
|
|
68
51
|
chatbox.mobile_button.background_image_url = this.props.store.replaceFileUrl(chatbox.mobile_button.background_image_url);
|
|
69
52
|
}
|
|
70
|
-
|
|
71
53
|
if (_index.default.get(chatbox, 'mobile_button.background_mask_url')) {
|
|
72
54
|
chatbox.mobile_button.background_mask_url = this.props.store.replaceFileUrl(chatbox.mobile_button.background_mask_url);
|
|
73
55
|
}
|
|
74
|
-
|
|
75
56
|
return chatbox;
|
|
76
57
|
}
|
|
77
|
-
|
|
78
58
|
render() {
|
|
79
59
|
let accountSetting = this.props.plugin.chatbox;
|
|
80
60
|
let position = _index.default.get(accountSetting, 'desktop_button.position') || 'right';
|
|
81
|
-
|
|
82
61
|
if (this.props.store.isMobile()) {
|
|
83
62
|
position = _index.default.get(accountSetting, 'mobile_button.position') || position;
|
|
84
|
-
|
|
85
63
|
let hiddenButtonMobile = _index.default.get(accountSetting, 'mobile_button.hidden');
|
|
86
|
-
|
|
87
64
|
if (hiddenButtonMobile) return null;
|
|
88
65
|
}
|
|
89
|
-
|
|
90
66
|
let hiddenButtonDesktop = _index.default.get(accountSetting, 'desktop_button.hidden');
|
|
91
|
-
|
|
92
67
|
if (hiddenButtonDesktop) return null;
|
|
93
68
|
let cls = 'widget-layout widget-layout--' + position;
|
|
94
69
|
let opacity = this.state.opacity;
|
|
95
|
-
|
|
96
70
|
if (!this.props.isShow) {
|
|
97
71
|
cls += ' widget-layout--hidden';
|
|
98
72
|
opacity = 0;
|
|
99
73
|
}
|
|
100
|
-
|
|
101
74
|
return (0, _preact.h)("div", {
|
|
102
75
|
class: cls,
|
|
103
76
|
style: 'opacity: ' + opacity + ' !important'
|
|
@@ -112,7 +85,6 @@ class ChatButton extends _common.Com {
|
|
|
112
85
|
|
|
113
86
|
ShowGreeting() {
|
|
114
87
|
let greeting = _index.default.get(this.props.plugin, 'chatbox.greeting', {});
|
|
115
|
-
|
|
116
88
|
let agentM = this.props.store.matchAgent('*');
|
|
117
89
|
let byid = greeting.agent_id;
|
|
118
90
|
if (!byid) byid = randomAgent(agentM).id;
|
|
@@ -133,34 +105,26 @@ class ChatButton extends _common.Com {
|
|
|
133
105
|
displayPreview: true
|
|
134
106
|
});
|
|
135
107
|
}
|
|
136
|
-
|
|
137
108
|
HideGreeting() {
|
|
138
109
|
this.setState({
|
|
139
110
|
previewEvent: {}
|
|
140
111
|
});
|
|
141
112
|
}
|
|
142
|
-
|
|
143
113
|
loadGreeting() {
|
|
144
114
|
let accountSetting = this.props.plugin.chatbox;
|
|
145
115
|
if (new _index.default.Date().getTime() - this.props.store.matchClosePreviewAt() < Ms30Mins) return;
|
|
146
|
-
|
|
147
116
|
let greeting = _index.default.get(accountSetting, 'greeting', {});
|
|
148
|
-
|
|
149
117
|
let text = this.props.t.i18n(_index.default.get(greeting, 'greeting', {})) || greeting.message;
|
|
150
|
-
|
|
151
118
|
if (!text || !greeting.enabled) {
|
|
152
119
|
this.setState({
|
|
153
120
|
previewEvent: {}
|
|
154
121
|
});
|
|
155
122
|
return;
|
|
156
123
|
}
|
|
157
|
-
|
|
158
124
|
this.ShowGreeting();
|
|
159
125
|
}
|
|
160
|
-
|
|
161
126
|
onClick() {
|
|
162
127
|
let lastview = this.props.store.matchLastview();
|
|
163
|
-
|
|
164
128
|
if (_index.default.get(lastview, 'view')) {
|
|
165
129
|
if (lastview.view !== 'list' || _index.default.size(this.props.store.matchConvo('*')) > 0) {
|
|
166
130
|
return this.props.onClick && this.props.onClick(Object.assign({}, lastview.opts, {
|
|
@@ -171,26 +135,20 @@ class ChatButton extends _common.Com {
|
|
|
171
135
|
|
|
172
136
|
return this.onPreviewClick();
|
|
173
137
|
}
|
|
174
|
-
|
|
175
138
|
onPreviewClick(e) {
|
|
176
139
|
let cid = _index.default.convoOfEv(this.state.previewEvent);
|
|
177
|
-
|
|
178
140
|
if (!cid) {
|
|
179
141
|
let convos = _index.default.map(this.props.store.matchConvo('*'));
|
|
180
|
-
|
|
181
142
|
let convo = _index.default.find(convos, convo => !_index.default.isConvoSeen(convo, this.props.store.matchUser().id));
|
|
182
|
-
|
|
183
143
|
if (!convo) convo = convos[0] || {};
|
|
184
144
|
cid = convo.id;
|
|
185
145
|
}
|
|
186
|
-
|
|
187
146
|
this.closePreview(e);
|
|
188
147
|
this.props.onClick && this.props.onClick({
|
|
189
148
|
view: 'chat',
|
|
190
149
|
cid
|
|
191
150
|
});
|
|
192
151
|
}
|
|
193
|
-
|
|
194
152
|
renderUnread() {
|
|
195
153
|
let unreadcount = this.props.store.matchUnread();
|
|
196
154
|
if (unreadcount === 0) return null;
|
|
@@ -198,29 +156,23 @@ class ChatButton extends _common.Com {
|
|
|
198
156
|
class: "chat-button--unread"
|
|
199
157
|
}, unreadcount);
|
|
200
158
|
}
|
|
201
|
-
|
|
202
159
|
renderPreview() {
|
|
203
160
|
let account = this.props.store.matchAccount();
|
|
204
161
|
let accountSetting = this.props.plugin.chatbox;
|
|
205
|
-
|
|
206
162
|
let byid = _index.default.get(this.state.previewEvent, 'by.display_id', _index.default.get(this.state.previewEvent, 'by.id'));
|
|
207
|
-
|
|
208
163
|
let agent = _index.default.cloneDeep(this.props.store.matchAgent(byid)) || {};
|
|
209
164
|
agent.fullname = agent.fullname || _index.default.get(account, 'name') || this.props.t('agent');
|
|
210
165
|
agent.avatar_url = agent.avatar_url || defaultAvatar;
|
|
211
166
|
let position = _index.default.get(accountSetting, 'desktop_button.position') || 'right';
|
|
212
|
-
|
|
213
167
|
if (this.props.store.isMobile()) {
|
|
214
168
|
position = _index.default.get(accountSetting, 'mobile_button.position') || position;
|
|
215
169
|
}
|
|
216
|
-
|
|
217
170
|
if (accountSetting && accountSetting.hide_agent_profile) {
|
|
218
171
|
agent = Object.assign({}, account, {
|
|
219
172
|
avatar_url: account.logo_url || require('../../assets/img/image_default.png'),
|
|
220
173
|
fullname: account.name || this.props.t('agent')
|
|
221
174
|
});
|
|
222
175
|
}
|
|
223
|
-
|
|
224
176
|
let cls = 'widget-preview widget-preview--' + position;
|
|
225
177
|
if (!this.state.displayPreview) cls += ' widget-preview--hidden';
|
|
226
178
|
var tags = this.renderMessagePreview(this.state.previewEvent, this.props.t('sent_you_a_message'));
|
|
@@ -252,53 +204,42 @@ class ChatButton extends _common.Com {
|
|
|
252
204
|
class: "widget-preview--action-text"
|
|
253
205
|
}, this.props.t('chat_now'))));
|
|
254
206
|
}
|
|
255
|
-
|
|
256
207
|
onProfileReady() {
|
|
257
208
|
if (this._buttonLoaded) this.setState({
|
|
258
209
|
opacity: 1
|
|
259
210
|
});
|
|
260
211
|
this._profileLoaded = true;
|
|
261
212
|
}
|
|
262
|
-
|
|
263
213
|
onButtonReady() {
|
|
264
214
|
if (this._profileLoaded) this.setState({
|
|
265
215
|
opacity: 1
|
|
266
216
|
});
|
|
267
217
|
this._buttonLoaded = true;
|
|
268
218
|
}
|
|
269
|
-
|
|
270
219
|
renderButton() {
|
|
271
220
|
let accountSetting = this.props.plugin.chatbox;
|
|
272
221
|
accountSetting = this.fixMissingSetting(accountSetting);
|
|
273
222
|
let imgsrc = _index.default.get(accountSetting, 'desktop_button.background_image_url') || _index.default.get(accountSetting, 'desktop_button.background_mask_url') || defaultBubble;
|
|
274
223
|
let background = _index.default.get(accountSetting, 'background') || DEF_BG;
|
|
275
224
|
let position = _index.default.get(accountSetting, 'desktop_button.position') || 'right';
|
|
276
|
-
|
|
277
225
|
let imgurl = _index.default.get(accountSetting, 'desktop_button.background_image_url');
|
|
278
|
-
|
|
279
226
|
let maskurl = _index.default.get(accountSetting, 'desktop_button.background_mask_url');
|
|
280
|
-
|
|
281
227
|
if (this.props.store.isMobile()) {
|
|
282
228
|
imgsrc = _index.default.get(accountSetting, 'mobile_button.background_image_url') || _index.default.get(accountSetting, 'mobile_button.background_mask_url') || imgsrc;
|
|
283
229
|
position = _index.default.get(accountSetting, 'mobile_button.position') || position;
|
|
284
|
-
|
|
285
230
|
let mobileimgurl = _index.default.get(accountSetting, 'mobile_button.background_image_url');
|
|
286
|
-
|
|
287
231
|
let mobilemaskurl = _index.default.get(accountSetting, 'mobile_button.background_mask_url');
|
|
288
|
-
|
|
289
232
|
if (mobileimgurl || mobilemaskurl) {
|
|
290
233
|
imgurl = mobileimgurl;
|
|
291
234
|
maskurl = mobilemaskurl;
|
|
292
235
|
}
|
|
293
236
|
}
|
|
294
|
-
|
|
295
237
|
let whitebgcls = 'chat-button--white-bg';
|
|
296
238
|
if (!imgurl && maskurl) whitebgcls += ' chat-button--white-bg--mask-only';
|
|
297
239
|
let imgcontainerstyle = '';
|
|
298
240
|
imgurl = this.props.store.replaceFileUrl(imgurl);
|
|
299
241
|
imgsrc = this.props.store.replaceFileUrl(imgsrc);
|
|
300
242
|
maskurl = this.props.store.replaceFileUrl(maskurl);
|
|
301
|
-
|
|
302
243
|
if (!imgurl && !maskurl) {
|
|
303
244
|
whitebgcls += ' chat-button--white-bg--mask-only';
|
|
304
245
|
imgcontainerstyle = `
|
|
@@ -311,7 +252,6 @@ class ChatButton extends _common.Com {
|
|
|
311
252
|
background: ${background} !important;
|
|
312
253
|
`;
|
|
313
254
|
}
|
|
314
|
-
|
|
315
255
|
if (imgurl && maskurl) {
|
|
316
256
|
imgcontainerstyle = `
|
|
317
257
|
-webkit-mask-image: url("${encodeURI(maskurl)}") !important;
|
|
@@ -322,14 +262,12 @@ class ChatButton extends _common.Com {
|
|
|
322
262
|
background-repeat: no-repeat !important;
|
|
323
263
|
`;
|
|
324
264
|
}
|
|
325
|
-
|
|
326
265
|
if (imgurl && !maskurl) {
|
|
327
266
|
imgcontainerstyle = `
|
|
328
267
|
background-image: url("${encodeURI(imgurl)}") !important;
|
|
329
268
|
background-repeat: no-repeat !important;
|
|
330
269
|
`;
|
|
331
270
|
}
|
|
332
|
-
|
|
333
271
|
if (!imgurl && maskurl) {
|
|
334
272
|
imgcontainerstyle = `
|
|
335
273
|
-webkit-mask-image: url("${encodeURI(maskurl)}") !important;
|
|
@@ -341,8 +279,8 @@ class ChatButton extends _common.Com {
|
|
|
341
279
|
background: ${background} !important;
|
|
342
280
|
`;
|
|
343
281
|
}
|
|
344
|
-
|
|
345
282
|
let cls = 'chat-button chat-button--' + position;
|
|
283
|
+
|
|
346
284
|
return (0, _preact.h)("div", {
|
|
347
285
|
class: cls,
|
|
348
286
|
onClick: e => this.onClick(e)
|
|
@@ -361,33 +299,26 @@ class ChatButton extends _common.Com {
|
|
|
361
299
|
onError: (e, a) => this.onChatButtonError(e, a)
|
|
362
300
|
})), this.renderUnread());
|
|
363
301
|
}
|
|
364
|
-
|
|
365
302
|
onProfileError(ev) {
|
|
366
303
|
var $el = ev.target;
|
|
367
304
|
$el.src = defaultAvatar;
|
|
368
305
|
this.onProfileReady();
|
|
369
306
|
}
|
|
370
|
-
|
|
371
307
|
onChatButtonError(ev) {
|
|
372
308
|
if (this._onChatButtonErrorExecuted) return;
|
|
373
309
|
this._onChatButtonErrorExecuted = true;
|
|
374
310
|
var $el = ev.target;
|
|
375
311
|
$el.src = defaultBubble;
|
|
376
312
|
}
|
|
377
|
-
|
|
378
313
|
renderMessagePreview(ev, defmsg) {
|
|
379
314
|
defmsg = defmsg || 'Sent you a message';
|
|
380
|
-
|
|
381
315
|
let message = _index.default.get(ev, 'data.message.text');
|
|
382
|
-
|
|
383
316
|
var format = _index.default.get(ev, 'data.message.format');
|
|
384
317
|
|
|
385
318
|
if (format && format !== 'plaintext') message = defmsg;
|
|
386
319
|
if (!message && _index.default.size(_index.default.get(ev, 'data.message.attachments')) > 0) message = defmsg;
|
|
387
320
|
if (!message) return null;
|
|
388
|
-
|
|
389
321
|
let byType = _index.default.get(ev, 'by.type');
|
|
390
|
-
|
|
391
322
|
var tags = _index.default.extractText(message).map(tag => {
|
|
392
323
|
if (tag.type === 'emoji') return (0, _preact.h)(_Emoji.default, {
|
|
393
324
|
emojiCode: tag.text,
|
|
@@ -395,33 +326,25 @@ class ChatButton extends _common.Com {
|
|
|
395
326
|
});
|
|
396
327
|
return tag.text;
|
|
397
328
|
});
|
|
398
|
-
|
|
399
329
|
return tags;
|
|
400
330
|
}
|
|
401
|
-
|
|
402
331
|
closePreview(e) {
|
|
403
332
|
if (e) {
|
|
404
333
|
e.preventDefault();
|
|
405
334
|
e.stopPropagation();
|
|
406
335
|
}
|
|
407
|
-
|
|
408
336
|
this.setState({
|
|
409
337
|
displayPreview: false
|
|
410
338
|
});
|
|
411
339
|
this.props.store.closePreview();
|
|
412
340
|
this.forceUpdate();
|
|
413
341
|
}
|
|
414
|
-
|
|
415
342
|
}
|
|
416
|
-
|
|
417
343
|
exports.default = ChatButton;
|
|
418
|
-
|
|
419
344
|
function randomAgent(agentM) {
|
|
420
345
|
var agents = _index.default.filter(agentM, ag => ag.type === 'agent');
|
|
421
|
-
|
|
422
346
|
return agents[Math.floor(Math.random() * _index.default.size(agents))] || {};
|
|
423
347
|
}
|
|
424
|
-
|
|
425
348
|
const Ms30Mins = 30 * 60 * 1000;
|
|
426
349
|
const DEF_BG_URL = 'https://file-subiz.com/bubble_11.svg';
|
|
427
350
|
const DEF_BG = 'linear-gradient(280.16deg, #0053d3 22.03%, #0265ff 78.2%)';
|
|
@@ -4,46 +4,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
var _spinner = _interopRequireDefault(require("./spinner.js"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
-
|
|
20
13
|
class DropdownSelect extends _common.Com {
|
|
21
14
|
constructor(props) {
|
|
22
15
|
super(props);
|
|
23
|
-
|
|
24
16
|
_defineProperty(this, "state", {
|
|
25
17
|
show: false,
|
|
26
18
|
searchValue: ''
|
|
27
19
|
});
|
|
28
|
-
|
|
29
20
|
_defineProperty(this, "filterRef", (0, _preact.createRef)());
|
|
30
|
-
|
|
31
21
|
_defineProperty(this, "overlayRef", (0, _preact.createRef)());
|
|
32
|
-
|
|
33
22
|
_defineProperty(this, "onTouchMove", e => {
|
|
34
23
|
if (e.target === this.overlayRef.current) {
|
|
35
24
|
e.preventDefault();
|
|
36
25
|
e.stopPropagation();
|
|
37
26
|
}
|
|
38
27
|
});
|
|
39
|
-
|
|
40
28
|
_defineProperty(this, "hideDropdown", () => {
|
|
41
29
|
this.setState({
|
|
42
30
|
show: false,
|
|
43
31
|
searchValue: ''
|
|
44
32
|
});
|
|
45
33
|
});
|
|
46
|
-
|
|
47
34
|
_defineProperty(this, "onKeydown", e => {
|
|
48
35
|
if (e.key === 'Escape') {
|
|
49
36
|
if (!this.state.show) return;
|
|
@@ -54,36 +41,27 @@ class DropdownSelect extends _common.Com {
|
|
|
54
41
|
e.stopPropagation();
|
|
55
42
|
}
|
|
56
43
|
});
|
|
57
|
-
|
|
58
44
|
_defineProperty(this, "hasSearch", () => {
|
|
59
45
|
if (this.props.has_search) return true;
|
|
60
46
|
return _index.default.size(this.props.items) >= 10;
|
|
61
47
|
});
|
|
62
|
-
|
|
63
48
|
_defineProperty(this, "getFilteredOptions", () => {
|
|
64
49
|
let items = this.props.items;
|
|
65
|
-
|
|
66
50
|
if (this.state.searchValue && this.hasSearch()) {
|
|
67
51
|
items = _index.default.filter(items, item => {
|
|
68
52
|
let optionName = _index.default.unicodeToAscii(item.name).toLowerCase().replace(/ /g, '');
|
|
69
|
-
|
|
70
53
|
let optionDesc = _index.default.unicodeToAscii(item.desc).toLowerCase().replace(/ /g, '');
|
|
71
|
-
|
|
72
54
|
let searchValue = _index.default.unicodeToAscii(this.state.searchValue).toLowerCase().replace(/ /g, '');
|
|
73
|
-
|
|
74
55
|
return optionName.indexOf(searchValue) != -1 || optionDesc.indexOf(searchValue) != -1;
|
|
75
56
|
});
|
|
76
57
|
}
|
|
77
|
-
|
|
78
58
|
return items;
|
|
79
59
|
});
|
|
80
|
-
|
|
81
60
|
_defineProperty(this, "onChangeSearchValue", e => {
|
|
82
61
|
this.setState({
|
|
83
62
|
searchValue: e.target.value
|
|
84
63
|
});
|
|
85
64
|
});
|
|
86
|
-
|
|
87
65
|
_defineProperty(this, "toogleDropdown", async () => {
|
|
88
66
|
await this.setState({
|
|
89
67
|
show: true,
|
|
@@ -91,28 +69,25 @@ class DropdownSelect extends _common.Com {
|
|
|
91
69
|
});
|
|
92
70
|
this.focusFilter();
|
|
93
71
|
});
|
|
94
|
-
|
|
95
72
|
_defineProperty(this, "onSelect", item => {
|
|
96
73
|
this.props.onSelect(item);
|
|
97
74
|
this.hideDropdown();
|
|
98
75
|
});
|
|
99
|
-
|
|
100
76
|
_defineProperty(this, "onBackgroundScroll", e => {
|
|
101
77
|
console.log('EEEEEEE', e);
|
|
102
78
|
alert('y');
|
|
103
79
|
});
|
|
104
|
-
|
|
105
|
-
|
|
80
|
+
document.addEventListener('touchmove', function (e) {
|
|
81
|
+
}
|
|
82
|
+
);
|
|
106
83
|
}
|
|
107
84
|
|
|
108
85
|
componentDidMount() {
|
|
109
86
|
window.addEventListener('keydown', this.onKeydown);
|
|
110
87
|
}
|
|
111
|
-
|
|
112
88
|
componentWillUnmount() {
|
|
113
89
|
window.removeEventListener('keydown', this.onKeydown);
|
|
114
90
|
}
|
|
115
|
-
|
|
116
91
|
renderEmpty() {
|
|
117
92
|
return (0, _preact.h)("div", {
|
|
118
93
|
class: "dropdown_select_filter__empty"
|
|
@@ -124,7 +99,6 @@ class DropdownSelect extends _common.Com {
|
|
|
124
99
|
style: "text-align: center !important;"
|
|
125
100
|
}, "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3"));
|
|
126
101
|
}
|
|
127
|
-
|
|
128
102
|
renderLoading() {
|
|
129
103
|
return (0, _preact.h)("div", {
|
|
130
104
|
class: "dropdown_select_filter__empty pt-3"
|
|
@@ -136,7 +110,6 @@ class DropdownSelect extends _common.Com {
|
|
|
136
110
|
style: "text-align: center !important;"
|
|
137
111
|
}, "\u0110ang t\u1EA3i d\u1EEF li\u1EC7u"));
|
|
138
112
|
}
|
|
139
|
-
|
|
140
113
|
focusFilter() {
|
|
141
114
|
if (!this.filterRef.current) return;
|
|
142
115
|
this.filterRef.current.focus();
|
|
@@ -145,33 +118,27 @@ class DropdownSelect extends _common.Com {
|
|
|
145
118
|
this.filterRef.current.focus();
|
|
146
119
|
}, 100);
|
|
147
120
|
}
|
|
148
|
-
|
|
149
121
|
renderDropdown() {
|
|
150
122
|
if (!this.state.show) return null;
|
|
151
123
|
let items = this.getFilteredOptions();
|
|
152
|
-
|
|
153
124
|
let $items = _index.default.map(items, item => {
|
|
154
125
|
return (0, _preact.h)("div", {
|
|
155
126
|
class: "dropdown_select__item",
|
|
156
127
|
onClick: _ => this.onSelect(item)
|
|
157
128
|
}, item.name);
|
|
158
129
|
});
|
|
159
|
-
|
|
160
130
|
let $filter = null;
|
|
161
|
-
|
|
162
131
|
if (this.hasSearch()) {
|
|
163
132
|
let $img = (0, _preact.h)("img", {
|
|
164
133
|
class: "dropdown_select_filter__icon",
|
|
165
134
|
src: require('../../assets/img/search.svg')
|
|
166
135
|
});
|
|
167
|
-
|
|
168
136
|
if (this.props.loading) {
|
|
169
137
|
$img = (0, _preact.h)("img", {
|
|
170
138
|
class: "dropdown_select_filter__icon",
|
|
171
139
|
src: require('../../assets/img/loader.svg')
|
|
172
140
|
});
|
|
173
141
|
}
|
|
174
|
-
|
|
175
142
|
$filter = (0, _preact.h)("div", {
|
|
176
143
|
class: "dropdown_select_filter"
|
|
177
144
|
}, $img, (0, _preact.h)("input", {
|
|
@@ -182,11 +149,9 @@ class DropdownSelect extends _common.Com {
|
|
|
182
149
|
class: "dropdown_select_filter_input "
|
|
183
150
|
}));
|
|
184
151
|
}
|
|
185
|
-
|
|
186
152
|
if ($items.length == 0) $items = this.renderEmpty();
|
|
187
153
|
if (this.props.loading) $items = this.renderLoading();
|
|
188
154
|
let style = `width: ${this.props.width || '150px'} !important;`;
|
|
189
|
-
|
|
190
155
|
if (this.props.full) {
|
|
191
156
|
style = ` top: 20px !important; left: 20px !important; right: 20px !important; width: unset !important; `;
|
|
192
157
|
return (0, _preact.h)("div", {
|
|
@@ -205,7 +170,6 @@ class DropdownSelect extends _common.Com {
|
|
|
205
170
|
class: "dropdown_select__items"
|
|
206
171
|
}, $items)));
|
|
207
172
|
}
|
|
208
|
-
|
|
209
173
|
return (0, _preact.h)("div", {
|
|
210
174
|
class: "dropdown_select",
|
|
211
175
|
style: style
|
|
@@ -213,7 +177,6 @@ class DropdownSelect extends _common.Com {
|
|
|
213
177
|
class: "dropdown_select__items"
|
|
214
178
|
}, $items));
|
|
215
179
|
}
|
|
216
|
-
|
|
217
180
|
render() {
|
|
218
181
|
let $name = (0, _preact.h)("div", {
|
|
219
182
|
class: "muted text-truncate",
|
|
@@ -224,11 +187,9 @@ class DropdownSelect extends _common.Com {
|
|
|
224
187
|
style: "flex: 1 !important;"
|
|
225
188
|
}, _index.default.get(this.props, 'selected.name'));
|
|
226
189
|
let style = 'position: relative !important;';
|
|
227
|
-
|
|
228
190
|
if (this.props.full) {
|
|
229
191
|
style = '';
|
|
230
192
|
}
|
|
231
|
-
|
|
232
193
|
return (0, _preact.h)("div", {
|
|
233
194
|
style: style
|
|
234
195
|
}, (0, _preact.h)(_common.Clickaway, {
|
|
@@ -242,7 +203,5 @@ class DropdownSelect extends _common.Com {
|
|
|
242
203
|
src: require('../../assets/img/caret.svg')
|
|
243
204
|
})), this.renderDropdown()));
|
|
244
205
|
}
|
|
245
|
-
|
|
246
206
|
}
|
|
247
|
-
|
|
248
207
|
exports.default = DropdownSelect;
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
class Emoji extends _common.Com {
|
|
17
12
|
render() {
|
|
18
13
|
var emojiCode = this.props.emojiCode;
|
|
@@ -23,7 +18,5 @@ class Emoji extends _common.Com {
|
|
|
23
18
|
class: `emoji emoji--${emojiText}`
|
|
24
19
|
});
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
exports.default = Emoji;
|