@phonghq/go-chat 1.0.73 → 1.0.74
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.
- package/dist/assets/icons/chat/IconCalendar.vue.d.ts +14 -0
- package/dist/assets/icons/chat/IconCalendar.vue.js +42 -0
- package/dist/assets/icons/chat/IconCheck.vue.d.ts +2 -0
- package/dist/assets/icons/chat/IconCheck.vue.js +22 -0
- package/dist/assets/icons/chat/IconInfo.vue.d.ts +2 -0
- package/dist/assets/icons/chat/IconInfo.vue.js +20 -0
- package/dist/assets/icons/chat/IconLink.vue.d.ts +14 -0
- package/dist/assets/icons/chat/IconLink.vue.js +42 -0
- package/dist/chat/App.vue.js +51 -39
- package/dist/chat/page/customer-detail/CustomerDetail.vue.js +7 -6
- package/dist/chat/page/home/ChatMessage.vue.js +4 -4
- package/dist/chat/page/home/ChatMessageItem.vue.js +7 -7
- package/dist/chat/page/home/Home.vue.d.ts +4 -1
- package/dist/chat/page/home/Home.vue.js +58 -27
- package/dist/chat/page/home/HomeHeader.vue.d.ts +5 -1
- package/dist/chat/page/home/HomeHeader.vue.js +200 -27
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.js +2 -2
- package/dist/constant/datetime.d.ts +1 -0
- package/dist/constant/datetime.js +2 -1
- package/dist/go-chat.es.js +12157 -11969
- package/dist/go-chat.umd.js +20 -20
- package/dist/style.css +1 -1
- package/dist/types/chat/global.d.ts +2 -1
- package/dist/utils/chat/chat-router.d.ts +2 -0
- package/dist/utils/chat/chat-router.js +9 -3
- package/dist/utils/chat/store/user.d.ts +1 -1
- package/dist/utils/chat/store/user.js +2 -1
- package/dist/utils/dayjs-helper.d.ts +3 -0
- package/dist/utils/dayjs-helper.js +8 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import HomeHeader from '../../../chat/page/home/HomeHeader.vue';
|
|
3
3
|
import NewCustomer from '../../../chat/page/home/NewCustomer.vue';
|
|
4
4
|
import InputChat from '../../../chat/page/home/InputChat.vue';
|
|
5
|
-
import {
|
|
5
|
+
import { getMessage, sendMessage, upLoadImage } from '../../../utils/chat/store/message';
|
|
6
6
|
import { computed, nextTick, onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
|
7
7
|
import ChatMessage from '../../../chat/page/home/ChatMessage.vue';
|
|
8
8
|
import { addHandleMqttMessage, connectMqtt, publishMessage, removeHandleMqttMessage, subscribeToTopic, unsubscribeFromTopic } from '../../../plugins/mqtt';
|
|
@@ -13,6 +13,7 @@ import { getCache, removeOldestCache, setCache } from '../../../utils/chat/cache
|
|
|
13
13
|
import { digibotId } from '../../../composable/useDigibot';
|
|
14
14
|
import dayjs from 'dayjs';
|
|
15
15
|
import { useDebounce } from '../../../utils/debounce';
|
|
16
|
+
import { getUserHistory, userHistory } from '../../../utils/chat/store/user';
|
|
16
17
|
const props = withDefaults(defineProps(), {});
|
|
17
18
|
const emit = defineEmits();
|
|
18
19
|
const MESSAGE_STORAGE_KEY = 'chat-message-';
|
|
@@ -26,6 +27,7 @@ const infoUser = shallowRef(null);
|
|
|
26
27
|
const listMessage = ref([]);
|
|
27
28
|
const chatMessageRef = ref(null);
|
|
28
29
|
const inputChatRef = ref(null);
|
|
30
|
+
const customerLoading = ref(false);
|
|
29
31
|
onMounted(() => {
|
|
30
32
|
document.addEventListener('visibilitychange', handleVisibilitychange);
|
|
31
33
|
});
|
|
@@ -134,15 +136,30 @@ const handleGetDetailReceiverQuickly = (data) => {
|
|
|
134
136
|
};
|
|
135
137
|
const handleGetDetailReceiver = async (data) => {
|
|
136
138
|
const id = props.receiverId;
|
|
137
|
-
if (data)
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
if (!data)
|
|
140
|
+
return;
|
|
141
|
+
infoUser.value = { ...data, conversation_id: data.id };
|
|
142
|
+
// const res = (await getDetailReceiver(props.receiverId)) ?? null
|
|
143
|
+
userHistory.value = null;
|
|
144
|
+
customerLoading.value = true;
|
|
145
|
+
handleGetUserHistoryDebounce(infoUser.value?.phone?.slice(1) ?? '');
|
|
140
146
|
if (id == props.receiverId) {
|
|
141
|
-
infoUser.value = res
|
|
147
|
+
// infoUser.value = res
|
|
142
148
|
await handleDisconnectMqtt();
|
|
143
149
|
await handleConnectMqtt();
|
|
144
150
|
}
|
|
145
151
|
};
|
|
152
|
+
const handleGetUserHistory = async (phone) => {
|
|
153
|
+
try {
|
|
154
|
+
// customerLoading.value = true
|
|
155
|
+
await getUserHistory(phone);
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
console.log(e);
|
|
159
|
+
}
|
|
160
|
+
customerLoading.value = false;
|
|
161
|
+
};
|
|
162
|
+
const handleGetUserHistoryDebounce = useDebounce((phone) => handleGetUserHistory(phone), 500);
|
|
146
163
|
const getData = async (data) => {
|
|
147
164
|
try {
|
|
148
165
|
isLoading.value = true;
|
|
@@ -289,29 +306,43 @@ if (__VLS_ctx.infoUser) {
|
|
|
289
306
|
// @ts-ignore
|
|
290
307
|
const __VLS_0 = __VLS_asFunctionalComponent(HomeHeader, new HomeHeader({
|
|
291
308
|
...{ 'onCall': {} },
|
|
309
|
+
...{ 'onViewAppointment': {} },
|
|
292
310
|
...{ 'onBack': {} },
|
|
293
311
|
...{ class: "shrink-0" },
|
|
294
312
|
data: (__VLS_ctx.infoUser),
|
|
295
313
|
responsive: (__VLS_ctx.responsive),
|
|
314
|
+
parentPageName: (__VLS_ctx.parentPageName),
|
|
315
|
+
customerLoading: (__VLS_ctx.customerLoading),
|
|
296
316
|
}));
|
|
297
317
|
const __VLS_1 = __VLS_0({
|
|
298
318
|
...{ 'onCall': {} },
|
|
319
|
+
...{ 'onViewAppointment': {} },
|
|
299
320
|
...{ 'onBack': {} },
|
|
300
321
|
...{ class: "shrink-0" },
|
|
301
322
|
data: (__VLS_ctx.infoUser),
|
|
302
323
|
responsive: (__VLS_ctx.responsive),
|
|
324
|
+
parentPageName: (__VLS_ctx.parentPageName),
|
|
325
|
+
customerLoading: (__VLS_ctx.customerLoading),
|
|
303
326
|
}, ...__VLS_functionalComponentArgsRest(__VLS_0));
|
|
304
327
|
let __VLS_3;
|
|
305
328
|
let __VLS_4;
|
|
306
329
|
const __VLS_5 = ({ call: {} },
|
|
307
330
|
{ onCall: (__VLS_ctx.call) });
|
|
308
|
-
const __VLS_6 = ({
|
|
331
|
+
const __VLS_6 = ({ viewAppointment: {} },
|
|
332
|
+
{ onViewAppointment: (...[$event]) => {
|
|
333
|
+
if (!(__VLS_ctx.infoUser))
|
|
334
|
+
return;
|
|
335
|
+
__VLS_ctx.emit('viewAppointment', $event);
|
|
336
|
+
// @ts-ignore
|
|
337
|
+
[infoUser, responsive, parentPageName, customerLoading, call, emit,];
|
|
338
|
+
} });
|
|
339
|
+
const __VLS_7 = ({ back: {} },
|
|
309
340
|
{ onBack: (...[$event]) => {
|
|
310
341
|
if (!(__VLS_ctx.infoUser))
|
|
311
342
|
return;
|
|
312
343
|
__VLS_ctx.emit('back');
|
|
313
344
|
// @ts-ignore
|
|
314
|
-
[
|
|
345
|
+
[emit,];
|
|
315
346
|
} });
|
|
316
347
|
var __VLS_2;
|
|
317
348
|
if (__VLS_ctx.listMessage?.length) {
|
|
@@ -319,7 +350,7 @@ if (__VLS_ctx.infoUser) {
|
|
|
319
350
|
[listMessage,];
|
|
320
351
|
/** @type {[typeof ChatMessage, ]} */ ;
|
|
321
352
|
// @ts-ignore
|
|
322
|
-
const
|
|
353
|
+
const __VLS_9 = __VLS_asFunctionalComponent(ChatMessage, new ChatMessage({
|
|
323
354
|
...{ 'onScrollTop': {} },
|
|
324
355
|
...{ 'onCallBack': {} },
|
|
325
356
|
ref: "chatMessageRef",
|
|
@@ -330,7 +361,7 @@ if (__VLS_ctx.infoUser) {
|
|
|
330
361
|
showNewCustomer: (__VLS_ctx.page >= __VLS_ctx.pageCount),
|
|
331
362
|
isLoading: (__VLS_ctx.isLoading),
|
|
332
363
|
}));
|
|
333
|
-
const
|
|
364
|
+
const __VLS_10 = __VLS_9({
|
|
334
365
|
...{ 'onScrollTop': {} },
|
|
335
366
|
...{ 'onCallBack': {} },
|
|
336
367
|
ref: "chatMessageRef",
|
|
@@ -340,34 +371,34 @@ if (__VLS_ctx.infoUser) {
|
|
|
340
371
|
responsive: (__VLS_ctx.responsive),
|
|
341
372
|
showNewCustomer: (__VLS_ctx.page >= __VLS_ctx.pageCount),
|
|
342
373
|
isLoading: (__VLS_ctx.isLoading),
|
|
343
|
-
}, ...__VLS_functionalComponentArgsRest(
|
|
344
|
-
let __VLS_11;
|
|
374
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_9));
|
|
345
375
|
let __VLS_12;
|
|
346
|
-
|
|
376
|
+
let __VLS_13;
|
|
377
|
+
const __VLS_14 = ({ scrollTop: {} },
|
|
347
378
|
{ onScrollTop: (__VLS_ctx.handleScrollTop) });
|
|
348
|
-
const
|
|
379
|
+
const __VLS_15 = ({ callBack: {} },
|
|
349
380
|
{ onCallBack: (__VLS_ctx.call) });
|
|
350
381
|
/** @type {typeof __VLS_ctx.chatMessageRef} */ ;
|
|
351
|
-
var
|
|
382
|
+
var __VLS_16 = {};
|
|
352
383
|
// @ts-ignore
|
|
353
384
|
[infoUser, responsive, call, reversedList, page, pageCount, isLoading, handleScrollTop, chatMessageRef,];
|
|
354
|
-
var
|
|
385
|
+
var __VLS_11;
|
|
355
386
|
}
|
|
356
387
|
else if (!__VLS_ctx.isLoading) {
|
|
357
388
|
// @ts-ignore
|
|
358
389
|
[isLoading,];
|
|
359
390
|
/** @type {[typeof NewCustomer, ]} */ ;
|
|
360
391
|
// @ts-ignore
|
|
361
|
-
const
|
|
392
|
+
const __VLS_19 = __VLS_asFunctionalComponent(NewCustomer, new NewCustomer({
|
|
362
393
|
data: (__VLS_ctx.infoUser),
|
|
363
394
|
...{ class: "grow" },
|
|
364
395
|
isNew: (!__VLS_ctx.listMessage.length),
|
|
365
396
|
}));
|
|
366
|
-
const
|
|
397
|
+
const __VLS_20 = __VLS_19({
|
|
367
398
|
data: (__VLS_ctx.infoUser),
|
|
368
399
|
...{ class: "grow" },
|
|
369
400
|
isNew: (!__VLS_ctx.listMessage.length),
|
|
370
|
-
}, ...__VLS_functionalComponentArgsRest(
|
|
401
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_19));
|
|
371
402
|
// @ts-ignore
|
|
372
403
|
[infoUser, listMessage,];
|
|
373
404
|
}
|
|
@@ -381,7 +412,7 @@ if (__VLS_ctx.infoUser) {
|
|
|
381
412
|
[receiverId, digibotId,];
|
|
382
413
|
/** @type {[typeof InputChat, ]} */ ;
|
|
383
414
|
// @ts-ignore
|
|
384
|
-
const
|
|
415
|
+
const __VLS_23 = __VLS_asFunctionalComponent(InputChat, new InputChat({
|
|
385
416
|
...{ 'onSendMessage': {} },
|
|
386
417
|
...{ 'onFocus': {} },
|
|
387
418
|
data: (__VLS_ctx.infoUser),
|
|
@@ -390,7 +421,7 @@ if (__VLS_ctx.infoUser) {
|
|
|
390
421
|
ref: "inputChatRef",
|
|
391
422
|
...{ class: "p-2 sm:p-6" },
|
|
392
423
|
}));
|
|
393
|
-
const
|
|
424
|
+
const __VLS_24 = __VLS_23({
|
|
394
425
|
...{ 'onSendMessage': {} },
|
|
395
426
|
...{ 'onFocus': {} },
|
|
396
427
|
data: (__VLS_ctx.infoUser),
|
|
@@ -398,12 +429,12 @@ if (__VLS_ctx.infoUser) {
|
|
|
398
429
|
conversation: (__VLS_ctx.conversation),
|
|
399
430
|
ref: "inputChatRef",
|
|
400
431
|
...{ class: "p-2 sm:p-6" },
|
|
401
|
-
}, ...__VLS_functionalComponentArgsRest(
|
|
402
|
-
let __VLS_25;
|
|
432
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_23));
|
|
403
433
|
let __VLS_26;
|
|
404
|
-
|
|
434
|
+
let __VLS_27;
|
|
435
|
+
const __VLS_28 = ({ sendMessage: {} },
|
|
405
436
|
{ onSendMessage: (__VLS_ctx.handleSendMessage) });
|
|
406
|
-
const
|
|
437
|
+
const __VLS_29 = ({ focus: {} },
|
|
407
438
|
{ onFocus: (...[$event]) => {
|
|
408
439
|
if (!(__VLS_ctx.infoUser))
|
|
409
440
|
return;
|
|
@@ -414,10 +445,10 @@ if (__VLS_ctx.infoUser) {
|
|
|
414
445
|
[infoUser, responsive, emit, conversation, handleSendMessage,];
|
|
415
446
|
} });
|
|
416
447
|
/** @type {typeof __VLS_ctx.inputChatRef} */ ;
|
|
417
|
-
var
|
|
448
|
+
var __VLS_30 = {};
|
|
418
449
|
// @ts-ignore
|
|
419
450
|
[inputChatRef,];
|
|
420
|
-
var
|
|
451
|
+
var __VLS_25;
|
|
421
452
|
}
|
|
422
453
|
}
|
|
423
454
|
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
@@ -431,7 +462,7 @@ if (__VLS_ctx.infoUser) {
|
|
|
431
462
|
/** @type {__VLS_StyleScopedClasses['p-2']} */ ;
|
|
432
463
|
/** @type {__VLS_StyleScopedClasses['sm:p-6']} */ ;
|
|
433
464
|
// @ts-ignore
|
|
434
|
-
var
|
|
465
|
+
var __VLS_17 = __VLS_16, __VLS_31 = __VLS_30;
|
|
435
466
|
const __VLS_export = (await import('vue')).defineComponent({
|
|
436
467
|
setup: () => (__VLS_exposed),
|
|
437
468
|
__typeEmits: {},
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { IResUser } from '../../../types/message';
|
|
2
|
-
import type { PAGE_RESPONSIVE } from '../../../types/chat/global';
|
|
2
|
+
import type { PAGE_RESPONSIVE, PARENT_PAGE_NAME } from '../../../types/chat/global';
|
|
3
3
|
type Props = {
|
|
4
4
|
data: IResUser | null;
|
|
5
5
|
responsive: PAGE_RESPONSIVE | null;
|
|
6
|
+
parentPageName: PARENT_PAGE_NAME;
|
|
7
|
+
customerLoading: boolean;
|
|
6
8
|
};
|
|
7
9
|
declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
10
|
call: () => any;
|
|
9
11
|
back: () => any;
|
|
12
|
+
viewAppointment: (id: any) => any;
|
|
10
13
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
11
14
|
onCall?: (() => any) | undefined;
|
|
12
15
|
onBack?: (() => any) | undefined;
|
|
16
|
+
onViewAppointment?: ((id: any) => any) | undefined;
|
|
13
17
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
18
|
export default _default;
|
|
@@ -3,29 +3,83 @@ import IconPhone from '../../../assets/icons/global/IconPhone.vue';
|
|
|
3
3
|
import { PAGE } from '../../../constant/general';
|
|
4
4
|
import Avatar from '../../../components/chat/customer/Avatar.vue';
|
|
5
5
|
import { routerPush } from '../../../utils/chat/chat-router';
|
|
6
|
-
import { user } from '../../../utils/chat/store/user';
|
|
6
|
+
import { user, userHistory } from '../../../utils/chat/store/user';
|
|
7
7
|
import { dataProfile } from '../../../utils/chat/store/auth';
|
|
8
8
|
import { digibotId } from '../../../composable/useDigibot';
|
|
9
9
|
import IconArrowLeft from '../../../assets/icons/global/IconArrowLeft.vue';
|
|
10
10
|
import { phoneNumberFormat } from '../../../utils/string-helper';
|
|
11
11
|
import IconSms from '../../../assets/icons/global/IconSms.vue';
|
|
12
12
|
import { activePlivoMode } from '../../../utils/chat/store/message';
|
|
13
|
-
import { ref } from 'vue';
|
|
13
|
+
import { computed, ref } from 'vue';
|
|
14
14
|
import ButtonBase from '../../../components/common/button/ButtonBase.vue';
|
|
15
15
|
import IconMenuDot from '../../../assets/icons/chat/IconMenuDot.vue';
|
|
16
16
|
import DropdownBase from '../../../components/common/dropdown/DropdownBase.vue';
|
|
17
|
+
import IconInfo from '../../../assets/icons/chat/IconInfo.vue';
|
|
18
|
+
import IconCalendar from '../../../assets/icons/chat/IconCalendar.vue';
|
|
19
|
+
import IconCheck from '../../../assets/icons/chat/IconCheck.vue';
|
|
20
|
+
import IconLink from '../../../assets/icons/chat/IconLink.vue';
|
|
21
|
+
import { getTimeLocal } from '../../../utils/dayjs-helper';
|
|
22
|
+
import { DATE_FORMATS } from '../../../constant/datetime';
|
|
23
|
+
import BaseSpin from '../../../components/chat/common/spin/BaseSpin.vue';
|
|
17
24
|
const props = withDefaults(defineProps(), {});
|
|
18
25
|
const emit = defineEmits();
|
|
26
|
+
const customerDropContent = computed(() => {
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
icon: IconInfo,
|
|
30
|
+
title: 'Profile',
|
|
31
|
+
click: goToViewUser,
|
|
32
|
+
disabled: false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
icon: IconCalendar,
|
|
36
|
+
title: 'View Appointment',
|
|
37
|
+
click: goToViewAppointment,
|
|
38
|
+
disabled: !userHistory.value?.appointment?.length
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
icon: IconCheck,
|
|
42
|
+
title: 'View Checkin',
|
|
43
|
+
click: goToViewView,
|
|
44
|
+
disabled: !userHistory.value?.visit_count
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
});
|
|
48
|
+
const tabContent = computed(() => {
|
|
49
|
+
let result = [];
|
|
50
|
+
if (userHistory.value?.appointment?.length && props.parentPageName == 'booking-admin') {
|
|
51
|
+
const last_item = userHistory.value?.appointment[userHistory.value?.appointment?.length - 1];
|
|
52
|
+
result.push({
|
|
53
|
+
id: last_item.id,
|
|
54
|
+
icon: IconCalendar,
|
|
55
|
+
label: 'Last Appointment:',
|
|
56
|
+
time: getTimeLocal(last_item?.start_time)?.format(DATE_FORMATS['DATE_FORMAT_MEDIUM']) ?? '',
|
|
57
|
+
click: () => {
|
|
58
|
+
emit('viewAppointment', last_item.id);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
});
|
|
19
64
|
const activePlivoSms = ref(dataProfile.value?.is_sms_active == 1);
|
|
20
65
|
const loading = ref(false);
|
|
21
66
|
const selectOpen = ref(false);
|
|
22
67
|
const goToViewUser = () => {
|
|
68
|
+
goToPage(PAGE.CUSTOMER_DETAIL);
|
|
69
|
+
};
|
|
70
|
+
const goToViewAppointment = () => {
|
|
71
|
+
goToPage(PAGE.CUSTOMER_APPOINTMENT);
|
|
72
|
+
};
|
|
73
|
+
const goToViewView = () => {
|
|
74
|
+
goToPage(PAGE.CUSTOMER_CHECK_IN);
|
|
75
|
+
};
|
|
76
|
+
const goToPage = (page) => {
|
|
23
77
|
selectOpen.value = false;
|
|
24
78
|
if (props.data?.id.toString() == digibotId.toString())
|
|
25
79
|
return;
|
|
26
80
|
if (dataProfile.value?.user_type == 'tenant') {
|
|
27
81
|
user.value = props.data;
|
|
28
|
-
routerPush(
|
|
82
|
+
routerPush(page);
|
|
29
83
|
}
|
|
30
84
|
};
|
|
31
85
|
const customer_select_option = [
|
|
@@ -66,15 +120,16 @@ const __VLS_ctx = {
|
|
|
66
120
|
let __VLS_elements;
|
|
67
121
|
let __VLS_components;
|
|
68
122
|
let __VLS_directives;
|
|
123
|
+
/** @type {__VLS_StyleScopedClasses['loading-container']} */ ;
|
|
69
124
|
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
70
|
-
...{ class: "w-full
|
|
125
|
+
...{ class: "w-full layout-shadow border-b border-chat-gray-5 z-10" },
|
|
126
|
+
});
|
|
127
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
128
|
+
...{ class: "w-full flex items-center gap-2 overflow-hidden h-[96px] px-8 py-4" },
|
|
71
129
|
...{ class: ({ '!px-4': __VLS_ctx.responsive == 'mobile' }) },
|
|
72
130
|
});
|
|
73
131
|
// @ts-ignore
|
|
74
132
|
[responsive,];
|
|
75
|
-
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
76
|
-
...{ class: "w-full flex items-center gap-2 h-full overflow-hidden" },
|
|
77
|
-
});
|
|
78
133
|
if (__VLS_ctx.responsive == 'mobile') {
|
|
79
134
|
// @ts-ignore
|
|
80
135
|
[responsive,];
|
|
@@ -207,7 +262,7 @@ if (__VLS_ctx.data?.id &&
|
|
|
207
262
|
// @ts-ignore
|
|
208
263
|
[emit,];
|
|
209
264
|
} },
|
|
210
|
-
...{ class: "shrink-0 flex-center text-[#
|
|
265
|
+
...{ class: "shrink-0 flex-center text-chat-primary-dark bg-[#e8f0fe] w-9 h-9 rounded-lg" },
|
|
211
266
|
});
|
|
212
267
|
/** @type {[typeof IconPhone, ]} */ ;
|
|
213
268
|
// @ts-ignore
|
|
@@ -251,38 +306,117 @@ if (__VLS_ctx.data?.id &&
|
|
|
251
306
|
{
|
|
252
307
|
const { content: __VLS_35 } = __VLS_28.slots;
|
|
253
308
|
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
254
|
-
...{ class: "text-
|
|
309
|
+
...{ class: "text-chat-text" },
|
|
255
310
|
});
|
|
256
|
-
|
|
311
|
+
for (const [item, i] of __VLS_getVForSourceType((__VLS_ctx.customerDropContent))) {
|
|
312
|
+
// @ts-ignore
|
|
313
|
+
[customerDropContent,];
|
|
314
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
315
|
+
...{ onClick: (...[$event]) => {
|
|
316
|
+
if (!(__VLS_ctx.data?.id &&
|
|
317
|
+
__VLS_ctx.data?.id.toString() != __VLS_ctx.digibotId.toString() &&
|
|
318
|
+
__VLS_ctx.dataProfile?.user_type == 'tenant'))
|
|
319
|
+
return;
|
|
320
|
+
item.click?.();
|
|
321
|
+
} },
|
|
322
|
+
...{ class: "flex items-center gap-2 p-2 hover:bg-chat-haze-200 duration-200 cursor-pointer rounded-lg" },
|
|
323
|
+
key: (i),
|
|
324
|
+
...{ class: ({ 'opacity-[0.3] pointer-events-none': item.disabled }) },
|
|
325
|
+
});
|
|
326
|
+
const __VLS_36 = ((item.icon));
|
|
327
|
+
// @ts-ignore
|
|
328
|
+
const __VLS_37 = __VLS_asFunctionalComponent(__VLS_36, new __VLS_36({
|
|
329
|
+
...{ class: "w-5 h-5" },
|
|
330
|
+
}));
|
|
331
|
+
const __VLS_38 = __VLS_37({
|
|
332
|
+
...{ class: "w-5 h-5" },
|
|
333
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_37));
|
|
334
|
+
(item.title);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
var __VLS_28;
|
|
338
|
+
}
|
|
339
|
+
if (__VLS_ctx.parentPageName) {
|
|
340
|
+
// @ts-ignore
|
|
341
|
+
[parentPageName,];
|
|
342
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
343
|
+
...{ class: " flex items-center border-chat-gray-5 loading-container h-12" },
|
|
344
|
+
...{ class: ({ 'show p-4 border-t': __VLS_ctx.customerLoading || __VLS_ctx.tabContent.length }) },
|
|
345
|
+
});
|
|
346
|
+
// @ts-ignore
|
|
347
|
+
[customerLoading, tabContent,];
|
|
348
|
+
/** @type {[typeof BaseSpin, ]} */ ;
|
|
349
|
+
// @ts-ignore
|
|
350
|
+
const __VLS_41 = __VLS_asFunctionalComponent(BaseSpin, new BaseSpin({
|
|
351
|
+
size: (16),
|
|
352
|
+
border: (1),
|
|
353
|
+
}));
|
|
354
|
+
const __VLS_42 = __VLS_41({
|
|
355
|
+
size: (16),
|
|
356
|
+
border: (1),
|
|
357
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_41));
|
|
358
|
+
__VLS_asFunctionalDirective(__VLS_directives.vShow)(null, { ...__VLS_directiveBindingRestFields, value: (__VLS_ctx.customerLoading) }, null, null);
|
|
359
|
+
// @ts-ignore
|
|
360
|
+
[customerLoading,];
|
|
361
|
+
for (const [tab, i] of __VLS_getVForSourceType((__VLS_ctx.tabContent))) {
|
|
362
|
+
// @ts-ignore
|
|
363
|
+
[tabContent,];
|
|
364
|
+
__VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
|
|
257
365
|
...{ onClick: (...[$event]) => {
|
|
258
|
-
if (!(__VLS_ctx.
|
|
259
|
-
__VLS_ctx.data?.id.toString() != __VLS_ctx.digibotId.toString() &&
|
|
260
|
-
__VLS_ctx.dataProfile?.user_type == 'tenant'))
|
|
366
|
+
if (!(__VLS_ctx.parentPageName))
|
|
261
367
|
return;
|
|
262
|
-
|
|
263
|
-
// @ts-ignore
|
|
264
|
-
[goToViewUser,];
|
|
368
|
+
tab.click?.();
|
|
265
369
|
} },
|
|
266
|
-
|
|
370
|
+
key: (i),
|
|
371
|
+
...{ class: "flex items-center h-8 gap-1.5 px-2.5 py-1 bg-[#e8f0fe] rounded-lg cursor-pointer transition-all duration-200 border-chat-primary text-sm text-chat-primary-dark" },
|
|
372
|
+
});
|
|
373
|
+
const __VLS_45 = ((tab.icon));
|
|
374
|
+
// @ts-ignore
|
|
375
|
+
const __VLS_46 = __VLS_asFunctionalComponent(__VLS_45, new __VLS_45({
|
|
376
|
+
...{ class: "w-4 h-4" },
|
|
377
|
+
weight: "2.5",
|
|
378
|
+
}));
|
|
379
|
+
const __VLS_47 = __VLS_46({
|
|
380
|
+
...{ class: "w-4 h-4" },
|
|
381
|
+
weight: "2.5",
|
|
382
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_46));
|
|
383
|
+
__VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
|
|
384
|
+
...{ class: "leading-xs" },
|
|
385
|
+
});
|
|
386
|
+
(tab.label);
|
|
387
|
+
__VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
|
|
388
|
+
...{ class: "font-semibold" },
|
|
267
389
|
});
|
|
390
|
+
(tab.time);
|
|
391
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
392
|
+
...{ class: "w-6 h-6 bg-white flex-center rounded-full" },
|
|
393
|
+
});
|
|
394
|
+
/** @type {[typeof IconLink, ]} */ ;
|
|
395
|
+
// @ts-ignore
|
|
396
|
+
const __VLS_50 = __VLS_asFunctionalComponent(IconLink, new IconLink({
|
|
397
|
+
...{ class: "w-4 h-4" },
|
|
398
|
+
weight: "2.5",
|
|
399
|
+
}));
|
|
400
|
+
const __VLS_51 = __VLS_50({
|
|
401
|
+
...{ class: "w-4 h-4" },
|
|
402
|
+
weight: "2.5",
|
|
403
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_50));
|
|
268
404
|
}
|
|
269
|
-
var __VLS_28;
|
|
270
405
|
}
|
|
271
406
|
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
|
272
|
-
/** @type {__VLS_StyleScopedClasses['px-8']} */ ;
|
|
273
|
-
/** @type {__VLS_StyleScopedClasses['py-4']} */ ;
|
|
274
|
-
/** @type {__VLS_StyleScopedClasses['h-[96px]']} */ ;
|
|
275
407
|
/** @type {__VLS_StyleScopedClasses['layout-shadow']} */ ;
|
|
276
408
|
/** @type {__VLS_StyleScopedClasses['border-b']} */ ;
|
|
277
409
|
/** @type {__VLS_StyleScopedClasses['border-chat-gray-5']} */ ;
|
|
278
410
|
/** @type {__VLS_StyleScopedClasses['z-10']} */ ;
|
|
279
|
-
/** @type {__VLS_StyleScopedClasses['!px-4']} */ ;
|
|
280
411
|
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
|
281
412
|
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
282
413
|
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
283
414
|
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
|
284
|
-
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
|
285
415
|
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
|
416
|
+
/** @type {__VLS_StyleScopedClasses['h-[96px]']} */ ;
|
|
417
|
+
/** @type {__VLS_StyleScopedClasses['px-8']} */ ;
|
|
418
|
+
/** @type {__VLS_StyleScopedClasses['py-4']} */ ;
|
|
419
|
+
/** @type {__VLS_StyleScopedClasses['!px-4']} */ ;
|
|
286
420
|
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
|
287
421
|
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
288
422
|
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
@@ -317,8 +451,8 @@ if (__VLS_ctx.data?.id &&
|
|
|
317
451
|
/** @type {__VLS_StyleScopedClasses['md:block']} */ ;
|
|
318
452
|
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
|
319
453
|
/** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
|
|
320
|
-
/** @type {__VLS_StyleScopedClasses['text-
|
|
321
|
-
/** @type {__VLS_StyleScopedClasses['bg-
|
|
454
|
+
/** @type {__VLS_StyleScopedClasses['text-chat-primary-dark']} */ ;
|
|
455
|
+
/** @type {__VLS_StyleScopedClasses['bg-[#e8f0fe]']} */ ;
|
|
322
456
|
/** @type {__VLS_StyleScopedClasses['w-9']} */ ;
|
|
323
457
|
/** @type {__VLS_StyleScopedClasses['h-9']} */ ;
|
|
324
458
|
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
|
@@ -326,13 +460,52 @@ if (__VLS_ctx.data?.id &&
|
|
|
326
460
|
/** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
|
|
327
461
|
/** @type {__VLS_StyleScopedClasses['w-4']} */ ;
|
|
328
462
|
/** @type {__VLS_StyleScopedClasses['scale-[1.2]']} */ ;
|
|
329
|
-
/** @type {__VLS_StyleScopedClasses['text-
|
|
330
|
-
/** @type {__VLS_StyleScopedClasses['
|
|
463
|
+
/** @type {__VLS_StyleScopedClasses['text-chat-text']} */ ;
|
|
464
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
465
|
+
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
466
|
+
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
|
331
467
|
/** @type {__VLS_StyleScopedClasses['p-2']} */ ;
|
|
332
468
|
/** @type {__VLS_StyleScopedClasses['hover:bg-chat-haze-200']} */ ;
|
|
333
469
|
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
|
334
470
|
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
|
335
471
|
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
|
472
|
+
/** @type {__VLS_StyleScopedClasses['opacity-[0.3]']} */ ;
|
|
473
|
+
/** @type {__VLS_StyleScopedClasses['pointer-events-none']} */ ;
|
|
474
|
+
/** @type {__VLS_StyleScopedClasses['w-5']} */ ;
|
|
475
|
+
/** @type {__VLS_StyleScopedClasses['h-5']} */ ;
|
|
476
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
477
|
+
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
478
|
+
/** @type {__VLS_StyleScopedClasses['border-chat-gray-5']} */ ;
|
|
479
|
+
/** @type {__VLS_StyleScopedClasses['loading-container']} */ ;
|
|
480
|
+
/** @type {__VLS_StyleScopedClasses['h-12']} */ ;
|
|
481
|
+
/** @type {__VLS_StyleScopedClasses['show']} */ ;
|
|
482
|
+
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
|
483
|
+
/** @type {__VLS_StyleScopedClasses['border-t']} */ ;
|
|
484
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
485
|
+
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
486
|
+
/** @type {__VLS_StyleScopedClasses['h-8']} */ ;
|
|
487
|
+
/** @type {__VLS_StyleScopedClasses['gap-1.5']} */ ;
|
|
488
|
+
/** @type {__VLS_StyleScopedClasses['px-2.5']} */ ;
|
|
489
|
+
/** @type {__VLS_StyleScopedClasses['py-1']} */ ;
|
|
490
|
+
/** @type {__VLS_StyleScopedClasses['bg-[#e8f0fe]']} */ ;
|
|
491
|
+
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
|
492
|
+
/** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
|
|
493
|
+
/** @type {__VLS_StyleScopedClasses['transition-all']} */ ;
|
|
494
|
+
/** @type {__VLS_StyleScopedClasses['duration-200']} */ ;
|
|
495
|
+
/** @type {__VLS_StyleScopedClasses['border-chat-primary']} */ ;
|
|
496
|
+
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
|
497
|
+
/** @type {__VLS_StyleScopedClasses['text-chat-primary-dark']} */ ;
|
|
498
|
+
/** @type {__VLS_StyleScopedClasses['w-4']} */ ;
|
|
499
|
+
/** @type {__VLS_StyleScopedClasses['h-4']} */ ;
|
|
500
|
+
/** @type {__VLS_StyleScopedClasses['leading-xs']} */ ;
|
|
501
|
+
/** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
|
|
502
|
+
/** @type {__VLS_StyleScopedClasses['w-6']} */ ;
|
|
503
|
+
/** @type {__VLS_StyleScopedClasses['h-6']} */ ;
|
|
504
|
+
/** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
|
|
505
|
+
/** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
|
|
506
|
+
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
|
507
|
+
/** @type {__VLS_StyleScopedClasses['w-4']} */ ;
|
|
508
|
+
/** @type {__VLS_StyleScopedClasses['h-4']} */ ;
|
|
336
509
|
const __VLS_export = (await import('vue')).defineComponent({
|
|
337
510
|
__typeEmits: {},
|
|
338
511
|
__typeProps: {},
|
|
@@ -21,11 +21,11 @@ DropdownMenuSeparator;
|
|
|
21
21
|
// @ts-ignore
|
|
22
22
|
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
|
23
23
|
...(__VLS_ctx.delegatedProps),
|
|
24
|
-
...{ class: (__VLS_ctx.cn('-mx-1 my-1 h-px bg-
|
|
24
|
+
...{ class: (__VLS_ctx.cn('-mx-1 my-1 h-px bg-chat-haze-300', props.class)) },
|
|
25
25
|
}));
|
|
26
26
|
const __VLS_2 = __VLS_1({
|
|
27
27
|
...(__VLS_ctx.delegatedProps),
|
|
28
|
-
...{ class: (__VLS_ctx.cn('-mx-1 my-1 h-px bg-
|
|
28
|
+
...{ class: (__VLS_ctx.cn('-mx-1 my-1 h-px bg-chat-haze-300', props.class)) },
|
|
29
29
|
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
|
30
30
|
var __VLS_4 = {};
|
|
31
31
|
// @ts-ignore
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const DATE_FORMATS: {
|
|
2
2
|
readonly DATE_FORMAT: "YYYY-MM-DD";
|
|
3
3
|
readonly DATE_FORMAT_FULL: "YYYY-MM-DD HH:mm:ss";
|
|
4
|
+
readonly DATE_FORMAT_MEDIUM: "MMM D, YYYY";
|
|
4
5
|
readonly TIME_12_FORMAT: "hh:mm A";
|
|
5
6
|
};
|
|
6
7
|
export declare const TIME_ZONE_UTC = "Africa/Freetown";
|