@tencentcloud/ai-desk-customer-vue 1.3.0 → 1.4.0

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 (56) hide show
  1. package/CHANGELOG.md +11 -4
  2. package/assets/customer_avatar.png +0 -0
  3. package/assets/face.svg +10 -0
  4. package/assets/files.svg +5 -0
  5. package/assets/image.svg +8 -0
  6. package/assets/rating_tool_icon.svg +5 -0
  7. package/assets/rating_tool_icon_h5.svg +1 -0
  8. package/assets/video.svg +8 -0
  9. package/assets/video_h5.svg +1 -0
  10. package/components/CustomerServiceChat/chat-header/index-web.vue +16 -14
  11. package/components/CustomerServiceChat/index-web.vue +69 -13
  12. package/components/CustomerServiceChat/message-input/index-web.vue +31 -5
  13. package/components/CustomerServiceChat/message-input/message-input-editor-web.vue +24 -0
  14. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue +1 -1
  15. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/index.vue +1 -1
  16. package/components/CustomerServiceChat/message-input-toolbar/file-upload/index.vue +6 -8
  17. package/components/CustomerServiceChat/message-input-toolbar/image-upload/index.vue +11 -16
  18. package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +61 -18
  19. package/components/CustomerServiceChat/message-input-toolbar/rating-tool/index.vue +72 -0
  20. package/components/CustomerServiceChat/message-input-toolbar/toolbar-item-container/style/h5.scss +10 -1
  21. package/components/CustomerServiceChat/message-input-toolbar/user-define-input-tool.vue +80 -0
  22. package/components/CustomerServiceChat/message-input-toolbar/video-upload/index.vue +9 -14
  23. package/components/CustomerServiceChat/message-list/index-web.vue +33 -6
  24. package/components/CustomerServiceChat/message-list/message-elements/message-bubble-web.vue +53 -6
  25. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-branch.vue +5 -5
  26. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-desk.vue +8 -3
  27. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/branch-pc.vue +20 -6
  28. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/index.vue +2 -2
  29. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-order.vue +1 -2
  30. package/components/CustomerServiceChat/message-list/message-elements/message-file.vue +1 -1
  31. package/components/CustomerServiceChat/message-list/scroll-button/index.vue +3 -3
  32. package/components/CustomerServiceChat/message-list/style/web.scss +2 -1
  33. package/components/CustomerServiceChat/message-toolbar-button/index.vue +111 -42
  34. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-end-human-service.vue +59 -0
  35. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-human-service.vue +55 -0
  36. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-service-rating.vue +59 -0
  37. package/constant.ts +15 -0
  38. package/interface.ts +35 -5
  39. package/locales/en/aidesk.ts +4 -3
  40. package/locales/fil/aidesk.ts +2 -1
  41. package/locales/id/aidesk.ts +3 -2
  42. package/locales/ja/aidesk.ts +1 -0
  43. package/locales/ms/aidesk.ts +1 -0
  44. package/locales/ru/aidesk.ts +1 -0
  45. package/locales/th/aidesk.ts +1 -0
  46. package/locales/vi/aidesk.ts +1 -0
  47. package/locales/zh_cn/aidesk.ts +1 -0
  48. package/locales/zh_tw/aidesk.ts +1 -0
  49. package/package.json +1 -1
  50. package/server.ts +5 -1
  51. package/utils/state.js +30 -0
  52. package/utils/utils.ts +48 -1
  53. package/assets/face.png +0 -0
  54. package/assets/files.png +0 -0
  55. package/assets/image.png +0 -0
  56. package/assets/video.png +0 -0
package/utils/state.js ADDED
@@ -0,0 +1,30 @@
1
+ const state = {
2
+ data: {},
3
+ // listeners: [],
4
+
5
+ // 获取数据
6
+ get(key) {
7
+ return this.data[key];
8
+ },
9
+
10
+ // 设置数据
11
+ set(key, value) {
12
+ this.data[key] = value;
13
+ // this.notifyListeners();
14
+ },
15
+
16
+ // // 监听数据变化
17
+ // subscribe(callback) {
18
+ // this.listeners.push(callback);
19
+ // return () => {
20
+ // this.listeners = this.listeners.filter(cb => cb !== callback);
21
+ // };
22
+ // },
23
+
24
+ // // 通知所有监听器
25
+ // notifyListeners() {
26
+ // this.listeners.forEach(cb => cb(this.data));
27
+ // }
28
+ };
29
+
30
+ export default state;
package/utils/utils.ts CHANGED
@@ -1,4 +1,12 @@
1
- import TUIChatEngine, { TUITranslateService, TUIStore, StoreName, IMessageModel } from '@tencentcloud/chat-uikit-engine';
1
+ import TUIChatEngine, {
2
+ TUITranslateService,
3
+ TUIStore,
4
+ StoreName,
5
+ IMessageModel,
6
+ TUIUserService,
7
+ IConversationModel,
8
+ } from '@tencentcloud/chat-uikit-engine';
9
+ import Log from './logger';
2
10
 
3
11
  export function deepCopy(data: any, hash = new WeakMap()) {
4
12
  if (typeof data !== 'object' || data === null || data === undefined) {
@@ -159,3 +167,42 @@ export function calculateTimestamp(timestamp: number): string {
159
167
  )}`;
160
168
  }
161
169
  }
170
+
171
+ export function getSafeUrl(url) {
172
+ try {
173
+ const decodedUrl = decodeURIComponent(url);
174
+ const parsedUrl = new URL(decodedUrl);
175
+ if (!['http:', 'https:'].includes(parsedUrl.protocol)) {
176
+ return null;
177
+ }
178
+
179
+ // 清除 username 和 password
180
+ parsedUrl.username = '';
181
+ parsedUrl.password = '';
182
+ return parsedUrl.href;
183
+ } catch (e) {
184
+ return null;
185
+ }
186
+ }
187
+
188
+ export function openSafeUrl(content: string) {
189
+ const safeUrl = getSafeUrl(content);
190
+ if (safeUrl) {
191
+ window.open(safeUrl, '_blank', 'noopener,noreferrer');
192
+ } else {
193
+ Log.w(`Invalid URL provided:${content}`);
194
+ }
195
+ }
196
+
197
+ // call after chat engine is ready
198
+ export function switchReadStatus(value: number) {
199
+ if (value !== 1) {
200
+ TUIUserService.switchMessageReadStatus(false);
201
+ } else {
202
+ TUIUserService.switchMessageReadStatus(true);
203
+ }
204
+ }
205
+
206
+ export function getTo(conversation: IConversationModel): string {
207
+ return conversation?.groupProfile?.groupID || conversation?.userProfile?.userID;
208
+ }
package/assets/face.png DELETED
Binary file
package/assets/files.png DELETED
Binary file
package/assets/image.png DELETED
Binary file
package/assets/video.png DELETED
Binary file