@phonghq/go-chat 1.0.71 → 1.0.73

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 (68) hide show
  1. package/dist/assets/icons/chat/IconMenuDot.vue.js +31 -0
  2. package/dist/assets/icons/customer-appointment/IconChevronRight.vue.d.ts +2 -0
  3. package/dist/assets/icons/customer-appointment/IconChevronRight.vue.js +22 -0
  4. package/dist/assets/icons/global/IconMessageOutline.vue.d.ts +2 -0
  5. package/dist/assets/icons/global/IconMessageOutline.vue.js +22 -0
  6. package/dist/assets/icons/global/IconSms.vue.js +1 -1
  7. package/dist/assets/icons/lib/IconZoomOut.vue.d.ts +5 -0
  8. package/dist/assets/icons/lib/IconZoomOut.vue.js +52 -0
  9. package/dist/chat/App.vue.d.ts +14 -9
  10. package/dist/chat/App.vue.js +410 -514
  11. package/dist/chat/ChatHeader.vue.d.ts +15 -0
  12. package/dist/chat/ChatHeader.vue.js +218 -0
  13. package/dist/chat/page/customer-appointment/CustomerAppointment.vue.d.ts +8 -1
  14. package/dist/chat/page/customer-appointment/CustomerAppointment.vue.js +66 -11
  15. package/dist/chat/page/customer-detail/SubInformation.vue.js +41 -9
  16. package/dist/chat/page/home/ChatList.vue.d.ts +6 -0
  17. package/dist/chat/page/home/ChatList.vue.js +65 -32
  18. package/dist/chat/page/home/ChatMessage.vue.js +11 -1
  19. package/dist/chat/page/home/ChatMessageItem.vue.d.ts +1 -0
  20. package/dist/chat/page/home/ChatMessageItem.vue.js +44 -5
  21. package/dist/chat/page/home/Home.vue.d.ts +1 -0
  22. package/dist/chat/page/home/Home.vue.js +134 -123
  23. package/dist/chat/page/home/HomeHeader.vue.js +103 -10
  24. package/dist/chat/page/home/NewCustomer.vue.js +11 -9
  25. package/dist/chat/page/home/PhoneNumpad.vue.d.ts +4 -0
  26. package/dist/chat/page/home/PhoneNumpad.vue.js +39 -21
  27. package/dist/components/chat/call/Calling.vue.js +5 -18
  28. package/dist/components/common/dropdown/DropdownBase.vue.d.ts +4 -4
  29. package/dist/components/common/dropdown/DropdownBase.vue.js +11 -9
  30. package/dist/components/common/select/SelectBase.vue.d.ts +9 -4
  31. package/dist/components/common/select/SelectBase.vue.js +49 -31
  32. package/dist/components/ui/button/c-button.js +1 -1
  33. package/dist/components/ui/dialog/DialogContent.vue.d.ts +2 -2
  34. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +2 -2
  35. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +2 -2
  36. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +3 -3
  37. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.js +11 -6
  38. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +4 -4
  39. package/dist/components/ui/popover/PopoverContent.vue.d.ts +2 -2
  40. package/dist/components/ui/select/SelectContent.vue.js +7 -2
  41. package/dist/components/ui/select/SelectItem.vue.js +2 -2
  42. package/dist/composable/useInitData.js +2 -0
  43. package/dist/composable/useListConversations.d.ts +5 -1
  44. package/dist/composable/useListConversations.js +42 -31
  45. package/dist/composable/useListentEvent.js +20 -2
  46. package/dist/composable/usePlivo.d.ts +0 -2
  47. package/dist/composable/usePlivo.js +5 -11
  48. package/dist/go-chat.es.js +18061 -16541
  49. package/dist/go-chat.umd.js +23 -23
  50. package/dist/style.css +1 -1
  51. package/dist/types/chat/global.d.ts +35 -10
  52. package/dist/utils/chat/queue.d.ts +7 -0
  53. package/dist/utils/chat/queue.js +30 -0
  54. package/dist/utils/chat/store/conversation.d.ts +1 -0
  55. package/dist/utils/chat/store/conversation.js +4 -0
  56. package/dist/utils/chat/store/message.d.ts +0 -4
  57. package/dist/utils/chat/store/message.js +0 -4
  58. package/dist/utils/chat/store/time-limit.d.ts +5 -0
  59. package/dist/utils/chat/store/time-limit.js +8 -0
  60. package/dist/utils/string-helper.d.ts +1 -0
  61. package/dist/utils/string-helper.js +3 -0
  62. package/dist/views/home/phone-numpad/ConvercationList.vue.d.ts +1 -0
  63. package/dist/views/home/phone-numpad/ConvercationList.vue.js +4 -1
  64. package/dist/views/home/phone-numpad/PhoneNumpad.vue.d.ts +6 -2
  65. package/dist/views/home/phone-numpad/PhoneNumpad.vue.js +43 -17
  66. package/package.json +1 -1
  67. package/dist/assets/icons/call/IconPhoneBase.vue.js +0 -20
  68. /package/dist/assets/icons/{call/IconPhoneBase.vue.d.ts → chat/IconMenuDot.vue.d.ts} +0 -0
@@ -0,0 +1,15 @@
1
+ import type { PAGE_RESPONSIVE } from '../types/chat/global';
2
+ type Props = {
3
+ response: PAGE_RESPONSIVE;
4
+ isLib?: boolean;
5
+ currentPageConfig: any;
6
+ isZoomIn?: boolean;
7
+ };
8
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ close: () => any;
10
+ "zoom-change": () => any;
11
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
12
+ onClose?: (() => any) | undefined;
13
+ "onZoom-change"?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -0,0 +1,218 @@
1
+ /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
2
+ import { dataProfile } from '../utils/chat/store/auth';
3
+ import { phoneNumberFormat } from '../utils/string-helper';
4
+ import IconArrowLeft from '../assets/icons/global/IconArrowLeft.vue';
5
+ import IconZoomOut from '../assets/icons/lib/IconZoomOut.vue';
6
+ import IconCloseCircle from '../assets/icons/global/IconCloseCircle.vue';
7
+ import { computed } from 'vue';
8
+ import { timeLimit } from '../utils/chat/store/time-limit';
9
+ const props = withDefaults(defineProps(), {});
10
+ const emit = defineEmits();
11
+ const limitTimeLabel = computed(() => {
12
+ const m2 = Math.floor(timeLimit.value / 60);
13
+ const s2 = timeLimit.value % 60;
14
+ return `${m2.toString().padStart(2, '0')}:${s2.toString().padStart(2, '0')}`;
15
+ });
16
+ debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
17
+ const __VLS_defaults = {};
18
+ const __VLS_ctx = {
19
+ ...{},
20
+ ...{},
21
+ ...{},
22
+ ...{},
23
+ ...{},
24
+ };
25
+ let __VLS_elements;
26
+ let __VLS_components;
27
+ let __VLS_directives;
28
+ if (__VLS_ctx.response == 'mobile' || __VLS_ctx.isLib) {
29
+ // @ts-ignore
30
+ [response, isLib,];
31
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
32
+ ...{ class: "text-[#141B34] shrink-0" },
33
+ ...{ class: (__VLS_ctx.response == 'mobile' ? 'px-4' : 'px-6') },
34
+ });
35
+ // @ts-ignore
36
+ [response,];
37
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
38
+ ...{ class: "flex items-center justify-between" },
39
+ });
40
+ if (__VLS_ctx.currentPageConfig?.backFunc && !__VLS_ctx.currentPageConfig?.isHidden) {
41
+ // @ts-ignore
42
+ [currentPageConfig, currentPageConfig,];
43
+ __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
44
+ ...{ onClick: (...[$event]) => {
45
+ if (!(__VLS_ctx.response == 'mobile' || __VLS_ctx.isLib))
46
+ return;
47
+ if (!(__VLS_ctx.currentPageConfig?.backFunc && !__VLS_ctx.currentPageConfig?.isHidden))
48
+ return;
49
+ __VLS_ctx.currentPageConfig.backFunc?.();
50
+ // @ts-ignore
51
+ [currentPageConfig,];
52
+ } },
53
+ ...{ class: "flex items-center" },
54
+ });
55
+ /** @type {[typeof IconArrowLeft, ]} */ ;
56
+ // @ts-ignore
57
+ const __VLS_0 = __VLS_asFunctionalComponent(IconArrowLeft, new IconArrowLeft({}));
58
+ const __VLS_1 = __VLS_0({}, ...__VLS_functionalComponentArgsRest(__VLS_0));
59
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
60
+ ...{ class: "ml-3" },
61
+ });
62
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
63
+ ...{ class: "text-xl font-semibold text-left text-chat-haze-900" },
64
+ });
65
+ if (__VLS_ctx.currentPageConfig.backTitle != 'logo') {
66
+ // @ts-ignore
67
+ [currentPageConfig,];
68
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
69
+ (__VLS_ctx.currentPageConfig.backTitle ?? '');
70
+ // @ts-ignore
71
+ [currentPageConfig,];
72
+ }
73
+ else {
74
+ __VLS_asFunctionalElement(__VLS_elements.img)({
75
+ ...{ class: "h-7" },
76
+ src: "@/assets/images/logo-1.png",
77
+ });
78
+ }
79
+ if (__VLS_ctx.currentPageConfig.backTitle != 'logo') {
80
+ // @ts-ignore
81
+ [currentPageConfig,];
82
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
83
+ ...{ class: "text-sm font-medium text-chat-haze-900" },
84
+ });
85
+ (__VLS_ctx.currentPageConfig.subTitle ?? '');
86
+ // @ts-ignore
87
+ [currentPageConfig,];
88
+ }
89
+ else {
90
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
91
+ ...{ class: "text-sm font-medium text-chat-haze-900" },
92
+ });
93
+ (__VLS_ctx.currentPageConfig.subTitle ?? '');
94
+ // @ts-ignore
95
+ [currentPageConfig,];
96
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
97
+ (__VLS_ctx.limitTimeLabel);
98
+ // @ts-ignore
99
+ [limitTimeLabel,];
100
+ }
101
+ }
102
+ else if (__VLS_ctx.dataProfile?.user_type == 'tenant') {
103
+ // @ts-ignore
104
+ [dataProfile,];
105
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({});
106
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
107
+ ...{ class: "flex gap-2" },
108
+ });
109
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
110
+ ...{ class: "text-chat-haze-700" },
111
+ });
112
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
113
+ ...{ class: "font-medium text-gray-700" },
114
+ });
115
+ (__VLS_ctx.phoneNumberFormat(__VLS_ctx.dataProfile?.phone ?? '') ?? '');
116
+ // @ts-ignore
117
+ [dataProfile, phoneNumberFormat,];
118
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
119
+ ...{ class: "flex gap-2" },
120
+ });
121
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
122
+ ...{ class: "text-chat-haze-700" },
123
+ });
124
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
125
+ ...{ class: "font-medium text-gray-700" },
126
+ });
127
+ ('Time Left: ' + __VLS_ctx.limitTimeLabel);
128
+ // @ts-ignore
129
+ [limitTimeLabel,];
130
+ }
131
+ else {
132
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
133
+ }
134
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
135
+ ...{ class: "flex items-center" },
136
+ });
137
+ __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
138
+ ...{ onClick: (...[$event]) => {
139
+ if (!(__VLS_ctx.response == 'mobile' || __VLS_ctx.isLib))
140
+ return;
141
+ __VLS_ctx.emit('zoom-change');
142
+ // @ts-ignore
143
+ [emit,];
144
+ } },
145
+ ...{ class: "w-10 h-10 flex-center" },
146
+ });
147
+ /** @type {[typeof IconZoomOut, ]} */ ;
148
+ // @ts-ignore
149
+ const __VLS_4 = __VLS_asFunctionalComponent(IconZoomOut, new IconZoomOut({
150
+ isZoomIn: (__VLS_ctx.isZoomIn),
151
+ }));
152
+ const __VLS_5 = __VLS_4({
153
+ isZoomIn: (__VLS_ctx.isZoomIn),
154
+ }, ...__VLS_functionalComponentArgsRest(__VLS_4));
155
+ // @ts-ignore
156
+ [isZoomIn,];
157
+ if (props.isLib) {
158
+ __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
159
+ ...{ onClick: (...[$event]) => {
160
+ if (!(__VLS_ctx.response == 'mobile' || __VLS_ctx.isLib))
161
+ return;
162
+ if (!(props.isLib))
163
+ return;
164
+ __VLS_ctx.emit('close');
165
+ // @ts-ignore
166
+ [emit,];
167
+ } },
168
+ ...{ class: "w-10 h-10 flex-center" },
169
+ });
170
+ /** @type {[typeof IconCloseCircle, ]} */ ;
171
+ // @ts-ignore
172
+ const __VLS_8 = __VLS_asFunctionalComponent(IconCloseCircle, new IconCloseCircle({}));
173
+ const __VLS_9 = __VLS_8({}, ...__VLS_functionalComponentArgsRest(__VLS_8));
174
+ }
175
+ }
176
+ /** @type {__VLS_StyleScopedClasses['text-[#141B34]']} */ ;
177
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
178
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
179
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
180
+ /** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
181
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
182
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
183
+ /** @type {__VLS_StyleScopedClasses['ml-3']} */ ;
184
+ /** @type {__VLS_StyleScopedClasses['text-xl']} */ ;
185
+ /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
186
+ /** @type {__VLS_StyleScopedClasses['text-left']} */ ;
187
+ /** @type {__VLS_StyleScopedClasses['text-chat-haze-900']} */ ;
188
+ /** @type {__VLS_StyleScopedClasses['h-7']} */ ;
189
+ /** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
190
+ /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
191
+ /** @type {__VLS_StyleScopedClasses['text-chat-haze-900']} */ ;
192
+ /** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
193
+ /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
194
+ /** @type {__VLS_StyleScopedClasses['text-chat-haze-900']} */ ;
195
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
196
+ /** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
197
+ /** @type {__VLS_StyleScopedClasses['text-chat-haze-700']} */ ;
198
+ /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
199
+ /** @type {__VLS_StyleScopedClasses['text-gray-700']} */ ;
200
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
201
+ /** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
202
+ /** @type {__VLS_StyleScopedClasses['text-chat-haze-700']} */ ;
203
+ /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
204
+ /** @type {__VLS_StyleScopedClasses['text-gray-700']} */ ;
205
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
206
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
207
+ /** @type {__VLS_StyleScopedClasses['w-10']} */ ;
208
+ /** @type {__VLS_StyleScopedClasses['h-10']} */ ;
209
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
210
+ /** @type {__VLS_StyleScopedClasses['w-10']} */ ;
211
+ /** @type {__VLS_StyleScopedClasses['h-10']} */ ;
212
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
213
+ const __VLS_export = (await import('vue')).defineComponent({
214
+ __typeEmits: {},
215
+ __typeProps: {},
216
+ props: {},
217
+ });
218
+ export default {};
@@ -1,2 +1,9 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ type Prop = {
2
+ isBookingAdmin?: boolean;
3
+ };
4
+ declare const _default: import("vue").DefineComponent<Prop, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
+ "booking-admin:viewAppointment": (id: any) => any;
6
+ }, string, import("vue").PublicProps, Readonly<Prop> & Readonly<{
7
+ "onBooking-admin:viewAppointment"?: ((id: any) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
9
  export default _default;
@@ -7,6 +7,10 @@ import { CalendarStatus } from '../../../constant/user';
7
7
  import dayjs from 'dayjs';
8
8
  import { DATE_FORMATS } from '../../../constant/datetime';
9
9
  import CollapseCheckIn from '../../../chat/page/customer-check-in/CollapseCheckIn.vue';
10
+ import IconChevronRight from '../../../assets/icons/customer-appointment/IconChevronRight.vue';
11
+ import ButtonBase from '../../../components/common/button/ButtonBase.vue';
12
+ const props = withDefaults(defineProps(), {});
13
+ const emit = defineEmits();
10
14
  const appointment = computed(() => {
11
15
  return getItemsByYear(userHistory.value?.appointment ?? [], 'start_time');
12
16
  });
@@ -31,15 +35,19 @@ const statusColor = (type) => {
31
35
  }
32
36
  };
33
37
  debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
38
+ const __VLS_defaults = {};
34
39
  const __VLS_ctx = {
35
40
  ...{},
36
41
  ...{},
42
+ ...{},
43
+ ...{},
44
+ ...{},
37
45
  };
38
46
  let __VLS_elements;
39
47
  let __VLS_components;
40
48
  let __VLS_directives;
41
49
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
42
- ...{ class: "chat-padding-page" },
50
+ ...{ class: "chat-padding-page overflow-auto" },
43
51
  });
44
52
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
45
53
  ...{ class: "flex justify-between items-center mb-5" },
@@ -69,12 +77,12 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
69
77
  /** @type {[typeof CollapseCheckIn, typeof CollapseCheckIn, ]} */ ;
70
78
  // @ts-ignore
71
79
  const __VLS_4 = __VLS_asFunctionalComponent(CollapseCheckIn, new CollapseCheckIn({
72
- ...{ class: "relative" },
80
+ ...{ class: "relative mt-2" },
73
81
  title: (year.year),
74
82
  key: (i),
75
83
  }));
76
84
  const __VLS_5 = __VLS_4({
77
- ...{ class: "relative" },
85
+ ...{ class: "relative mt-2" },
78
86
  title: (year.year),
79
87
  key: (i),
80
88
  }, ...__VLS_functionalComponentArgsRest(__VLS_4));
@@ -95,12 +103,50 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
95
103
  {
96
104
  const { header: __VLS_12 } = __VLS_10.slots;
97
105
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
98
- ...{ class: "flex justify-between items-center" },
99
- });
100
- __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
101
- ...{ class: "text-lg text-chat-haze-600 font-bold" },
106
+ ...{ class: "flex justify-between items-center mb-2" },
102
107
  });
103
- (item.id);
108
+ if (__VLS_ctx.isBookingAdmin) {
109
+ // @ts-ignore
110
+ [isBookingAdmin,];
111
+ /** @type {[typeof ButtonBase, typeof ButtonBase, ]} */ ;
112
+ // @ts-ignore
113
+ const __VLS_13 = __VLS_asFunctionalComponent(ButtonBase, new ButtonBase({
114
+ ...{ 'onClick': {} },
115
+ type: "primary-outline",
116
+ ...{ class: "" },
117
+ }));
118
+ const __VLS_14 = __VLS_13({
119
+ ...{ 'onClick': {} },
120
+ type: "primary-outline",
121
+ ...{ class: "" },
122
+ }, ...__VLS_functionalComponentArgsRest(__VLS_13));
123
+ let __VLS_16;
124
+ let __VLS_17;
125
+ const __VLS_18 = ({ click: {} },
126
+ { onClick: (...[$event]) => {
127
+ if (!(__VLS_ctx.isBookingAdmin))
128
+ return;
129
+ __VLS_ctx.emit('booking-admin:viewAppointment', item.id);
130
+ // @ts-ignore
131
+ [emit,];
132
+ } });
133
+ const { default: __VLS_19 } = __VLS_15.slots;
134
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
135
+ ...{ class: "text-lg font-bold" },
136
+ });
137
+ (item.id);
138
+ /** @type {[typeof IconChevronRight, ]} */ ;
139
+ // @ts-ignore
140
+ const __VLS_20 = __VLS_asFunctionalComponent(IconChevronRight, new IconChevronRight({}));
141
+ const __VLS_21 = __VLS_20({}, ...__VLS_functionalComponentArgsRest(__VLS_20));
142
+ var __VLS_15;
143
+ }
144
+ else {
145
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
146
+ ...{ class: "text-lg font-bold" },
147
+ });
148
+ (item.id);
149
+ }
104
150
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
105
151
  ...{ class: "translate-y-[-4px]" },
106
152
  });
@@ -128,7 +174,7 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
128
174
  [dayjs, DATE_FORMATS,];
129
175
  }
130
176
  {
131
- const { content: __VLS_13 } = __VLS_10.slots;
177
+ const { content: __VLS_24 } = __VLS_10.slots;
132
178
  for (const [service, i] of __VLS_getVForSourceType((item.services))) {
133
179
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
134
180
  ...{ class: "flex justify-between items-center" },
@@ -148,7 +194,9 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
148
194
  }
149
195
  var __VLS_6;
150
196
  }
197
+ /** @type {__VLS_StyleScopedClasses['']} */ ;
151
198
  /** @type {__VLS_StyleScopedClasses['chat-padding-page']} */ ;
199
+ /** @type {__VLS_StyleScopedClasses['overflow-auto']} */ ;
152
200
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
153
201
  /** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
154
202
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
@@ -175,14 +223,17 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
175
223
  /** @type {__VLS_StyleScopedClasses['w-1']} */ ;
176
224
  /** @type {__VLS_StyleScopedClasses['mt-2']} */ ;
177
225
  /** @type {__VLS_StyleScopedClasses['relative']} */ ;
226
+ /** @type {__VLS_StyleScopedClasses['mt-2']} */ ;
178
227
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
179
228
  /** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
180
229
  /** @type {__VLS_StyleScopedClasses['gap-y-3']} */ ;
181
230
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
182
231
  /** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
183
232
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
233
+ /** @type {__VLS_StyleScopedClasses['mb-2']} */ ;
234
+ /** @type {__VLS_StyleScopedClasses['text-lg']} */ ;
235
+ /** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
184
236
  /** @type {__VLS_StyleScopedClasses['text-lg']} */ ;
185
- /** @type {__VLS_StyleScopedClasses['text-chat-haze-600']} */ ;
186
237
  /** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
187
238
  /** @type {__VLS_StyleScopedClasses['translate-y-[-4px]']} */ ;
188
239
  /** @type {__VLS_StyleScopedClasses['w-max']} */ ;
@@ -203,5 +254,9 @@ for (const [year, i] of __VLS_getVForSourceType((__VLS_ctx.appointment))) {
203
254
  /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
204
255
  /** @type {__VLS_StyleScopedClasses['text-chat-haze-409']} */ ;
205
256
  /** @type {__VLS_StyleScopedClasses['font-medium']} */ ;
206
- const __VLS_export = (await import('vue')).defineComponent({});
257
+ const __VLS_export = (await import('vue')).defineComponent({
258
+ __typeEmits: {},
259
+ __typeProps: {},
260
+ props: {},
261
+ });
207
262
  export default {};
@@ -1,5 +1,6 @@
1
1
  /// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
2
2
  import IconArrow from '../../../assets/icons/customer-detail/IconArrow.vue';
3
+ import ButtonBase from '../../../components/common/button/ButtonBase.vue';
3
4
  const props = withDefaults(defineProps(), {
4
5
  information: [],
5
6
  title: ''
@@ -38,7 +39,7 @@ for (const [item, x] of __VLS_getVForSourceType((__VLS_ctx.information))) {
38
39
  ...{ onClick: (...[$event]) => {
39
40
  item.click?.();
40
41
  } },
41
- ...{ class: "flex items-center gap-1 " },
42
+ ...{ class: "flex items-center gap-1" },
42
43
  ...{ class: ({ 'cursor-pointer': item.click }) },
43
44
  });
44
45
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
@@ -54,14 +55,41 @@ for (const [item, x] of __VLS_getVForSourceType((__VLS_ctx.information))) {
54
55
  __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
55
56
  ...{ class: "flex items-center text-chat-haze-300" },
56
57
  });
57
- (item.value);
58
- __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
59
- ...{ class: "ml-1" },
60
- });
61
- /** @type {[typeof IconArrow, ]} */ ;
62
- // @ts-ignore
63
- const __VLS_5 = __VLS_asFunctionalComponent(IconArrow, new IconArrow({}));
64
- const __VLS_6 = __VLS_5({}, ...__VLS_functionalComponentArgsRest(__VLS_5));
58
+ if (item.click) {
59
+ /** @type {[typeof ButtonBase, typeof ButtonBase, ]} */ ;
60
+ // @ts-ignore
61
+ const __VLS_5 = __VLS_asFunctionalComponent(ButtonBase, new ButtonBase({
62
+ type: "primary",
63
+ ...{ class: "flex-center gap-0" },
64
+ }));
65
+ const __VLS_6 = __VLS_5({
66
+ type: "primary",
67
+ ...{ class: "flex-center gap-0" },
68
+ }, ...__VLS_functionalComponentArgsRest(__VLS_5));
69
+ const { default: __VLS_8 } = __VLS_7.slots;
70
+ (item.value);
71
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
72
+ ...{ class: "ml-1" },
73
+ });
74
+ /** @type {[typeof IconArrow, ]} */ ;
75
+ // @ts-ignore
76
+ const __VLS_9 = __VLS_asFunctionalComponent(IconArrow, new IconArrow({}));
77
+ const __VLS_10 = __VLS_9({}, ...__VLS_functionalComponentArgsRest(__VLS_9));
78
+ var __VLS_7;
79
+ }
80
+ else {
81
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
82
+ ...{ class: "flex-center" },
83
+ });
84
+ (item.value);
85
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
86
+ ...{ class: "ml-1" },
87
+ });
88
+ /** @type {[typeof IconArrow, ]} */ ;
89
+ // @ts-ignore
90
+ const __VLS_13 = __VLS_asFunctionalComponent(IconArrow, new IconArrow({}));
91
+ const __VLS_14 = __VLS_13({}, ...__VLS_functionalComponentArgsRest(__VLS_13));
92
+ }
65
93
  }
66
94
  __VLS_asFunctionalElement(__VLS_elements.hr)({
67
95
  ...{ class: "border-chat-haze-100 mx-6" },
@@ -92,6 +120,10 @@ for (const [item, x] of __VLS_getVForSourceType((__VLS_ctx.information))) {
92
120
  /** @type {__VLS_StyleScopedClasses['flex']} */ ;
93
121
  /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
94
122
  /** @type {__VLS_StyleScopedClasses['text-chat-haze-300']} */ ;
123
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
124
+ /** @type {__VLS_StyleScopedClasses['gap-0']} */ ;
125
+ /** @type {__VLS_StyleScopedClasses['ml-1']} */ ;
126
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
95
127
  /** @type {__VLS_StyleScopedClasses['ml-1']} */ ;
96
128
  /** @type {__VLS_StyleScopedClasses['border-chat-haze-100']} */ ;
97
129
  /** @type {__VLS_StyleScopedClasses['mx-6']} */ ;
@@ -1,4 +1,5 @@
1
1
  import type { IConversation } from '../../../types/conversation';
2
+ import type { IResUser } from '../../../types/message';
2
3
  import type { PAGE_RESPONSIVE } from '../../../types/chat/global';
3
4
  type Props = {
4
5
  responsive: PAGE_RESPONSIVE;
@@ -80,18 +81,23 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
80
81
  initData: (option?: {
81
82
  conversation_id?: any;
82
83
  is_known?: string | undefined;
84
+ isResponsiveChange?: boolean | undefined;
83
85
  } | undefined) => Promise<void>;
84
86
  handleTabChange: (tab: any, option?: {
85
87
  hideCheckHasReceiveId?: boolean | undefined;
86
88
  hideLoading?: boolean | undefined;
89
+ isResponsiveChange?: boolean | undefined;
87
90
  } | undefined) => Promise<void>;
91
+ goToConversationRequest: (conversation: IConversation) => Promise<void>;
88
92
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
89
93
  "update:receiverId": (value: any) => any;
90
94
  } & {
91
95
  selectReceiver: (val: any) => any;
96
+ reloadReceiver: (data: IResUser) => any;
92
97
  openPhoneNumpad: () => any;
93
98
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
94
99
  onSelectReceiver?: ((val: any) => any) | undefined;
100
+ onReloadReceiver?: ((data: IResUser) => any) | undefined;
95
101
  onOpenPhoneNumpad?: (() => any) | undefined;
96
102
  "onUpdate:receiverId"?: ((value: any) => any) | undefined;
97
103
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;