@phonghq/go-chat 1.0.42 → 1.0.44

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 (114) hide show
  1. package/dist/assets/icons/IconPlan.vue.d.ts +13 -1
  2. package/dist/assets/icons/call/IconPhoneCancel.vue.d.ts +13 -1
  3. package/dist/assets/icons/customer-detail/IconPhone.vue.d.ts +13 -1
  4. package/dist/chat/App.vue.d.ts +13 -2
  5. package/dist/chat/page/home/ChatList.vue.d.ts +10 -0
  6. package/dist/chat/page/home/ChatMessageItem.vue.d.ts +1 -0
  7. package/dist/chat/page/home/ChatMessageItem2.vue.d.ts +19 -0
  8. package/dist/chat/page/home/Home.vue.d.ts +2 -0
  9. package/dist/chat/page/home/InputChat.vue.d.ts +2 -0
  10. package/dist/components/chat/call/Calling.vue.d.ts +4 -2
  11. package/dist/components/chat/common/tabs/TabBase.vue.d.ts +18 -0
  12. package/dist/components/common/drawer/DrawerBaseCustom.vue.d.ts +1 -1
  13. package/dist/components/ui/select/Select.vue.d.ts +20 -0
  14. package/dist/components/ui/select/SelectContent.vue.d.ts +24 -0
  15. package/dist/components/ui/select/SelectGroup.vue.d.ts +10 -0
  16. package/dist/components/ui/select/SelectItem.vue.d.ts +18 -0
  17. package/dist/components/ui/select/SelectItemText.vue.d.ts +10 -0
  18. package/dist/components/ui/select/SelectLabel.vue.d.ts +14 -0
  19. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +14 -0
  20. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +14 -0
  21. package/dist/components/ui/select/SelectSeparator.vue.d.ts +7 -0
  22. package/dist/components/ui/select/SelectTrigger.vue.d.ts +17 -0
  23. package/dist/components/ui/select/SelectValue.vue.d.ts +10 -0
  24. package/dist/components/ui/select/index.d.ts +11 -0
  25. package/dist/components/ui/tabs/Tabs.vue.d.ts +20 -0
  26. package/dist/components/ui/tabs/TabsContent.vue.d.ts +14 -0
  27. package/dist/components/ui/tabs/TabsList.vue.d.ts +14 -0
  28. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +14 -0
  29. package/dist/components/ui/tabs/index.d.ts +4 -0
  30. package/dist/composable/useDigibot.d.ts +1 -1
  31. package/dist/composable/useInitData.d.ts +5 -2
  32. package/dist/composable/useListConversations.d.ts +4 -1
  33. package/dist/composable/useListentEvent.d.ts +5 -0
  34. package/dist/composable/usePlivo.d.ts +1 -0
  35. package/dist/constant/color.d.ts +2 -2
  36. package/dist/go-chat.es.js +14663 -14004
  37. package/dist/go-chat.umd.js +15 -15
  38. package/dist/style.css +1 -1
  39. package/dist/test/assets/icons/IconPlan.vue.js +23 -3
  40. package/dist/test/assets/icons/IconUser.vue.js +25 -0
  41. package/dist/test/assets/icons/call/IconPhone.vue.js +6 -19
  42. package/dist/test/assets/icons/call/IconPhoneCancel.vue.js +32 -21
  43. package/dist/test/assets/icons/customer-detail/IconPhone.vue.js +23 -3
  44. package/dist/test/chat/App.vue.js +303 -282
  45. package/dist/test/chat/page/customer-check-in/CustomerCheckIn.vue.js +3 -1
  46. package/dist/test/chat/page/customer-detail/CustomerDetail.vue.js +4 -4
  47. package/dist/test/chat/page/home/ChatList.vue.js +113 -43
  48. package/dist/test/chat/page/home/ChatMessage.vue.js +10 -1
  49. package/dist/test/chat/page/home/ChatMessageItem.vue.js +75 -83
  50. package/dist/test/chat/page/home/ChatMessageItem2.vue.js +351 -0
  51. package/dist/test/chat/page/home/Home.vue.js +29 -9
  52. package/dist/test/chat/page/home/HomeHeader.vue.js +8 -4
  53. package/dist/test/chat/page/home/InputChat.vue.js +58 -37
  54. package/dist/test/components/chat/call/Calling.vue.js +117 -71
  55. package/dist/test/components/chat/common/tab/TabBase.vue.js +1 -0
  56. package/dist/test/components/chat/common/tabs/TabBase.vue.js +92 -0
  57. package/dist/test/components/chat/customer/Avatar.vue.js +23 -4
  58. package/dist/test/components/chat/layout/mobile/Footer.vue.js +6 -1
  59. package/dist/test/components/common/drawer/DrawerBaseCustom.vue.js +1 -0
  60. package/dist/test/components/common/select/SelectBase.vue.js +139 -0
  61. package/dist/test/components/ui/select/Select.vue.js +49 -0
  62. package/dist/test/components/ui/select/SelectContent.vue.js +98 -0
  63. package/dist/test/components/ui/select/SelectGroup.vue.js +37 -0
  64. package/dist/test/components/ui/select/SelectItem.vue.js +86 -0
  65. package/dist/test/components/ui/select/SelectItemText.vue.js +37 -0
  66. package/dist/test/components/ui/select/SelectLabel.vue.js +40 -0
  67. package/dist/test/components/ui/select/SelectScrollDownButton.vue.js +58 -0
  68. package/dist/test/components/ui/select/SelectScrollUpButton.vue.js +58 -0
  69. package/dist/test/components/ui/select/SelectSeparator.vue.js +39 -0
  70. package/dist/test/components/ui/select/SelectTrigger.vue.js +76 -0
  71. package/dist/test/components/ui/select/SelectValue.vue.js +37 -0
  72. package/dist/test/components/ui/select/index.js +11 -0
  73. package/dist/test/components/ui/tabs/Tabs.vue.js +54 -0
  74. package/dist/test/components/ui/tabs/TabsContent.vue.js +44 -0
  75. package/dist/test/components/ui/tabs/TabsList.vue.js +44 -0
  76. package/dist/test/components/ui/tabs/TabsTrigger.vue.js +45 -0
  77. package/dist/test/components/ui/tabs/index.js +4 -0
  78. package/dist/test/composable/useDigibot.js +3 -3
  79. package/dist/test/composable/useInitData.js +23 -14
  80. package/dist/test/composable/useListConversations.js +51 -33
  81. package/dist/test/composable/useListentEvent.js +45 -0
  82. package/dist/test/composable/usePlivo.js +6 -1
  83. package/dist/test/constant/color.js +4 -2
  84. package/dist/test/plugins/axios-gci.js +1 -1
  85. package/dist/test/utils/chat/auth.js +1 -1
  86. package/dist/test/utils/chat/cache.js +63 -0
  87. package/dist/test/utils/chat/call.js +2 -3
  88. package/dist/test/utils/chat/conversation.js +9 -2
  89. package/dist/test/utils/chat/page-error.js +25 -0
  90. package/dist/test/utils/chat/user.js +7 -2
  91. package/dist/test/utils/string-helper.js +13 -0
  92. package/dist/test/views/NotTenantPhone.vue.js +99 -0
  93. package/dist/types/chat/global.d.ts +6 -5
  94. package/dist/types/conversation.d.ts +2 -0
  95. package/dist/utils/chat/auth.d.ts +1 -1
  96. package/dist/utils/chat/cache.d.ts +7 -0
  97. package/dist/utils/chat/conversation.d.ts +2 -0
  98. package/dist/utils/chat/page-error.d.ts +4 -0
  99. package/dist/utils/chat/user.d.ts +3 -0
  100. package/dist/utils/string-helper.d.ts +1 -0
  101. package/dist/views/NotTenantPhone.vue.d.ts +9 -0
  102. package/package.json +3 -2
  103. package/dist/components/layout/Blank.vue.d.ts +0 -9
  104. package/dist/components/layout/Default.vue.d.ts +0 -9
  105. package/dist/composable/useError.d.ts +0 -4
  106. package/dist/composable/useModalConfirm.d.ts +0 -5
  107. package/dist/test/components/ListenEvent.vue.js +0 -45
  108. package/dist/test/components/layout/Blank.vue.js +0 -19
  109. package/dist/test/components/layout/Default.vue.js +0 -21
  110. package/dist/test/components/modal/Confirm.vue.js +0 -164
  111. package/dist/test/composable/useError.js +0 -10
  112. package/dist/test/composable/useModalConfirm.js +0 -39
  113. /package/dist/{components/ListenEvent.vue.d.ts → assets/icons/IconUser.vue.d.ts} +0 -0
  114. /package/dist/components/{modal/Confirm.vue.d.ts → common/select/SelectBase.vue.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
1
2
  import { computed, onMounted, onUnmounted, ref } from 'vue';
2
3
  import IconPhone from '../../../assets/icons/call/IconPhone.vue';
3
4
  import { dataProfile } from '../../../utils/chat/auth.js';
@@ -12,9 +13,12 @@ import IconClose from '../../../assets/icons/call/IconClose.vue';
12
13
  import { usePlivo } from '../../../composable/usePlivo';
13
14
  import { PLIVO_CALL_STATUS } from '../../../types/chat/call';
14
15
  import IconMic from '../../../assets/icons/call/IconMic.vue';
15
- import { useError } from '../../../composable/useError';
16
16
  import { useDebounce } from '../../../utils/debounce';
17
- const props = withDefaults(defineProps(), {});
17
+ import { phoneNumberFormat } from '../../../utils/string-helper';
18
+ import { handleMedialPermissionError, showPageError } from '../../../utils/chat/page-error';
19
+ const props = withDefaults(defineProps(), {
20
+ responsive: 'window'
21
+ });
18
22
  const emit = defineEmits();
19
23
  // const {
20
24
  // // call,
@@ -47,11 +51,11 @@ const handlePlivoCallBack = (status, data) => {
47
51
  startTimer();
48
52
  }
49
53
  else if (status == PLIVO_CALL_STATUS.MEDIA_PERMISSION_FAIL) {
50
- emit('error:mediaPermissionFail');
54
+ handleMedialPermissionError();
51
55
  }
52
56
  };
53
- const { plivoLogin, plivoCallAnswer, plivoCall, plivoEndCall, plivoCallSwishMute } = usePlivo(handlePlivoCallBack);
54
- const { showError } = useError();
57
+ const { plivoLogin, plivoCallAnswer, plivoCall, plivoEndCall, plivoCallSwishMute, plivoCallSwishSpeaker } = usePlivo(handlePlivoCallBack);
58
+ // const { showError } = useError()
55
59
  const STATUS_LABEL = computed(() => {
56
60
  return {
57
61
  [PLIVO_CALL_STATUS.CONNECTING]: 'Connecting...',
@@ -92,7 +96,7 @@ onMounted(async () => {
92
96
  }
93
97
  }
94
98
  catch {
95
- showError('We’re having trouble connecting the call. Please try again in a moment');
99
+ showPageError('We’re having trouble connecting the call. Please try again in a moment');
96
100
  }
97
101
  });
98
102
  onUnmounted(() => {
@@ -156,7 +160,7 @@ const refreshToken = async () => {
156
160
  setTimeout(() => refreshToken(), 60 * 1000);
157
161
  }
158
162
  else {
159
- showError('We’re having trouble connecting the call. Please try again in a moment');
163
+ showPageError('We’re having trouble connecting the call. Please try again in a moment');
160
164
  }
161
165
  console.log(e);
162
166
  }
@@ -166,9 +170,14 @@ const open = () => {
166
170
  disable.value = true;
167
171
  drawerVisibleRef.value?.open();
168
172
  };
169
- const handleMute = () => {
170
- plivoCallSwishMute(!isMute.value);
171
- isMute.value = !isMute.value;
173
+ const handleMute = async () => {
174
+ try {
175
+ plivoCallSwishMute(!isMute.value);
176
+ isMute.value = !isMute.value;
177
+ }
178
+ catch (e) {
179
+ alert(e);
180
+ }
172
181
  };
173
182
  const startCall = async (data) => {
174
183
  try {
@@ -204,14 +213,15 @@ const getUserOffer = async (phone) => {
204
213
  phone: formatPhone10number(phone, '1'),
205
214
  client_id: dataProfile.value?.tenant_id ?? ''
206
215
  };
216
+ console.log(data);
207
217
  res = await getUserDetailChat(data);
208
218
  }
209
219
  catch (e) {
210
220
  console.log(e);
211
221
  }
212
222
  const user = {
213
- username: res?.full_name || 'Unknown Name',
214
- phone: '1' + res?.phone
223
+ username: res?.full_name || '',
224
+ phone: res?.phone ? '1' + res?.phone : phone
215
225
  };
216
226
  userRemoter.value = user;
217
227
  emit('userCalling', userRemoter.value);
@@ -272,7 +282,9 @@ const handleAfterClose = () => {
272
282
  let __VLS_exposed;
273
283
  defineExpose({ startCall, endCall, userRemoter, callStatus, answer, label });
274
284
  debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
275
- const __VLS_defaults = {};
285
+ const __VLS_defaults = {
286
+ responsive: 'window'
287
+ };
276
288
  const __VLS_ctx = {
277
289
  ...{},
278
290
  ...{},
@@ -283,6 +295,11 @@ const __VLS_ctx = {
283
295
  let __VLS_elements;
284
296
  let __VLS_components;
285
297
  let __VLS_directives;
298
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
299
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
300
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
301
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
302
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
286
303
  /** @type {[typeof DrawerBaseCustom, typeof DrawerBaseCustom, ]} */ ;
287
304
  // @ts-ignore
288
305
  const __VLS_0 = __VLS_asFunctionalComponent(DrawerBaseCustom, new DrawerBaseCustom({
@@ -313,15 +330,19 @@ const { default: __VLS_8 } = __VLS_2.slots;
313
330
  {
314
331
  const { content: __VLS_9 } = __VLS_2.slots;
315
332
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
316
- ...{ class: "flex flex-col items-center justify-center h-full bg-chat-haze-300 text-white relative" },
333
+ ...{ class: "flex flex-col items-center justify-center h-full relative bg-white" },
334
+ ...{ style: {} },
335
+ });
336
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
337
+ ...{ class: "h-40 w-40 call-avatar mb-8" },
317
338
  });
318
339
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
319
- ...{ class: "h-40 w-40 rounded-full overflow-hidden mb-4 border-4 border-gray-700 flex-center" },
340
+ ...{ class: "h-40 w-40 rounded-full overflow-hidden mb-4 border-4 border-white flex-center" },
320
341
  });
321
342
  /** @type {[typeof Avatar, ]} */ ;
322
343
  // @ts-ignore
323
344
  const __VLS_10 = __VLS_asFunctionalComponent(Avatar, new Avatar({
324
- ...{ class: "" },
345
+ ...{ class: "bg-white z-[2]" },
325
346
  src: (__VLS_ctx.userRemoter?.avatar ?? ''),
326
347
  id: (__VLS_ctx.userRemoter?.id ?? ''),
327
348
  color: (__VLS_ctx.userRemoter?.color),
@@ -329,7 +350,7 @@ const { default: __VLS_8 } = __VLS_2.slots;
329
350
  size: "xxl",
330
351
  }));
331
352
  const __VLS_11 = __VLS_10({
332
- ...{ class: "" },
353
+ ...{ class: "bg-white z-[2]" },
333
354
  src: (__VLS_ctx.userRemoter?.avatar ?? ''),
334
355
  id: (__VLS_ctx.userRemoter?.id ?? ''),
335
356
  color: (__VLS_ctx.userRemoter?.color),
@@ -338,38 +359,37 @@ const { default: __VLS_8 } = __VLS_2.slots;
338
359
  }, ...__VLS_functionalComponentArgsRest(__VLS_10));
339
360
  // @ts-ignore
340
361
  [userRemoter, userRemoter, userRemoter, userRemoter,];
362
+ if (__VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.RINGING || __VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.CALLING) {
363
+ // @ts-ignore
364
+ [callStatus, callStatus, PLIVO_CALL_STATUS, PLIVO_CALL_STATUS,];
365
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
366
+ ...{ class: "bubble bubble-1" },
367
+ });
368
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
369
+ ...{ class: "bubble bubble-2" },
370
+ });
371
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
372
+ ...{ class: "bubble bubble-3" },
373
+ });
374
+ }
341
375
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
342
376
  ...{ class: "text-center" },
343
377
  });
344
378
  __VLS_asFunctionalElement(__VLS_elements.h2, __VLS_elements.h2)({
345
379
  ...{ class: "text-2xl font-semibold" },
346
380
  });
347
- (__VLS_ctx.userRemoter?.username || __VLS_ctx.formatPhone10number(__VLS_ctx.userRemoter?.phone ?? ''));
381
+ (__VLS_ctx.userRemoter?.username || __VLS_ctx.phoneNumberFormat(__VLS_ctx.userRemoter?.phone ?? ''));
348
382
  // @ts-ignore
349
- [userRemoter, userRemoter, formatPhone10number,];
383
+ [userRemoter, userRemoter, phoneNumberFormat,];
350
384
  __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
351
385
  ...{ class: "text-gray-400 mt-1" },
352
386
  });
353
- (__VLS_ctx.STATUS_LABEL[__VLS_ctx.callStatus]);
387
+ (__VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.CALL_START ? __VLS_ctx.duration : __VLS_ctx.STATUS_LABEL[__VLS_ctx.callStatus]);
354
388
  // @ts-ignore
355
- [STATUS_LABEL, callStatus,];
389
+ [callStatus, callStatus, PLIVO_CALL_STATUS, duration, STATUS_LABEL,];
356
390
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
357
391
  ...{ class: "flex items-center justify-center gap-8 mt-10" },
358
392
  });
359
- if (__VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.RINGING) {
360
- // @ts-ignore
361
- [callStatus, PLIVO_CALL_STATUS,];
362
- __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
363
- ...{ onClick: (__VLS_ctx.answer) },
364
- ...{ class: "w-16 h-16 bg-chat-success hover:bg-green-600 text-white rounded-full flex items-center justify-center shadow-lg transition" },
365
- });
366
- // @ts-ignore
367
- [answer,];
368
- /** @type {[typeof IconPhone, ]} */ ;
369
- // @ts-ignore
370
- const __VLS_14 = __VLS_asFunctionalComponent(IconPhone, new IconPhone({}));
371
- const __VLS_15 = __VLS_14({}, ...__VLS_functionalComponentArgsRest(__VLS_14));
372
- }
373
393
  if (__VLS_ctx.record_link && __VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.CALL_END) {
374
394
  // @ts-ignore
375
395
  [callStatus, PLIVO_CALL_STATUS, record_link,];
@@ -383,8 +403,8 @@ const { default: __VLS_8 } = __VLS_2.slots;
383
403
  [record_link, exportRecordFile,];
384
404
  /** @type {[typeof IconSoundDownload, ]} */ ;
385
405
  // @ts-ignore
386
- const __VLS_18 = __VLS_asFunctionalComponent(IconSoundDownload, new IconSoundDownload({}));
387
- const __VLS_19 = __VLS_18({}, ...__VLS_functionalComponentArgsRest(__VLS_18));
406
+ const __VLS_14 = __VLS_asFunctionalComponent(IconSoundDownload, new IconSoundDownload({}));
407
+ const __VLS_15 = __VLS_14({}, ...__VLS_functionalComponentArgsRest(__VLS_14));
388
408
  }
389
409
  if (__VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.CALL_START) {
390
410
  // @ts-ignore
@@ -397,16 +417,16 @@ const { default: __VLS_8 } = __VLS_2.slots;
397
417
  // @ts-ignore
398
418
  [handleMute,];
399
419
  } },
400
- ...{ class: "w-16 h-16 bg-white hover:bg-green-600 text-black rounded-full flex items-center justify-center shadow-lg transition" },
420
+ ...{ class: "w-16 h-16 shadow-lg bg-white hover:bg-green-600 text-black rounded-full flex items-center justify-center shadow-3xl transition" },
401
421
  });
402
422
  /** @type {[typeof IconMic, ]} */ ;
403
423
  // @ts-ignore
404
- const __VLS_22 = __VLS_asFunctionalComponent(IconMic, new IconMic({
424
+ const __VLS_18 = __VLS_asFunctionalComponent(IconMic, new IconMic({
405
425
  mute: (__VLS_ctx.isMute),
406
426
  }));
407
- const __VLS_23 = __VLS_22({
427
+ const __VLS_19 = __VLS_18({
408
428
  mute: (__VLS_ctx.isMute),
409
- }, ...__VLS_functionalComponentArgsRest(__VLS_22));
429
+ }, ...__VLS_functionalComponentArgsRest(__VLS_18));
410
430
  // @ts-ignore
411
431
  [isMute,];
412
432
  }
@@ -421,12 +441,12 @@ const { default: __VLS_8 } = __VLS_2.slots;
421
441
  // @ts-ignore
422
442
  [endCall,];
423
443
  } },
424
- ...{ class: "w-16 h-16 bg-white hover:bg-green-600 text-white rounded-full flex items-center justify-center shadow-lg transition" },
444
+ ...{ class: "w-16 h-16 bg-white hover:bg-green-600 text-white rounded-full flex items-center justify-center shadow-3xl transition" },
425
445
  });
426
446
  /** @type {[typeof IconClose, ]} */ ;
427
447
  // @ts-ignore
428
- const __VLS_26 = __VLS_asFunctionalComponent(IconClose, new IconClose({}));
429
- const __VLS_27 = __VLS_26({}, ...__VLS_functionalComponentArgsRest(__VLS_26));
448
+ const __VLS_22 = __VLS_asFunctionalComponent(IconClose, new IconClose({}));
449
+ const __VLS_23 = __VLS_22({}, ...__VLS_functionalComponentArgsRest(__VLS_22));
430
450
  }
431
451
  if (__VLS_ctx.callStatus != __VLS_ctx.PLIVO_CALL_STATUS.CALL_END) {
432
452
  // @ts-ignore
@@ -439,38 +459,59 @@ const { default: __VLS_8 } = __VLS_2.slots;
439
459
  // @ts-ignore
440
460
  [endCall,];
441
461
  } },
442
- ...{ class: "w-16 h-16 rounded-full bg-chat-error hover:bg-red-700 flex items-center justify-center" },
462
+ ...{ class: "shadow-3xl w-16 h-16 rounded-full bg-chat-error hover:bg-red-700 flex text-white items-center justify-center" },
443
463
  });
444
464
  /** @type {[typeof IconPhoneCancel, ]} */ ;
445
465
  // @ts-ignore
446
- const __VLS_30 = __VLS_asFunctionalComponent(IconPhoneCancel, new IconPhoneCancel({}));
466
+ const __VLS_26 = __VLS_asFunctionalComponent(IconPhoneCancel, new IconPhoneCancel({}));
467
+ const __VLS_27 = __VLS_26({}, ...__VLS_functionalComponentArgsRest(__VLS_26));
468
+ }
469
+ if (__VLS_ctx.callStatus == __VLS_ctx.PLIVO_CALL_STATUS.RINGING) {
470
+ // @ts-ignore
471
+ [callStatus, PLIVO_CALL_STATUS,];
472
+ __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
473
+ ...{ onClick: (__VLS_ctx.answer) },
474
+ ...{ class: "shadow-3xl w-16 h-16 bg-chat-success hover:bg-green-600 rounded-full text-white flex items-center justify-center shadow-lg transition" },
475
+ });
476
+ // @ts-ignore
477
+ [answer,];
478
+ /** @type {[typeof IconPhone, ]} */ ;
479
+ // @ts-ignore
480
+ const __VLS_30 = __VLS_asFunctionalComponent(IconPhone, new IconPhone({}));
447
481
  const __VLS_31 = __VLS_30({}, ...__VLS_functionalComponentArgsRest(__VLS_30));
448
482
  }
449
- __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
450
- ...{ class: "absolute bottom-6 text-gray-500 text-sm" },
483
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
484
+ ...{ class: "flex items-center justify-center gap-8 mt-10" },
451
485
  });
452
- (__VLS_ctx.duration);
453
- // @ts-ignore
454
- [duration,];
455
486
  }
456
487
  var __VLS_2;
457
- /** @type {__VLS_StyleScopedClasses['']} */ ;
458
488
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
459
489
  /** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
460
490
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
461
491
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
462
492
  /** @type {__VLS_StyleScopedClasses['h-full']} */ ;
463
- /** @type {__VLS_StyleScopedClasses['bg-chat-haze-300']} */ ;
464
- /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
465
493
  /** @type {__VLS_StyleScopedClasses['relative']} */ ;
494
+ /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
495
+ /** @type {__VLS_StyleScopedClasses['h-40']} */ ;
496
+ /** @type {__VLS_StyleScopedClasses['w-40']} */ ;
497
+ /** @type {__VLS_StyleScopedClasses['call-avatar']} */ ;
498
+ /** @type {__VLS_StyleScopedClasses['mb-8']} */ ;
466
499
  /** @type {__VLS_StyleScopedClasses['h-40']} */ ;
467
500
  /** @type {__VLS_StyleScopedClasses['w-40']} */ ;
468
501
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
469
502
  /** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
470
503
  /** @type {__VLS_StyleScopedClasses['mb-4']} */ ;
471
504
  /** @type {__VLS_StyleScopedClasses['border-4']} */ ;
472
- /** @type {__VLS_StyleScopedClasses['border-gray-700']} */ ;
505
+ /** @type {__VLS_StyleScopedClasses['border-white']} */ ;
473
506
  /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
507
+ /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
508
+ /** @type {__VLS_StyleScopedClasses['z-[2]']} */ ;
509
+ /** @type {__VLS_StyleScopedClasses['bubble']} */ ;
510
+ /** @type {__VLS_StyleScopedClasses['bubble-1']} */ ;
511
+ /** @type {__VLS_StyleScopedClasses['bubble']} */ ;
512
+ /** @type {__VLS_StyleScopedClasses['bubble-2']} */ ;
513
+ /** @type {__VLS_StyleScopedClasses['bubble']} */ ;
514
+ /** @type {__VLS_StyleScopedClasses['bubble-3']} */ ;
474
515
  /** @type {__VLS_StyleScopedClasses['text-center']} */ ;
475
516
  /** @type {__VLS_StyleScopedClasses['text-2xl']} */ ;
476
517
  /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
@@ -483,7 +524,7 @@ var __VLS_2;
483
524
  /** @type {__VLS_StyleScopedClasses['mt-10']} */ ;
484
525
  /** @type {__VLS_StyleScopedClasses['w-16']} */ ;
485
526
  /** @type {__VLS_StyleScopedClasses['h-16']} */ ;
486
- /** @type {__VLS_StyleScopedClasses['bg-chat-success']} */ ;
527
+ /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
487
528
  /** @type {__VLS_StyleScopedClasses['hover:bg-green-600']} */ ;
488
529
  /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
489
530
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
@@ -494,49 +535,54 @@ var __VLS_2;
494
535
  /** @type {__VLS_StyleScopedClasses['transition']} */ ;
495
536
  /** @type {__VLS_StyleScopedClasses['w-16']} */ ;
496
537
  /** @type {__VLS_StyleScopedClasses['h-16']} */ ;
538
+ /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
497
539
  /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
498
540
  /** @type {__VLS_StyleScopedClasses['hover:bg-green-600']} */ ;
499
- /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
541
+ /** @type {__VLS_StyleScopedClasses['text-black']} */ ;
500
542
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
501
543
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
502
544
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
503
545
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
504
- /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
546
+ /** @type {__VLS_StyleScopedClasses['shadow-3xl']} */ ;
505
547
  /** @type {__VLS_StyleScopedClasses['transition']} */ ;
506
548
  /** @type {__VLS_StyleScopedClasses['w-16']} */ ;
507
549
  /** @type {__VLS_StyleScopedClasses['h-16']} */ ;
508
550
  /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
509
551
  /** @type {__VLS_StyleScopedClasses['hover:bg-green-600']} */ ;
510
- /** @type {__VLS_StyleScopedClasses['text-black']} */ ;
552
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
511
553
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
512
554
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
513
555
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
514
556
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
515
- /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
557
+ /** @type {__VLS_StyleScopedClasses['shadow-3xl']} */ ;
516
558
  /** @type {__VLS_StyleScopedClasses['transition']} */ ;
559
+ /** @type {__VLS_StyleScopedClasses['shadow-3xl']} */ ;
517
560
  /** @type {__VLS_StyleScopedClasses['w-16']} */ ;
518
561
  /** @type {__VLS_StyleScopedClasses['h-16']} */ ;
519
- /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
520
- /** @type {__VLS_StyleScopedClasses['hover:bg-green-600']} */ ;
521
- /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
522
562
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
563
+ /** @type {__VLS_StyleScopedClasses['bg-chat-error']} */ ;
564
+ /** @type {__VLS_StyleScopedClasses['hover:bg-red-700']} */ ;
523
565
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
566
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
524
567
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
525
568
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
526
- /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
527
- /** @type {__VLS_StyleScopedClasses['transition']} */ ;
569
+ /** @type {__VLS_StyleScopedClasses['shadow-3xl']} */ ;
528
570
  /** @type {__VLS_StyleScopedClasses['w-16']} */ ;
529
571
  /** @type {__VLS_StyleScopedClasses['h-16']} */ ;
572
+ /** @type {__VLS_StyleScopedClasses['bg-chat-success']} */ ;
573
+ /** @type {__VLS_StyleScopedClasses['hover:bg-green-600']} */ ;
530
574
  /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
531
- /** @type {__VLS_StyleScopedClasses['bg-chat-error']} */ ;
532
- /** @type {__VLS_StyleScopedClasses['hover:bg-red-700']} */ ;
575
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
533
576
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
534
577
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
535
578
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
536
- /** @type {__VLS_StyleScopedClasses['absolute']} */ ;
537
- /** @type {__VLS_StyleScopedClasses['bottom-6']} */ ;
538
- /** @type {__VLS_StyleScopedClasses['text-gray-500']} */ ;
539
- /** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
579
+ /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
580
+ /** @type {__VLS_StyleScopedClasses['transition']} */ ;
581
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
582
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
583
+ /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
584
+ /** @type {__VLS_StyleScopedClasses['gap-8']} */ ;
585
+ /** @type {__VLS_StyleScopedClasses['mt-10']} */ ;
540
586
  // @ts-ignore
541
587
  var __VLS_7 = __VLS_6;
542
588
  const __VLS_export = (await import('vue')).defineComponent({
@@ -1,3 +1,4 @@
1
+ /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
1
2
  const props = withDefaults(defineProps(), {});
2
3
  const emit = defineEmits();
3
4
  const active = defineModel('active');
@@ -0,0 +1,92 @@
1
+ import { Tabs, TabsList, TabsTrigger } from '../../../ui/tabs';
2
+ const props = withDefaults(defineProps(), {});
3
+ const active = defineModel('active');
4
+ debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
5
+ const __VLS_modelEmit = defineEmits();
6
+ const __VLS_defaults = {};
7
+ const __VLS_ctx = {
8
+ ...{},
9
+ ...{},
10
+ ...{},
11
+ ...{},
12
+ ...{},
13
+ };
14
+ let __VLS_elements;
15
+ let __VLS_components;
16
+ let __VLS_directives;
17
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
18
+ ...{ class: "flex w-full max-w-sm flex-col gap-6" },
19
+ });
20
+ const __VLS_0 = {}.Tabs;
21
+ /** @type {[typeof __VLS_components.Tabs, typeof __VLS_components.Tabs, ]} */ ;
22
+ // @ts-ignore
23
+ Tabs;
24
+ // @ts-ignore
25
+ const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
26
+ modelValue: (__VLS_ctx.active),
27
+ }));
28
+ const __VLS_2 = __VLS_1({
29
+ modelValue: (__VLS_ctx.active),
30
+ }, ...__VLS_functionalComponentArgsRest(__VLS_1));
31
+ const { default: __VLS_4 } = __VLS_3.slots;
32
+ // @ts-ignore
33
+ [active,];
34
+ const __VLS_5 = {}.TabsList;
35
+ /** @type {[typeof __VLS_components.TabsList, typeof __VLS_components.TabsList, ]} */ ;
36
+ // @ts-ignore
37
+ TabsList;
38
+ // @ts-ignore
39
+ const __VLS_6 = __VLS_asFunctionalComponent(__VLS_5, new __VLS_5({}));
40
+ const __VLS_7 = __VLS_6({}, ...__VLS_functionalComponentArgsRest(__VLS_6));
41
+ const { default: __VLS_9 } = __VLS_8.slots;
42
+ for (const [item] of __VLS_getVForSourceType((__VLS_ctx.tabs))) {
43
+ // @ts-ignore
44
+ [tabs,];
45
+ const __VLS_10 = {}.TabsTrigger;
46
+ /** @type {[typeof __VLS_components.TabsTrigger, typeof __VLS_components.TabsTrigger, ]} */ ;
47
+ // @ts-ignore
48
+ TabsTrigger;
49
+ // @ts-ignore
50
+ const __VLS_11 = __VLS_asFunctionalComponent(__VLS_10, new __VLS_10({
51
+ ...{ class: "px-4 py-2 relative" },
52
+ value: (item.value),
53
+ key: (item.value),
54
+ }));
55
+ const __VLS_12 = __VLS_11({
56
+ ...{ class: "px-4 py-2 relative" },
57
+ value: (item.value),
58
+ key: (item.value),
59
+ }, ...__VLS_functionalComponentArgsRest(__VLS_11));
60
+ const { default: __VLS_14 } = __VLS_13.slots;
61
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
62
+ ...{ class: "w-5 h-5 bg-chat-error rounded-full absolute -top-[8px] -right-2 text-white" },
63
+ });
64
+ __VLS_asFunctionalDirective(__VLS_directives.vShow)(null, { ...__VLS_directiveBindingRestFields, value: (item.badge) }, null, null);
65
+ (item.badge);
66
+ (item.label);
67
+ var __VLS_13;
68
+ }
69
+ var __VLS_8;
70
+ var __VLS_3;
71
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
72
+ /** @type {__VLS_StyleScopedClasses['w-full']} */ ;
73
+ /** @type {__VLS_StyleScopedClasses['max-w-sm']} */ ;
74
+ /** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
75
+ /** @type {__VLS_StyleScopedClasses['gap-6']} */ ;
76
+ /** @type {__VLS_StyleScopedClasses['px-4']} */ ;
77
+ /** @type {__VLS_StyleScopedClasses['py-2']} */ ;
78
+ /** @type {__VLS_StyleScopedClasses['relative']} */ ;
79
+ /** @type {__VLS_StyleScopedClasses['w-5']} */ ;
80
+ /** @type {__VLS_StyleScopedClasses['h-5']} */ ;
81
+ /** @type {__VLS_StyleScopedClasses['bg-chat-error']} */ ;
82
+ /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
83
+ /** @type {__VLS_StyleScopedClasses['absolute']} */ ;
84
+ /** @type {__VLS_StyleScopedClasses['-top-[8px]']} */ ;
85
+ /** @type {__VLS_StyleScopedClasses['-right-2']} */ ;
86
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
87
+ const __VLS_export = (await import('vue')).defineComponent({
88
+ __typeEmits: {},
89
+ __typeProps: {},
90
+ props: {},
91
+ });
92
+ export default {};
@@ -1,11 +1,12 @@
1
1
  /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
2
2
  import { computed } from 'vue';
3
3
  import { digibotId } from '../../../composable/useDigibot';
4
+ import IconUser from '../../../assets/icons/IconUser.vue';
4
5
  const props = withDefaults(defineProps(), {
5
6
  size: 'md',
6
7
  src: ''
7
8
  });
8
- const initials = computed(() => props.name?.[0]?.toUpperCase() ?? 'n/a');
9
+ const initials = computed(() => props.name?.[0]?.toUpperCase() ?? '');
9
10
  const sizeClass = computed(() => {
10
11
  const s = props.size;
11
12
  if (typeof s === 'number')
@@ -50,10 +51,10 @@ let __VLS_directives;
50
51
  /** @type {__VLS_StyleScopedClasses['bot-wrap']} */ ;
51
52
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
52
53
  ...{ class: ([
53
- 'flex items-center justify-center rounded-full font-medium overflow-hidden select-none',
54
+ 'flex items-center justify-center rounded-full font-medium overflow-hidden select-none text-white',
54
55
  __VLS_ctx.sizeClass
55
56
  ]) },
56
- ...{ style: ({ backgroundColor: __VLS_ctx.id == __VLS_ctx.digibotId ? 'transparent' : (__VLS_ctx.color || '#266699') }) },
57
+ ...{ style: ({ backgroundColor: __VLS_ctx.id == __VLS_ctx.digibotId ? 'transparent' : __VLS_ctx.color || '#4a7c9e' }) },
57
58
  });
58
59
  // @ts-ignore
59
60
  [sizeClass, id, digibotId, color,];
@@ -76,12 +77,28 @@ else if (__VLS_ctx.src) {
76
77
  // @ts-ignore
77
78
  [src,];
78
79
  }
79
- else {
80
+ else if (__VLS_ctx.initials) {
81
+ // @ts-ignore
82
+ [initials,];
80
83
  __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
81
84
  (__VLS_ctx.initials);
82
85
  // @ts-ignore
83
86
  [initials,];
84
87
  }
88
+ else {
89
+ /** @type {[typeof IconUser, ]} */ ;
90
+ // @ts-ignore
91
+ const __VLS_0 = __VLS_asFunctionalComponent(IconUser, new IconUser({
92
+ ...{ class: (__VLS_ctx.sizeClass) },
93
+ ...{ class: "scale-50" },
94
+ }));
95
+ const __VLS_1 = __VLS_0({
96
+ ...{ class: (__VLS_ctx.sizeClass) },
97
+ ...{ class: "scale-50" },
98
+ }, ...__VLS_functionalComponentArgsRest(__VLS_0));
99
+ // @ts-ignore
100
+ [sizeClass,];
101
+ }
85
102
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
86
103
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
87
104
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
@@ -89,11 +106,13 @@ else {
89
106
  /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
90
107
  /** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
91
108
  /** @type {__VLS_StyleScopedClasses['select-none']} */ ;
109
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
92
110
  /** @type {__VLS_StyleScopedClasses['w-4/5']} */ ;
93
111
  /** @type {__VLS_StyleScopedClasses['h-4/5']} */ ;
94
112
  /** @type {__VLS_StyleScopedClasses['w-full']} */ ;
95
113
  /** @type {__VLS_StyleScopedClasses['h-full']} */ ;
96
114
  /** @type {__VLS_StyleScopedClasses['object-cover']} */ ;
115
+ /** @type {__VLS_StyleScopedClasses['scale-50']} */ ;
97
116
  const __VLS_export = (await import('vue')).defineComponent({
98
117
  __typeProps: {},
99
118
  props: {},
@@ -52,7 +52,7 @@ let __VLS_elements;
52
52
  let __VLS_components;
53
53
  let __VLS_directives;
54
54
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
55
- ...{ class: "bg-white rounded-t-3xl shadow-lg pb-2 flex grid grid-cols-4 h-[80px]" },
55
+ ...{ class: "bg-white rounded-t-3xl sm:rounded-0 shadow-lg pb-2 flex grid grid-cols-4 sm:grid-cols-1 h-[80px] w-full sm:h-full sm:w-[100px]" },
56
56
  });
57
57
  for (const [item] of __VLS_getVForSourceType((__VLS_ctx.LAYOUT_CONFIG))) {
58
58
  // @ts-ignore
@@ -88,12 +88,17 @@ for (const [item] of __VLS_getVForSourceType((__VLS_ctx.LAYOUT_CONFIG))) {
88
88
  }
89
89
  /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
90
90
  /** @type {__VLS_StyleScopedClasses['rounded-t-3xl']} */ ;
91
+ /** @type {__VLS_StyleScopedClasses['sm:rounded-0']} */ ;
91
92
  /** @type {__VLS_StyleScopedClasses['shadow-lg']} */ ;
92
93
  /** @type {__VLS_StyleScopedClasses['pb-2']} */ ;
93
94
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
94
95
  /** @type {__VLS_StyleScopedClasses['grid']} */ ;
95
96
  /** @type {__VLS_StyleScopedClasses['grid-cols-4']} */ ;
97
+ /** @type {__VLS_StyleScopedClasses['sm:grid-cols-1']} */ ;
96
98
  /** @type {__VLS_StyleScopedClasses['h-[80px]']} */ ;
99
+ /** @type {__VLS_StyleScopedClasses['w-full']} */ ;
100
+ /** @type {__VLS_StyleScopedClasses['sm:h-full']} */ ;
101
+ /** @type {__VLS_StyleScopedClasses['sm:w-[100px]']} */ ;
97
102
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
98
103
  /** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
99
104
  /** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
@@ -1,3 +1,4 @@
1
+ /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
1
2
  import { computed, ref } from 'vue';
2
3
  const props = withDefaults(defineProps(), {
3
4
  position: 'right',