@subiz/widget-v4 4.0.92 → 4.0.93

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