@subiz/widget-v4 4.1.51 → 4.1.53

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 (44) hide show
  1. package/compiled_src/chatbox/VideoAttachments.js +1 -2
  2. package/compiled_src/util/common.js +0 -4
  3. package/dist/{841.js → 132.js} +628 -637
  4. package/dist/178.js +1 -1
  5. package/dist/18a02a9c54e.132.js +1 -0
  6. package/dist/18a02a9c54e.178.js +1 -0
  7. package/dist/18a02a9c54e.213.js +1 -0
  8. package/dist/18a02a9c54e.335.js +1 -0
  9. package/dist/{18c1a2c5a7f.362.js → 18a02a9c54e.362.js} +1 -1
  10. package/dist/18a02a9c54e.441.js +1 -0
  11. package/dist/18a02a9c54e.605.js +1 -0
  12. package/dist/{18c1a2c5a7f.782.js → 18a02a9c54e.782.js} +1 -1
  13. package/dist/18a02a9c54e.app.js +1 -0
  14. package/dist/{18c1a2c5a7f.index.html → 18a02a9c54e.index.html} +4 -4
  15. package/dist/{18c1a2c5a7f.library.html → 18a02a9c54e.library.html} +4 -4
  16. package/dist/18a02a9c54e.library.js +1 -0
  17. package/dist/{18c1a2c5a7f.preview.html → 18a02a9c54e.preview.html} +1 -1
  18. package/dist/18a02a9c54e.preview.js +1 -0
  19. package/dist/18a02a9c54e.screenshoot.js +1 -0
  20. package/dist/18a02a9c54e.webview.js +1 -0
  21. package/dist/213.js +102 -118
  22. package/dist/335.js +25 -25
  23. package/dist/362.js +1 -1
  24. package/dist/441.js +2855 -0
  25. package/dist/605.js +50 -50
  26. package/dist/782.js +1 -1
  27. package/dist/HASH +1 -1
  28. package/dist/malicious-app.js +3 -8
  29. package/dist/screenshoot.html +1 -1
  30. package/dist/screenshoot.js +430 -452
  31. package/package.json +1 -1
  32. package/src/chatbox/VideoAttachments.js +11 -9
  33. package/src/util/common.js +0 -5
  34. package/dist/18c1a2c5a7f.178.js +0 -1
  35. package/dist/18c1a2c5a7f.213.js +0 -1
  36. package/dist/18c1a2c5a7f.335.js +0 -1
  37. package/dist/18c1a2c5a7f.605.js +0 -1
  38. package/dist/18c1a2c5a7f.841.js +0 -1
  39. package/dist/18c1a2c5a7f.app.js +0 -1
  40. package/dist/18c1a2c5a7f.library.js +0 -1
  41. package/dist/18c1a2c5a7f.preview.js +0 -1
  42. package/dist/18c1a2c5a7f.screenshoot.js +0 -1
  43. package/dist/18c1a2c5a7f.webview.js +0 -1
  44. /package/dist/{18c1a2c5a7f.678.js → 18a02a9c54e.678.js} +0 -0
@@ -1,6 +1,6 @@
1
- (self["webpackChunk_subiz_widget_v4"] = self["webpackChunk_subiz_widget_v4"] || []).push([[841],{
1
+ (self["webpackChunk_subiz_widget_v4"] = self["webpackChunk_subiz_widget_v4"] || []).push([[132],{
2
2
 
3
- /***/ 8841:
3
+ /***/ 8132:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5
5
 
6
6
  "use strict";
@@ -25,7 +25,7 @@ var preact_module = __webpack_require__(6400);
25
25
  class Emoji extends common/* Com */.up {
26
26
  render() {
27
27
  var emojiCode = this.props.emojiCode;
28
- if (util/* default */.Z.size(emojiCode) < 3) return null;
28
+ if (util/* default.size */.Z.size(emojiCode) < 3) return null;
29
29
  var emojiText = emojiCode.replace(/:/g, '');
30
30
  return (0,preact_module.h)("i", {
31
31
  "data-tooltip": emojiCode,
@@ -51,11 +51,11 @@ class ChatButton extends common/* Com */.up {
51
51
  this.loadGreeting();
52
52
  this.props.store.onUpdate(this, _ => this.forceUpdate());
53
53
  this.props.store.onConvoEvent(this, ev => {
54
- if (util/* default */.Z.get(ev, 'type') !== 'message_sent') return;
55
- let bytype = util/* default */.Z.get(ev, 'by.type');
54
+ if (util/* default.get */.Z.get(ev, 'type') !== 'message_sent') return;
55
+ let bytype = util/* default.get */.Z.get(ev, 'by.type');
56
56
  if (bytype !== 'system' && bytype !== 'agent') return;
57
57
  let isquickreplies = false;
58
- util/* default */.Z.map(util/* default */.Z.get(ev, 'data.message.attachments', []), att => {
58
+ util/* default.map */.Z.map(util/* default.get */.Z.get(ev, 'data.message.attachments', []), att => {
59
59
  if (!att) return;
60
60
  if (att.type === 'quick_replies') {
61
61
  isquickreplies = true;
@@ -69,30 +69,30 @@ class ChatButton extends common/* Com */.up {
69
69
  });
70
70
  }
71
71
  fixMissingSetting(chatbox) {
72
- chatbox = util/* default */.Z.cloneDeep(chatbox);
73
- if (util/* default */.Z.get(chatbox, 'desktop_button.background_image_url')) {
72
+ chatbox = util/* default.cloneDeep */.Z.cloneDeep(chatbox);
73
+ if (util/* default.get */.Z.get(chatbox, 'desktop_button.background_image_url')) {
74
74
  chatbox.desktop_button.background_image_url = this.props.store.replaceFileUrl(chatbox.desktop_button.background_image_url);
75
75
  }
76
- if (util/* default */.Z.get(chatbox, 'desktop_button.background_mask_url')) {
76
+ if (util/* default.get */.Z.get(chatbox, 'desktop_button.background_mask_url')) {
77
77
  chatbox.desktop_button.background_mask_url = this.props.store.replaceFileUrl(chatbox.desktop_button.background_mask_url);
78
78
  }
79
- if (util/* default */.Z.get(chatbox, 'mobile_button.background_image_url')) {
79
+ if (util/* default.get */.Z.get(chatbox, 'mobile_button.background_image_url')) {
80
80
  chatbox.mobile_button.background_image_url = this.props.store.replaceFileUrl(chatbox.mobile_button.background_image_url);
81
81
  }
82
- if (util/* default */.Z.get(chatbox, 'mobile_button.background_mask_url')) {
82
+ if (util/* default.get */.Z.get(chatbox, 'mobile_button.background_mask_url')) {
83
83
  chatbox.mobile_button.background_mask_url = this.props.store.replaceFileUrl(chatbox.mobile_button.background_mask_url);
84
84
  }
85
85
  return chatbox;
86
86
  }
87
87
  render() {
88
88
  let accountSetting = this.props.plugin.chatbox;
89
- let position = util/* default */.Z.get(accountSetting, 'desktop_button.position') || 'right';
89
+ let position = util/* default.get */.Z.get(accountSetting, 'desktop_button.position') || 'right';
90
90
  if (this.props.store.isMobile()) {
91
- position = util/* default */.Z.get(accountSetting, 'mobile_button.position') || position;
92
- let hiddenButtonMobile = util/* default */.Z.get(accountSetting, 'mobile_button.hidden');
91
+ position = util/* default.get */.Z.get(accountSetting, 'mobile_button.position') || position;
92
+ let hiddenButtonMobile = util/* default.get */.Z.get(accountSetting, 'mobile_button.hidden');
93
93
  if (hiddenButtonMobile) return null;
94
94
  }
95
- let hiddenButtonDesktop = util/* default */.Z.get(accountSetting, 'desktop_button.hidden');
95
+ let hiddenButtonDesktop = util/* default.get */.Z.get(accountSetting, 'desktop_button.hidden');
96
96
  if (hiddenButtonDesktop) return null;
97
97
  let cls = 'widget-layout widget-layout--' + position;
98
98
  let opacity = this.state.opacity;
@@ -111,11 +111,11 @@ class ChatButton extends common/* Com */.up {
111
111
  });
112
112
  }
113
113
  ShowGreeting() {
114
- let greeting = util/* default */.Z.get(this.props.plugin, 'chatbox.greeting', {});
114
+ let greeting = util/* default.get */.Z.get(this.props.plugin, 'chatbox.greeting', {});
115
115
  let agentM = this.props.store.matchAgent('*');
116
116
  let byid = greeting.agent_id;
117
117
  if (!byid) byid = randomAgent(agentM).id;
118
- let text = this.props.t.i18n(util/* default */.Z.get(greeting, 'greeting', {})) || greeting.message;
118
+ let text = this.props.t.i18n(util/* default.get */.Z.get(greeting, 'greeting', {})) || greeting.message;
119
119
  this.setState({
120
120
  previewEvent: {
121
121
  by: {
@@ -139,9 +139,9 @@ class ChatButton extends common/* Com */.up {
139
139
  }
140
140
  loadGreeting() {
141
141
  let accountSetting = this.props.plugin.chatbox;
142
- if (new util/* default */.Z.Date().getTime() - this.props.store.matchClosePreviewAt() < Ms30Mins) return;
143
- let greeting = util/* default */.Z.get(accountSetting, 'greeting', {});
144
- let text = this.props.t.i18n(util/* default */.Z.get(greeting, 'greeting', {})) || greeting.message;
142
+ if (new util/* default.Date */.Z.Date().getTime() - this.props.store.matchClosePreviewAt() < Ms30Mins) return;
143
+ let greeting = util/* default.get */.Z.get(accountSetting, 'greeting', {});
144
+ let text = this.props.t.i18n(util/* default.get */.Z.get(greeting, 'greeting', {})) || greeting.message;
145
145
  if (!text || !greeting.enabled) {
146
146
  this.setState({
147
147
  previewEvent: {}
@@ -152,8 +152,8 @@ class ChatButton extends common/* Com */.up {
152
152
  }
153
153
  onClick() {
154
154
  let lastview = this.props.store.matchLastview();
155
- if (util/* default */.Z.get(lastview, 'view')) {
156
- if (lastview.view !== 'list' || util/* default */.Z.size(this.props.store.matchConvo('*')) > 0) {
155
+ if (util/* default.get */.Z.get(lastview, 'view')) {
156
+ if (lastview.view !== 'list' || util/* default.size */.Z.size(this.props.store.matchConvo('*')) > 0) {
157
157
  return this.props.onClick && this.props.onClick(Object.assign({}, lastview.opts, {
158
158
  view: lastview.view
159
159
  }));
@@ -162,10 +162,10 @@ class ChatButton extends common/* Com */.up {
162
162
  return this.onPreviewClick();
163
163
  }
164
164
  onPreviewClick(e) {
165
- let cid = util/* default */.Z.convoOfEv(this.state.previewEvent);
165
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(this.state.previewEvent);
166
166
  if (!cid) {
167
- let convos = util/* default */.Z.map(this.props.store.matchConvo('*'));
168
- let convo = util/* default */.Z.find(convos, convo => !util/* default */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
167
+ let convos = util/* default.map */.Z.map(this.props.store.matchConvo('*'));
168
+ let convo = util/* default.find */.Z.find(convos, convo => !util/* default.isConvoSeen */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
169
169
  if (!convo) convo = convos[0] || {};
170
170
  cid = convo.id;
171
171
  }
@@ -185,13 +185,13 @@ class ChatButton extends common/* Com */.up {
185
185
  renderPreview() {
186
186
  let account = this.props.store.matchAccount();
187
187
  let accountSetting = this.props.plugin.chatbox;
188
- let byid = util/* default */.Z.get(this.state.previewEvent, 'by.display_id', util/* default */.Z.get(this.state.previewEvent, 'by.id'));
189
- let agent = util/* default */.Z.cloneDeep(this.props.store.matchAgent(byid)) || {};
190
- agent.fullname = agent.fullname || util/* default */.Z.get(account, 'name') || this.props.t('agent');
188
+ let byid = util/* default.get */.Z.get(this.state.previewEvent, 'by.display_id', util/* default.get */.Z.get(this.state.previewEvent, 'by.id'));
189
+ let agent = util/* default.cloneDeep */.Z.cloneDeep(this.props.store.matchAgent(byid)) || {};
190
+ agent.fullname = agent.fullname || util/* default.get */.Z.get(account, 'name') || this.props.t('agent');
191
191
  agent.avatar_url = agent.avatar_url || defaultAvatar;
192
- let position = util/* default */.Z.get(accountSetting, 'desktop_button.position') || 'right';
192
+ let position = util/* default.get */.Z.get(accountSetting, 'desktop_button.position') || 'right';
193
193
  if (this.props.store.isMobile()) {
194
- position = util/* default */.Z.get(accountSetting, 'mobile_button.position') || position;
194
+ position = util/* default.get */.Z.get(accountSetting, 'mobile_button.position') || position;
195
195
  }
196
196
  if (accountSetting && accountSetting.hide_agent_profile) {
197
197
  agent = Object.assign({}, account, {
@@ -202,7 +202,7 @@ class ChatButton extends common/* Com */.up {
202
202
  let cls = 'widget-preview widget-preview--' + position;
203
203
  if (!this.state.displayPreview) cls += ' widget-preview--hidden';
204
204
  var tags = this.renderMessagePreview(this.state.previewEvent, this.props.t('sent_you_a_message'));
205
- if (util/* default */.Z.size(tags) === 0) cls += ' widget-preview--hidden';
205
+ if (util/* default.size */.Z.size(tags) === 0) cls += ' widget-preview--hidden';
206
206
  return (0,preact_module.h)("div", {
207
207
  class: cls
208
208
  }, (0,preact_module.h)("div", {
@@ -245,16 +245,16 @@ class ChatButton extends common/* Com */.up {
245
245
  renderButton() {
246
246
  let accountSetting = this.props.plugin.chatbox;
247
247
  accountSetting = this.fixMissingSetting(accountSetting);
248
- let imgsrc = util/* default */.Z.get(accountSetting, 'desktop_button.background_image_url') || util/* default */.Z.get(accountSetting, 'desktop_button.background_mask_url') || defaultBubble;
249
- let background = util/* default */.Z.get(accountSetting, 'background') || DEF_BG;
250
- let position = util/* default */.Z.get(accountSetting, 'desktop_button.position') || 'right';
251
- let imgurl = util/* default */.Z.get(accountSetting, 'desktop_button.background_image_url');
252
- let maskurl = util/* default */.Z.get(accountSetting, 'desktop_button.background_mask_url');
248
+ let imgsrc = util/* default.get */.Z.get(accountSetting, 'desktop_button.background_image_url') || util/* default.get */.Z.get(accountSetting, 'desktop_button.background_mask_url') || defaultBubble;
249
+ let background = util/* default.get */.Z.get(accountSetting, 'background') || DEF_BG;
250
+ let position = util/* default.get */.Z.get(accountSetting, 'desktop_button.position') || 'right';
251
+ let imgurl = util/* default.get */.Z.get(accountSetting, 'desktop_button.background_image_url');
252
+ let maskurl = util/* default.get */.Z.get(accountSetting, 'desktop_button.background_mask_url');
253
253
  if (this.props.store.isMobile()) {
254
- imgsrc = util/* default */.Z.get(accountSetting, 'mobile_button.background_image_url') || util/* default */.Z.get(accountSetting, 'mobile_button.background_mask_url') || imgsrc;
255
- position = util/* default */.Z.get(accountSetting, 'mobile_button.position') || position;
256
- let mobileimgurl = util/* default */.Z.get(accountSetting, 'mobile_button.background_image_url');
257
- let mobilemaskurl = util/* default */.Z.get(accountSetting, 'mobile_button.background_mask_url');
254
+ imgsrc = util/* default.get */.Z.get(accountSetting, 'mobile_button.background_image_url') || util/* default.get */.Z.get(accountSetting, 'mobile_button.background_mask_url') || imgsrc;
255
+ position = util/* default.get */.Z.get(accountSetting, 'mobile_button.position') || position;
256
+ let mobileimgurl = util/* default.get */.Z.get(accountSetting, 'mobile_button.background_image_url');
257
+ let mobilemaskurl = util/* default.get */.Z.get(accountSetting, 'mobile_button.background_mask_url');
258
258
  if (mobileimgurl || mobilemaskurl) {
259
259
  imgurl = mobileimgurl;
260
260
  maskurl = mobilemaskurl;
@@ -350,14 +350,14 @@ class ChatButton extends common/* Com */.up {
350
350
  }
351
351
  renderMessagePreview(ev, defmsg) {
352
352
  defmsg = defmsg || 'Sent you a message';
353
- let message = util/* default */.Z.get(ev, 'data.message.text');
354
- var format = util/* default */.Z.get(ev, 'data.message.format');
353
+ let message = util/* default.get */.Z.get(ev, 'data.message.text');
354
+ var format = util/* default.get */.Z.get(ev, 'data.message.format');
355
355
  if (format === 'delta') return this.renderDeltaMessagePreview(ev, defmsg);
356
356
  if (format && format !== 'plaintext') message = defmsg;
357
- if (!message && util/* default */.Z.size(util/* default */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
357
+ if (!message && util/* default.size */.Z.size(util/* default.get */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
358
358
  if (!message) return null;
359
- let byType = util/* default */.Z.get(ev, 'by.type');
360
- var tags = util/* default */.Z.extractText(message).map(tag => {
359
+ let byType = util/* default.get */.Z.get(ev, 'by.type');
360
+ var tags = util/* default.extractText */.Z.extractText(message).map(tag => {
361
361
  if (tag.type === 'emoji') return (0,preact_module.h)(Emoji, {
362
362
  emojiCode: tag.text,
363
363
  byType: byType
@@ -368,17 +368,17 @@ class ChatButton extends common/* Com */.up {
368
368
  }
369
369
  renderDeltaMessagePreview(ev, defmsg) {
370
370
  defmsg = defmsg || 'Sent you a message';
371
- let message = util/* default */.Z.get(ev, 'data.message.quill_delta');
372
- if (!message && util/* default */.Z.size(util/* default */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
371
+ let message = util/* default.get */.Z.get(ev, 'data.message.quill_delta');
372
+ if (!message && util/* default.size */.Z.size(util/* default.get */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
373
373
  if (!message) return;
374
- let quilldeltas = util/* default */.Z.parseJSON(message) || {};
375
- if (!quilldeltas || util/* default */.Z.size(quilldeltas.ops) === 0) return null;
376
- let $deltas = util/* default */.Z.map(quilldeltas.ops, delta => {
374
+ let quilldeltas = util/* default.parseJSON */.Z.parseJSON(message) || {};
375
+ if (!quilldeltas || util/* default.size */.Z.size(quilldeltas.ops) === 0) return null;
376
+ let $deltas = util/* default.map */.Z.map(quilldeltas.ops, delta => {
377
377
  let html = '';
378
378
  let insert = delta.insert;
379
379
  let attributes = delta.attributes;
380
380
  if (insert.dynamicField) {
381
- return util/* default */.Z.get(insert, 'dynamicField.text', '');
381
+ return util/* default.get */.Z.get(insert, 'dynamicField.text', '');
382
382
  }
383
383
  if (insert.emoji) return (0,preact_module.h)(Emoji, {
384
384
  emojiCode: `:${insert.emoji}:`
@@ -403,8 +403,8 @@ class ChatButton extends common/* Com */.up {
403
403
  }
404
404
  }
405
405
  function randomAgent(agentM) {
406
- var agents = util/* default */.Z.filter(agentM, ag => ag.type === 'agent');
407
- return agents[Math.floor(Math.random() * util/* default */.Z.size(agents))] || {};
406
+ var agents = util/* default.filter */.Z.filter(agentM, ag => ag.type === 'agent');
407
+ return agents[Math.floor(Math.random() * util/* default.size */.Z.size(agents))] || {};
408
408
  }
409
409
  const Ms30Mins = 30 * 60 * 1000;
410
410
  const DEF_BG_URL = 'https://vcdn.subiz-cdn.com/file/bubble_11.svg?v=5';
@@ -420,20 +420,20 @@ class PoweredBy extends common/* Com */.up {
420
420
  render() {
421
421
  if (this.props.store.isMobile()) return null;
422
422
  let user = this.props.store.matchUser() || {};
423
- var link = `https://subiz.com.vn/?utm_source=${window.location.host || `id-${user.account_id}`}&utm_medium=widget&utm_campaign=widget_referral`;
423
+ var link = `https://subiz.com.vn/?utm_source=id-${user.account_id}&utm_medium=widget&utm_campaign=widget_referral`;
424
424
  return (0,preact_module.h)("div", {
425
425
  class: "poweredby"
426
426
  }, (0,preact_module.h)("a", {
427
427
  href: link,
428
428
  class: "poweredby--text",
429
429
  target: "_blank",
430
- title: "Subiz"
430
+ rel: "noreferrer"
431
431
  }, (0,preact_module.h)("img", {
432
432
  width: "14",
433
433
  height: "10",
434
434
  class: "poweredby--subiz-logo",
435
435
  src: logo,
436
- alt: "power by subiz"
436
+ alt: "power by"
437
437
  }), " Subiz"));
438
438
  }
439
439
  }
@@ -466,17 +466,17 @@ class AgentsAvatar extends common/* Com */.up {
466
466
  })));
467
467
  }
468
468
  let agentM = this.props.store.matchAgent('*');
469
- var agents = util/* default */.Z.map(this.props.agent_ids, id => agentM[id]);
470
- if (this.props.agent_ids === undefined || util/* default */.Z.size(this.props.agent_ids) === 0) {
471
- var agids = util/* default */.Z.get(accountSetting, 'header.agent_ids', []);
472
- agids = util/* default */.Z.filter(agids, id => !!agentM[id]);
469
+ var agents = util/* default.map */.Z.map(this.props.agent_ids, id => agentM[id]);
470
+ if (this.props.agent_ids === undefined || util/* default.size */.Z.size(this.props.agent_ids) === 0) {
471
+ var agids = util/* default.get */.Z.get(accountSetting, 'header.agent_ids', []);
472
+ agids = util/* default.filter */.Z.filter(agids, id => !!agentM[id]);
473
473
  if (agids.length !== 0) {
474
- agents = util/* default */.Z.map(agids, id => agentM[id]);
474
+ agents = util/* default.map */.Z.map(agids, id => agentM[id]);
475
475
  } else {
476
- agents = util/* default */.Z.filter(agentM, agent => agent.type === 'agent');
476
+ agents = util/* default.filter */.Z.filter(agentM, agent => agent.type === 'agent');
477
477
  }
478
478
  }
479
- agents = util/* default */.Z.filter(agents, ag => !!ag);
479
+ agents = util/* default.filter */.Z.filter(agents, ag => !!ag);
480
480
  if (agents.length === 0) {
481
481
  return (0,preact_module.h)("div", {
482
482
  class: `group-avatar group-avatar--${mode}`
@@ -590,7 +590,7 @@ class Header extends common/* Com */.up {
590
590
  let renderSocial = false;
591
591
  let renderTeam = false;
592
592
  let accSetting = this.props.plugin.chatbox || {};
593
- let layout = util/* default */.Z.get(accSetting, 'header.layout');
593
+ let layout = util/* default.get */.Z.get(accSetting, 'header.layout');
594
594
  let renderCollapsed = this.props.view !== 'list' && headerMode === 'collapsed';
595
595
  let renderClassic = !renderCollapsed && layout === 'classic';
596
596
  if (renderCollapsed || layout == 'classic') {
@@ -608,9 +608,9 @@ class Header extends common/* Com */.up {
608
608
  let accSetting = this.props.plugin.chatbox || {};
609
609
  let acc = this.props.store.matchAccount() || {};
610
610
  let state = acc.is_online ? this.props.t('agent_online') : this.props.t('agent_offline');
611
- let tagline = util/* default */.Z.get(accSetting, `tagline`, {});
611
+ let tagline = util/* default.get */.Z.get(accSetting, `tagline`, {});
612
612
  let desc = this.props.t.i18n(tagline) || accSetting.introduction || state;
613
- let agentIdsJoined = util/* default */.Z.map(this.getAgentJoined(this.props.cid), agent => agent.id);
613
+ let agentIdsJoined = util/* default.map */.Z.map(this.getAgentJoined(this.props.cid), agent => agent.id);
614
614
  let cls = 'widget-header--inner widget-header--inner--collapsed';
615
615
  if (!show) cls += ' widget-header--inner--hidden';
616
616
  let $back = null;
@@ -636,8 +636,8 @@ class Header extends common/* Com */.up {
636
636
  renderSocial(show) {
637
637
  let accSetting = this.props.plugin.chatbox || {};
638
638
  let acc = this.props.store.matchAccount() || {};
639
- let links = util/* default */.Z.get(accSetting, 'header.links') || [];
640
- let $links = util/* default */.Z.map(links, link => {
639
+ let links = util/* default.get */.Z.get(accSetting, 'header.links') || [];
640
+ let $links = util/* default.map */.Z.map(links, link => {
641
641
  if (!link.url || !link.type || link.type === 'subiz') return null;
642
642
  if (link.type === 'email') {
643
643
  return (0,preact_module.h)("div", null, (0,preact_module.h)("a", {
@@ -650,16 +650,17 @@ class Header extends common/* Com */.up {
650
650
  return (0,preact_module.h)("div", null, (0,preact_module.h)("a", {
651
651
  href: link.url,
652
652
  target: "_blank",
653
- title: link.url
653
+ title: link.url,
654
+ rel: "noreferrer"
654
655
  }, (0,preact_module.h)("i", {
655
656
  class: `social__links-logo social__links-logo--${link.type}`
656
657
  })));
657
658
  });
658
659
  const DEFTEAMINTO = `Chúng tôi sẵn sàng trợ giúp :wave:.
659
660
  Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi của bạn`;
660
- let tagline = util/* default */.Z.get(accSetting, `tagline`, {});
661
+ let tagline = util/* default.get */.Z.get(accSetting, `tagline`, {});
661
662
  var teamintro = this.props.t.i18n(tagline) || accSetting.introduction || this.props.t('team_intro') || DEFTEAMINTO;
662
- var tags = util/* default */.Z.extractText(teamintro).map(tag => {
663
+ var tags = util/* default.extractText */.Z.extractText(teamintro).map(tag => {
663
664
  if (tag.type === 'emoji') return (0,preact_module.h)(Emoji, {
664
665
  emojiCode: tag.text
665
666
  });
@@ -680,7 +681,7 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
680
681
  }, (0,preact_module.h)("img", {
681
682
  alt: "logo",
682
683
  class: "social__account_logo",
683
- src: this.props.store.replaceFileUrl(util/* default */.Z.get(acc, 'logo_url'))
684
+ src: this.props.store.replaceFileUrl(util/* default.get */.Z.get(acc, 'logo_url'))
684
685
  }), (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
685
686
  class: "social__introduction"
686
687
  }, tags), (0,preact_module.h)("div", {
@@ -691,9 +692,9 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
691
692
  let accSetting = this.props.plugin.chatbox || {};
692
693
  const DEFTEAMINTO = `Chúng tôi sẵn sàng trợ giúp :wave:.
693
694
  Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi của bạn`;
694
- let tagline = util/* default */.Z.get(accSetting, `tagline`, {});
695
+ let tagline = util/* default.get */.Z.get(accSetting, `tagline`, {});
695
696
  var teamintro = this.props.t.i18n(tagline) || accSetting.introduction || this.props.t('team_intro') || DEFTEAMINTO;
696
- var tags = util/* default */.Z.extractText(teamintro).map(tag => {
697
+ var tags = util/* default.extractText */.Z.extractText(teamintro).map(tag => {
697
698
  if (tag.type === 'emoji') return (0,preact_module.h)(Emoji, {
698
699
  emojiCode: tag.text
699
700
  });
@@ -727,19 +728,19 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
727
728
  let accSetting = this.props.plugin.chatbox || {};
728
729
  let acc = this.props.store.matchAccount() || {};
729
730
  let agentsJoined = this.getAgentJoined(this.props.cid);
730
- let caption = util/* default */.Z.get(this.props.plugin, 'chatbox.caption', {});
731
+ let caption = util/* default.get */.Z.get(this.props.plugin, 'chatbox.caption', {});
731
732
  let title = this.props.t.i18n(caption) || accSetting.title;
732
733
  return getJoinedNameMember(agentsJoined) || title || acc.name || this.props.t('widget_title');
733
734
  }
734
735
  renderBackButton() {
735
736
  let allconvos = this.props.store.matchConvo('*');
736
- if (util/* default */.Z.size(allconvos) === 0) return null;
737
+ if (util/* default.size */.Z.size(allconvos) === 0) return null;
737
738
  var $unreadcount = null;
738
739
  let user = this.props.store.matchUser();
739
740
  let unreadcount = 0;
740
- util/* default */.Z.map(allconvos, convo => {
741
+ util/* default.map */.Z.map(allconvos, convo => {
741
742
  if (convo.id == this.props.cid) return;
742
- if (!util/* default */.Z.isConvoSeen(convo, user.id)) unreadcount++;
743
+ if (!util/* default.isConvoSeen */.Z.isConvoSeen(convo, user.id)) unreadcount++;
743
744
  });
744
745
  if (unreadcount !== 0) {
745
746
  $unreadcount = (0,preact_module.h)("span", {
@@ -778,14 +779,14 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
778
779
  }
779
780
  getAgentJoined(cid) {
780
781
  var convo = this.props.store.matchConvo(cid) || {};
781
- let joined = util/* default */.Z.filter(convo.members, mem => mem.type === 'agent' && mem.membership === 'active');
782
+ let joined = util/* default.filter */.Z.filter(convo.members, mem => mem.type === 'agent' && mem.membership === 'active');
782
783
  return joined;
783
784
  }
784
785
  }
785
786
  let getJoinedNameMember = agents => {
786
- agents = util/* default */.Z.filter(agents, agent => util/* default */.Z.trim(agent.fullname));
787
+ agents = util/* default.filter */.Z.filter(agents, agent => util/* default.trim */.Z.trim(agent.fullname));
787
788
  if (!agents.length) return null;
788
- return util/* default */.Z.map(agents, agent => agent.fullname).join(', ');
789
+ return util/* default.map */.Z.map(agents, agent => agent.fullname).join(', ');
789
790
  };
790
791
  ;// CONCATENATED MODULE: ./src/chatbox/MessageInput.js
791
792
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -798,22 +799,22 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
798
799
  class MessageInput extends common/* Com */.up {
799
800
  constructor(props) {
800
801
  super(props);
801
- _defineProperty(this, "onEnter", util/* default */.Z.throttle(function () {
802
+ _defineProperty(this, "onEnter", util/* default.throttle */.Z.throttle(function () {
802
803
  this.submitMessage();
803
804
  }, 50));
804
805
  this.refFileInput = (0,preact_module/* createRef */.Vf)();
805
806
  this.refMessageInput = (0,preact_module/* createRef */.Vf)();
806
807
  this.props.store.onUpdate(this, _ => this.forceUpdate());
807
808
  this.props.store.onConvoEvent(this, ev => {
808
- var evcid = util/* default */.Z.convoOfEv(ev);
809
+ var evcid = util/* default.convoOfEv */.Z.convoOfEv(ev);
809
810
  if (evcid !== this.props.cid) return;
810
811
  this.forceUpdate();
811
812
  });
812
813
  this.focus();
813
- this._forceUpdate = util/* default */.Z.throttle(() => {
814
+ this._forceUpdate = util/* default.throttle */.Z.throttle(() => {
814
815
  this.forceUpdate();
815
816
  }, 500);
816
- this.resizeInput = util/* default */.Z.throttle(function () {
817
+ this.resizeInput = util/* default.throttle */.Z.throttle(function () {
817
818
  const input = this.refMessageInput.current;
818
819
  input.style.setProperty('height', '1em', 'important');
819
820
  const height = Math.min(200, input.scrollHeight);
@@ -833,7 +834,7 @@ class MessageInput extends common/* Com */.up {
833
834
  class: "message-input--button message-input--attachment-button",
834
835
  onClick: e => this.selectFile(e)
835
836
  }));
836
- var msg = util/* default */.Z.trim(this.refMessageInput.current && this.refMessageInput.current.value);
837
+ var msg = util/* default.trim */.Z.trim(this.refMessageInput.current && this.refMessageInput.current.value);
837
838
  if (msg.length > 0) {
838
839
  buttons = (0,preact_module.h)("div", {
839
840
  class: "d-flex flex-row align-self-end"
@@ -872,30 +873,30 @@ class MessageInput extends common/* Com */.up {
872
873
  }
873
874
  hasUnfinishRequiredFormOrLock() {
874
875
  let convo = this.props.store.matchConvo(this.props.cid);
875
- if (util/* default */.Z.get(convo, 'state') === 'ended') return false;
876
+ if (util/* default.get */.Z.get(convo, 'state') === 'ended') return false;
876
877
  let events = this.props.store.listEvents(this.props.cid);
877
- events = util/* default */.Z.orderBy(events, 'created', 'desc').filter(ev => ev.type === 'message_sent');
878
- let attachments = util/* default */.Z.get(events[0], 'data.message.attachments', []);
879
- let lock = util/* default */.Z.find(attachments, att => util/* default */.Z.get(att, 'lock_input'));
878
+ events = util/* default.orderBy */.Z.orderBy(events, 'created', 'desc').filter(ev => ev.type === 'message_sent');
879
+ let attachments = util/* default.get */.Z.get(events[0], 'data.message.attachments', []);
880
+ let lock = util/* default.find */.Z.find(attachments, att => util/* default.get */.Z.get(att, 'lock_input'));
880
881
  if (lock) return true;
881
882
  var last_agent_sent;
882
883
  for (let ev of events) {
883
- if (util/* default */.Z.get(ev, 'by.type') === 'user') continue;
884
+ if (util/* default.get */.Z.get(ev, 'by.type') === 'user') continue;
884
885
  last_agent_sent = ev;
885
886
  break;
886
887
  }
887
- attachments = util/* default */.Z.get(last_agent_sent, 'data.message.attachments', []);
888
- let pendingForms = util/* default */.Z.filter(attachments, att => {
888
+ attachments = util/* default.get */.Z.get(last_agent_sent, 'data.message.attachments', []);
889
+ let pendingForms = util/* default.filter */.Z.filter(attachments, att => {
889
890
  if (!att) return false;
890
891
  if (att.type !== 'form' && att.type !== 'ask_info_form') return false;
891
892
  var form = att.form;
892
893
  if (!form) return false;
893
- var state = util/* default */.Z.parseJSON(form.state) || {};
894
+ var state = util/* default.parseJSON */.Z.parseJSON(form.state) || {};
894
895
  if (!state.require_finished && att.type !== 'ask_info_form') return false;
895
896
  if (isSummited(att.form)) return false;
896
897
  return true;
897
898
  });
898
- return util/* default */.Z.size(pendingForms) > 0;
899
+ return util/* default.size */.Z.size(pendingForms) > 0;
899
900
  }
900
901
  renderEmojiPopup() {
901
902
  if (!this.state.openEmoji) return null;
@@ -999,10 +1000,10 @@ class MessageInput extends common/* Com */.up {
999
1000
  focus() {
1000
1001
  if (this.props.disabled) return;
1001
1002
  this.refMessageInput.current && this.refMessageInput.current.focus();
1002
- util/* default */.Z.setTimeout(() => {
1003
+ util/* default.setTimeout */.Z.setTimeout(() => {
1003
1004
  this.refMessageInput.current && this.refMessageInput.current.focus();
1004
1005
  });
1005
- util/* default */.Z.setTimeout(() => {
1006
+ util/* default.setTimeout */.Z.setTimeout(() => {
1006
1007
  this.refMessageInput.current && this.refMessageInput.current.focus();
1007
1008
  }, 100);
1008
1009
  }
@@ -1052,9 +1053,9 @@ class MessageInput extends common/* Com */.up {
1052
1053
  $input.value = '';
1053
1054
  }
1054
1055
  _sendFile(files) {
1055
- if (util/* default */.Z.size(files) === 0) return;
1056
+ if (util/* default.size */.Z.size(files) === 0) return;
1056
1057
  if (this.props.disabled) return;
1057
- let attachments = util/* default */.Z.map(files, file => {
1058
+ let attachments = util/* default.map */.Z.map(files, file => {
1058
1059
  return {
1059
1060
  type: 'file',
1060
1061
  mimetype: file.type,
@@ -1068,7 +1069,7 @@ class MessageInput extends common/* Com */.up {
1068
1069
  });
1069
1070
  }
1070
1071
  async submitMessage(msg) {
1071
- msg = msg || util/* default */.Z.trim(this.refMessageInput.current.value) || '';
1072
+ msg = msg || util/* default.trim */.Z.trim(this.refMessageInput.current.value) || '';
1072
1073
  if (!msg) return;
1073
1074
  if (this.props.disabled) return;
1074
1075
  this.refMessageInput.current.value = '';
@@ -1087,7 +1088,7 @@ class MessageInput extends common/* Com */.up {
1087
1088
  }
1088
1089
  pasteImage(event) {
1089
1090
  if (!window.File || !window.FileReader || !window.FileList || !window.Blob) return;
1090
- let now = new util/* default */.Z.Date();
1091
+ let now = new util/* default.Date */.Z.Date();
1091
1092
  let year = now.getFullYear();
1092
1093
  let month = now.getMonth() + 1;
1093
1094
  let date = now.getDate();
@@ -1109,124 +1110,24 @@ class MessageInput extends common/* Com */.up {
1109
1110
  }
1110
1111
  }
1111
1112
  function isSummited(form) {
1112
- let fields = util/* default */.Z.get(form, 'fields') || [];
1113
- return util/* default */.Z.find(fields, field => !!field.answered);
1113
+ let fields = util/* default.get */.Z.get(form, 'fields') || [];
1114
+ return util/* default.find */.Z.find(fields, field => !!field.answered);
1114
1115
  }
1115
1116
  ;// CONCATENATED MODULE: ./src/chatbox/ImageAttachments.js
1116
- function ImageAttachments_defineProperty(obj, key, value) { key = ImageAttachments_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1117
- function ImageAttachments_toPropertyKey(arg) { var key = ImageAttachments_toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
1118
- function ImageAttachments_toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1119
1117
 
1120
1118
 
1121
1119
 
1122
1120
  class ImageAttachment extends common/* Com */.up {
1123
1121
  constructor(props) {
1124
1122
  super(props);
1125
- ImageAttachments_defineProperty(this, "containerRef", (0,preact_module/* createRef */.Vf)());
1126
- this.setState({
1127
- ready: false,
1128
- errorIndecies: []
1129
- });
1130
- }
1131
- componentDidMount() {
1132
- this.setImageFrameDimension();
1133
- }
1134
- setImageFrameDimension() {
1135
- const MAX_HEIGHT = 240;
1136
- const DEFAULT_MAX_WIDTH = 267;
1137
- let $container = this.containerRef.current;
1138
- this.frameWidth = $container ? $container.offsetWidth : DEFAULT_MAX_WIDTH;
1139
- this.frameHeight = MAX_HEIGHT;
1140
- this.setState({
1141
- ready: true
1142
- });
1143
- }
1144
- onErrorImage(index) {
1145
- let indecies = this.state.errorIndecies || [];
1146
- indecies.push(index);
1147
- indecies = [...indecies];
1148
- this.setState({
1149
- errorIndecies: indecies
1150
- });
1151
- }
1152
- calculateImageDimension(image) {
1153
- if (!image.width || !image.height) return {
1154
- width: this.frameWidth,
1155
- height: this.frameHeight
1156
- };
1157
- let ratio = image.width / image.height - this.frameWidth / this.frameHeight;
1158
- if (ratio >= 0) {
1159
- let width = this.frameWidth;
1160
- let height = image.height * this.frameWidth / image.width;
1161
- height = Math.round(height);
1162
- return {
1163
- width,
1164
- height
1165
- };
1166
- } else {
1167
- let height = this.frameHeight;
1168
- let width = image.width * this.frameHeight / image.height;
1169
- width = Math.round(width);
1170
- return {
1171
- width,
1172
- height
1173
- };
1174
- }
1175
- }
1176
- renderImage(image, index) {
1177
- if (!this.state.ready) {
1178
- return;
1179
- }
1180
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1181
- if (!image.width || !image.height) {
1182
- return (0,preact_module.h)("div", {
1183
- class: `image-attachment image-attachment--${byType}`
1184
- }, (0,preact_module.h)("a", {
1185
- href: this.props.store.replaceFileUrl(image.url),
1186
- target: "_blank"
1187
- }, (0,preact_module.h)("img", {
1188
- alt: true,
1189
- class: "image-attachment__img",
1190
- src: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
1191
- onload: e => this.props.onLoad && this.props.onLoad()
1192
- })));
1193
- }
1194
- let {
1195
- width,
1196
- height
1197
- } = this.calculateImageDimension(image);
1198
- let url = this.props.store.replaceFileUrl(image.thumbnail_url || image.url);
1199
- let trueUrl = this.props.store.replaceFileUrl(image.url);
1200
- if (this.state.errorIndecies.includes(index)) {
1201
- url = __webpack_require__(9270);
1202
- trueUrl = url;
1203
- }
1204
- return (0,preact_module.h)("div", {
1205
- class: `image-attachment image-attachment--${byType}`
1206
- }, (0,preact_module.h)("a", {
1207
- href: trueUrl,
1208
- target: "_blank"
1209
- }, (0,preact_module.h)("img", {
1210
- alt: true,
1211
- ref: el => {
1212
- if (el) {
1213
- el.style.setProperty('width', `${width}px`, 'important');
1214
- el.style.setProperty('height', `${height}px`, 'important');
1215
- }
1216
- },
1217
- class: "image-attachment__img",
1218
- src: url,
1219
- onload: e => this.props.onLoad && this.props.onLoad(),
1220
- onerror: e => this.onErrorImage(index)
1221
- })));
1222
1123
  }
1223
1124
  render() {
1224
- var attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
1125
+ var attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1225
1126
  var images = [];
1226
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1227
- util/* default */.Z.each(attachments, (att, i) => {
1127
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
1128
+ util/* default.each */.Z.each(attachments, (att, i) => {
1228
1129
  if (!att) return;
1229
- if (!util/* default */.Z.includes(att.mimetype, 'image')) return;
1130
+ if (!util/* default.includes */.Z.includes(att.mimetype, 'image')) return;
1230
1131
  if (!att.url) return;
1231
1132
  var uri = att.url;
1232
1133
  if (!uri.startsWith('https://') && !uri.startsWith('http://') && !uri.startsWith('content://') && !uri.startsWith('data:')) {
@@ -1235,16 +1136,24 @@ class ImageAttachment extends common/* Com */.up {
1235
1136
  images.push(att);
1236
1137
  });
1237
1138
  if (images.length === 0) return null;
1238
- let $images = util/* default */.Z.map(images, (image, index) => this.renderImage(image, index));
1139
+ var $images = util/* default.map */.Z.map(images, (image, index) => (0,preact_module.h)("div", {
1140
+ class: `image-attachment image-attachment--${byType}`
1141
+ }, (0,preact_module.h)("a", {
1142
+ href: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
1143
+ target: "_blank"
1144
+ }, (0,preact_module.h)("img", {
1145
+ alt: true,
1146
+ class: "image-attachment__img",
1147
+ src: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
1148
+ onload: e => this.props.onLoad && this.props.onLoad()
1149
+ }))));
1239
1150
  if (byType === 'agent') {
1240
1151
  return (0,preact_module.h)("div", {
1241
- class: "message-agent",
1242
- ref: this.containerRef
1152
+ class: "message-agent"
1243
1153
  }, $images);
1244
1154
  } else {
1245
1155
  return (0,preact_module.h)("div", {
1246
- class: "message-user message-user-images-container",
1247
- ref: this.containerRef
1156
+ class: "message-user"
1248
1157
  }, $images);
1249
1158
  }
1250
1159
  }
@@ -1258,15 +1167,15 @@ class AudioAttachments extends common/* Com */.up {
1258
1167
  super(props);
1259
1168
  }
1260
1169
  render() {
1261
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1262
- var attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
1170
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
1171
+ var attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1263
1172
  var audios = [];
1264
- util/* default */.Z.each(attachments, (att, i) => {
1173
+ util/* default.each */.Z.each(attachments, (att, i) => {
1265
1174
  if (!att) return;
1266
- if (util/* default */.Z.includes(att.mimetype, 'audio')) audios.push(att);
1175
+ if (util/* default.includes */.Z.includes(att.mimetype, 'audio')) audios.push(att);
1267
1176
  });
1268
1177
  if (audios.length === 0) return null;
1269
- var $audios = util/* default */.Z.map(audios, (audio, index) => {
1178
+ var $audios = util/* default.map */.Z.map(audios, (audio, index) => {
1270
1179
  return (0,preact_module.h)("div", {
1271
1180
  key: index,
1272
1181
  class: `audio-attachment audio-attachment--${byType}`
@@ -1289,18 +1198,18 @@ class AudioAttachments extends common/* Com */.up {
1289
1198
 
1290
1199
  class FileAttachments extends common/* Com */.up {
1291
1200
  render() {
1292
- var byType = util/* default */.Z.get(this.props.ev, 'by.type', 'agent');
1293
- var attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
1201
+ var byType = util/* default.get */.Z.get(this.props.ev, 'by.type', 'agent');
1202
+ var attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1294
1203
  var files = [];
1295
- util/* default */.Z.each(attachments, att => {
1204
+ util/* default.each */.Z.each(attachments, att => {
1296
1205
  if (!att) return;
1297
1206
  if (!att.url && !att._file) return;
1298
- if (!util/* default */.Z.includes(att.mimetype, 'video') && !util/* default */.Z.includes(att.mimetype, 'audio') && !util/* default */.Z.includes(att.mimetype, 'image') && att.type !== 'button' && att.type !== 'quick_replies' && att.type !== 'form' && att.type !== 'form_submit') {
1207
+ if (!util/* default.includes */.Z.includes(att.mimetype, 'video') && !util/* default.includes */.Z.includes(att.mimetype, 'audio') && !util/* default.includes */.Z.includes(att.mimetype, 'image') && att.type !== 'button' && att.type !== 'quick_replies' && att.type !== 'form' && att.type !== 'form_submit') {
1299
1208
  files.push(att);
1300
1209
  }
1301
1210
  });
1302
1211
  if (files.length === 0) return null;
1303
- var $files = util/* default */.Z.map(files, (file, index) => {
1212
+ var $files = util/* default.map */.Z.map(files, (file, index) => {
1304
1213
  return (0,preact_module.h)("div", {
1305
1214
  key: index,
1306
1215
  class: `file-attachment file-attachment--${byType}`
@@ -1328,8 +1237,8 @@ class Buttons extends common/* Com */.up {
1328
1237
  super(props);
1329
1238
  }
1330
1239
  render() {
1331
- if (util/* default */.Z.size(this.props.buttons) === 0) return null;
1332
- var $buttons = util/* default */.Z.map(this.props.buttons, (button, index) => {
1240
+ if (util/* default.size */.Z.size(this.props.buttons) === 0) return null;
1241
+ var $buttons = util/* default.map */.Z.map(this.props.buttons, (button, index) => {
1333
1242
  if (button.type === 'call_button') {
1334
1243
  return (0,preact_module.h)("a", {
1335
1244
  class: "url-button-attachment",
@@ -1373,13 +1282,13 @@ class ButtonAttachments extends common/* Com */.up {
1373
1282
  super(props);
1374
1283
  }
1375
1284
  render() {
1376
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1285
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
1377
1286
  if (byType === 'user') return null;
1378
1287
  let buttons = [];
1379
- let attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
1380
- util/* default */.Z.each(attachments, (att, i) => {
1381
- if (!att || util/* default */.Z.get(att, 'type') !== 'button') return;
1382
- util/* default */.Z.each(util/* default */.Z.get(att, 'buttons') || [], btn => buttons.push(btn));
1288
+ let attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1289
+ util/* default.each */.Z.each(attachments, (att, i) => {
1290
+ if (!att || util/* default.get */.Z.get(att, 'type') !== 'button') return;
1291
+ util/* default.each */.Z.each(util/* default.get */.Z.get(att, 'buttons') || [], btn => buttons.push(btn));
1383
1292
  });
1384
1293
  return (0,preact_module.h)(Buttons, {
1385
1294
  store: this.props.store,
@@ -1397,21 +1306,21 @@ class QuickReplies extends common/* Com */.up {
1397
1306
  super(props);
1398
1307
  }
1399
1308
  render() {
1400
- if (util/* default */.Z.get(this.props.ev, 'by.type') === 'user') return null;
1309
+ if (util/* default.get */.Z.get(this.props.ev, 'by.type') === 'user') return null;
1401
1310
  let quickreplies = [];
1402
- util/* default */.Z.map(util/* default */.Z.get(this.props.ev, 'data.message.attachments', []), att => {
1311
+ util/* default.map */.Z.map(util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []), att => {
1403
1312
  if (!att) return;
1404
1313
  if (att.type === 'quick_replies') {
1405
- quickreplies = util/* default */.Z.get(att, 'quick_replies', []);
1314
+ quickreplies = util/* default.get */.Z.get(att, 'quick_replies', []);
1406
1315
  }
1407
1316
  });
1408
- quickreplies = util/* default */.Z.filter(quickreplies, r => r.title);
1317
+ quickreplies = util/* default.filter */.Z.filter(quickreplies, r => r.title);
1409
1318
  if (quickreplies.length === 0) return null;
1410
- let cid = util/* default */.Z.convoOfEv(this.props.ev);
1319
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(this.props.ev);
1411
1320
  let convo = this.props.store.matchConvo(cid);
1412
- if (util/* default */.Z.get(convo, 'state') === 'ended') return null;
1413
- let events = util/* default */.Z.map(this.props.store.listEvents(cid));
1414
- events = util/* default */.Z.orderBy(events, 'created', 'asc').filter(ev => ev.type === 'message_sent');
1321
+ if (util/* default.get */.Z.get(convo, 'state') === 'ended') return null;
1322
+ let events = util/* default.map */.Z.map(this.props.store.listEvents(cid));
1323
+ events = util/* default.orderBy */.Z.orderBy(events, 'created', 'asc').filter(ev => ev.type === 'message_sent');
1415
1324
  let evindex = 0;
1416
1325
  for (var i = 0; i < events.length; i++) {
1417
1326
  if (events[i].id === this.props.ev.id) {
@@ -1420,9 +1329,9 @@ class QuickReplies extends common/* Com */.up {
1420
1329
  }
1421
1330
  }
1422
1331
  for (var i = evindex + 1; i < events.length; i++) {
1423
- if (util/* default */.Z.get(events[i], 'by.type') === 'user') return null;
1332
+ if (util/* default.get */.Z.get(events[i], 'by.type') === 'user') return null;
1424
1333
  }
1425
- let $replies = util/* default */.Z.map(quickreplies, r => (0,preact_module.h)("div", {
1334
+ let $replies = util/* default.map */.Z.map(quickreplies, r => (0,preact_module.h)("div", {
1426
1335
  class: "message_quick_reply",
1427
1336
  onClick: e => this.props.onSelect(r)
1428
1337
  }, r.title));
@@ -1444,18 +1353,18 @@ class ListField extends common/* Com */.up {
1444
1353
  });
1445
1354
  }
1446
1355
  render() {
1447
- let fields = util/* default */.Z.filter(this.props.items, item => {
1356
+ let fields = util/* default.filter */.Z.filter(this.props.items, item => {
1448
1357
  let search = this.state.search.toLowerCase();
1449
1358
  let name = item || '';
1450
1359
  return name.toLowerCase().indexOf(search) > -1;
1451
1360
  });
1452
- let $fields = util/* default */.Z.map(fields, field => {
1361
+ let $fields = util/* default.map */.Z.map(fields, field => {
1453
1362
  return (0,preact_module.h)("li", {
1454
1363
  class: "custom-select--item-options",
1455
1364
  onClick: () => this.add(field)
1456
1365
  }, field);
1457
1366
  });
1458
- let $selected = util/* default */.Z.map(this.props.selected, (item, i) => {
1367
+ let $selected = util/* default.map */.Z.map(this.props.selected, (item, i) => {
1459
1368
  return (0,preact_module.h)("div", {
1460
1369
  class: "custom-select--selected-item",
1461
1370
  onClick: e => this.remove(e, i)
@@ -1536,16 +1445,16 @@ class FormAttachment extends common/* Com */.up {
1536
1445
  super(props);
1537
1446
  this.props.store.onUpdate(this, _ => this.forceUpdate());
1538
1447
  let user = this.props.store.matchUser();
1539
- let fields = util/* default */.Z.get(this.props.form, 'fields') || [];
1540
- let formData = util/* default */.Z.map(fields, field => {
1448
+ let fields = util/* default.get */.Z.get(this.props.form, 'fields') || [];
1449
+ let formData = util/* default.map */.Z.map(fields, field => {
1541
1450
  let is_required = field.is_required || false;
1542
- var state = util/* default */.Z.parseJSON(field.state) || {};
1451
+ var state = util/* default.parseJSON */.Z.parseJSON(field.state) || {};
1543
1452
  if (!is_required) is_required = state.require || false;
1544
- var userattr = util/* default */.Z.getUserAttr(user, field.name, state.type || 'text');
1453
+ var userattr = util/* default.getUserAttr */.Z.getUserAttr(user, field.name, state.type || 'text');
1545
1454
  return {
1546
1455
  name: field.name,
1547
1456
  items: field.items,
1548
- value: util/* default */.Z.parseJSON(field.answer) || util/* default */.Z.parseJSON(field.default_answer) || userattr,
1457
+ value: util/* default.parseJSON */.Z.parseJSON(field.answer) || util/* default.parseJSON */.Z.parseJSON(field.default_answer) || userattr,
1549
1458
  is_required,
1550
1459
  label: field.title,
1551
1460
  type: field.input_type
@@ -1556,13 +1465,13 @@ class FormAttachment extends common/* Com */.up {
1556
1465
  });
1557
1466
  }
1558
1467
  isSummited() {
1559
- let found = util/* default */.Z.find(this.state.formData, field => !!field.answered);
1468
+ let found = util/* default.find */.Z.find(this.state.formData, field => !!field.answered);
1560
1469
  if (found) return true;
1561
- let convo = this.props.store.matchConvo(util/* default */.Z.convoOfEv(this.props.ev));
1470
+ let convo = this.props.store.matchConvo(util/* default.convoOfEv */.Z.convoOfEv(this.props.ev));
1562
1471
  return convo.state === 'ended';
1563
1472
  }
1564
1473
  render() {
1565
- if (util/* default */.Z.size(this.state.formData) === 0) return null;
1474
+ if (util/* default.size */.Z.size(this.state.formData) === 0) return null;
1566
1475
  let $fields = this.renderFields();
1567
1476
  let $submitbutton = null;
1568
1477
  if (!this.isSummited()) {
@@ -1581,11 +1490,11 @@ class FormAttachment extends common/* Com */.up {
1581
1490
  }
1582
1491
  focus() {
1583
1492
  if (this.props.store.isPreview) return;
1584
- if (util/* default */.Z.size(this.state.formData) === 0) return;
1493
+ if (util/* default.size */.Z.size(this.state.formData) === 0) return;
1585
1494
  let $field;
1586
1495
  if (this.isFormFilled()) {
1587
1496
  var keys = Object.keys(this.state.formData);
1588
- var lastkey = keys[util/* default */.Z.size(keys) - 1];
1497
+ var lastkey = keys[util/* default.size */.Z.size(keys) - 1];
1589
1498
  var lastfield = this.state.formData[lastkey];
1590
1499
  $field = this['field.' + encode(lastfield.name)];
1591
1500
  } else {
@@ -1596,20 +1505,20 @@ class FormAttachment extends common/* Com */.up {
1596
1505
  if ($field) $field.focus();
1597
1506
  }
1598
1507
  firstUnfilledField() {
1599
- return util/* default */.Z.find(this.state.formData, field => field.value == null || field.value === '');
1508
+ return util/* default.find */.Z.find(this.state.formData, field => field.value == null || field.value === '');
1600
1509
  }
1601
1510
  isFormFilled() {
1602
- return !util/* default */.Z.find(this.state.formData, field => field.value == null || field.value === '');
1511
+ return !util/* default.find */.Z.find(this.state.formData, field => field.value == null || field.value === '');
1603
1512
  }
1604
1513
  onInputChange(index, val) {
1605
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
1514
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
1606
1515
  formData[index].value = val;
1607
1516
  this.setState({
1608
1517
  formData
1609
1518
  });
1610
1519
  }
1611
1520
  onListAddItem(index, val) {
1612
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
1521
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
1613
1522
  let field = formData[index];
1614
1523
  field.value = field.value || [];
1615
1524
  field.value.push(val);
@@ -1618,7 +1527,7 @@ class FormAttachment extends common/* Com */.up {
1618
1527
  });
1619
1528
  }
1620
1529
  onListRemoveItem(index, vindex) {
1621
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
1530
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
1622
1531
  let field = formData[index];
1623
1532
  field.value = field.value || [];
1624
1533
  field.value.splice(vindex, 1);
@@ -1627,9 +1536,9 @@ class FormAttachment extends common/* Com */.up {
1627
1536
  });
1628
1537
  }
1629
1538
  renderFields() {
1630
- if (util/* default */.Z.size(this.state.formData) === 0) return null;
1539
+ if (util/* default.size */.Z.size(this.state.formData) === 0) return null;
1631
1540
  let $fields = null;
1632
- $fields = util/* default */.Z.map(this.state.formData, (field, index) => {
1541
+ $fields = util/* default.map */.Z.map(this.state.formData, (field, index) => {
1633
1542
  let $field = null;
1634
1543
  var errclass = field.error ? 'input--error' : '';
1635
1544
  if (field.type === 'text') {
@@ -1705,7 +1614,7 @@ class FormAttachment extends common/* Com */.up {
1705
1614
  }, (0,preact_module.h)("div", null)));
1706
1615
  } else if (field.type === 'list') {
1707
1616
  let selected = field.value || [];
1708
- let items = util/* default */.Z.filter(util/* default */.Z.get(field, 'items', []), item => !selected.includes(item));
1617
+ let items = util/* default.filter */.Z.filter(util/* default.get */.Z.get(field, 'items', []), item => !selected.includes(item));
1709
1618
  $field = (0,preact_module.h)(ListField, {
1710
1619
  selected: selected,
1711
1620
  items: items,
@@ -1743,15 +1652,15 @@ class FormAttachment extends common/* Com */.up {
1743
1652
  }
1744
1653
  async submit() {
1745
1654
  var hasError = false;
1746
- util/* default */.Z.map(this.state.formData, field => {
1747
- if (field.is_required && (field.value === undefined || field.value === '' || util/* default */.Z.size(field.value) === 0 && Array.isArray(field.value))) {
1655
+ util/* default.map */.Z.map(this.state.formData, field => {
1656
+ if (field.is_required && (field.value === undefined || field.value === '' || util/* default.size */.Z.size(field.value) === 0 && Array.isArray(field.value))) {
1748
1657
  field.error = this.props.t('error_empty');
1749
1658
  hasError = true;
1750
1659
  } else {
1751
1660
  field.error = '';
1752
1661
  }
1753
1662
  if (field.name === 'emails' && field.value) {
1754
- if (!util/* default */.Z.isEmail(field.value)) {
1663
+ if (!util/* default.isEmail */.Z.isEmail(field.value)) {
1755
1664
  field.error = this.props.t('error_email_invalid');
1756
1665
  hasError = true;
1757
1666
  }
@@ -1760,32 +1669,32 @@ class FormAttachment extends common/* Com */.up {
1760
1669
  this.forceUpdate();
1761
1670
  if (hasError) return;
1762
1671
  let user = {};
1763
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
1764
- util/* default */.Z.map(formData, field => {
1672
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
1673
+ util/* default.map */.Z.map(formData, field => {
1765
1674
  var attr = {
1766
1675
  key: field.name
1767
1676
  };
1768
- field.answered = new util/* default */.Z.Date().getTime();
1677
+ field.answered = new util/* default.Date */.Z.Date().getTime();
1769
1678
  if (field.type === 'number') {
1770
1679
  attr.number = parseInt(field.value);
1771
- field.answer = util/* default */.Z.stringify(attr.number);
1680
+ field.answer = util/* default.stringify */.Z.stringify(attr.number);
1772
1681
  }
1773
1682
  if (field.type === 'datetime') {
1774
- attr.datetime = new util/* default */.Z.Date(field.value).toISOString();
1775
- field.answer = util/* default */.Z.stringify(attr.datetime);
1683
+ attr.datetime = new util/* default.Date */.Z.Date(field.value).toISOString();
1684
+ field.answer = util/* default.stringify */.Z.stringify(attr.datetime);
1776
1685
  }
1777
1686
  if (field.type === 'list') {
1778
1687
  attr.list = field.value;
1779
- field.answer = util/* default */.Z.stringify(attr.list);
1688
+ field.answer = util/* default.stringify */.Z.stringify(attr.list);
1780
1689
  }
1781
1690
  if (field.type === 'text' || field.type === 'boolean') {
1782
1691
  attr[field.type] = field.value;
1783
- field.answer = util/* default */.Z.stringify(field.value);
1692
+ field.answer = util/* default.stringify */.Z.stringify(field.value);
1784
1693
  }
1785
- util/* default */.Z.setUserAttr(user, attr);
1694
+ util/* default.setUserAttr */.Z.setUserAttr(user, attr);
1786
1695
  });
1787
- util/* default */.Z.map(formData, field => {
1788
- let ffield = util/* default */.Z.find(this.props.form.fields, ffield => ffield.name === field.name);
1696
+ util/* default.map */.Z.map(formData, field => {
1697
+ let ffield = util/* default.find */.Z.find(this.props.form.fields, ffield => ffield.name === field.name);
1789
1698
  if (!ffield) return;
1790
1699
  ffield.answered = field.answered;
1791
1700
  });
@@ -1798,12 +1707,12 @@ class FormAttachment extends common/* Com */.up {
1798
1707
  type: 'form_submit',
1799
1708
  form_submit: {
1800
1709
  state: '{"user_id":"' + this.props.store.matchUser().id + '"}',
1801
- form_message_id: util/* default */.Z.get(this.props.ev, 'id'),
1710
+ form_message_id: util/* default.get */.Z.get(this.props.ev, 'id'),
1802
1711
  fields: formData
1803
1712
  }
1804
1713
  }]
1805
1714
  };
1806
- let cid = util/* default */.Z.convoOfEv(this.props.ev);
1715
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(this.props.ev);
1807
1716
  this.props.store.sendConvoEvent(cid, 'message_sent', {
1808
1717
  message
1809
1718
  });
@@ -1823,17 +1732,17 @@ class FormAttachments extends common/* Com */.up {
1823
1732
  super(props);
1824
1733
  }
1825
1734
  render() {
1826
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1735
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
1827
1736
  if (byType === 'user') return;
1828
1737
  let forms = [];
1829
- let attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments') || [];
1830
- util/* default */.Z.each(attachments, att => {
1738
+ let attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments') || [];
1739
+ util/* default.each */.Z.each(attachments, att => {
1831
1740
  if (!att) return;
1832
1741
  if (att.type !== 'form' && att.type !== 'ask_info_form') return;
1833
1742
  att.form._type = att.type;
1834
1743
  forms.push(att.form);
1835
1744
  });
1836
- let $forms = util/* default */.Z.map(forms, (form, formIndex) => {
1745
+ let $forms = util/* default.map */.Z.map(forms, (form, formIndex) => {
1837
1746
  return (0,preact_module.h)(FormAttachment, {
1838
1747
  store: this.props.store,
1839
1748
  onSubmit: this.props.onSubmit,
@@ -1867,14 +1776,14 @@ class FormSubmitAttachments extends common/* Com */.up {
1867
1776
  render() {
1868
1777
  return null;
1869
1778
  let submits = [];
1870
- let attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments') || [];
1871
- util/* default */.Z.each(attachments, att => {
1779
+ let attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments') || [];
1780
+ util/* default.each */.Z.each(attachments, att => {
1872
1781
  if (!att) return;
1873
1782
  if (att.type !== 'form_submit') return;
1874
1783
  if (!att.form_submit) return;
1875
1784
  submits.push(att.form_submit);
1876
1785
  });
1877
- let $submits = util/* default */.Z.map(submits, (submit, index) => (0,preact_module.h)("div", {
1786
+ let $submits = util/* default.map */.Z.map(submits, (submit, index) => (0,preact_module.h)("div", {
1878
1787
  class: "info-message"
1879
1788
  }, (0,preact_module.h)("span", null, this.props.tt('prechat_form_thanks'))));
1880
1789
  return (0,preact_module.h)("div", null, $submits);
@@ -1946,13 +1855,13 @@ class GenericTemplateAttachments extends common/* Com */.up {
1946
1855
  });
1947
1856
  }
1948
1857
  render() {
1949
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1858
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
1950
1859
  if (byType === 'user') return null;
1951
- let attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
1952
- let generics = util/* default */.Z.filter(attachments, att => util/* default */.Z.get(att, 'type') === 'generic');
1860
+ let attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1861
+ let generics = util/* default.filter */.Z.filter(attachments, att => util/* default.get */.Z.get(att, 'type') === 'generic');
1953
1862
  if (generics.length === 0) return null;
1954
- var $generics = util/* default */.Z.map(generics, (gen, index) => {
1955
- var $eles = util/* default */.Z.map(gen.elements, ele => {
1863
+ var $generics = util/* default.map */.Z.map(generics, (gen, index) => {
1864
+ var $eles = util/* default.map */.Z.map(gen.elements, ele => {
1956
1865
  let title = this.props.t.i18n(ele.i18n_title) || ele.title;
1957
1866
  let subtitle = this.props.t.i18n(ele.i18n_subtitle) || ele.subtitle;
1958
1867
  let $title = title ? (0,preact_module.h)("div", {
@@ -1979,7 +1888,7 @@ class GenericTemplateAttachments extends common/* Com */.up {
1979
1888
  t: this.props.t
1980
1889
  }));
1981
1890
  });
1982
- let elements = util/* default */.Z.get(attachments, '0.elements', []);
1891
+ let elements = util/* default.get */.Z.get(attachments, '0.elements', []);
1983
1892
  let leftNavigatorCls = 'generic-attachment-navigator generic-attachment-navigator--left';
1984
1893
  let rightNavigatorCls = 'generic-attachment-navigator generic-attachment-navigator--right';
1985
1894
  if (this.state.focusing === 0) leftNavigatorCls += ' generic-attachment-navigator--disabled';
@@ -2006,7 +1915,7 @@ class GenericTemplateAttachments extends common/* Com */.up {
2006
1915
  bindDrag() {
2007
1916
  if (!this.props.store.isMobile()) return;
2008
1917
  let eles = document.getElementsByClassName('generic-attachment');
2009
- util/* default */.Z.map(eles, ele => bind(ele, () => {}));
1918
+ util/* default.map */.Z.map(eles, ele => bind(ele, () => {}));
2010
1919
  }
2011
1920
  }
2012
1921
  ;// CONCATENATED MODULE: ./src/chatbox/ProductAttachments.js
@@ -2015,19 +1924,19 @@ class GenericTemplateAttachments extends common/* Com */.up {
2015
1924
 
2016
1925
  class ProductAttachments extends common/* Com */.up {
2017
1926
  render() {
2018
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
1927
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
2019
1928
  if (byType === 'user') return null;
2020
- let attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
2021
- let products = util/* default */.Z.filter(attachments, att => util/* default */.Z.get(att, 'type') === 'product' || util/* default */.Z.get(att, 'type') === 'product_preview');
1929
+ let attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
1930
+ let products = util/* default.filter */.Z.filter(attachments, att => util/* default.get */.Z.get(att, 'type') === 'product' || util/* default.get */.Z.get(att, 'type') === 'product_preview');
2022
1931
  products = products.filter(product => product.product && product.product.name);
2023
1932
  if (products.length === 0) return null;
2024
1933
  let acc = this.props.store.matchAccount();
2025
- let $products = util/* default */.Z.map(products, (att, index) => {
1934
+ let $products = util/* default.map */.Z.map(products, (att, index) => {
2026
1935
  let product = att.product;
2027
1936
  let $detailbtns = [];
2028
1937
  let url = product.url || product.mobile_url;
2029
1938
  if (this.props.store.isMobile()) url = product.mobile_url || product.url;
2030
- if (url && util/* default */.Z.size(product.buttons) == 0) $detailbtns.push((0,preact_module.h)("a", {
1939
+ if (url && util/* default.size */.Z.size(product.buttons) == 0) $detailbtns.push((0,preact_module.h)("a", {
2031
1940
  class: "product_attachment__btn",
2032
1941
  href: url,
2033
1942
  target: "_blank"
@@ -2036,8 +1945,8 @@ class ProductAttachments extends common/* Com */.up {
2036
1945
  class: "product_attachment__btn_external_link"
2037
1946
  })));
2038
1947
  console.log('P', product);
2039
- if (util/* default */.Z.size(product.buttons) > 0) {
2040
- $detailbtns = $detailbtns.concat(util/* default */.Z.map(product.buttons, (button, index) => {
1948
+ if (util/* default.size */.Z.size(product.buttons) > 0) {
1949
+ $detailbtns = $detailbtns.concat(util/* default.map */.Z.map(product.buttons, (button, index) => {
2041
1950
  if (button.type === 'call_button') {
2042
1951
  return (0,preact_module.h)("a", {
2043
1952
  class: "product_attachment__btn",
@@ -2077,12 +1986,12 @@ class ProductAttachments extends common/* Com */.up {
2077
1986
  if (desc) $subtitle = (0,preact_module.h)("div", {
2078
1987
  class: "product_attachment__subtitle"
2079
1988
  }, desc);
2080
- let currency = product.currency || util/* default */.Z.get(acc, 'currency', 'VND');
1989
+ let currency = product.currency || util/* default.get */.Z.get(acc, 'currency', 'VND');
2081
1990
  let $price = null;
2082
1991
  if (product.price) {
2083
1992
  $price = (0,preact_module.h)("div", {
2084
1993
  class: "product_attachment__price"
2085
- }, util/* default */.Z.formatCurrency(product.price, currency));
1994
+ }, util/* default.formatCurrency */.Z.formatCurrency(product.price, currency));
2086
1995
  }
2087
1996
  let imgsrc = this.props.store.replaceFileUrl(product.image);
2088
1997
  if (!product.image) {
@@ -2109,14 +2018,14 @@ class ProductAttachments extends common/* Com */.up {
2109
2018
 
2110
2019
  class OrderAttachments_ProductAttachments extends common/* Com */.up {
2111
2020
  render() {
2112
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
2021
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
2113
2022
  if (byType === 'user') return null;
2114
2023
  let acc = this.props.store.matchAccount();
2115
- var attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
2116
- let orders = util/* default */.Z.filter(attachments, att => att.type === 'order' && att.order).map(att => att.order);
2024
+ var attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
2025
+ let orders = util/* default.filter */.Z.filter(attachments, att => att.type === 'order' && att.order).map(att => att.order);
2117
2026
  if (orders.length === 0) return null;
2118
- let $orders = util/* default */.Z.map(orders, (order, index) => {
2119
- util/* default */.Z.calcOrderTotal(order);
2027
+ let $orders = util/* default.map */.Z.map(orders, (order, index) => {
2028
+ util/* default.calcOrderTotal */.Z.calcOrderTotal(order);
2120
2029
  let $note = null;
2121
2030
  if (order.note) {
2122
2031
  $note = (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
@@ -2127,17 +2036,17 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2127
2036
  }, order.note));
2128
2037
  }
2129
2038
  let $products = null;
2130
- if (util/* default */.Z.size(order.items) > 0) {
2039
+ if (util/* default.size */.Z.size(order.items) > 0) {
2131
2040
  $products = (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
2132
2041
  class: "order_attachment__label"
2133
- }, this.props.t('product')), util/* default */.Z.map(order.items, item => {
2042
+ }, this.props.t('product')), util/* default.map */.Z.map(order.items, item => {
2134
2043
  let product = item.product || {};
2135
2044
  return (0,preact_module.h)("div", {
2136
2045
  class: "order_attachment__product"
2137
2046
  }, (0,preact_module.h)("img", {
2138
2047
  class: "order_attachment__product_img",
2139
- alt: '' + util/* default */.Z.get(product, 'id'),
2140
- src: util/* default */.Z.get(product, 'image', __webpack_require__(9270))
2048
+ alt: '' + util/* default.get */.Z.get(product, 'id'),
2049
+ src: util/* default.get */.Z.get(product, 'image', __webpack_require__(9270))
2141
2050
  }), (0,preact_module.h)("div", {
2142
2051
  style: "overflow: hidden !important;"
2143
2052
  }, (0,preact_module.h)("div", {
@@ -2145,9 +2054,9 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2145
2054
  title: this.props.t.i18n(product.i18n_name) || product.name
2146
2055
  }, this.props.t.i18n(product.i18n_name) || product.name), (0,preact_module.h)("div", {
2147
2056
  class: "order_attachment__product_desc"
2148
- }, util/* default */.Z.getProductPropName(product, ' / ')), (0,preact_module.h)("div", {
2057
+ }, util/* default.getProductPropName */.Z.getProductPropName(product, ' / ')), (0,preact_module.h)("div", {
2149
2058
  class: "order_attachment__product_desc"
2150
- }, this.props.t('qty'), " ", item.quantity, "\xA0\xB7\xA0", util/* default */.Z.formatCurrency(product.price))));
2059
+ }, this.props.t('qty'), " ", item.quantity, "\xA0\xB7\xA0", util/* default.formatCurrency */.Z.formatCurrency(product.price))));
2151
2060
  }));
2152
2061
  }
2153
2062
  let $total = (0,preact_module.h)("div", {
@@ -2156,19 +2065,19 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2156
2065
  class: "d-flex align-items-center justify-content-between"
2157
2066
  }, (0,preact_module.h)("div", null, this.props.t('total')), ' ', (0,preact_module.h)("div", null, (0,preact_module.h)("b", {
2158
2067
  class: "order_attachment__total"
2159
- }, util/* default */.Z.formatCurrency(order.total)))));
2160
- let phoneattr = util/* default */.Z.find(util/* default */.Z.get(order, 'user.attributes', []), attr => attr.key === 'phones') || {
2068
+ }, util/* default.formatCurrency */.Z.formatCurrency(order.total)))));
2069
+ let phoneattr = util/* default.find */.Z.find(util/* default.get */.Z.get(order, 'user.attributes', []), attr => attr.key === 'phones') || {
2161
2070
  key: 'phones',
2162
2071
  text: ''
2163
2072
  };
2164
- let phone = util/* default */.Z.get(order, 'shipping.address.phone', '').trim();
2165
- phone = phone || util/* default */.Z.trim(phoneattr.text);
2073
+ let phone = util/* default.get */.Z.get(order, 'shipping.address.phone', '').trim();
2074
+ phone = phone || util/* default.trim */.Z.trim(phoneattr.text);
2166
2075
  if (phone) phone = this.props.t('phn') + ': ' + phone;
2167
2076
  let $shipto = null;
2168
- if (util/* default */.Z.displayOrderShippingAddress(order) || phone) {
2077
+ if (util/* default.displayOrderShippingAddress */.Z.displayOrderShippingAddress(order) || phone) {
2169
2078
  $shipto = (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
2170
2079
  class: "order_attachment__label"
2171
- }, this.props.t('ship_to')), (0,preact_module.h)("div", null, util/* default */.Z.displayOrderShippingAddress(order)), (0,preact_module.h)("div", {
2080
+ }, this.props.t('ship_to')), (0,preact_module.h)("div", null, util/* default.displayOrderShippingAddress */.Z.displayOrderShippingAddress(order)), (0,preact_module.h)("div", {
2172
2081
  class: "order_attachment__text_truncate"
2173
2082
  }, phone));
2174
2083
  }
@@ -2180,11 +2089,11 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2180
2089
  class: "d-flex align-items-center justify-content-between"
2181
2090
  }, (0,preact_module.h)("div", {
2182
2091
  class: "order_attachment__label no_margin"
2183
- }, this.props.t('subtotal_before_tax')), ' ', (0,preact_module.h)("div", null, util/* default */.Z.formatCurrency(order._order_value))), (0,preact_module.h)("div", {
2092
+ }, this.props.t('subtotal_before_tax')), ' ', (0,preact_module.h)("div", null, util/* default.formatCurrency */.Z.formatCurrency(order._order_value))), (0,preact_module.h)("div", {
2184
2093
  class: "d-flex align-items-center justify-content-between"
2185
2094
  }, (0,preact_module.h)("div", {
2186
2095
  class: "order_attachment__label no_margin"
2187
- }, this.props.t('discount_before_tax')), ' ', (0,preact_module.h)("div", null, "-", util/* default */.Z.formatCurrency(order._discount_before_tax))));
2096
+ }, this.props.t('discount_before_tax')), ' ', (0,preact_module.h)("div", null, "-", util/* default.formatCurrency */.Z.formatCurrency(order._discount_before_tax))));
2188
2097
  }
2189
2098
  let $subtotal = (0,preact_module.h)("div", {
2190
2099
  class: "d-flex align-items-center justify-content-between"
@@ -2192,12 +2101,12 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2192
2101
  class: "order_attachment__label no_margin"
2193
2102
  }, this.props.t('subtotal')), ' ', (0,preact_module.h)("div", {
2194
2103
  style: ""
2195
- }, util/* default */.Z.formatCurrency(order.subtotal)));
2104
+ }, util/* default.formatCurrency */.Z.formatCurrency(order.subtotal)));
2196
2105
  let $tax = null;
2197
2106
  if (order.total_tax) {
2198
2107
  let taxname = '';
2199
- if (util/* default */.Z.size(order._taxM) === 1) {
2200
- let tax = util/* default */.Z.get(order._taxM, '0.tax', {});
2108
+ if (util/* default.size */.Z.size(order._taxM) === 1) {
2109
+ let tax = util/* default.get */.Z.get(order._taxM, '0.tax', {});
2201
2110
  if (tax.name && tax.percentage) taxname = `(${tax.name} ${Math.round(tax.percentage || 0) / 100}%)`;
2202
2111
  }
2203
2112
  $tax = (0,preact_module.h)("div", {
@@ -2206,7 +2115,7 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2206
2115
  class: "order_attachment__label no_margin"
2207
2116
  }, this.props.t('tax'), " ", taxname), (0,preact_module.h)("div", {
2208
2117
  style: ""
2209
- }, util/* default */.Z.formatCurrency(order.total_tax)));
2118
+ }, util/* default.formatCurrency */.Z.formatCurrency(order.total_tax)));
2210
2119
  }
2211
2120
  let $discount = null;
2212
2121
  if (order.discount_type === 'percentage' && order.discount_percentage) {
@@ -2216,7 +2125,7 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2216
2125
  class: "order_attachment__label no_margin"
2217
2126
  }, this.props.t('discount_after_tax'), " (", Math.round(order.discount_percentage / 100), "%)"), ' ', (0,preact_module.h)("div", {
2218
2127
  style: ""
2219
- }, "-", util/* default */.Z.formatCurrency(order._computed_discount)));
2128
+ }, "-", util/* default.formatCurrency */.Z.formatCurrency(order._computed_discount)));
2220
2129
  }
2221
2130
  if (order.discount_type === 'amount' && order.discount_amount) {
2222
2131
  $discount = (0,preact_module.h)("div", {
@@ -2225,17 +2134,17 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2225
2134
  class: "order_attachment__label no_margin"
2226
2135
  }, this.props.t('discount_after_tax')), ' ', (0,preact_module.h)("div", {
2227
2136
  class: "no-shrink"
2228
- }, "-", util/* default */.Z.formatCurrency(order._computed_discount)));
2137
+ }, "-", util/* default.formatCurrency */.Z.formatCurrency(order._computed_discount)));
2229
2138
  }
2230
2139
  let $shipping = null;
2231
- if (util/* default */.Z.get(order, 'shipping.nominal_fee')) {
2140
+ if (util/* default.get */.Z.get(order, 'shipping.nominal_fee')) {
2232
2141
  $shipping = (0,preact_module.h)("div", {
2233
2142
  class: "d-flex align-items-center justify-content-between"
2234
2143
  }, (0,preact_module.h)("div", {
2235
2144
  class: "order_attachment__label no_margin"
2236
2145
  }, this.props.t('shipping_fee')), ' ', (0,preact_module.h)("div", {
2237
2146
  style: ""
2238
- }, util/* default */.Z.formatCurrency(util/* default */.Z.get(order, 'shipping.nominal_fee', 0))));
2147
+ }, util/* default.formatCurrency */.Z.formatCurrency(util/* default.get */.Z.get(order, 'shipping.nominal_fee', 0))));
2239
2148
  }
2240
2149
  let $adjustment = null;
2241
2150
  if (order.adjustment) {
@@ -2245,7 +2154,7 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2245
2154
  class: "order_attachment__label no_margin"
2246
2155
  }, order.adjustment_description), ' ', (0,preact_module.h)("div", {
2247
2156
  class: "no-shrink"
2248
- }, util/* default */.Z.formatCurrency(order.adjustment)));
2157
+ }, util/* default.formatCurrency */.Z.formatCurrency(order.adjustment)));
2249
2158
  }
2250
2159
  $subtotal = (0,preact_module.h)("div", {
2251
2160
  class: "order_attachment__footer"
@@ -2259,7 +2168,7 @@ class OrderAttachments_ProductAttachments extends common/* Com */.up {
2259
2168
  class: "order_attachment__header"
2260
2169
  }, this.props.t('order'), (0,preact_module.h)("span", {
2261
2170
  class: "order_attachment__text_muted order_attachment__text_sm"
2262
- }, util/* default */.Z.getOrderDisplayName(order))), $products, $shipto, $note, $beforeTax, $subtotal, $total);
2171
+ }, util/* default.getOrderDisplayName */.Z.getOrderDisplayName(order))), $products, $shipto, $note, $beforeTax, $subtotal, $total);
2263
2172
  });
2264
2173
  return $orders;
2265
2174
  }
@@ -2273,15 +2182,15 @@ class VideoAttachments extends common/* Com */.up {
2273
2182
  super(props);
2274
2183
  }
2275
2184
  render() {
2276
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
2277
- var attachments = util/* default */.Z.get(this.props.ev, 'data.message.attachments', []);
2185
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
2186
+ var attachments = util/* default.get */.Z.get(this.props.ev, 'data.message.attachments', []);
2278
2187
  var videos = [];
2279
- util/* default */.Z.each(attachments, (att, i) => {
2188
+ util/* default.each */.Z.each(attachments, (att, i) => {
2280
2189
  if (!att) return;
2281
- if (util/* default */.Z.includes(att.mimetype, 'video')) videos.push(att);
2190
+ if (util/* default.includes */.Z.includes(att.mimetype, 'video')) videos.push(att);
2282
2191
  });
2283
2192
  if (videos.length === 0) return null;
2284
- var $videos = util/* default */.Z.map(videos, (video, index) => {
2193
+ var $videos = util/* default.map */.Z.map(videos, (video, index) => {
2285
2194
  return (0,preact_module.h)("div", {
2286
2195
  class: `video-attachment video-attachment--${byType}`
2287
2196
  }, (0,preact_module.h)("video", {
@@ -2300,23 +2209,73 @@ class VideoAttachments extends common/* Com */.up {
2300
2209
  }, $videos);
2301
2210
  }
2302
2211
  }
2212
+ ;// CONCATENATED MODULE: ./src/chatbox/ShadowDomRoot.js
2213
+
2214
+
2215
+ class ShadowDomRoot extends common/* Com */.up {
2216
+ constructor(props) {
2217
+ super(props);
2218
+ this.ref = (0,preact_module/* createRef */.Vf)();
2219
+ }
2220
+ componentDidMount() {
2221
+ this.shadowRoot = this.ref.current.attachShadow({
2222
+ mode: 'open'
2223
+ });
2224
+ this.update(this.props.html);
2225
+ }
2226
+ update(html) {
2227
+ this.shadowRoot.innerHTML = `<style type="text/css">
2228
+ body { font-family: 'Inter', sans-serif!important; font-size: 14px!important; line-height: 20px; overflow-y: hidden; margin:0 }
2229
+ h{ font-size: 14/18px!important; }
2230
+ a { text-decoration: none;}
2231
+ img { max-width: 100%; display: block; margin: 10px auto; }
2232
+ * { white-space: normal }
2233
+ ul > li { margin-bottom: 5px }
2234
+ ul:last-child { margin-bottom: 0 }
2235
+ p { margin-bottom: 0; margin-top: 0;}
2236
+ </style>
2237
+ <div>${html}</div>`;
2238
+ let links = this.shadowRoot.querySelectorAll('a');
2239
+ for (var i = 0; i < links.length; i++) links[i].target = '_blank';
2240
+ }
2241
+ render() {
2242
+ return (0,preact_module.h)("div", {
2243
+ ref: this.ref,
2244
+ style: "white-space: normal !important"
2245
+ });
2246
+ }
2247
+ }
2303
2248
  ;// CONCATENATED MODULE: ./src/chatbox/TextMessage.js
2304
2249
 
2250
+ let mustrerender = [];
2251
+ let marked = (obj, text) => {
2252
+ mustrerender.push(obj);
2253
+ return '';
2254
+ };
2255
+ const loadMarked = () => __webpack_require__.e(/* import() */ 441).then(__webpack_require__.bind(__webpack_require__, 7441));
2256
+ (async () => {
2257
+ let markedf = (await loadMarked()).marked;
2258
+ marked = (obj, text) => markedf(text);
2259
+ util/* default.map */.Z.map(mustrerender, obj => obj.forceUpdate());
2260
+ mustrerender = [];
2261
+ })();
2262
+
2305
2263
 
2306
2264
 
2307
2265
 
2308
2266
  class TextMessage extends common/* Com */.up {
2309
2267
  render() {
2310
- var format = util/* default */.Z.get(this.props.ev, 'data.message.format', 'plaintext');
2268
+ var format = util/* default.get */.Z.get(this.props.ev, 'data.message.format', 'plaintext');
2269
+ if (format === 'markdown') return this.renderMarkdown();
2311
2270
  if (format === 'delta') return this.renderDelta();
2312
2271
  return this.renderPlainText();
2313
2272
  }
2314
2273
  renderPlainText() {
2315
- var text = util/* default */.Z.get(this.props.ev, 'data.message.text');
2316
- text = util/* default */.Z.trim(text);
2317
- if (util/* default */.Z.size(text) === 0) return null;
2318
- let byType = util/* default */.Z.get(this.props.ev, 'by.type');
2319
- var tags = util/* default */.Z.extractText(text).map(tag => {
2274
+ var text = util/* default.get */.Z.get(this.props.ev, 'data.message.text');
2275
+ text = util/* default.trim */.Z.trim(text);
2276
+ if (util/* default.size */.Z.size(text) === 0) return null;
2277
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
2278
+ var tags = util/* default.extractText */.Z.extractText(text).map(tag => {
2320
2279
  if (tag.type === 'emoji') return (0,preact_module.h)(Emoji, {
2321
2280
  emojiCode: tag.text,
2322
2281
  byType: byType
@@ -2340,7 +2299,7 @@ class TextMessage extends common/* Com */.up {
2340
2299
  }, tag.text);
2341
2300
  return tag.text;
2342
2301
  });
2343
- if (util/* default */.Z.size(tags) === 0) return null;
2302
+ if (util/* default.size */.Z.size(tags) === 0) return null;
2344
2303
  if (byType === 'agent') {
2345
2304
  return (0,preact_module.h)("div", {
2346
2305
  class: "message-agent message-text--agent"
@@ -2351,16 +2310,16 @@ class TextMessage extends common/* Com */.up {
2351
2310
  }, tags);
2352
2311
  }
2353
2312
  renderDelta() {
2354
- let deltas = util/* default */.Z.get(this.props.ev, 'data.message.quill_delta') || util/* default */.Z.get(this.props.ev, 'data.message.text');
2355
- let quilldeltas = util/* default */.Z.parseJSON(deltas) || {};
2313
+ let deltas = util/* default.get */.Z.get(this.props.ev, 'data.message.quill_delta') || util/* default.get */.Z.get(this.props.ev, 'data.message.text');
2314
+ let quilldeltas = util/* default.parseJSON */.Z.parseJSON(deltas) || {};
2356
2315
  quilldeltas = trimQuillDelta(quilldeltas);
2357
- if (!quilldeltas || util/* default */.Z.size(quilldeltas.ops) === 0) return null;
2358
- let $deltas = util/* default */.Z.map(quilldeltas.ops, delta => {
2316
+ if (!quilldeltas || util/* default.size */.Z.size(quilldeltas.ops) === 0) return null;
2317
+ let $deltas = util/* default.map */.Z.map(quilldeltas.ops, delta => {
2359
2318
  let html = '';
2360
2319
  let insert = delta.insert;
2361
2320
  let attributes = delta.attributes;
2362
2321
  if (insert.dynamicField) {
2363
- return util/* default */.Z.get(insert, 'dynamicField.text', '');
2322
+ return util/* default.get */.Z.get(insert, 'dynamicField.text', '');
2364
2323
  }
2365
2324
  if (insert.mention) {
2366
2325
  if (insert.mention.id == '*' || insert.mention.id == 'all') {
@@ -2369,7 +2328,7 @@ class TextMessage extends common/* Com */.up {
2369
2328
  }, "@", this.$t('all'));
2370
2329
  }
2371
2330
  let ag = store.matchAgent(insert.mention.id);
2372
- let name = util/* default */.Z.getAgentDisplayName(ag, insert.mention.fullname);
2331
+ let name = util/* default.getAgentDisplayName */.Z.getAgentDisplayName(ag, insert.mention.fullname);
2373
2332
  return (0,preact_module.h)("span", {
2374
2333
  class: "mention",
2375
2334
  "data-agent-id": ag.id,
@@ -2380,7 +2339,7 @@ class TextMessage extends common/* Com */.up {
2380
2339
  emojiCode: `:${insert.emoji}:`
2381
2340
  });
2382
2341
  if (typeof insert === 'string') {
2383
- let $tags = util/* default */.Z.extractText(insert).map((tag, i) => {
2342
+ let $tags = util/* default.extractText */.Z.extractText(insert).map((tag, i) => {
2384
2343
  if (tag.type === 'link') {
2385
2344
  return (0,preact_module.h)("a", {
2386
2345
  href: absLink(tag.text),
@@ -2404,9 +2363,9 @@ class TextMessage extends common/* Com */.up {
2404
2363
  }
2405
2364
  return null;
2406
2365
  });
2407
- let byType = util/* default */.Z.get(this.ev, 'by.type');
2366
+ let byType = util/* default.get */.Z.get(this.ev, 'by.type');
2408
2367
  if (byType !== 'user') byType = 'agent';
2409
- if (util/* default */.Z.size($deltas) === 0) return null;
2368
+ if (util/* default.size */.Z.size($deltas) === 0) return null;
2410
2369
  if (byType === 'agent') {
2411
2370
  return (0,preact_module.h)("div", {
2412
2371
  class: "message-agent message-text--agent"
@@ -2416,6 +2375,46 @@ class TextMessage extends common/* Com */.up {
2416
2375
  class: "message-user message-text--user"
2417
2376
  }, $deltas);
2418
2377
  }
2378
+ renderMarkdown(text) {
2379
+ if (!text) text = util/* default.get */.Z.get(this.props.ev, 'data.message.text');
2380
+ if (util/* default.size */.Z.size(text) === 0) return null;
2381
+ let byType = util/* default.get */.Z.get(this.props.ev, 'by.type');
2382
+ text = util/* default.trim */.Z.trim(text);
2383
+ if (util/* default.size */.Z.size(text) === 0) return null;
2384
+ if (byType === 'agent') {
2385
+ return (0,preact_module.h)("div", {
2386
+ class: "markdown-message message-agent message-text--agent"
2387
+ }, (0,preact_module.h)(ShadowDomRoot, {
2388
+ html: marked(this, text)
2389
+ }));
2390
+ }
2391
+ return (0,preact_module.h)("div", {
2392
+ class: "d-flex flex-column align-items-end"
2393
+ }, (0,preact_module.h)("div", {
2394
+ class: "markdown-message message-user message-text--user"
2395
+ }, (0,preact_module.h)(ShadowDomRoot, {
2396
+ html: marked(this, text)
2397
+ })));
2398
+ }
2399
+ }
2400
+ function deltaToMarkdown(deltas) {
2401
+ let output = '';
2402
+ sb.each(deltas, (delta, idx) => {
2403
+ let text = '';
2404
+ let insert = delta.insert;
2405
+ let attributes = delta.attributes;
2406
+ if (insert.emoji) text = emojiCodes[insert.emoji] || '';
2407
+ if (attributes) {
2408
+ if (attributes.italic && attributes.bold) text = `*__${insert}__*`;else if (attributes.italic) text = `*${insert}*`;else if (attributes.bold) text = `**${insert}**`;else text = insert;
2409
+ }
2410
+ if (insert.dynamicField) text = `${sb.get(insert, 'dynamicField.text', '')}`;
2411
+ if (!insert.emoji && !attributes && !insert.dynamicField) {
2412
+ text = insert || '';
2413
+ text = text.replace(/\n/g, '<br/>');
2414
+ }
2415
+ output += text;
2416
+ });
2417
+ return output;
2419
2418
  }
2420
2419
  const emojiCodes = {
2421
2420
  like: '👍',
@@ -2464,8 +2463,8 @@ function absLink(url) {
2464
2463
  }
2465
2464
  ;// CONCATENATED MODULE: ./src/chatbox/time.js
2466
2465
 
2467
- var g_pub = new util/* default */.Z.Pubsub();
2468
- util/* default */.Z.setInterval(() => g_pub.publish('time'), 20 * 1000);
2466
+ var g_pub = new util/* default.Pubsub */.Z.Pubsub();
2467
+ util/* default.setInterval */.Z.setInterval(() => g_pub.publish('time'), 20 * 1000);
2469
2468
 
2470
2469
 
2471
2470
  class Time extends common/* Com */.up {
@@ -2480,10 +2479,10 @@ class Time extends common/* Com */.up {
2480
2479
  var t = '';
2481
2480
  if (this.props.ago) {
2482
2481
  if (this.props.short) {
2483
- if (Math.abs(this.props.time - new util/* default */.Z.Date().getTime()) > 86400000 * 10) {
2484
- let tim = new util/* default */.Z.Date(this.props.time);
2482
+ if (Math.abs(this.props.time - new util/* default.Date */.Z.Date().getTime()) > 86400000 * 10) {
2483
+ let tim = new util/* default.Date */.Z.Date(this.props.time);
2485
2484
  let tzyear = tim.getFullYear();
2486
- let locale = util/* default */.Z.get(navigator, 'languages.0', 'en-US');
2485
+ let locale = util/* default.get */.Z.get(navigator, 'languages.0', 'en-US');
2487
2486
  let tzmonthname = tim.toLocaleDateString(locale, {
2488
2487
  month: 'short'
2489
2488
  });
@@ -2491,8 +2490,8 @@ class Time extends common/* Com */.up {
2491
2490
  t = tzdate + ' ' + tzmonthname + ' ' + tzyear;
2492
2491
  }
2493
2492
  }
2494
- if (!t && this.props.time > 0) t = ago(this.props.time, new util/* default */.Z.Date().getTime());
2495
- } else t = util/* default */.Z.shortTime(this.props.time, this.props.tzoffset);
2493
+ if (!t && this.props.time > 0) t = ago(this.props.time, new util/* default.Date */.Z.Date().getTime());
2494
+ } else t = util/* default.shortTime */.Z.shortTime(this.props.time, this.props.tzoffset);
2496
2495
  if (this.props.uppercase) t = t.toUpperCase();
2497
2496
  if (t === this.state.t) return;
2498
2497
  this.setState({
@@ -2603,7 +2602,7 @@ class InfoMessage extends common/* Com */.up {
2603
2602
  }));
2604
2603
  }
2605
2604
  if (ev.type === 'conversation_rated') {
2606
- var rating = util/* default */.Z.get(ev, 'data.conversation.ratings.0', {
2605
+ var rating = util/* default.get */.Z.get(ev, 'data.conversation.ratings.0', {
2607
2606
  no_rating: true,
2608
2607
  rating: 0
2609
2608
  });
@@ -2614,7 +2613,7 @@ class InfoMessage extends common/* Com */.up {
2614
2613
  class: "info-message"
2615
2614
  }, this.props.t('rated_as') + ' ' + this.props.t(getRateLang(rating.rating)).toLowerCase()));
2616
2615
  }
2617
- if (ev.type === 'conversation_state_updated' && util/* default */.Z.get(ev, 'data.conversation.state') === 'ended') {
2616
+ if (ev.type === 'conversation_state_updated' && util/* default.get */.Z.get(ev, 'data.conversation.state') === 'ended') {
2618
2617
  return (0,preact_module.h)("div", {
2619
2618
  class: "convo-event"
2620
2619
  }, $time, (0,preact_module.h)("div", {
@@ -2648,7 +2647,7 @@ class Event extends common/* Com */.up {
2648
2647
  this.refForm = (0,preact_module/* createRef */.Vf)();
2649
2648
  }
2650
2649
  render() {
2651
- var ev = util/* default */.Z.get(this.props.event, 'ev', {});
2650
+ var ev = util/* default.get */.Z.get(this.props.event, 'ev', {});
2652
2651
  switch (ev.type) {
2653
2652
  case 'conversation_joined':
2654
2653
  break;
@@ -2657,7 +2656,7 @@ class Event extends common/* Com */.up {
2657
2656
  case 'conversation_state_updated':
2658
2657
  case 'conversation_rating_requested':
2659
2658
  case 'conversation_rated':
2660
- if (!util/* default */.Z.startsWith(ev.id, 'ev')) return null;
2659
+ if (!util/* default.startsWith */.Z.startsWith(ev.id, 'ev')) return null;
2661
2660
  return (0,preact_module.h)(InfoMessage, {
2662
2661
  t: this.props.t,
2663
2662
  store: this.props.store,
@@ -2670,7 +2669,7 @@ class Event extends common/* Com */.up {
2670
2669
  this.refForm.current && this.refForm.current.focus();
2671
2670
  }
2672
2671
  chooseQuickReply(reply) {
2673
- let ev = util/* default */.Z.get(this.props.event, 'ev', {});
2672
+ let ev = util/* default.get */.Z.get(this.props.event, 'ev', {});
2674
2673
  let message = {
2675
2674
  text: reply.title,
2676
2675
  format: 'plaintext'
@@ -2687,7 +2686,7 @@ class Event extends common/* Com */.up {
2687
2686
  this.props.onSend(message);
2688
2687
  }
2689
2688
  choosePostbackBtn(button) {
2690
- let ev = util/* default */.Z.get(this.props.event, 'ev', {});
2689
+ let ev = util/* default.get */.Z.get(this.props.event, 'ev', {});
2691
2690
  let message = {
2692
2691
  text: button.title,
2693
2692
  format: 'plaintext'
@@ -2704,13 +2703,13 @@ class Event extends common/* Com */.up {
2704
2703
  this.props.onSend(message);
2705
2704
  }
2706
2705
  renderAgentAvatar(ev) {
2707
- let bytype = util/* default */.Z.get(ev, 'by.type');
2708
- let byid = util/* default */.Z.get(ev, 'by.display_id', util/* default */.Z.get(ev, 'by.id'));
2706
+ let bytype = util/* default.get */.Z.get(ev, 'by.type');
2707
+ let byid = util/* default.get */.Z.get(ev, 'by.display_id', util/* default.get */.Z.get(ev, 'by.id'));
2709
2708
  if (bytype === 'user') return null;
2710
2709
  var senderName = this.getSenderName(ev);
2711
2710
  let acc = this.props.store.matchAccount();
2712
2711
  var uri = acc.logo_url || __webpack_require__(9895);
2713
- if (util/* default */.Z.get(this.props, 'chatbox.hide_agent_profile')) {
2712
+ if (util/* default.get */.Z.get(this.props, 'chatbox.hide_agent_profile')) {
2714
2713
  return (0,preact_module.h)("div", {
2715
2714
  class: "message-sender"
2716
2715
  }, (0,preact_module.h)("img", {
@@ -2723,7 +2722,7 @@ class Event extends common/* Com */.up {
2723
2722
  }
2724
2723
  let agentM = this.props.store.matchAgent('*');
2725
2724
  if (byid !== 'system' && bytype !== 'dummy' && bytype !== 'workflow') {
2726
- uri = util/* default */.Z.get(agentM[byid], 'avatar_url') || acc.logo_url || __webpack_require__(4761);
2725
+ uri = util/* default.get */.Z.get(agentM[byid], 'avatar_url') || acc.logo_url || __webpack_require__(4761);
2727
2726
  }
2728
2727
  return (0,preact_module.h)("div", {
2729
2728
  class: "message-sender"
@@ -2745,8 +2744,8 @@ class Event extends common/* Com */.up {
2745
2744
  time: ev.created
2746
2745
  }));
2747
2746
  }
2748
- let t = new util/* default */.Z.Date(ev.created).toLocaleString();
2749
- if (util/* default */.Z.get(ev, 'by.type') !== 'user') {
2747
+ let t = new util/* default.Date */.Z.Date(ev.created).toLocaleString();
2748
+ if (util/* default.get */.Z.get(ev, 'by.type') !== 'user') {
2750
2749
  let $sender = null;
2751
2750
  if (this.props.event.mode === 'lead') $sender = this.renderAgentAvatar(ev);
2752
2751
  return (0,preact_module.h)("div", {
@@ -2802,15 +2801,15 @@ class Event extends common/* Com */.up {
2802
2801
  onSelect: e => this.chooseQuickReply(e)
2803
2802
  }));
2804
2803
  }
2805
- if (util/* default */.Z.getMsgField(ev, 'idempotency') === ev.id && this.props.store.now() - ev.created < 900) {
2806
- util/* default */.Z.setTimeout(() => this.setState({
2804
+ if (util/* default.getMsgField */.Z.getMsgField(ev, 'idempotency') === ev.id && this.props.store.now() - ev.created < 900) {
2805
+ util/* default.setTimeout */.Z.setTimeout(() => this.setState({
2807
2806
  refresh: this.state.refresh
2808
2807
  }), 1000);
2809
2808
  }
2810
2809
  let $dot = (0,preact_module.h)("div", {
2811
2810
  class: "sending_dot"
2812
2811
  });
2813
- if (this.props.store.now() - ev.created < 900 || util/* default */.Z.getMsgField(ev, 'idempotency') !== ev.id) {
2812
+ if (this.props.store.now() - ev.created < 900 || util/* default.getMsgField */.Z.getMsgField(ev, 'idempotency') !== ev.id) {
2814
2813
  $dot = (0,preact_module.h)("div", {
2815
2814
  class: "sending_dot sending_dot__hide"
2816
2815
  });
@@ -2874,7 +2873,7 @@ class Event extends common/* Com */.up {
2874
2873
  })), $error);
2875
2874
  }
2876
2875
  renderUpdateConvo(ev) {
2877
- var state = util/* default */.Z.get(ev, 'data.conversation.state');
2876
+ var state = util/* default.get */.Z.get(ev, 'data.conversation.state');
2878
2877
  if (state === 'active') return null;
2879
2878
  if (state === 'pending') return null;
2880
2879
  return (0,preact_module.h)("div", {
@@ -2884,18 +2883,18 @@ class Event extends common/* Com */.up {
2884
2883
  }));
2885
2884
  }
2886
2885
  resendMessage() {
2887
- let cid = util/* default */.Z.convoOfEv(this.props.event.ev);
2888
- const message = util/* default */.Z.get(this.props.event, 'ev.data.message');
2886
+ let cid = util/* default.convoOfEv */.Z.convoOfEv(this.props.event.ev);
2887
+ const message = util/* default.get */.Z.get(this.props.event, 'ev.data.message');
2889
2888
  this.props.store.sendConvoEvent(cid, 'message_sent', {
2890
2889
  message
2891
2890
  });
2892
2891
  }
2893
2892
  getSenderName(ev) {
2894
- let bytype = util/* default */.Z.get(ev, 'by.type');
2895
- let byid = util/* default */.Z.get(ev, 'by.display_id', util/* default */.Z.get(ev, 'by.id'));
2896
- if (bytype === 'user') return util/* default */.Z.getUserDisplayName(this.props.store.matchUser());
2893
+ let bytype = util/* default.get */.Z.get(ev, 'by.type');
2894
+ let byid = util/* default.get */.Z.get(ev, 'by.display_id', util/* default.get */.Z.get(ev, 'by.id'));
2895
+ if (bytype === 'user') return util/* default.getUserDisplayName */.Z.getUserDisplayName(this.props.store.matchUser());
2897
2896
  let acc = this.props.store.matchAccount();
2898
- if (bytype === 'agent') return util/* default */.Z.getAgentDisplayName(acc, this.props.store.matchAgent(byid));
2897
+ if (bytype === 'agent') return util/* default.getAgentDisplayName */.Z.getAgentDisplayName(acc, this.props.store.matchAgent(byid));
2899
2898
  if (byid === 'system' || bytype === 'dummy' || bytype === 'workflow') return acc.name || 'system';
2900
2899
  return '';
2901
2900
  }
@@ -2942,7 +2941,7 @@ class Events extends common/* Com */.up {
2942
2941
  this.props.store.onConvoEvent(this, ev => this.onEvent(ev));
2943
2942
  this.loadConvo();
2944
2943
  this.refBody = null;
2945
- this.checkAndSeen = util/* default */.Z.throttle(() => {
2944
+ this.checkAndSeen = util/* default.throttle */.Z.throttle(() => {
2946
2945
  if (this.props.isShow && this.isBottom() && this.props.store.browserVisibility === 'visible' && document.hasFocus()) {
2947
2946
  this.props.store.seenConvo(this.props.cid);
2948
2947
  }
@@ -2954,8 +2953,8 @@ class Events extends common/* Com */.up {
2954
2953
  }
2955
2954
  render() {
2956
2955
  if (this.state.error) return this.renderError();
2957
- let events = util/* default */.Z.map(this.props.store.listEvents(this.props.cid));
2958
- if (!this.state.loading && util/* default */.Z.size(events) === 0) {
2956
+ let events = util/* default.map */.Z.map(this.props.store.listEvents(this.props.cid));
2957
+ if (!this.state.loading && util/* default.size */.Z.size(events) === 0) {
2959
2958
  return (0,preact_module.h)("div", {
2960
2959
  ref: ref => this.refBody = ref,
2961
2960
  class: "widget-body--events-container"
@@ -2969,13 +2968,13 @@ class Events extends common/* Com */.up {
2969
2968
  store: this.props.store
2970
2969
  }));
2971
2970
  }
2972
- events = util/* default */.Z.orderBy(events, 'created', 'asc');
2971
+ events = util/* default.orderBy */.Z.orderBy(events, 'created', 'asc');
2973
2972
  let convo = this.props.store.matchConvo(this.props.cid);
2974
- events = util/* default */.Z.map(events, ev => ({
2973
+ events = util/* default.map */.Z.map(events, ev => ({
2975
2974
  ev: ev
2976
2975
  }));
2977
2976
  processEvents(convo, events);
2978
- let $events = util/* default */.Z.map(events, ev => (0,preact_module.h)(Event, {
2977
+ let $events = util/* default.map */.Z.map(events, ev => (0,preact_module.h)(Event, {
2979
2978
  chatbox: this.props.chatbox,
2980
2979
  onLink: this.props.onLink,
2981
2980
  store: this.props.store,
@@ -2991,7 +2990,7 @@ class Events extends common/* Com */.up {
2991
2990
  if (this.state.loading || this.props.creating) {
2992
2991
  $loading = (0,preact_module.h)(Spinner, {
2993
2992
  static: true,
2994
- mode: util/* default */.Z.get(this.props.chatbox, 'primary_color', 'dark'),
2993
+ mode: util/* default.get */.Z.get(this.props.chatbox, 'primary_color', 'dark'),
2995
2994
  size: "120",
2996
2995
  center: true
2997
2996
  });
@@ -3030,23 +3029,23 @@ class Events extends common/* Com */.up {
3030
3029
  }
3031
3030
  focus() {
3032
3031
  let events = this.props.store.listEvents(this.props.cid);
3033
- events = util/* default */.Z.orderBy(util/* default */.Z.map(events), 'created', 'desc');
3032
+ events = util/* default.orderBy */.Z.orderBy(util/* default.map */.Z.map(events), 'created', 'desc');
3034
3033
  var last_agent_sent;
3035
3034
  for (let ev of events) {
3036
- if (util/* default */.Z.get(ev, 'type') !== 'message_sent') continue;
3037
- if (util/* default */.Z.get(ev, 'by.type') === 'user') continue;
3035
+ if (util/* default.get */.Z.get(ev, 'type') !== 'message_sent') continue;
3036
+ if (util/* default.get */.Z.get(ev, 'by.type') === 'user') continue;
3038
3037
  last_agent_sent = ev;
3039
3038
  break;
3040
3039
  }
3041
- if (util/* default */.Z.get(last_agent_sent, 'by.type') === 'user') last_agent_sent = null;
3042
- let attachments = util/* default */.Z.get(last_agent_sent, 'data.message.attachments', []);
3040
+ if (util/* default.get */.Z.get(last_agent_sent, 'by.type') === 'user') last_agent_sent = null;
3041
+ let attachments = util/* default.get */.Z.get(last_agent_sent, 'data.message.attachments', []);
3043
3042
  let convo = this.props.store.matchConvo(this.props.cid);
3044
- let pendingForms = util/* default */.Z.filter(attachments, att => {
3043
+ let pendingForms = util/* default.filter */.Z.filter(attachments, att => {
3045
3044
  if (!att) return false;
3046
3045
  if (att.type !== 'form' && att.type !== 'ask_info_form') return false;
3047
3046
  var form = att.form;
3048
3047
  if (!form) return false;
3049
- var state = util/* default */.Z.parseJSON(form.state) || {};
3048
+ var state = util/* default.parseJSON */.Z.parseJSON(form.state) || {};
3050
3049
  if (!state.require_finished && att.type !== 'ask_info_form') return false;
3051
3050
  if (Events_isSummited(att.form)) return false;
3052
3051
  if (convo.state === 'ended') return false;
@@ -3054,10 +3053,10 @@ class Events extends common/* Com */.up {
3054
3053
  });
3055
3054
  }
3056
3055
  onEvent(newev) {
3057
- if (util/* default */.Z.convoOfEv(newev) !== this.props.cid) return;
3056
+ if (util/* default.convoOfEv */.Z.convoOfEv(newev) !== this.props.cid) return;
3058
3057
  let isBottom = this.isBottom();
3059
3058
  var byme = false;
3060
- if (util/* default */.Z.get(newev, 'type') === 'message_sent' && newev.id === util/* default */.Z.getMsgField(newev, 'idempotency')) byme = true;
3059
+ if (util/* default.get */.Z.get(newev, 'type') === 'message_sent' && newev.id === util/* default.getMsgField */.Z.getMsgField(newev, 'idempotency')) byme = true;
3061
3060
  if (byme || isBottom) this.scrollToBottom();
3062
3061
  }
3063
3062
  async loadConvo() {
@@ -3067,7 +3066,7 @@ class Events extends common/* Com */.up {
3067
3066
  loading: true
3068
3067
  });
3069
3068
  let events = this.props.store.listEvents(this.props.cid);
3070
- if (util/* default */.Z.size(events) === 0) {
3069
+ if (util/* default.size */.Z.size(events) === 0) {
3071
3070
  let cid = this.props.cid;
3072
3071
  let {
3073
3072
  error
@@ -3091,7 +3090,7 @@ class Events extends common/* Com */.up {
3091
3090
  error: false
3092
3091
  });
3093
3092
  this.scrollToBottom();
3094
- util/* default */.Z.setTimeout(() => this.setState({
3093
+ util/* default.setTimeout */.Z.setTimeout(() => this.setState({
3095
3094
  loading: false
3096
3095
  }), 50);
3097
3096
  }
@@ -3101,11 +3100,11 @@ class Events extends common/* Com */.up {
3101
3100
  return $container.scrollHeight < $container.scrollTop + $container.offsetHeight + 50;
3102
3101
  }
3103
3102
  scrollToBottom() {
3104
- util/* default */.Z.setTimeout(() => {
3103
+ util/* default.setTimeout */.Z.setTimeout(() => {
3105
3104
  const $div = this.refBody;
3106
3105
  if ($div) $div.scrollTop = $div.scrollHeight;
3107
3106
  });
3108
- util/* default */.Z.setTimeout(() => {
3107
+ util/* default.setTimeout */.Z.setTimeout(() => {
3109
3108
  const $div = this.refBody;
3110
3109
  if ($div) $div.scrollTop = $div.scrollHeight;
3111
3110
  }, 200);
@@ -3123,13 +3122,13 @@ function processEvents(convo, events) {
3123
3122
  let curEvent = events[i];
3124
3123
  let lastEvent = events[i - 1];
3125
3124
  if (visibleEvent(curEvent.ev)) {
3126
- let elapsedSec = util/* default */.Z.unixSec(curEvent.ev.created) - util/* default */.Z.unixSec(lastEvent.ev.created);
3125
+ let elapsedSec = util/* default.unixSec */.Z.unixSec(curEvent.ev.created) - util/* default.unixSec */.Z.unixSec(lastEvent.ev.created);
3127
3126
  if (elapsedSec > 120) curEvent.show_time = true;
3128
3127
  }
3129
3128
  }
3130
3129
  for (var i = 0; i < events.length; i++) {
3131
3130
  let curEvent = events[i];
3132
- if (util/* default */.Z.get(curEvent, 'ev.type') === 'message_sent') {
3131
+ if (util/* default.get */.Z.get(curEvent, 'ev.type') === 'message_sent') {
3133
3132
  curEvent.show_time = true;
3134
3133
  break;
3135
3134
  }
@@ -3139,7 +3138,7 @@ function processEvents(convo, events) {
3139
3138
  let prevEvent = events[i - 1];
3140
3139
  if (curEvent.ev.type === 'message_sent') {
3141
3140
  curEvent.mode = 'lead';
3142
- if (util/* default */.Z.get(prevEvent, 'ev.type') === 'message_sent' && util/* default */.Z.get(prevEvent, 'ev.by.id') === util/* default */.Z.get(curEvent, 'ev.by.id')) {
3141
+ if (util/* default.get */.Z.get(prevEvent, 'ev.type') === 'message_sent' && util/* default.get */.Z.get(prevEvent, 'ev.by.id') === util/* default.get */.Z.get(curEvent, 'ev.by.id')) {
3143
3142
  curEvent.mode = 'follow';
3144
3143
  }
3145
3144
  continue;
@@ -3147,12 +3146,12 @@ function processEvents(convo, events) {
3147
3146
  }
3148
3147
  }
3149
3148
  function visibleEvent(ev) {
3150
- let type = util/* default */.Z.get(ev, 'type');
3149
+ let type = util/* default.get */.Z.get(ev, 'type');
3151
3150
  return type === 'message_sent' || type === 'conversation_state_updated';
3152
3151
  }
3153
3152
  function Events_isSummited(form) {
3154
- let fields = util/* default */.Z.get(form, 'fields') || [];
3155
- return util/* default */.Z.find(fields, field => !!field.answered);
3153
+ let fields = util/* default.get */.Z.get(form, 'fields') || [];
3154
+ return util/* default.find */.Z.find(fields, field => !!field.answered);
3156
3155
  }
3157
3156
  ;// CONCATENATED MODULE: ./src/chatbox/Typing.js
3158
3157
 
@@ -3168,29 +3167,29 @@ class Typing extends common/* Com */.up {
3168
3167
  ev: {}
3169
3168
  });
3170
3169
  this.props.store.onConvoEvent(this, ev => {
3171
- if (util/* default */.Z.convoOfEv(ev) !== this.props.cid) return;
3170
+ if (util/* default.convoOfEv */.Z.convoOfEv(ev) !== this.props.cid) return;
3172
3171
  let user = this.props.store.matchUser();
3173
- if (util/* default */.Z.get(ev, 'by.id') === user.id) return;
3174
- let oldby = util/* default */.Z.get(this.state.ev, 'by.id');
3175
- if (oldby && util/* default */.Z.get(ev, 'by.id') !== oldby) return;
3176
- if (util/* default */.Z.get(ev, 'type') === 'message_sent') {
3177
- if (this.timer) util/* default */.Z.clearTimeout(this.timer);
3172
+ if (util/* default.get */.Z.get(ev, 'by.id') === user.id) return;
3173
+ let oldby = util/* default.get */.Z.get(this.state.ev, 'by.id');
3174
+ if (oldby && util/* default.get */.Z.get(ev, 'by.id') !== oldby) return;
3175
+ if (util/* default.get */.Z.get(ev, 'type') === 'message_sent') {
3176
+ if (this.timer) util/* default.clearTimeout */.Z.clearTimeout(this.timer);
3178
3177
  this.timer = null;
3179
3178
  this.setState({
3180
3179
  isShow: false
3181
3180
  });
3182
3181
  return;
3183
3182
  }
3184
- if (util/* default */.Z.get(ev, 'type') !== 'conversation_typing') return;
3185
- let ag = this.props.store.matchAgent(util/* default */.Z.get(ev, 'by.id')) || {};
3183
+ let ag = this.props.store.matchAgent(ev.by.id) || {};
3186
3184
  if (ag.type == 'agent') return;
3185
+ if (util/* default.get */.Z.get(ev, 'type') !== 'conversation_typing') return;
3187
3186
  this.setState({
3188
3187
  ev: ev,
3189
3188
  isShow: true
3190
3189
  });
3191
- if (this.timer) util/* default */.Z.clearTimeout(this.timer);
3192
- this.timer = util/* default */.Z.setTimeout(() => {
3193
- if (util/* default */.Z.convoOfEv(ev) !== this.props.cid) return;
3190
+ if (this.timer) util/* default.clearTimeout */.Z.clearTimeout(this.timer);
3191
+ this.timer = util/* default.setTimeout */.Z.setTimeout(() => {
3192
+ if (util/* default.convoOfEv */.Z.convoOfEv(ev) !== this.props.cid) return;
3194
3193
  this.timer = null;
3195
3194
  this.setState({
3196
3195
  isShow: false
@@ -3201,8 +3200,8 @@ class Typing extends common/* Com */.up {
3201
3200
  render() {
3202
3201
  let account = this.props.store.matchAccount();
3203
3202
  var cls = this.state.isShow ? '' : 'typing--hidden';
3204
- let byid = util/* default */.Z.get(this.state.ev, 'by.display_id', util/* default */.Z.get(this.state.ev, 'by.id'));
3205
- let agentName = util/* default */.Z.getAgentDisplayName(account, this.props.store.matchAgent(byid));
3203
+ let byid = util/* default.get */.Z.get(this.state.ev, 'by.display_id', util/* default.get */.Z.get(this.state.ev, 'by.id'));
3204
+ let agentName = util/* default.getAgentDisplayName */.Z.getAgentDisplayName(account, this.props.store.matchAgent(byid));
3206
3205
  return (0,preact_module.h)("div", {
3207
3206
  class: `typing ${cls}`
3208
3207
  }, agentName, " ", this.props.t('typing'));
@@ -3221,7 +3220,7 @@ class Typing extends common/* Com */.up {
3221
3220
  this.stop();
3222
3221
  var t0;
3223
3222
  var run = t => {
3224
- if (!t) t = new util/* default */.Z.Date().getTime();
3223
+ if (!t) t = new util/* default.Date */.Z.Date().getTime();
3225
3224
  var deltaT = t - t0;
3226
3225
  var [newy, done] = this.calcY(v, y0, deltaT);
3227
3226
  cb(newy);
@@ -3229,7 +3228,7 @@ class Typing extends common/* Com */.up {
3229
3228
  this.animationframe = window.requestAnimationFrame(run);
3230
3229
  };
3231
3230
  this.animationframe = window.requestAnimationFrame(t => {
3232
- t0 = t || new util/* default */.Z.Date().getTime();
3231
+ t0 = t || new util/* default.Date */.Z.Date().getTime();
3233
3232
  run(t0);
3234
3233
  });
3235
3234
  }
@@ -3291,7 +3290,7 @@ class Rating extends common/* Com */.up {
3291
3290
  if (this.shoudDisplay()) this.open();
3292
3291
  });
3293
3292
  this.props.store.onConvoEvent(this, ev => {
3294
- var cid = util/* default */.Z.convoOfEv(ev);
3293
+ var cid = util/* default.convoOfEv */.Z.convoOfEv(ev);
3295
3294
  if (cid !== this.props.cid) return;
3296
3295
  if (this.shoudDisplay()) this.open();
3297
3296
  });
@@ -3400,12 +3399,12 @@ class Rating extends common/* Com */.up {
3400
3399
  var rated;
3401
3400
  var ended;
3402
3401
  let user = this.props.store.matchUser();
3403
- util/* default */.Z.map(this.props.store.listEvents(this.props.cid), ev => {
3404
- if (util/* default */.Z.get(ev, 'type') === 'conversation_state_updated' && util/* default */.Z.get(ev, 'data.conversation.state') === 'ended') {
3402
+ util/* default.map */.Z.map(this.props.store.listEvents(this.props.cid), ev => {
3403
+ if (util/* default.get */.Z.get(ev, 'type') === 'conversation_state_updated' && util/* default.get */.Z.get(ev, 'data.conversation.state') === 'ended') {
3405
3404
  ended = ev;
3406
3405
  }
3407
- if (util/* default */.Z.get(ev, 'type') === 'conversation_rating_requested') requested = ev;
3408
- if (util/* default */.Z.get(ev, 'type') === 'conversation_rated' && util/* default */.Z.get(ev, 'by.id') === user.id) rated = ev;
3406
+ if (util/* default.get */.Z.get(ev, 'type') === 'conversation_rating_requested') requested = ev;
3407
+ if (util/* default.get */.Z.get(ev, 'type') === 'conversation_rated' && util/* default.get */.Z.get(ev, 'by.id') === user.id) rated = ev;
3409
3408
  });
3410
3409
  if (rated) return false;
3411
3410
  let accountSetting = this.props.plugin.chatbox;
@@ -3446,7 +3445,7 @@ class Rating extends common/* Com */.up {
3446
3445
  hide: false
3447
3446
  });
3448
3447
  if (!this.refRating.current) return;
3449
- util/* default */.Z.setTimeout(() => {
3448
+ util/* default.setTimeout */.Z.setTimeout(() => {
3450
3449
  if (this.refComment.current) this.refComment.current.focus();
3451
3450
  }, 400);
3452
3451
  this.refComment.current.value = '';
@@ -3568,15 +3567,15 @@ class DropdownSelect extends common/* Com */.up {
3568
3567
  });
3569
3568
  DropdownSelect_defineProperty(this, "hasSearch", () => {
3570
3569
  if (this.props.has_search) return true;
3571
- return util/* default */.Z.size(this.props.items) >= 10;
3570
+ return util/* default.size */.Z.size(this.props.items) >= 10;
3572
3571
  });
3573
3572
  DropdownSelect_defineProperty(this, "getFilteredOptions", () => {
3574
3573
  let items = this.props.items;
3575
3574
  if (this.state.searchValue && this.hasSearch()) {
3576
- items = util/* default */.Z.filter(items, item => {
3577
- let optionName = util/* default */.Z.unicodeToAscii(item.name).toLowerCase().replace(/ /g, '');
3578
- let optionDesc = util/* default */.Z.unicodeToAscii(item.desc).toLowerCase().replace(/ /g, '');
3579
- let searchValue = util/* default */.Z.unicodeToAscii(this.state.searchValue).toLowerCase().replace(/ /g, '');
3575
+ items = util/* default.filter */.Z.filter(items, item => {
3576
+ let optionName = util/* default.unicodeToAscii */.Z.unicodeToAscii(item.name).toLowerCase().replace(/ /g, '');
3577
+ let optionDesc = util/* default.unicodeToAscii */.Z.unicodeToAscii(item.desc).toLowerCase().replace(/ /g, '');
3578
+ let searchValue = util/* default.unicodeToAscii */.Z.unicodeToAscii(this.state.searchValue).toLowerCase().replace(/ /g, '');
3580
3579
  return optionName.indexOf(searchValue) != -1 || optionDesc.indexOf(searchValue) != -1;
3581
3580
  });
3582
3581
  }
@@ -3635,7 +3634,7 @@ class DropdownSelect extends common/* Com */.up {
3635
3634
  focusFilter() {
3636
3635
  if (!this.filterRef.current) return;
3637
3636
  this.filterRef.current.focus();
3638
- util/* default */.Z.setTimeout(() => {
3637
+ util/* default.setTimeout */.Z.setTimeout(() => {
3639
3638
  if (!this.filterRef.current) return;
3640
3639
  this.filterRef.current.focus();
3641
3640
  }, 100);
@@ -3643,7 +3642,7 @@ class DropdownSelect extends common/* Com */.up {
3643
3642
  renderDropdown() {
3644
3643
  if (!this.state.show) return null;
3645
3644
  let items = this.getFilteredOptions();
3646
- let $items = util/* default */.Z.map(items, item => {
3645
+ let $items = util/* default.map */.Z.map(items, item => {
3647
3646
  return (0,preact_module.h)("div", {
3648
3647
  class: "dropdown_select__item",
3649
3648
  onClick: _ => this.onSelect(item)
@@ -3704,10 +3703,10 @@ class DropdownSelect extends common/* Com */.up {
3704
3703
  class: "muted text-truncate",
3705
3704
  style: "flex: 1 !important;"
3706
3705
  }, "Ch\u1ECDn m\u1ED9t ph\u1EA7n t\u1EED");
3707
- if (util/* default */.Z.get(this.props, 'selected.name')) $name = (0,preact_module.h)("div", {
3706
+ if (util/* default.get */.Z.get(this.props, 'selected.name')) $name = (0,preact_module.h)("div", {
3708
3707
  class: "text-truncate",
3709
3708
  style: "flex: 1 !important;"
3710
- }, util/* default */.Z.get(this.props, 'selected.name'));
3709
+ }, util/* default.get */.Z.get(this.props, 'selected.name'));
3711
3710
  let style = 'position: relative !important;';
3712
3711
  if (this.props.full) {
3713
3712
  style = '';
@@ -3767,13 +3766,13 @@ class AddressPicker extends common/* Com */.up {
3767
3766
  }
3768
3767
  if (e.key == 'Enter') {}
3769
3768
  });
3770
- address_picker_defineProperty(this, "doSearch", util/* default */.Z.throttle(async () => {
3769
+ address_picker_defineProperty(this, "doSearch", util/* default.throttle */.Z.throttle(async () => {
3771
3770
  let requestId = Date.now();
3772
3771
  this.requestId = requestId;
3773
3772
  let res = await this.props.store.suggest_addresses(this.state.searchValue);
3774
3773
  if (this.requestId !== requestId) return;
3775
3774
  this.setState({
3776
- addresses: util/* default */.Z.get(res, 'body.addresses', [])
3775
+ addresses: util/* default.get */.Z.get(res, 'body.addresses', [])
3777
3776
  });
3778
3777
  }, 100));
3779
3778
  address_picker_defineProperty(this, "onChangeSearchValue", e => {
@@ -3830,14 +3829,14 @@ class AddressPicker extends common/* Com */.up {
3830
3829
  focusFilter() {
3831
3830
  if (!this.filterRef.current) return;
3832
3831
  this.filterRef.current.focus();
3833
- util/* default */.Z.setTimeout(() => {
3832
+ util/* default.setTimeout */.Z.setTimeout(() => {
3834
3833
  if (!this.filterRef.current) return;
3835
3834
  this.filterRef.current.focus();
3836
3835
  }, 100);
3837
3836
  }
3838
3837
  renderDropdown() {
3839
3838
  if (!this.state.show) return null;
3840
- let $items = util/* default */.Z.map(this.state.addresses, (addr, i) => {
3839
+ let $items = util/* default.map */.Z.map(this.state.addresses, (addr, i) => {
3841
3840
  let label = [((addr.address || '') + ' ' + normalize(addr.street)).trim()].join(', ');
3842
3841
  let desc = [normalize(addr.ward), normalize(addr.district), normalize(addr.province)].join(', ');
3843
3842
  return (0,preact_module.h)("div", {
@@ -3939,7 +3938,7 @@ var $link = document.createElement('link');
3939
3938
  $link.href = 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap';
3940
3939
  $link.rel = 'stylesheet';
3941
3940
  document.head.append($link);
3942
- util/* default */.Z.preloadWebfonts(['Roboto'], [400, 500]);
3941
+ util/* default.preloadWebfonts */.Z.preloadWebfonts(['Roboto'], [400, 500]);
3943
3942
 
3944
3943
  let icon_defaultAvatar = __webpack_require__(4761);
3945
3944
 
@@ -4046,7 +4045,7 @@ class order_Order extends common/* Com */.up {
4046
4045
  loadDistrict: false
4047
4046
  });
4048
4047
  if (!out.error) this.setState({
4049
- districts: util/* default */.Z.get(out, 'body.addresses')
4048
+ districts: util/* default.get */.Z.get(out, 'body.addresses')
4050
4049
  });
4051
4050
  });
4052
4051
  order_defineProperty(this, "onSelectDistrict", async item => {
@@ -4065,7 +4064,7 @@ class order_Order extends common/* Com */.up {
4065
4064
  loadWard: false
4066
4065
  });
4067
4066
  if (!out.error) this.setState({
4068
- wards: util/* default */.Z.get(out, 'body.addresses')
4067
+ wards: util/* default.get */.Z.get(out, 'body.addresses')
4069
4068
  });
4070
4069
  });
4071
4070
  order_defineProperty(this, "onSelectWard", item => this.setState({
@@ -4086,7 +4085,7 @@ class order_Order extends common/* Com */.up {
4086
4085
  order_defineProperty(this, "onSelectAddress", addr => {
4087
4086
  if (!addr) return;
4088
4087
  this.setState({
4089
- address: [util/* default */.Z.trim(addr.address), util/* default */.Z.trim(addr.street)].join(' ').trim(),
4088
+ address: [util/* default.trim */.Z.trim(addr.address), util/* default.trim */.Z.trim(addr.street)].join(' ').trim(),
4090
4089
  street: addr.street,
4091
4090
  err: {},
4092
4091
  g_err: ''
@@ -4133,36 +4132,36 @@ class order_Order extends common/* Com */.up {
4133
4132
  });
4134
4133
  }
4135
4134
  if (this.state.shipping === 'shop') {
4136
- if (!util/* default */.Z.isPhone(this.state.phone)) {
4135
+ if (!util/* default.isPhone */.Z.isPhone(this.state.phone)) {
4137
4136
  err.phone = true;
4138
4137
  }
4139
- if (!util/* default */.Z.trim(this.state.fullname)) {
4138
+ if (!util/* default.trim */.Z.trim(this.state.fullname)) {
4140
4139
  err.name = true;
4141
4140
  }
4142
- if (!util/* default */.Z.trim(this.state.email)) {
4141
+ if (!util/* default.trim */.Z.trim(this.state.email)) {
4143
4142
  err.email = true;
4144
4143
  }
4145
4144
  } else if (this.state.shipping_address == 'new') {
4146
- if (!util/* default */.Z.isPhone(this.state.phone)) {
4145
+ if (!util/* default.isPhone */.Z.isPhone(this.state.phone)) {
4147
4146
  err.phone = true;
4148
4147
  }
4149
- if (!util/* default */.Z.trim(this.state.fullname)) {
4148
+ if (!util/* default.trim */.Z.trim(this.state.fullname)) {
4150
4149
  err.name = true;
4151
4150
  }
4152
- if (!util/* default */.Z.trim(this.state.address)) {
4151
+ if (!util/* default.trim */.Z.trim(this.state.address)) {
4153
4152
  err.address = true;
4154
4153
  }
4155
- if (util/* default */.Z.size(this.state.selectedWard) == 0) {
4154
+ if (util/* default.size */.Z.size(this.state.selectedWard) == 0) {
4156
4155
  err.ward = true;
4157
4156
  }
4158
- if (util/* default */.Z.size(this.state.selectedDistrict) == 0) {
4157
+ if (util/* default.size */.Z.size(this.state.selectedDistrict) == 0) {
4159
4158
  err.district = true;
4160
4159
  }
4161
- if (util/* default */.Z.size(this.state.selectedProvince) == 0) {
4160
+ if (util/* default.size */.Z.size(this.state.selectedProvince) == 0) {
4162
4161
  err.province = true;
4163
4162
  }
4164
4163
  }
4165
- if (util/* default */.Z.size(err) > 0) {
4164
+ if (util/* default.size */.Z.size(err) > 0) {
4166
4165
  this.setState({
4167
4166
  err,
4168
4167
  g_err: this.props.t('input_shipping_info_err')
@@ -4170,15 +4169,15 @@ class order_Order extends common/* Com */.up {
4170
4169
  return;
4171
4170
  }
4172
4171
  let user = this.props.store.matchUser();
4173
- let ufullname = util/* default */.Z.getUserAttr(user, 'fullname', 'text');
4174
- let uemail = util/* default */.Z.getUserAttr(user, 'emails', 'text');
4175
- let uphone = util/* default */.Z.getUserAttr(user, 'phones', 'text');
4176
- let order = util/* default */.Z.cloneDeep(this.state.order);
4172
+ let ufullname = util/* default.getUserAttr */.Z.getUserAttr(user, 'fullname', 'text');
4173
+ let uemail = util/* default.getUserAttr */.Z.getUserAttr(user, 'emails', 'text');
4174
+ let uphone = util/* default.getUserAttr */.Z.getUserAttr(user, 'phones', 'text');
4175
+ let order = util/* default.cloneDeep */.Z.cloneDeep(this.state.order);
4177
4176
  if (this.state.shipping === 'shop') {
4178
- util/* default */.Z.set(order, 'shipping.pickup_at_shop', true);
4179
- util/* default */.Z.set(order, 'shipping.address.phone', this.state.phone);
4180
- util/* default */.Z.set(order, 'shipping.address.fullname', this.state.fullname);
4181
- util/* default */.Z.set(order, 'shipping.address.email', this.state.email);
4177
+ util/* default.set */.Z.set(order, 'shipping.pickup_at_shop', true);
4178
+ util/* default.set */.Z.set(order, 'shipping.address.phone', this.state.phone);
4179
+ util/* default.set */.Z.set(order, 'shipping.address.fullname', this.state.fullname);
4180
+ util/* default.set */.Z.set(order, 'shipping.address.email', this.state.email);
4182
4181
  } else {
4183
4182
  if (this.state.shipping_address == 'new') {
4184
4183
  let out = await this.props.store.createShippingAddress({
@@ -4198,37 +4197,37 @@ class order_Order extends common/* Com */.up {
4198
4197
  if (out.error) return this.setState({
4199
4198
  g_err: this.props.t('update_failed')
4200
4199
  });
4201
- util/* default */.Z.set(order, 'shipping.address', out.body);
4200
+ util/* default.set */.Z.set(order, 'shipping.address', out.body);
4202
4201
  } else {
4203
4202
  let addresses = this.props.store.matchShippingAddresses();
4204
- let sa = util/* default */.Z.find(addresses, addr => addr.id === this.state.shipping_address);
4203
+ let sa = util/* default.find */.Z.find(addresses, addr => addr.id === this.state.shipping_address);
4205
4204
  if (!sa) {
4206
4205
  return this.setState({
4207
4206
  err,
4208
4207
  g_err: this.props.t('input_shipping_info_err')
4209
4208
  });
4210
4209
  }
4211
- util/* default */.Z.set(order, 'shipping.address', sa);
4210
+ util/* default.set */.Z.set(order, 'shipping.address', sa);
4212
4211
  }
4213
4212
  }
4214
4213
  let changeduser = false;
4215
4214
  if (!ufullname && this.state.fullname) {
4216
4215
  changeduser = true;
4217
- util/* default */.Z.setUserAttr(user, {
4216
+ util/* default.setUserAttr */.Z.setUserAttr(user, {
4218
4217
  key: 'fullname',
4219
4218
  text: this.state.fullname
4220
4219
  });
4221
4220
  }
4222
4221
  if (!uemail && this.state.email) {
4223
4222
  changeduser = true;
4224
- util/* default */.Z.setUserAttr(user, {
4223
+ util/* default.setUserAttr */.Z.setUserAttr(user, {
4225
4224
  key: 'emails',
4226
4225
  text: this.state.email
4227
4226
  });
4228
4227
  }
4229
4228
  if (!uphone && this.state.phone) {
4230
4229
  changeduser = true;
4231
- util/* default */.Z.setUserAttr(user, {
4230
+ util/* default.setUserAttr */.Z.setUserAttr(user, {
4232
4231
  key: 'phones',
4233
4232
  text: this.state.phone
4234
4233
  });
@@ -4255,7 +4254,7 @@ class order_Order extends common/* Com */.up {
4255
4254
  order_defineProperty(this, "onCancel", () => {
4256
4255
  if (this.props.onResponse) this.props.onResponse('rejected');
4257
4256
  if (this.props.cid && !this.state.order.user_confirmation) {
4258
- let order = util/* default */.Z.cloneDeep(this.state.order);
4257
+ let order = util/* default.cloneDeep */.Z.cloneDeep(this.state.order);
4259
4258
  order.user_confirmation = 'rejected';
4260
4259
  this.props.store.updateOrder(order);
4261
4260
  }
@@ -4282,10 +4281,10 @@ class order_Order extends common/* Com */.up {
4282
4281
  });
4283
4282
  }
4284
4283
  let user = this.props.store.matchUser();
4285
- let attributes = util/* default */.Z.get(this.props.store.matchUser(), 'attributes', []);
4286
- let fullname = util/* default */.Z.get(util/* default */.Z.find(attributes, att => att.key === 'fullname'), 'text');
4287
- let email = util/* default */.Z.get(util/* default */.Z.find(attributes, att => att.key === 'emails'), 'text');
4288
- let phone = util/* default */.Z.get(util/* default */.Z.find(attributes, att => att.key === 'phones'), 'text');
4284
+ let attributes = util/* default.get */.Z.get(this.props.store.matchUser(), 'attributes', []);
4285
+ let fullname = util/* default.get */.Z.get(util/* default.find */.Z.find(attributes, att => att.key === 'fullname'), 'text');
4286
+ let email = util/* default.get */.Z.get(util/* default.find */.Z.find(attributes, att => att.key === 'emails'), 'text');
4287
+ let phone = util/* default.get */.Z.get(util/* default.find */.Z.find(attributes, att => att.key === 'phones'), 'text');
4289
4288
  this.setState({
4290
4289
  fullname,
4291
4290
  email,
@@ -4297,7 +4296,7 @@ class order_Order extends common/* Com */.up {
4297
4296
  loadProvince: false
4298
4297
  });
4299
4298
  if (!out.error) this.setState({
4300
- provinces: util/* default */.Z.get(out, 'body.addresses')
4299
+ provinces: util/* default.get */.Z.get(out, 'body.addresses')
4301
4300
  });
4302
4301
  }
4303
4302
  isMobile() {
@@ -4327,7 +4326,7 @@ class order_Order extends common/* Com */.up {
4327
4326
  }
4328
4327
  if (editmode) {
4329
4328
  let pms = this.props.store.matchPaymentMethods();
4330
- let $pms = util/* default */.Z.map(pms, pm => {
4329
+ let $pms = util/* default.map */.Z.map(pms, pm => {
4331
4330
  let $name = pm.description;
4332
4331
  if (pm.method == 'bank_transfer') {
4333
4332
  $name = pm.description + ' ' + pm.bank_name + ' ' + pm.bank_branch;
@@ -4408,15 +4407,15 @@ class order_Order extends common/* Com */.up {
4408
4407
  let user = this.props.store.matchUser();
4409
4408
  if (editmode) {
4410
4409
  let addresses = this.props.store.matchShippingAddresses();
4411
- let provinces = util/* default */.Z.map(this.state.provinces, province => ({
4410
+ let provinces = util/* default.map */.Z.map(this.state.provinces, province => ({
4412
4411
  id: province.id,
4413
4412
  name: province.province
4414
4413
  }));
4415
- let districts = util/* default */.Z.map(this.state.districts, district => ({
4414
+ let districts = util/* default.map */.Z.map(this.state.districts, district => ({
4416
4415
  id: district.id,
4417
4416
  name: district.district
4418
4417
  }));
4419
- let wards = util/* default */.Z.map(this.state.wards, ward => ({
4418
+ let wards = util/* default.map */.Z.map(this.state.wards, ward => ({
4420
4419
  id: ward.id,
4421
4420
  name: ward.ward
4422
4421
  }));
@@ -4425,7 +4424,7 @@ class order_Order extends common/* Com */.up {
4425
4424
  let ship_icon_active = false;
4426
4425
  if (this.state.shipping === 'ship') {
4427
4426
  ship_icon_active = true;
4428
- let $preaddrs = util/* default */.Z.map(addresses, addr => {
4427
+ let $preaddrs = util/* default.map */.Z.map(addresses, addr => {
4429
4428
  let fulladdr = [addr.street, addr.ward, addr.district, addr.region, addr.country].filter(a => a).join(', ');
4430
4429
  let $phone = null;
4431
4430
  if (addr.phone) {
@@ -4557,7 +4556,7 @@ class order_Order extends common/* Com */.up {
4557
4556
  style: "flex: 1 !important; margin-left: 7px !important;"
4558
4557
  })));
4559
4558
  cls += ' ship_card__active';
4560
- if (util/* default */.Z.size(addresses) == 0) {
4559
+ if (util/* default.size */.Z.size(addresses) == 0) {
4561
4560
  $body = (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
4562
4561
  class: 'mt-3 mb-2 '
4563
4562
  }, this.props.t('input_shipping_info')), $new);
@@ -4635,13 +4634,13 @@ class order_Order extends common/* Com */.up {
4635
4634
  class: "ml-2"
4636
4635
  }, "Giao h\xE0ng cho t\xF4i"))), $body));
4637
4636
  }
4638
- let addr = util/* default */.Z.get(order, 'shipping.address') || {};
4637
+ let addr = util/* default.get */.Z.get(order, 'shipping.address') || {};
4639
4638
  let fulladdr = [addr.address, addr.ward, addr.district, addr.region, addr.country].filter(a => a).join(', ');
4640
4639
  let $phone = null;
4641
4640
  if (addr.phone) $phone = (0,preact_module.h)("div", {
4642
4641
  class: "mt-1 muted"
4643
4642
  }, this.props.t('phn'), ":\xA0", addr.phone);
4644
- if (util/* default */.Z.get(order, 'shipping.pickup_at_shop')) {
4643
+ if (util/* default.get */.Z.get(order, 'shipping.pickup_at_shop')) {
4645
4644
  fulladdr = 'Nhận hàng tại cửa hàng';
4646
4645
  }
4647
4646
  let $addr = fulladdr ? (0,preact_module.h)("div", null, fulladdr) : (0,preact_module.h)("i", {
@@ -4660,28 +4659,28 @@ class order_Order extends common/* Com */.up {
4660
4659
  if (order.deposit > 0) {
4661
4660
  $deposit = (0,preact_module.h)("span", {
4662
4661
  class: "muted"
4663
- }, "(c\u1ECDc ", util/* default */.Z.formatCurrency(order.deposit), ")");
4662
+ }, "(c\u1ECDc ", util/* default.formatCurrency */.Z.formatCurrency(order.deposit), ")");
4664
4663
  }
4665
4664
  let $discount = null;
4666
4665
  if (order.total_discount > 0) {
4667
4666
  $discount = (0,preact_module.h)("div", {
4668
4667
  class: "order_summary_line"
4669
- }, (0,preact_module.h)("div", null, "Gi\u1EA3m gi\xE1"), (0,preact_module.h)("div", null, util/* default */.Z.formatCurrency(order.total_discount)));
4668
+ }, (0,preact_module.h)("div", null, "Gi\u1EA3m gi\xE1"), (0,preact_module.h)("div", null, util/* default.formatCurrency */.Z.formatCurrency(order.total_discount)));
4670
4669
  }
4671
4670
  let $pay = null;
4672
4671
  if ($deposit || order.payment_made) {
4673
4672
  $pay = (0,preact_module.h)(preact_module/* Fragment */.HY, null, (0,preact_module.h)("div", {
4674
4673
  class: "order_summary_line"
4675
- }, (0,preact_module.h)("div", null, "B\u1EA1n \u0111\xE3 tr\u1EA3"), (0,preact_module.h)("div", null, $deposit, " ", util/* default */.Z.formatCurrency(order.payment_made))), (0,preact_module.h)("div", {
4674
+ }, (0,preact_module.h)("div", null, "B\u1EA1n \u0111\xE3 tr\u1EA3"), (0,preact_module.h)("div", null, $deposit, " ", util/* default.formatCurrency */.Z.formatCurrency(order.payment_made))), (0,preact_module.h)("div", {
4676
4675
  class: "order_summary_line"
4677
- }, (0,preact_module.h)("div", null, "B\u1EA1n ch\u01B0a tr\u1EA3"), (0,preact_module.h)("div", null, util/* default */.Z.formatCurrency((order.total || 0) - (order.payment_made || 0)))));
4676
+ }, (0,preact_module.h)("div", null, "B\u1EA1n ch\u01B0a tr\u1EA3"), (0,preact_module.h)("div", null, util/* default.formatCurrency */.Z.formatCurrency((order.total || 0) - (order.payment_made || 0)))));
4678
4677
  }
4679
4678
  let $tax = (0,preact_module.h)("div", {
4680
4679
  class: "order_summary_line"
4681
- }, (0,preact_module.h)("div", null, "Ti\u1EC1n thu\u1EBF"), (0,preact_module.h)("div", null, util/* default */.Z.formatCurrency(order.total_tax)));
4680
+ }, (0,preact_module.h)("div", null, "Ti\u1EC1n thu\u1EBF"), (0,preact_module.h)("div", null, util/* default.formatCurrency */.Z.formatCurrency(order.total_tax)));
4682
4681
  let $ship = (0,preact_module.h)("div", {
4683
4682
  class: "order_summary_line"
4684
- }, (0,preact_module.h)("div", null, "Ph\xED v\u1EADn chuy\u1EC3n"), (0,preact_module.h)("div", null, util/* default */.Z.get(order, 'shipping.fee', 0), " d"));
4683
+ }, (0,preact_module.h)("div", null, "Ph\xED v\u1EADn chuy\u1EC3n"), (0,preact_module.h)("div", null, util/* default.get */.Z.get(order, 'shipping.fee', 0), " d"));
4685
4684
  let editmode = false;
4686
4685
  if (!order.status || order.status == 'open') {
4687
4686
  editmode = !order.user_confirmation;
@@ -4707,12 +4706,12 @@ class order_Order extends common/* Com */.up {
4707
4706
  class: "order_label"
4708
4707
  }, "T\xF3m t\u1EAFt"), (0,preact_module.h)("div", {
4709
4708
  class: "order_summary_line"
4710
- }, (0,preact_module.h)("div", null, "T\u1ED5ng ti\u1EC1n h\xE0ng"), (0,preact_module.h)("div", null, util/* default */.Z.formatCurrency(order.subtotal))), $tax, $discount, $ship, $note, (0,preact_module.h)("div", {
4709
+ }, (0,preact_module.h)("div", null, "T\u1ED5ng ti\u1EC1n h\xE0ng"), (0,preact_module.h)("div", null, util/* default.formatCurrency */.Z.formatCurrency(order.subtotal))), $tax, $discount, $ship, $note, (0,preact_module.h)("div", {
4711
4710
  class: "order_summary_line",
4712
4711
  style: "margin-top: 10px !important; padding-top: 15px !important; border-top: 1px solid #eee !important"
4713
4712
  }, (0,preact_module.h)("div", null, "B\u1EA1n ph\u1EA3i tr\u1EA3"), (0,preact_module.h)("div", {
4714
4713
  class: "order__total"
4715
- }, util/* default */.Z.formatCurrency(order.total))), $pay));
4714
+ }, util/* default.formatCurrency */.Z.formatCurrency(order.total))), $pay));
4716
4715
  }
4717
4716
  renderStatusBadge(order) {
4718
4717
  let status = order.status || 'open';
@@ -4723,9 +4722,9 @@ class order_Order extends common/* Com */.up {
4723
4722
  }
4724
4723
  renderShippingInfo(order) {
4725
4724
  if (order.status != 'open' || order.user_confirmation) {}
4726
- let shipping_provider = util/* default */.Z.get(order, 'shipping.shipping_provider');
4725
+ let shipping_provider = util/* default.get */.Z.get(order, 'shipping.shipping_provider');
4727
4726
  if (!shipping_provider) return null;
4728
- let shipping_code = util/* default */.Z.get(order, 'shipping.shipping_code');
4727
+ let shipping_code = util/* default.get */.Z.get(order, 'shipping.shipping_code');
4729
4728
  let $tracking_code = null;
4730
4729
  if (shipping_code) $tracking_code = (0,preact_module.h)("div", {
4731
4730
  class: "muted",
@@ -4753,9 +4752,9 @@ class order_Order extends common/* Com */.up {
4753
4752
  return null;
4754
4753
  }
4755
4754
  renderDesktopShippingInfo(order) {
4756
- let shipping_provider = util/* default */.Z.get(order, 'shipping.shipping_provider');
4755
+ let shipping_provider = util/* default.get */.Z.get(order, 'shipping.shipping_provider');
4757
4756
  if (!shipping_provider) return null;
4758
- let shipping_code = util/* default */.Z.get(order, 'shipping.shipping_code');
4757
+ let shipping_code = util/* default.get */.Z.get(order, 'shipping.shipping_code');
4759
4758
  let $tracking_code = null;
4760
4759
  if (shipping_code) $tracking_code = (0,preact_module.h)("div", {
4761
4760
  class: "muted",
@@ -4782,7 +4781,7 @@ class order_Order extends common/* Com */.up {
4782
4781
  }
4783
4782
  renderProducts(order) {
4784
4783
  let $products = null;
4785
- $products = util/* default */.Z.map(order.items, item => {
4784
+ $products = util/* default.map */.Z.map(order.items, item => {
4786
4785
  if (!item || !item.product) return null;
4787
4786
  let product = item.product;
4788
4787
  return (0,preact_module.h)("div", {
@@ -4790,7 +4789,7 @@ class order_Order extends common/* Com */.up {
4790
4789
  }, (0,preact_module.h)("img", {
4791
4790
  class: "order_attachment__product_img",
4792
4791
  alt: '' + product.id,
4793
- src: util/* default */.Z.get(product, 'images.0') || __webpack_require__(9270)
4792
+ src: util/* default.get */.Z.get(product, 'images.0') || __webpack_require__(9270)
4794
4793
  }), (0,preact_module.h)("div", {
4795
4794
  style: "overflow: hidden !important;"
4796
4795
  }, (0,preact_module.h)("div", {
@@ -4799,7 +4798,7 @@ class order_Order extends common/* Com */.up {
4799
4798
  class: "order_attachment__product_desc"
4800
4799
  }, product.description || product.long_description), (0,preact_module.h)("div", {
4801
4800
  class: "order_attachment__product_desc"
4802
- }, this.props.t('qty'), " ", item.quantity, "\xA0\xB7\xA0", util/* default */.Z.formatCurrency(product.price))));
4801
+ }, this.props.t('qty'), " ", item.quantity, "\xA0\xB7\xA0", util/* default.formatCurrency */.Z.formatCurrency(product.price))));
4803
4802
  });
4804
4803
  if (!this.isMobile()) return (0,preact_module.h)("div", null, (0,preact_module.h)("div", {
4805
4804
  class: "order_label"
@@ -4817,7 +4816,7 @@ class order_Order extends common/* Com */.up {
4817
4816
  editmode = !order.user_confirmation;
4818
4817
  }
4819
4818
  if (editmode) {
4820
- $products = util/* default */.Z.map(order.items, item => {
4819
+ $products = util/* default.map */.Z.map(order.items, item => {
4821
4820
  if (!item || !item.product) return null;
4822
4821
  let product = item.product;
4823
4822
  return (0,preact_module.h)("div", {
@@ -4825,7 +4824,7 @@ class order_Order extends common/* Com */.up {
4825
4824
  }, (0,preact_module.h)("img", {
4826
4825
  class: "order_attachment__product_img",
4827
4826
  alt: '' + product.id,
4828
- src: util/* default */.Z.get(product, 'images.0') || __webpack_require__(9270)
4827
+ src: util/* default.get */.Z.get(product, 'images.0') || __webpack_require__(9270)
4829
4828
  }), (0,preact_module.h)("div", {
4830
4829
  style: "overflow: hidden !important; flex: 1 !important"
4831
4830
  }, (0,preact_module.h)("div", {
@@ -4834,7 +4833,7 @@ class order_Order extends common/* Com */.up {
4834
4833
  class: "order_attachment__product_desc"
4835
4834
  }, product.description || product.long_description), (0,preact_module.h)("div", {
4836
4835
  class: "order_attachment__product_desc"
4837
- }, util/* default */.Z.formatCurrency(product.price))), (0,preact_module.h)("input", {
4836
+ }, util/* default.formatCurrency */.Z.formatCurrency(product.price))), (0,preact_module.h)("input", {
4838
4837
  class: "form-control",
4839
4838
  style: "text-align: center !important; font-weight: 400 !important; width: 50px !important",
4840
4839
  value: item.quantity,
@@ -4842,10 +4841,10 @@ class order_Order extends common/* Com */.up {
4842
4841
  type: "text"
4843
4842
  }), (0,preact_module.h)("div", {
4844
4843
  style: "width: 80px !important; text-align: right !important; "
4845
- }, (0,preact_module.h)("b", null, util/* default */.Z.formatCurrency(item.quantity * product.price))));
4844
+ }, (0,preact_module.h)("b", null, util/* default.formatCurrency */.Z.formatCurrency(item.quantity * product.price))));
4846
4845
  });
4847
4846
  } else {
4848
- $products = util/* default */.Z.map(order.items, item => {
4847
+ $products = util/* default.map */.Z.map(order.items, item => {
4849
4848
  if (!item || !item.product) return null;
4850
4849
  let product = item.product;
4851
4850
  return (0,preact_module.h)("div", {
@@ -4853,7 +4852,7 @@ class order_Order extends common/* Com */.up {
4853
4852
  }, (0,preact_module.h)("img", {
4854
4853
  class: "order_attachment__product_img",
4855
4854
  alt: '' + product.id,
4856
- src: util/* default */.Z.get(product, 'images.0') || __webpack_require__(9270)
4855
+ src: util/* default.get */.Z.get(product, 'images.0') || __webpack_require__(9270)
4857
4856
  }), (0,preact_module.h)("div", {
4858
4857
  style: "overflow: hidden !important; flex: 1 !important"
4859
4858
  }, (0,preact_module.h)("div", {
@@ -4862,11 +4861,11 @@ class order_Order extends common/* Com */.up {
4862
4861
  class: "order_attachment__product_desc"
4863
4862
  }, product.description || product.long_description), (0,preact_module.h)("div", {
4864
4863
  class: "order_attachment__product_desc"
4865
- }, util/* default */.Z.formatCurrency(product.price))), (0,preact_module.h)("div", {
4864
+ }, util/* default.formatCurrency */.Z.formatCurrency(product.price))), (0,preact_module.h)("div", {
4866
4865
  style: "text-align: center !important; font-weight: 400 !important; width: 50px !important"
4867
4866
  }, item.quantity), (0,preact_module.h)("div", {
4868
4867
  style: "width: 80px !important; text-align: right !important; "
4869
- }, (0,preact_module.h)("b", null, util/* default */.Z.formatCurrency(item.total))));
4868
+ }, (0,preact_module.h)("b", null, util/* default.formatCurrency */.Z.formatCurrency(item.total))));
4870
4869
  });
4871
4870
  }
4872
4871
  return (0,preact_module.h)("div", {
@@ -5084,7 +5083,7 @@ class Order extends common/* Com */.up {
5084
5083
  });
5085
5084
  });
5086
5085
  Order_defineProperty(this, "close", async () => {
5087
- await util/* default */.Z.sleep(100);
5086
+ await util/* default.sleep */.Z.sleep(100);
5088
5087
  if (this.state.response === 'confirmed') {
5089
5088
  this.props.store.sendConvoEvent(this.props.cid, 'message_sent', {
5090
5089
  message: {
@@ -5185,7 +5184,7 @@ class Order extends common/* Com */.up {
5185
5184
  render() {
5186
5185
  if (this._show != this.props.show) {
5187
5186
  this._show = this.props.show;
5188
- util/* default */.Z.setTimeout(() => {
5187
+ util/* default.setTimeout */.Z.setTimeout(() => {
5189
5188
  if (!this._show) this.close();else this.open();
5190
5189
  });
5191
5190
  }
@@ -5312,7 +5311,7 @@ class Widget extends common/* Com */.up {
5312
5311
  super(props);
5313
5312
  Widget_defineProperty(this, "msgInput", (0,preact_module/* createRef */.Vf)());
5314
5313
  Widget_defineProperty(this, "sendMessage", async message => {
5315
- let hasPostback = util/* default */.Z.find(message.attachments, att => att.type === 'postback');
5314
+ let hasPostback = util/* default.find */.Z.find(message.attachments, att => att.type === 'postback');
5316
5315
  if (this.isFormRequired() && hasPostback) {
5317
5316
  this.onStartConvoClick();
5318
5317
  this.fillQuickReplyToQuestion(message);
@@ -5391,7 +5390,7 @@ class Widget extends common/* Com */.up {
5391
5390
  clickedJoin: false,
5392
5391
  quickReplyMessage: {}
5393
5392
  });
5394
- util/* default */.Z.setTimeout(() => {
5393
+ util/* default.setTimeout */.Z.setTimeout(() => {
5395
5394
  this.events && this.events.focus();
5396
5395
  if (!this.props.store.isMobile()) this.focusInput();
5397
5396
  }, 100);
@@ -5402,10 +5401,10 @@ class Widget extends common/* Com */.up {
5402
5401
  let form;
5403
5402
  let accountSetting = this.props.plugin.chatbox || {};
5404
5403
  let acc = this.props.store.matchAccount() || {};
5405
- if (util/* default */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
5406
- let offlineEnabled = util/* default */.Z.get(accountSetting, 'offline_form.enabled');
5404
+ if (util/* default.get */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
5405
+ let offlineEnabled = util/* default.get */.Z.get(accountSetting, 'offline_form.enabled');
5407
5406
  if (this.isOffline(acc, accountSetting) && offlineEnabled) form = accountSetting.offline_form;
5408
- if (!this.hasSentMessage(this.props.cid) && form && (util/* default */.Z.size(form.groups) || form.group_required)) return true;
5407
+ if (!this.hasSentMessage(this.props.cid) && form && (util/* default.size */.Z.size(form.groups) || form.group_required)) return true;
5409
5408
  let formRequired = this.isFormRequired();
5410
5409
  return formRequired && !this.props.cid || formRequired && this.props.cid && this.state.clickedJoin;
5411
5410
  }
@@ -5415,8 +5414,8 @@ class Widget extends common/* Com */.up {
5415
5414
  let accountSetting = this.props.plugin.chatbox || {};
5416
5415
  let acc = this.props.store.matchAccount() || {};
5417
5416
  let submitLabel = this.props.t('prechat_form_btn');
5418
- if (util/* default */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
5419
- let offlineEnabled = util/* default */.Z.get(accountSetting, 'offline_form.enabled');
5417
+ if (util/* default.get */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
5418
+ let offlineEnabled = util/* default.get */.Z.get(accountSetting, 'offline_form.enabled');
5420
5419
  if (this.isOffline(acc, accountSetting) && offlineEnabled) {
5421
5420
  form = accountSetting.offline_form;
5422
5421
  submitLabel = this.props.t('offline_form_btn');
@@ -5433,8 +5432,8 @@ class Widget extends common/* Com */.up {
5433
5432
  }
5434
5433
  let $body = null;
5435
5434
  if (this.props.view === 'list') $body = this.renderConvoList();else if (showform) $body = this.renderForm(form, submitLabel);else $body = this.renderChat();
5436
- let position = util/* default */.Z.get(accountSetting, 'desktop_button.position') || 'right';
5437
- if (this.props.store.isMobile()) position = util/* default */.Z.get(accountSetting, 'mobile_button.position', position);
5435
+ let position = util/* default.get */.Z.get(accountSetting, 'desktop_button.position') || 'right';
5436
+ if (this.props.store.isMobile()) position = util/* default.get */.Z.get(accountSetting, 'mobile_button.position', position);
5438
5437
  let cls = 'widget-container widget-container--' + position;
5439
5438
  if (!this.props.isShow) cls += ' widget-container--hide';
5440
5439
  return (0,preact_module.h)("div", {
@@ -5453,42 +5452,42 @@ class Widget extends common/* Com */.up {
5453
5452
  }
5454
5453
  async submitPrechatForm(form) {
5455
5454
  var hasError = false;
5456
- util/* default */.Z.map(this.state.formData, (field, key) => {
5457
- if (field.is_required && (field.value === undefined || field.value === '' || util/* default */.Z.size(field.value) === 0 && Array.isArray(field.value))) {
5455
+ util/* default.map */.Z.map(this.state.formData, (field, key) => {
5456
+ if (field.is_required && (field.value === undefined || field.value === '' || util/* default.size */.Z.size(field.value) === 0 && Array.isArray(field.value))) {
5458
5457
  field.error = this.props.t('error_empty');
5459
5458
  hasError = true;
5460
5459
  } else field.error = '';
5461
- if (key.substr(5) === 'emails' && !util/* default */.Z.isEmail(field.value) && field.is_required) {
5460
+ if (key.substr(5) === 'emails' && !util/* default.isEmail */.Z.isEmail(field.value) && field.is_required) {
5462
5461
  field.error = this.props.t('error_email_invalid');
5463
5462
  hasError = true;
5464
5463
  }
5465
- if (key.substr(5) === 'phones' && !util/* default */.Z.isPhone(field.value) && field.is_required) {
5464
+ if (key.substr(5) === 'phones' && !util/* default.isPhone */.Z.isPhone(field.value) && field.is_required) {
5466
5465
  field.error = this.props.t('error_phone_invalid');
5467
5466
  hasError = true;
5468
5467
  }
5469
5468
  });
5470
5469
  if (hasError) return this.forceUpdate();
5471
- let data = util/* default */.Z.cloneDeep(this.state.formData);
5472
- let user = util/* default */.Z.cloneDeep(this.props.store.matchUser());
5470
+ let data = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5471
+ let user = util/* default.cloneDeep */.Z.cloneDeep(this.props.store.matchUser());
5473
5472
  let is_lead = false;
5474
- util/* default */.Z.map(data, (field, key) => {
5473
+ util/* default.map */.Z.map(data, (field, key) => {
5475
5474
  if (!key.startsWith('attr:')) return;
5476
5475
  var attr = {
5477
5476
  key: key.substr(5)
5478
5477
  };
5479
5478
  is_lead = is_lead || key == 'emails' || key == 'phones';
5480
5479
  if (field.type === 'number') attr.number = parseInt(field.value);
5481
- if (field.type === 'datetime') attr.datetime = new util/* default */.Z.Date(field.value).toISOString();
5480
+ if (field.type === 'datetime') attr.datetime = new util/* default.Date */.Z.Date(field.value).toISOString();
5482
5481
  if (field.type === 'list') attr.text = field.value;
5483
5482
  if (field.type === 'text' || field.type === 'boolean') attr[field.type] = field.value;
5484
- util/* default */.Z.setUserAttr(user, attr);
5483
+ util/* default.setUserAttr */.Z.setUserAttr(user, attr);
5485
5484
  });
5486
- if (is_lead) util/* default */.Z.setUserAttr(user, {
5485
+ if (is_lead) util/* default.setUserAttr */.Z.setUserAttr(user, {
5487
5486
  key: 'lead_source',
5488
5487
  text: 'widget'
5489
5488
  });
5490
- let firstmsg = util/* default */.Z.get(data, 'question.value');
5491
- let groupid = util/* default */.Z.get(data, 'group.value', '');
5489
+ let firstmsg = util/* default.get */.Z.get(data, 'question.value');
5490
+ let groupid = util/* default.get */.Z.get(data, 'group.value', '');
5492
5491
  if (this.props.cid) {
5493
5492
  this.props.store.setUser(user);
5494
5493
  this.setState({
@@ -5500,7 +5499,7 @@ class Widget extends common/* Com */.up {
5500
5499
  format: 'plaintext',
5501
5500
  fields: [{
5502
5501
  key: 'to_agent_group',
5503
- value: util/* default */.Z.stringify(groupid)
5502
+ value: util/* default.stringify */.Z.stringify(groupid)
5504
5503
  }],
5505
5504
  attachments: this.state.quickReplyMessage.attachments
5506
5505
  }
@@ -5560,7 +5559,7 @@ class Widget extends common/* Com */.up {
5560
5559
  formData['question'] = {
5561
5560
  key: 'question',
5562
5561
  is_required: true,
5563
- label: this.props.t.i18n(util/* default */.Z.get(form, `i18n_question_label`, {})) || form.question_label,
5562
+ label: this.props.t.i18n(util/* default.get */.Z.get(form, `i18n_question_label`, {})) || form.question_label,
5564
5563
  type: 'text',
5565
5564
  value: this.state.quickReplyMessage.text
5566
5565
  };
@@ -5571,8 +5570,8 @@ class Widget extends common/* Com */.up {
5571
5570
  }
5572
5571
  onBooleanChange(key, e) {
5573
5572
  this.wasFormInputed = true;
5574
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5575
- let field = util/* default */.Z.find(formData, (_, fkkey) => fkkey === key);
5573
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5574
+ let field = util/* default.find */.Z.find(formData, (_, fkkey) => fkkey === key);
5576
5575
  if (!field) return;
5577
5576
  field.value = e.target.checked;
5578
5577
  this.setState({
@@ -5581,8 +5580,8 @@ class Widget extends common/* Com */.up {
5581
5580
  }
5582
5581
  onInputChange(key, val) {
5583
5582
  this.wasFormInputed = true;
5584
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5585
- let field = util/* default */.Z.find(formData, (_, fkkey) => fkkey === key);
5583
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5584
+ let field = util/* default.find */.Z.find(formData, (_, fkkey) => fkkey === key);
5586
5585
  if (!field) return;
5587
5586
  field.value = val;
5588
5587
  this.setState({
@@ -5591,8 +5590,8 @@ class Widget extends common/* Com */.up {
5591
5590
  }
5592
5591
  onListAddItem(key, val) {
5593
5592
  this.wasFormInputed = true;
5594
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5595
- let field = util/* default */.Z.find(formData, (_, fkkey) => fkkey === key);
5593
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5594
+ let field = util/* default.find */.Z.find(formData, (_, fkkey) => fkkey === key);
5596
5595
  if (!field) return;
5597
5596
  field.value = field.value || [];
5598
5597
  field.value.push(val);
@@ -5602,8 +5601,8 @@ class Widget extends common/* Com */.up {
5602
5601
  }
5603
5602
  onListRemoveItem(key, index) {
5604
5603
  this.wasFormInputed = true;
5605
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5606
- let field = util/* default */.Z.find(formData, (_, fkkey) => fkkey === key);
5604
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5605
+ let field = util/* default.find */.Z.find(formData, (_, fkkey) => fkkey === key);
5607
5606
  if (!field) return;
5608
5607
  field.value = field.value || [];
5609
5608
  field.value.splice(index, 1);
@@ -5612,11 +5611,11 @@ class Widget extends common/* Com */.up {
5612
5611
  });
5613
5612
  }
5614
5613
  renderCheckboxField(field) {
5615
- let items = util/* default */.Z.get(field, 'def.items', []);
5614
+ let items = util/* default.get */.Z.get(field, 'def.items', []);
5616
5615
  let values = [];
5617
5616
  let value = field.value || '';
5618
5617
  if (value) values = value.split(',');
5619
- return (0,preact_module.h)("div", null, util/* default */.Z.map(items, item => {
5618
+ return (0,preact_module.h)("div", null, util/* default.map */.Z.map(items, item => {
5620
5619
  return (0,preact_module.h)("div", {
5621
5620
  class: "checkbox"
5622
5621
  }, (0,preact_module.h)("input", {
@@ -5634,14 +5633,14 @@ class Widget extends common/* Com */.up {
5634
5633
  }
5635
5634
  toggleCheckboxField(key, v) {
5636
5635
  this.wasFormInputed = true;
5637
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5638
- let field = util/* default */.Z.find(formData, (f, fkkey) => f.key === key);
5636
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5637
+ let field = util/* default.find */.Z.find(formData, (f, fkkey) => f.key === key);
5639
5638
  if (!field) return;
5640
5639
  let value = field.value || '';
5641
5640
  let values = [];
5642
5641
  if (value) values = value.split(',');
5643
5642
  if (values.includes(v)) {
5644
- values = util/* default */.Z.filter(values, value => value !== v);
5643
+ values = util/* default.filter */.Z.filter(values, value => value !== v);
5645
5644
  } else {
5646
5645
  values.push(v);
5647
5646
  }
@@ -5651,9 +5650,9 @@ class Widget extends common/* Com */.up {
5651
5650
  });
5652
5651
  }
5653
5652
  renderRadioField(field) {
5654
- let items = util/* default */.Z.get(field, 'def.items', []);
5653
+ let items = util/* default.get */.Z.get(field, 'def.items', []);
5655
5654
  let value = field.value || '';
5656
- return (0,preact_module.h)("div", null, util/* default */.Z.map(items, item => {
5655
+ return (0,preact_module.h)("div", null, util/* default.map */.Z.map(items, item => {
5657
5656
  return (0,preact_module.h)("div", {
5658
5657
  class: "radio"
5659
5658
  }, (0,preact_module.h)("input", {
@@ -5672,8 +5671,8 @@ class Widget extends common/* Com */.up {
5672
5671
  }
5673
5672
  toggleRadioField(key, v) {
5674
5673
  this.wasFormInputed = true;
5675
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5676
- let field = util/* default */.Z.find(formData, (f, fkkey) => f.key === key);
5674
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5675
+ let field = util/* default.find */.Z.find(formData, (f, fkkey) => f.key === key);
5677
5676
  if (!field) return;
5678
5677
  field.value = v;
5679
5678
  this.setState({
@@ -5682,8 +5681,8 @@ class Widget extends common/* Com */.up {
5682
5681
  }
5683
5682
  selectDropdownField(key, v) {
5684
5683
  this.wasFormInputed = true;
5685
- let formData = util/* default */.Z.cloneDeep(this.state.formData);
5686
- let field = util/* default */.Z.find(formData, (f, fkkey) => f.key === key);
5684
+ let formData = util/* default.cloneDeep */.Z.cloneDeep(this.state.formData);
5685
+ let field = util/* default.find */.Z.find(formData, (f, fkkey) => f.key === key);
5687
5686
  if (!field) return;
5688
5687
  field.value = v;
5689
5688
  this.setState({
@@ -5691,20 +5690,20 @@ class Widget extends common/* Com */.up {
5691
5690
  });
5692
5691
  }
5693
5692
  renderDropdownField(field) {
5694
- let items = util/* default */.Z.get(field, 'def.items', []);
5693
+ let items = util/* default.get */.Z.get(field, 'def.items', []);
5695
5694
  return (0,preact_module.h)("select", {
5696
5695
  class: "form-control",
5697
5696
  value: field.value,
5698
5697
  onChange: e => this.selectDropdownField(field.key, e.target.value)
5699
5698
  }, (0,preact_module.h)("option", {
5700
5699
  value: ""
5701
- }, "-- ", this.props.t('no_select'), " --"), util/* default */.Z.map(items, item => (0,preact_module.h)("option", {
5700
+ }, "-- ", this.props.t('no_select'), " --"), util/* default.map */.Z.map(items, item => (0,preact_module.h)("option", {
5702
5701
  value: item.value
5703
5702
  }, this.props.t.i18n(item.i18n_label) || item.label || item.value)));
5704
5703
  }
5705
5704
  renderFields() {
5706
- if (util/* default */.Z.size(this.state.formData) === 0) return null;
5707
- let $fields = util/* default */.Z.map(this.state.formData, (field, key) => {
5705
+ if (util/* default.size */.Z.size(this.state.formData) === 0) return null;
5706
+ let $fields = util/* default.map */.Z.map(this.state.formData, (field, key) => {
5708
5707
  if (this.state.quickReplyMessage.text && key === 'question') return null;
5709
5708
  let $field = null;
5710
5709
  var errclass = field.error ? 'input--error' : '';
@@ -5720,13 +5719,13 @@ class Widget extends common/* Com */.up {
5720
5719
  row: "4",
5721
5720
  class: "form-control"
5722
5721
  });
5723
- } else if (util/* default */.Z.get(field, 'def.select') === 'checkbox') {
5722
+ } else if (util/* default.get */.Z.get(field, 'def.select') === 'checkbox') {
5724
5723
  $field = this.renderCheckboxField(field);
5725
- } else if (util/* default */.Z.get(field, 'def.select') === 'radio') {
5724
+ } else if (util/* default.get */.Z.get(field, 'def.select') === 'radio') {
5726
5725
  $field = this.renderRadioField(field);
5727
- } else if (util/* default */.Z.get(field, 'def.select') === 'dropdown') {
5726
+ } else if (util/* default.get */.Z.get(field, 'def.select') === 'dropdown') {
5728
5727
  $field = this.renderDropdownField(field);
5729
- } else if (util/* default */.Z.get(field, 'def.multiple_line')) {
5728
+ } else if (util/* default.get */.Z.get(field, 'def.multiple_line')) {
5730
5729
  $field = (0,preact_module.h)("textarea", {
5731
5730
  class: "form-control",
5732
5731
  ref: ref => {
@@ -5773,7 +5772,7 @@ class Widget extends common/* Com */.up {
5773
5772
  class: "checkbox--check"
5774
5773
  }, (0,preact_module.h)("div", null)));
5775
5774
  } else if (field.type === 'group') {
5776
- $field = util/* default */.Z.map(field.list, item => (0,preact_module.h)("div", {
5775
+ $field = util/* default.map */.Z.map(field.list, item => (0,preact_module.h)("div", {
5777
5776
  class: "radio"
5778
5777
  }, (0,preact_module.h)("input", {
5779
5778
  type: "radio",
@@ -5790,8 +5789,8 @@ class Widget extends common/* Com */.up {
5790
5789
  }))));
5791
5790
  } else if (field.type === 'list') {
5792
5791
  let selected = this.state.formData[key].value || [];
5793
- let items = util/* default */.Z.filter(util/* default */.Z.get(field, 'list', []), item => {
5794
- return !util/* default */.Z.includes(selected, item);
5792
+ let items = util/* default.filter */.Z.filter(util/* default.get */.Z.get(field, 'list', []), item => {
5793
+ return !util/* default.includes */.Z.includes(selected, item);
5795
5794
  });
5796
5795
  $field = (0,preact_module.h)(ListField, {
5797
5796
  selected: selected,
@@ -5839,8 +5838,8 @@ class Widget extends common/* Com */.up {
5839
5838
  size: "16",
5840
5839
  mode: "white"
5841
5840
  }));
5842
- let title = this.props.t.i18n(util/* default */.Z.get(form, `i18n_title`, {}));
5843
- if (!title) title = util/* default */.Z.get(form, 'title', this.props.t('capture_lead_title'));
5841
+ let title = this.props.t.i18n(util/* default.get */.Z.get(form, `i18n_title`, {}));
5842
+ if (!title) title = util/* default.get */.Z.get(form, 'title', this.props.t('capture_lead_title'));
5844
5843
  title = title.replace('↵', '');
5845
5844
  return (0,preact_module.h)("div", {
5846
5845
  class: "widget-body"
@@ -5871,15 +5870,15 @@ class Widget extends common/* Com */.up {
5871
5870
  }
5872
5871
  renderConvoList() {
5873
5872
  let convoM = this.props.store.matchConvo('*');
5874
- var convos = util/* default */.Z.map(convoM, convo => this.props.store.matchConvo(convo.id));
5875
- convos = util/* default */.Z.filter(convos, convo => !!convo);
5876
- convos = util/* default */.Z.orderByF(convos, convo => util/* default */.Z.get(convo, 'last_message_sent.created', convo.actived), 'desc');
5877
- var $convos = util/* default */.Z.map(convos, convo => {
5878
- let ags = util/* default */.Z.filter(convo.members, m => {
5873
+ var convos = util/* default.map */.Z.map(convoM, convo => this.props.store.matchConvo(convo.id));
5874
+ convos = util/* default.filter */.Z.filter(convos, convo => !!convo);
5875
+ convos = util/* default.orderByF */.Z.orderByF(convos, convo => util/* default.get */.Z.get(convo, 'last_message_sent.created', convo.actived), 'desc');
5876
+ var $convos = util/* default.map */.Z.map(convos, convo => {
5877
+ let ags = util/* default.filter */.Z.filter(convo.members, m => {
5879
5878
  return (m.type === 'agent' || m.type === 'bot') && m.membership === 'active';
5880
5879
  });
5881
- let agentids = util/* default */.Z.map(ags, m => m.id);
5882
- agentids = agentids || util/* default */.Z.agentsOfConvo(convo)[0];
5880
+ let agentids = util/* default.map */.Z.map(ags, m => m.id);
5881
+ agentids = agentids || util/* default.agentsOfConvo */.Z.agentsOfConvo(convo)[0];
5883
5882
  return (0,preact_module.h)("div", {
5884
5883
  class: "convo-list--item",
5885
5884
  onClick: () => this.goToConvo(convo.id),
@@ -5896,7 +5895,7 @@ class Widget extends common/* Com */.up {
5896
5895
  let $body = (0,preact_module.h)("div", {
5897
5896
  class: "convo-list--list"
5898
5897
  }, $convos);
5899
- if (util/* default */.Z.size(convos) === 0) {
5898
+ if (util/* default.size */.Z.size(convos) === 0) {
5900
5899
  $body = (0,preact_module.h)("div", {
5901
5900
  class: "convo-list--list"
5902
5901
  }, (0,preact_module.h)("div", {
@@ -5932,19 +5931,19 @@ class Widget extends common/* Com */.up {
5932
5931
  if (this.props.store.isPreview) return;
5933
5932
  var $input = this.msgInput.current;
5934
5933
  if (!$input) return;
5935
- util/* default */.Z.setTimeout(() => $input && $input.blur());
5936
- util/* default */.Z.setTimeout(() => $input && $input.blur(), 300);
5934
+ util/* default.setTimeout */.Z.setTimeout(() => $input && $input.blur());
5935
+ util/* default.setTimeout */.Z.setTimeout(() => $input && $input.blur(), 300);
5937
5936
  }
5938
5937
  focusInput() {
5939
5938
  if (this.props.store.isPreview) return;
5940
5939
  if (this.shouldShowForm()) {
5941
5940
  let firstemptykey = '';
5942
- util/* default */.Z.map(this.state.formData, (field, key) => {
5941
+ util/* default.map */.Z.map(this.state.formData, (field, key) => {
5943
5942
  if (field.type !== 'text') return;
5944
5943
  if (firstemptykey) return;
5945
5944
  if (!field.value) firstemptykey = key;
5946
5945
  });
5947
- util/* default */.Z.setTimeout(() => {
5946
+ util/* default.setTimeout */.Z.setTimeout(() => {
5948
5947
  var $input = this['form_' + Widget_encode(firstemptykey)];
5949
5948
  if (!$input) return;
5950
5949
  $input.focus();
@@ -5953,8 +5952,8 @@ class Widget extends common/* Com */.up {
5953
5952
  }
5954
5953
  var $input = this.msgInput.current;
5955
5954
  if (!$input) return;
5956
- util/* default */.Z.setTimeout(() => $input.focus());
5957
- util/* default */.Z.setTimeout(() => $input.focus(), 300);
5955
+ util/* default.setTimeout */.Z.setTimeout(() => $input.focus());
5956
+ util/* default.setTimeout */.Z.setTimeout(() => $input.focus(), 300);
5958
5957
  }
5959
5958
  onRate(rating) {
5960
5959
  if (!this.props.cid) return;
@@ -5968,7 +5967,7 @@ class Widget extends common/* Com */.up {
5968
5967
  fillQuickReplyToQuestion(message) {
5969
5968
  let formData = this.state.formData;
5970
5969
  if (formData) {
5971
- util/* default */.Z.set(formData, 'question.value', message.text);
5970
+ util/* default.set */.Z.set(formData, 'question.value', message.text);
5972
5971
  }
5973
5972
  this.setState({
5974
5973
  formData,
@@ -6061,8 +6060,8 @@ class Widget extends common/* Com */.up {
6061
6060
  let form;
6062
6061
  let accountSetting = this.props.plugin.chatbox || {};
6063
6062
  let acc = this.props.store.matchAccount() || {};
6064
- if (util/* default */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
6065
- let offlineEnabled = util/* default */.Z.get(accountSetting, 'offline_form.enabled');
6063
+ if (util/* default.get */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
6064
+ let offlineEnabled = util/* default.get */.Z.get(accountSetting, 'offline_form.enabled');
6066
6065
  if (this.isOffline(acc, accountSetting) && offlineEnabled) form = accountSetting.offline_form;
6067
6066
  if (!form) return false;
6068
6067
  let formData = this.fillForm(form);
@@ -6070,34 +6069,34 @@ class Widget extends common/* Com */.up {
6070
6069
  if (convo.state === 'ended') return true;
6071
6070
  if (convo.state && convo.state !== 'pending') delete formData.group;
6072
6071
  let isAllFiledEmpty = true;
6073
- util/* default */.Z.each(formData, field => {
6072
+ util/* default.each */.Z.each(formData, field => {
6074
6073
  if (field.value) isAllFiledEmpty = false;
6075
6074
  });
6076
6075
  if (isAllFiledEmpty && !this.userHasSent(this.props.cid)) return true;
6077
- return !!util/* default */.Z.find(formData, field => field.is_required && (field.value == null || field.value === ''));
6076
+ return !!util/* default.find */.Z.find(formData, field => field.is_required && (field.value == null || field.value === ''));
6078
6077
  }
6079
6078
  renderConvoSummary(convo) {
6080
6079
  let accountSetting = this.props.plugin.chatbox || {};
6081
6080
  let agentM = this.props.store.matchAgent('*');
6082
- let ags = util/* default */.Z.filter(convo.members, m => {
6081
+ let ags = util/* default.filter */.Z.filter(convo.members, m => {
6083
6082
  return (m.type === 'agent' || m.type === 'bot') && m.membership === 'active';
6084
6083
  });
6085
- let agentids = util/* default */.Z.map(ags, m => m.id);
6086
- agentids = agentids || util/* default */.Z.agentsOfConvo(convo)[0];
6087
- let agents = util/* default */.Z.map(agentids, id => agentM[id] || {
6084
+ let agentids = util/* default.map */.Z.map(ags, m => m.id);
6085
+ agentids = agentids || util/* default.agentsOfConvo */.Z.agentsOfConvo(convo)[0];
6086
+ let agents = util/* default.map */.Z.map(agentids, id => agentM[id] || {
6088
6087
  avatar_url: Widget_defaultAvatar,
6089
6088
  fullname: 'Offline Agent'
6090
6089
  });
6091
- var name = util/* default */.Z.each(agents, ag => ag.fullname).join(', ');
6090
+ var name = util/* default.each */.Z.each(agents, ag => ag.fullname).join(', ');
6092
6091
  if (accountSetting.hide_agent_profile || !name) name = this.props.store.matchAccount().name;
6093
6092
  if (!name) name = this.props.t('agent');
6094
6093
  var $you = null;
6095
6094
  if (convo.lastSenderType === 'user') {
6096
6095
  $you = (0,preact_module.h)("span", null, this.props.t('you'), ":");
6097
6096
  }
6098
- let seen = util/* default */.Z.isConvoSeen(convo, this.props.store.matchUser().id);
6097
+ let seen = util/* default.isConvoSeen */.Z.isConvoSeen(convo, this.props.store.matchUser().id);
6099
6098
  var lastmsg = this.renderMessagePreview(convo.last_message_sent);
6100
- var time = util/* default */.Z.getMs(util/* default */.Z.get(convo, 'last_message_sent.created')) || util/* default */.Z.getMs(convo.created);
6099
+ var time = util/* default.getMs */.Z.getMs(util/* default.get */.Z.get(convo, 'last_message_sent.created')) || util/* default.getMs */.Z.getMs(convo.created);
6101
6100
  let $unread = seen ? null : (0,preact_module.h)("div", {
6102
6101
  class: "convo-list--item-unread"
6103
6102
  });
@@ -6130,23 +6129,23 @@ class Widget extends common/* Com */.up {
6130
6129
  }
6131
6130
  agentsOfConvo(convo) {
6132
6131
  let agentM = this.props.store.matchAgent('*');
6133
- var agentids = util/* default */.Z.agentsOfConvo(convo, true);
6134
- return util/* default */.Z.map(agentids, id => agentM[id] || {
6132
+ var agentids = util/* default.agentsOfConvo */.Z.agentsOfConvo(convo, true);
6133
+ return util/* default.map */.Z.map(agentids, id => agentM[id] || {
6135
6134
  avatar_url: Widget_defaultAvatar,
6136
6135
  fullname: 'Offline Agent'
6137
6136
  });
6138
6137
  }
6139
6138
  renderMessagePreview(ev) {
6140
6139
  let defmsg = this.props.t('sent_you_a_message');
6141
- let message = util/* default */.Z.get(ev, 'data.message.text');
6142
- var format = util/* default */.Z.get(ev, 'data.message.format');
6140
+ let message = util/* default.get */.Z.get(ev, 'data.message.text');
6141
+ var format = util/* default.get */.Z.get(ev, 'data.message.format');
6143
6142
  if (format !== 'plaintext') message = defmsg;
6144
- if (!message && util/* default */.Z.size(util/* default */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
6143
+ if (!message && util/* default.size */.Z.size(util/* default.get */.Z.get(ev, 'data.message.attachments')) > 0) message = defmsg;
6145
6144
  if (!message) return null;
6146
- let byType = util/* default */.Z.get(ev, 'by.type');
6145
+ let byType = util/* default.get */.Z.get(ev, 'by.type');
6147
6146
  return (0,preact_module.h)("div", {
6148
6147
  class: "convo-list--convo-last-mes"
6149
- }, util/* default */.Z.map(util/* default */.Z.extractText(message), tag => {
6148
+ }, util/* default.map */.Z.map(util/* default.extractText */.Z.extractText(message), tag => {
6150
6149
  if (tag.type === 'emoji') return (0,preact_module.h)(Emoji, {
6151
6150
  emojiCode: tag.text,
6152
6151
  byType: byType
@@ -6158,19 +6157,19 @@ class Widget extends common/* Com */.up {
6158
6157
  var convo = this.props.store.matchConvo(cid) || {};
6159
6158
  let user = this.props.store.matchUser();
6160
6159
  if (this.userSent[cid]) return true;
6161
- let joined = util/* default */.Z.find(convo.members, mem => mem.id === user.id && (mem.membership === 'active' || mem.last_sent > 0));
6160
+ let joined = util/* default.find */.Z.find(convo.members, mem => mem.id === user.id && (mem.membership === 'active' || mem.last_sent > 0));
6162
6161
  return joined;
6163
6162
  }
6164
6163
  hasSentMessage(cid) {
6165
6164
  let convo = this.props.store.matchConvo(cid) || {};
6166
- let joined = util/* default */.Z.find(convo.members, mem => {
6165
+ let joined = util/* default.find */.Z.find(convo.members, mem => {
6167
6166
  if (mem.type === 'bot') return true;
6168
6167
  return mem.last_sent;
6169
6168
  });
6170
6169
  return joined;
6171
6170
  }
6172
6171
  isOffline(acc, accSetting) {
6173
- let enableWhen = util/* default */.Z.get(accSetting, 'offline_form.enable_when');
6172
+ let enableWhen = util/* default.get */.Z.get(accSetting, 'offline_form.enable_when');
6174
6173
  let isonline = true;
6175
6174
  if (enableWhen === 'all_agents_offline') isonline = acc.is_online;
6176
6175
  if (enableWhen === 'out_of_bussiness_hour') isonline = acc.is_in_business_hour;
@@ -6180,8 +6179,8 @@ class Widget extends common/* Com */.up {
6180
6179
  let form;
6181
6180
  let accountSetting = this.props.plugin.chatbox || {};
6182
6181
  let acc = this.props.store.matchAccount() || {};
6183
- if (util/* default */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
6184
- let offlineEnabled = util/* default */.Z.get(accountSetting, 'offline_form.enabled');
6182
+ if (util/* default.get */.Z.get(accountSetting, 'prechat_form.enabled')) form = accountSetting.prechat_form;
6183
+ let offlineEnabled = util/* default.get */.Z.get(accountSetting, 'offline_form.enabled');
6185
6184
  if (this.isOffline(acc, accountSetting) && offlineEnabled) {
6186
6185
  form = accountSetting.offline_form;
6187
6186
  }
@@ -6191,23 +6190,23 @@ class Widget extends common/* Com */.up {
6191
6190
  if (this.props.view === 'prechat_form') {
6192
6191
  form = accountSetting.prechat_form;
6193
6192
  }
6194
- if (util/* default */.Z.size(form) === 0) return [];
6193
+ if (util/* default.size */.Z.size(form) === 0) return [];
6195
6194
  var data = {};
6196
- util/* default */.Z.each(form.fields, f => {
6195
+ util/* default.each */.Z.each(form.fields, f => {
6197
6196
  var newf = Object.assign({}, f);
6198
6197
  if (f.type === 'list') {
6199
6198
  newf.list = f.list;
6200
6199
  }
6201
- newf.label = this.props.t.i18n(util/* default */.Z.get(f, `i18n_label`, {})) || f.label;
6200
+ newf.label = this.props.t.i18n(util/* default.get */.Z.get(f, `i18n_label`, {})) || f.label;
6202
6201
  data['attr:' + f.key] = newf;
6203
6202
  });
6204
- if (form.group_required && util/* default */.Z.size(form.groups) > 0) {
6203
+ if (form.group_required && util/* default.size */.Z.size(form.groups) > 0) {
6205
6204
  data['group'] = {
6206
6205
  key: 'group',
6207
6206
  is_required: !!form.group_required,
6208
- label: this.props.t.i18n(util/* default */.Z.get(form, `i18n_group_label`, {})) || form.group_label,
6207
+ label: this.props.t.i18n(util/* default.get */.Z.get(form, `i18n_group_label`, {})) || form.group_label,
6209
6208
  type: 'group',
6210
- list: util/* default */.Z.map(form.groups, group => ({
6209
+ list: util/* default.map */.Z.map(form.groups, group => ({
6211
6210
  value: group.id,
6212
6211
  label: group.name
6213
6212
  }))
@@ -6216,7 +6215,7 @@ class Widget extends common/* Com */.up {
6216
6215
  data['question'] = {
6217
6216
  key: 'question',
6218
6217
  is_required: true,
6219
- label: this.props.t.i18n(util/* default */.Z.get(form, `i18n_question_label`, {})) || form.question_label,
6218
+ label: this.props.t.i18n(util/* default.get */.Z.get(form, `i18n_question_label`, {})) || form.question_label,
6220
6219
  type: 'text'
6221
6220
  };
6222
6221
  if (this.isFormChanged(this.state.formData, data)) {
@@ -6230,44 +6229,38 @@ class Widget extends common/* Com */.up {
6230
6229
  let newKeys = Object.keys(newForm);
6231
6230
  if (oldKeys.length !== newKeys.length) return true;
6232
6231
  for (let i = 0; i < oldKeys.length; i++) {
6233
- if (util/* default */.Z.get(oldForm, `${oldKeys[i]}.label`) !== util/* default */.Z.get(newForm, `${newKeys[i]}.label`)) return true;
6234
- if (util/* default */.Z.get(oldForm, `${oldKeys[i]}.is_required`) !== util/* default */.Z.get(newForm, `${newKeys[i]}.is_required`)) return true;
6235
- if (util/* default */.Z.stringify(util/* default */.Z.get(oldForm, `${oldKeys[i]}.list`)) !== util/* default */.Z.stringify(util/* default */.Z.get(newForm, `${newKeys[i]}.list`))) {
6232
+ if (util/* default.get */.Z.get(oldForm, `${oldKeys[i]}.label`) !== util/* default.get */.Z.get(newForm, `${newKeys[i]}.label`)) return true;
6233
+ if (util/* default.get */.Z.get(oldForm, `${oldKeys[i]}.is_required`) !== util/* default.get */.Z.get(newForm, `${newKeys[i]}.is_required`)) return true;
6234
+ if (util/* default.stringify */.Z.stringify(util/* default.get */.Z.get(oldForm, `${oldKeys[i]}.list`)) !== util/* default.stringify */.Z.stringify(util/* default.get */.Z.get(newForm, `${newKeys[i]}.list`))) {
6236
6235
  return true;
6237
6236
  }
6238
6237
  }
6239
6238
  return false;
6240
6239
  }
6241
6240
  fillForm(form) {
6242
- if (util/* default */.Z.size(form) === 0) return [];
6241
+ if (util/* default.size */.Z.size(form) === 0) return [];
6243
6242
  var data = {};
6244
6243
  let user = this.props.store.matchUser();
6245
- util/* default */.Z.each(form.fields, f => {
6244
+ util/* default.each */.Z.each(form.fields, f => {
6246
6245
  var newf = Object.assign({}, f);
6247
- newf.value = util/* default */.Z.getUserAttr(user, f.key, f.type);
6248
- if (newf.key == 'emails' && !newf.value) {
6249
- newf.value = util/* default */.Z.getUserAttr(user, 'related_email', 'text');
6250
- }
6251
- if (newf.key == 'phones' && !newf.value) {
6252
- newf.value = util/* default */.Z.getUserAttr(user, 'related_phone', 'text');
6253
- }
6246
+ newf.value = util/* default.getUserAttr */.Z.getUserAttr(user, f.key, f.type);
6254
6247
  if (f.type === 'boolean' && !newf.value) newf.value = false;
6255
6248
  if (f.type === 'datetime' && newf.value) {
6256
- newf.value = new util/* default */.Z.Date(data.value).toLocaleDateString('en-CA');
6249
+ newf.value = new util/* default.Date */.Z.Date(data.value).toLocaleDateString('en-CA');
6257
6250
  }
6258
6251
  if (f.type === 'list') {
6259
6252
  newf.list = f.list;
6260
6253
  }
6261
- newf.label = this.props.t.i18n(util/* default */.Z.get(f, `i18n_label`, {})) || f.label;
6254
+ newf.label = this.props.t.i18n(util/* default.get */.Z.get(f, `i18n_label`, {})) || f.label;
6262
6255
  data['attr:' + f.key] = newf;
6263
6256
  });
6264
- if (form.group_required && util/* default */.Z.size(form.groups) > 0) {
6257
+ if (form.group_required && util/* default.size */.Z.size(form.groups) > 0) {
6265
6258
  data['group'] = {
6266
6259
  key: 'group',
6267
6260
  is_required: !!form.group_required,
6268
- label: this.props.t.i18n(util/* default */.Z.get(form, `i18n_group_label`, {})) || form.group_label,
6261
+ label: this.props.t.i18n(util/* default.get */.Z.get(form, `i18n_group_label`, {})) || form.group_label,
6269
6262
  type: 'group',
6270
- list: util/* default */.Z.map(form.groups, group => ({
6263
+ list: util/* default.map */.Z.map(form.groups, group => ({
6271
6264
  value: group.id,
6272
6265
  label: group.name
6273
6266
  }))
@@ -6299,14 +6292,14 @@ class Main extends common/* Com */.up {
6299
6292
  }
6300
6293
  async refreshCSS() {
6301
6294
  let plugins = this.props.store.matchPlugin();
6302
- let found = util/* default */.Z.find(plugins, plugin => plugin.id === this.props.plugin.id);
6295
+ let found = util/* default.find */.Z.find(plugins, plugin => plugin.id === this.props.plugin.id);
6303
6296
  if (!found) return;
6304
6297
  let css = (await main_promiseMainCSS).default.default.toString();
6305
- var outcss = util/* default */.Z.replaceCssVariable(css, found.chatbox);
6306
- util/* default */.Z.setCss(this.props.plugin.id, this.$cssStyleDiv, outcss);
6298
+ var outcss = util/* default.replaceCssVariable */.Z.replaceCssVariable(css, found.chatbox);
6299
+ util/* default.setCss */.Z.setCss(this.props.plugin.id, this.$cssStyleDiv, outcss);
6307
6300
  }
6308
6301
  componentWillUnmount() {
6309
- util/* default */.Z.setCss(this.props.plugin.id, this.$cssStyleDiv, '');
6302
+ util/* default.setCss */.Z.setCss(this.props.plugin.id, this.$cssStyleDiv, '');
6310
6303
  }
6311
6304
  async componentDidMount() {
6312
6305
  this.$cssStyleDiv = document.getElementById('subiz-style-for-' + this.props.plugin.id);
@@ -6342,7 +6335,7 @@ class Main extends common/* Com */.up {
6342
6335
  }
6343
6336
  render() {
6344
6337
  if (!this.state.cssready) return null;
6345
- if (util/* default */.Z.isUserBanned(this.props.store.matchUser())) return null;
6338
+ if (util/* default.isUserBanned */.Z.isUserBanned(this.props.store.matchUser())) return null;
6346
6339
  if (!this.props.t) return null;
6347
6340
  return (0,preact_module.h)("div", {
6348
6341
  class: this.props.store.isMobile() ? 'mobile' : 'desktop'
@@ -6376,10 +6369,10 @@ class Main extends common/* Com */.up {
6376
6369
  if ($widget.wasFormInputed) return;
6377
6370
  if (ev.type !== 'message_sent') return;
6378
6371
  if (!this.state.isShowWidget) return;
6379
- let byType = util/* default */.Z.get(ev, 'by.type');
6380
- let byid = util/* default */.Z.get(ev, 'by.id') || '';
6372
+ let byType = util/* default.get */.Z.get(ev, 'by.type');
6373
+ let byid = util/* default.get */.Z.get(ev, 'by.id') || '';
6381
6374
  if (!byid.startsWith('bb') || byType !== 'agent') return;
6382
- let cid = util/* default */.Z.get(ev, 'data.message.conversation_id');
6375
+ let cid = util/* default.get */.Z.get(ev, 'data.message.conversation_id');
6383
6376
  if (!cid) return;
6384
6377
  this.showWidget({
6385
6378
  cid,
@@ -6391,7 +6384,7 @@ class Main extends common/* Com */.up {
6391
6384
  if (this.props.plugin._no_auto_expand) return;
6392
6385
  if (this.props.store.matchHasManuallyClosed()) return;
6393
6386
  let convoM = this.props.store.matchConvo('*');
6394
- let redconvo = util/* default */.Z.find(convoM, convo => !util/* default */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
6387
+ let redconvo = util/* default.find */.Z.find(convoM, convo => !util/* default.isConvoSeen */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
6395
6388
  if (!redconvo || !redconvo.id) return;
6396
6389
  if (!this.state.isShowWidget) this.showWidget({
6397
6390
  view: 'chat',
@@ -6409,14 +6402,14 @@ class Main extends common/* Com */.up {
6409
6402
  this.refButton.current && this.refButton.current.ClearPreview();
6410
6403
  if (!p.view) {
6411
6404
  let lastview = this.props.store.matchLastview() || {};
6412
- p.view = util/* default */.Z.get(lastview, 'view');
6413
- p.cid = util/* default */.Z.get(lastview, 'opts.cid');
6405
+ p.view = util/* default.get */.Z.get(lastview, 'view');
6406
+ p.cid = util/* default.get */.Z.get(lastview, 'opts.cid');
6414
6407
  }
6415
6408
  p = p || {};
6416
6409
  if (!p.view && !p.cid) {
6417
6410
  let convoM = this.props.store.matchConvo('*');
6418
- let redconvo = util/* default */.Z.find(convoM, convo => !util/* default */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
6419
- p.cid = util/* default */.Z.get(redconvo, 'id', util/* default */.Z.get(convoM, '0.id'));
6411
+ let redconvo = util/* default.find */.Z.find(convoM, convo => !util/* default.isConvoSeen */.Z.isConvoSeen(convo, this.props.store.matchUser().id));
6412
+ p.cid = util/* default.get */.Z.get(redconvo, 'id', util/* default.get */.Z.get(convoM, '0.id'));
6420
6413
  p.view = 'chat';
6421
6414
  }
6422
6415
  if (this.props.store.isMobile()) modifyViewport();
@@ -6454,13 +6447,11 @@ class Main extends common/* Com */.up {
6454
6447
  }
6455
6448
  function restoreViewport() {
6456
6449
  if (document.body && document.body.classList) document.body.classList.remove('sbz_no_scroll');
6457
- if (document.documentElement && document.documentElement.classList) document.documentElement.classList.remove('sbz_no_scroll');
6458
6450
  let metatag = document.getElementById('subiz-meta-viewport');
6459
6451
  if (metatag) metatag.remove();
6460
6452
  }
6461
6453
  function modifyViewport() {
6462
6454
  if (document.body && document.body.classList) document.body.classList.add('sbz_no_scroll');
6463
- if (document.documentElement && document.documentElement.classList) document.documentElement.classList.add('sbz_no_scroll');
6464
6455
  let metatag = document.createElement('meta');
6465
6456
  metatag.httpEquiv = 'X-UA-Compatible';
6466
6457
  metatag.name = 'viewport';