@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.
Files changed (67) hide show
  1. package/compiled_src/chatbox/Event.js +3 -4
  2. package/compiled_src/chatbox/TextMessage.js +110 -9
  3. package/compiled_src/chatbox/Widget.js +11 -10
  4. package/dist/0b82fa7e5c3b07b40a44.png +1 -0
  5. package/dist/0f4af006e38ee8b93633.png +1 -0
  6. package/dist/132.js +84 -302
  7. package/dist/178.js +341 -174
  8. package/dist/17f00e48d38.132.js +1 -0
  9. package/dist/17f00e48d38.178.js +1 -0
  10. package/dist/{1833a09e682.213.js → 17f00e48d38.213.js} +1 -1
  11. package/dist/{1833a09e682.335.js → 17f00e48d38.335.js} +1 -1
  12. package/dist/17f00e48d38.362.js +1 -0
  13. package/dist/17f00e48d38.441.js +1 -0
  14. package/dist/{1833a09e682.605.js → 17f00e48d38.605.js} +0 -0
  15. package/dist/17f00e48d38.678.js +1 -0
  16. package/dist/17f00e48d38.782.js +1 -0
  17. package/dist/17f00e48d38.app.js +1 -0
  18. package/dist/{1833a09e682.index.html → 17f00e48d38.index.html} +3 -7
  19. package/dist/{1833a09e682.library.html → 17f00e48d38.library.html} +3 -7
  20. package/dist/17f00e48d38.library.js +1 -0
  21. package/dist/{1833a09e682.preview.html → 17f00e48d38.preview.html} +1 -1
  22. package/dist/17f00e48d38.preview.js +1 -0
  23. package/dist/17f00e48d38.screenshoot.js +1 -0
  24. package/dist/1ea1c6cd21d25176810c.png +1 -0
  25. package/dist/213.js +1 -28
  26. package/dist/292d42404e1b03398f61.png +1 -0
  27. package/dist/312d376370831b7bea83.png +1 -0
  28. package/dist/313d1bfc1cf776d1aefe.png +1 -0
  29. package/dist/335.js +2 -2
  30. package/dist/362.js +71 -21
  31. package/dist/441.js +100 -202
  32. package/dist/4aa58bb7a66bb44975aa.png +1 -0
  33. package/dist/56ce063bc6c81adb7322.png +1 -0
  34. package/dist/678.js +70 -20
  35. package/dist/6a411166ef5cc79e0714.png +1 -0
  36. package/dist/6faf403782fefacc1649.png +1 -0
  37. package/dist/782.js +118 -21
  38. package/dist/79dca33c68fab79c067f.png +1 -0
  39. package/dist/82da1578fa84f9debaeb.png +1 -0
  40. package/dist/8b8e0f0824743974b282.png +1 -0
  41. package/dist/8d551390d81e39130a3c.png +1 -0
  42. package/dist/9fc61b9479877ebdb6c7.png +1 -0
  43. package/dist/HASH +1 -1
  44. package/dist/a165d31dcb3dc90f1057.png +1 -0
  45. package/dist/a98d4a5698812c4426b3.png +1 -0
  46. package/dist/c41606bf9d1b604e46d5.png +1 -0
  47. package/dist/ce1f7450ce6c1aacd330.png +1 -0
  48. package/dist/cf8c01e88f4770a6e3e5.png +1 -0
  49. package/dist/dfbcfeab1d5622a737e2.png +1 -0
  50. package/dist/e4893ed8c2f7b8329919.png +1 -0
  51. package/dist/ec2ab4eb4ef73d186186.png +1 -0
  52. package/dist/screenshoot.html +1 -1
  53. package/dist/screenshoot.js +174 -208
  54. package/package.json +5 -5
  55. package/src/chatbox/Event.js +3 -4
  56. package/src/chatbox/TextMessage.js +88 -15
  57. package/src/chatbox/Widget.js +10 -9
  58. package/dist/1833a09e682.132.js +0 -1
  59. package/dist/1833a09e682.178.js +0 -1
  60. package/dist/1833a09e682.362.js +0 -1
  61. package/dist/1833a09e682.441.js +0 -1
  62. package/dist/1833a09e682.678.js +0 -1
  63. package/dist/1833a09e682.782.js +0 -1
  64. package/dist/1833a09e682.app.js +0 -1
  65. package/dist/1833a09e682.library.js +0 -1
  66. package/dist/1833a09e682.preview.js +0 -1
  67. 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' || bytype !== 'dummy') {
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 (byid === 'system' || bytype === 'dummy') return 'system';
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
- deltas = _index.default.parseJSON(deltas) || {};
106
- deltas = deltas.ops || [];
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 isMarkdown = _index.default.find(deltas, delta => _index.default.get(delta, 'attributes.bold') || _index.default.get(delta, 'attributes.italic') || _index.default.get(delta, 'attributes.underline') || _index.default.get(delta, 'insert.emoji'));
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
- if (isMarkdown) {
111
- var text = deltaToMarkdown(deltas);
112
- return this.renderMarkdown(text);
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 this.renderPlainText();
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.text
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";