@subiz/widget-v4 4.0.89 → 4.0.91
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/Event.js +3 -4
- package/compiled_src/chatbox/TextMessage.js +110 -9
- package/compiled_src/chatbox/Widget.js +11 -10
- package/dist/0b82fa7e5c3b07b40a44.png +1 -0
- package/dist/0f4af006e38ee8b93633.png +1 -0
- package/dist/132.js +84 -302
- package/dist/178.js +341 -174
- package/dist/17f00e48d38.132.js +1 -0
- package/dist/17f00e48d38.178.js +1 -0
- package/dist/{1833a09e682.213.js → 17f00e48d38.213.js} +1 -1
- package/dist/{1833a09e682.335.js → 17f00e48d38.335.js} +1 -1
- package/dist/17f00e48d38.362.js +1 -0
- package/dist/17f00e48d38.441.js +1 -0
- package/dist/{1833a09e682.605.js → 17f00e48d38.605.js} +0 -0
- package/dist/17f00e48d38.678.js +1 -0
- package/dist/17f00e48d38.782.js +1 -0
- package/dist/17f00e48d38.app.js +1 -0
- package/dist/{1833a09e682.index.html → 17f00e48d38.index.html} +3 -7
- package/dist/{1833a09e682.library.html → 17f00e48d38.library.html} +3 -7
- package/dist/17f00e48d38.library.js +1 -0
- package/dist/{1833a09e682.preview.html → 17f00e48d38.preview.html} +1 -1
- package/dist/17f00e48d38.preview.js +1 -0
- package/dist/17f00e48d38.screenshoot.js +1 -0
- package/dist/1ea1c6cd21d25176810c.png +1 -0
- package/dist/213.js +1 -28
- package/dist/292d42404e1b03398f61.png +1 -0
- package/dist/312d376370831b7bea83.png +1 -0
- package/dist/313d1bfc1cf776d1aefe.png +1 -0
- package/dist/335.js +2 -2
- package/dist/362.js +71 -21
- package/dist/441.js +100 -202
- package/dist/4aa58bb7a66bb44975aa.png +1 -0
- package/dist/56ce063bc6c81adb7322.png +1 -0
- package/dist/678.js +70 -20
- package/dist/6a411166ef5cc79e0714.png +1 -0
- package/dist/6faf403782fefacc1649.png +1 -0
- package/dist/782.js +118 -21
- package/dist/79dca33c68fab79c067f.png +1 -0
- package/dist/82da1578fa84f9debaeb.png +1 -0
- package/dist/8b8e0f0824743974b282.png +1 -0
- package/dist/8d551390d81e39130a3c.png +1 -0
- package/dist/9fc61b9479877ebdb6c7.png +1 -0
- package/dist/HASH +1 -1
- package/dist/a165d31dcb3dc90f1057.png +1 -0
- package/dist/a98d4a5698812c4426b3.png +1 -0
- package/dist/c41606bf9d1b604e46d5.png +1 -0
- package/dist/ce1f7450ce6c1aacd330.png +1 -0
- package/dist/cf8c01e88f4770a6e3e5.png +1 -0
- package/dist/dfbcfeab1d5622a737e2.png +1 -0
- package/dist/e4893ed8c2f7b8329919.png +1 -0
- package/dist/ec2ab4eb4ef73d186186.png +1 -0
- package/dist/screenshoot.html +1 -1
- package/dist/screenshoot.js +174 -208
- package/package.json +5 -5
- package/src/chatbox/Event.js +3 -4
- package/src/chatbox/TextMessage.js +88 -15
- package/src/chatbox/Widget.js +10 -9
- package/dist/1833a09e682.132.js +0 -1
- package/dist/1833a09e682.178.js +0 -1
- package/dist/1833a09e682.362.js +0 -1
- package/dist/1833a09e682.441.js +0 -1
- package/dist/1833a09e682.678.js +0 -1
- package/dist/1833a09e682.782.js +0 -1
- package/dist/1833a09e682.app.js +0 -1
- package/dist/1833a09e682.library.js +0 -1
- package/dist/1833a09e682.preview.js +0 -1
- package/dist/1833a09e682.screenshoot.js +0 -1
|
@@ -142,7 +142,7 @@ class Event extends _common.Com {
|
|
|
142
142
|
|
|
143
143
|
let agentM = this.props.store.matchAgent('*');
|
|
144
144
|
|
|
145
|
-
if (byid !== 'system'
|
|
145
|
+
if (byid !== 'system' && bytype !== 'dummy' && bytype !== 'workflow') {
|
|
146
146
|
uri = _index.default.get(agentM[byid], 'avatar_url') || acc.logo_url || require('../../assets/img/default_avatar.png');
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -330,11 +330,10 @@ class Event extends _common.Com {
|
|
|
330
330
|
|
|
331
331
|
let byid = _index.default.get(ev, 'by.display_id', _index.default.get(ev, 'by.id'));
|
|
332
332
|
|
|
333
|
-
if (
|
|
334
|
-
let user = this.props.store.matchUser();
|
|
333
|
+
if (bytype === 'user') return _index.default.getUserDisplayName(this.props.store.matchUser());
|
|
335
334
|
let acc = this.props.store.matchAccount();
|
|
336
|
-
if (bytype === 'user') return _index.default.getUserDisplayName(user);
|
|
337
335
|
if (bytype === 'agent') return _index.default.getAgentDisplayName(acc, this.props.store.matchAgent(byid));
|
|
336
|
+
if (byid === 'system' || bytype === 'dummy' || bytype === 'workflow') return acc.name || 'system';
|
|
338
337
|
return '';
|
|
339
338
|
}
|
|
340
339
|
|
|
@@ -100,19 +100,87 @@ class TextMessage extends _common.Com {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
renderDelta() {
|
|
103
|
-
let deltas = _index.default.get(this.props.ev, 'data.message.quill_delta');
|
|
103
|
+
let deltas = _index.default.get(this.props.ev, 'data.message.quill_delta') || _index.default.get(this.props.ev, 'data.message.text');
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
let quilldeltas = _index.default.parseJSON(deltas) || {};
|
|
106
|
+
quilldeltas = trimQuillDelta(quilldeltas);
|
|
107
|
+
if (!quilldeltas || _index.default.size(quilldeltas.ops) === 0) return null;
|
|
107
108
|
|
|
108
|
-
let
|
|
109
|
+
let $deltas = _index.default.map(quilldeltas.ops, delta => {
|
|
110
|
+
let html = '';
|
|
111
|
+
let insert = delta.insert;
|
|
112
|
+
let attributes = delta.attributes;
|
|
109
113
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
if (insert.dynamicField) {
|
|
115
|
+
return _index.default.get(insert, 'dynamicField.text', '');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (insert.mention) {
|
|
119
|
+
if (insert.mention.id == '*' || insert.mention.id == 'all') {
|
|
120
|
+
return (0, _preact.h)("span", {
|
|
121
|
+
class: "mention"
|
|
122
|
+
}, "@", this.$t('all'));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let ag = store.matchAgent(insert.mention.id);
|
|
126
|
+
|
|
127
|
+
let name = _index.default.getAgentDisplayName(ag, insert.mention.fullname);
|
|
128
|
+
|
|
129
|
+
return (0, _preact.h)("span", {
|
|
130
|
+
class: "mention",
|
|
131
|
+
"data-agent-id": ag.id,
|
|
132
|
+
"data-agent-fullname": name
|
|
133
|
+
}, "@", name);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (insert.emoji) return (0, _preact.h)(_Emoji.default, {
|
|
137
|
+
emojiCode: `:${insert.emoji}:`
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
if (typeof insert === 'string') {
|
|
141
|
+
let $tags = _index.default.extractText(insert).map((tag, i) => {
|
|
142
|
+
if (tag.type === 'link') {
|
|
143
|
+
return (0, _preact.h)("a", {
|
|
144
|
+
href: absLink(tag.text),
|
|
145
|
+
target: "_blank"
|
|
146
|
+
}, tag.text);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return tag.text;
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
if (attributes) {
|
|
153
|
+
if (attributes.italic && attributes.bold) return (0, _preact.h)("span", {
|
|
154
|
+
style: "font-weight: bold !important; font-style: italic !important"
|
|
155
|
+
}, $tags);
|
|
156
|
+
if (attributes.italic) return (0, _preact.h)("span", {
|
|
157
|
+
style: "font-style: italic !important"
|
|
158
|
+
}, $tags);
|
|
159
|
+
if (attributes.bold) return (0, _preact.h)("span", {
|
|
160
|
+
style: "font-weight: bold !important"
|
|
161
|
+
}, $tags);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return (0, _preact.h)("span", null, $tags);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return null;
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
let byType = _index.default.get(this.ev, 'by.type');
|
|
171
|
+
|
|
172
|
+
if (byType !== 'user') byType = 'agent';
|
|
173
|
+
if (_index.default.size($deltas) === 0) return null;
|
|
174
|
+
|
|
175
|
+
if (byType === 'agent') {
|
|
176
|
+
return (0, _preact.h)("div", {
|
|
177
|
+
class: "message-agent message-text--agent"
|
|
178
|
+
}, $deltas);
|
|
113
179
|
}
|
|
114
180
|
|
|
115
|
-
return
|
|
181
|
+
return (0, _preact.h)("div", {
|
|
182
|
+
class: "message-user message-text--user"
|
|
183
|
+
}, $deltas);
|
|
116
184
|
}
|
|
117
185
|
|
|
118
186
|
renderMarkdown(text) {
|
|
@@ -187,4 +255,37 @@ const emojiCodes = {
|
|
|
187
255
|
tired: '😩',
|
|
188
256
|
surprised: '😮',
|
|
189
257
|
wink: '😉'
|
|
190
|
-
};
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
function trimQuillDelta(delta) {
|
|
261
|
+
if (!delta) return delta;
|
|
262
|
+
if (!delta.ops || !delta.ops.length) return delta;
|
|
263
|
+
let last = delta.ops[delta.ops.length - 1];
|
|
264
|
+
if (typeof last.insert != 'string') return delta;
|
|
265
|
+
let insert = last.insert.trim();
|
|
266
|
+
|
|
267
|
+
if (insert) {
|
|
268
|
+
if (last.insert != insert) {
|
|
269
|
+
let newops = delta.ops.slice();
|
|
270
|
+
let last = newops.pop();
|
|
271
|
+
last.insert = insert;
|
|
272
|
+
newops.push(last);
|
|
273
|
+
return {
|
|
274
|
+
ops: newops
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
return delta;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
let newops = delta.ops.slice();
|
|
282
|
+
newops.pop();
|
|
283
|
+
return trimQuillDelta({
|
|
284
|
+
ops: newops
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
function absLink(url) {
|
|
289
|
+
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) return 'http://' + url;
|
|
290
|
+
return url;
|
|
291
|
+
}
|
|
@@ -124,7 +124,7 @@ class Widget extends _common.Com {
|
|
|
124
124
|
formData: {},
|
|
125
125
|
showOrder: false,
|
|
126
126
|
order_id: '',
|
|
127
|
-
quickReplyMessage:
|
|
127
|
+
quickReplyMessage: {}
|
|
128
128
|
});
|
|
129
129
|
this.props.store.onUpdate(this, _ => this.forceUpdate());
|
|
130
130
|
}
|
|
@@ -143,7 +143,7 @@ class Widget extends _common.Com {
|
|
|
143
143
|
this.closeOrder();
|
|
144
144
|
this.setState({
|
|
145
145
|
clickedJoin: false,
|
|
146
|
-
quickReplyMessage:
|
|
146
|
+
quickReplyMessage: {}
|
|
147
147
|
});
|
|
148
148
|
setTimeout(() => {
|
|
149
149
|
this.events && this.events.focus();
|
|
@@ -279,11 +279,12 @@ class Widget extends _common.Com {
|
|
|
279
279
|
fields: [{
|
|
280
280
|
key: 'to_agent_group',
|
|
281
281
|
value: _index.default.stringify(groupid)
|
|
282
|
-
}]
|
|
282
|
+
}],
|
|
283
|
+
attachments: this.state.quickReplyMessage.attachments
|
|
283
284
|
}
|
|
284
285
|
});
|
|
285
286
|
this.setState({
|
|
286
|
-
quickReplyMessage:
|
|
287
|
+
quickReplyMessage: {}
|
|
287
288
|
});
|
|
288
289
|
if (form.end_conversation_after_submit) await this.props.store.endConvo(this.props.cid);
|
|
289
290
|
return;
|
|
@@ -331,7 +332,7 @@ class Widget extends _common.Com {
|
|
|
331
332
|
this.setState({
|
|
332
333
|
creating: false,
|
|
333
334
|
clickedJoin: false,
|
|
334
|
-
quickReplyMessage:
|
|
335
|
+
quickReplyMessage: {}
|
|
335
336
|
});
|
|
336
337
|
if (!this.props.store.isMobile()) this.focusInput();
|
|
337
338
|
}
|
|
@@ -343,7 +344,7 @@ class Widget extends _common.Com {
|
|
|
343
344
|
is_required: true,
|
|
344
345
|
label: this.props.t.i18n(_index.default.get(form, `i18n_question_label`, {})) || form.question_label,
|
|
345
346
|
type: 'text',
|
|
346
|
-
value: this.state.quickReplyMessage
|
|
347
|
+
value: this.state.quickReplyMessage.text
|
|
347
348
|
};
|
|
348
349
|
this.setState({
|
|
349
350
|
formData
|
|
@@ -405,7 +406,7 @@ class Widget extends _common.Com {
|
|
|
405
406
|
if (_index.default.size(this.state.formData) === 0) return null;
|
|
406
407
|
|
|
407
408
|
let $fields = _index.default.map(this.state.formData, (field, key) => {
|
|
408
|
-
if (this.state.quickReplyMessage && key === 'question') return null;
|
|
409
|
+
if (this.state.quickReplyMessage.text && key === 'question') return null;
|
|
409
410
|
let $field = null;
|
|
410
411
|
var errclass = field.error ? 'input--error' : '';
|
|
411
412
|
|
|
@@ -682,7 +683,7 @@ class Widget extends _common.Com {
|
|
|
682
683
|
|
|
683
684
|
this.setState({
|
|
684
685
|
formData,
|
|
685
|
-
quickReplyMessage: message
|
|
686
|
+
quickReplyMessage: message
|
|
686
687
|
});
|
|
687
688
|
}
|
|
688
689
|
|
|
@@ -757,7 +758,7 @@ class Widget extends _common.Com {
|
|
|
757
758
|
});
|
|
758
759
|
this.setState({
|
|
759
760
|
clickedJoin: true,
|
|
760
|
-
quickReplyMessage:
|
|
761
|
+
quickReplyMessage: {}
|
|
761
762
|
});
|
|
762
763
|
}
|
|
763
764
|
|
|
@@ -785,7 +786,7 @@ class Widget extends _common.Com {
|
|
|
785
786
|
let convo = this.props.store.matchConvo(this.props.cid) || {};
|
|
786
787
|
if (convo.state === 'ended') return true;
|
|
787
788
|
if (convo.state && convo.state !== 'pending') delete formData.group;
|
|
788
|
-
return !!_index.default.find(formData, field => field.value == null || field.value === '');
|
|
789
|
+
return !!_index.default.find(formData, field => field.is_required && (field.value == null || field.value === ''));
|
|
789
790
|
}
|
|
790
791
|
|
|
791
792
|
renderConvoSummary(convo) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = __webpack_public_path__ + "assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = __webpack_public_path__ + "assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png";
|