@phonghq/go-chat 1.0.46 → 1.0.47
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/call/IconPhoneBase.vue.d.ts +2 -0
- package/dist/assets/icons/global/IconBackspace.vue.d.ts +2 -0
- package/dist/chat/App.vue.d.ts +2 -9
- package/dist/chat/page/home/PhoneNumpad.vue.d.ts +11 -0
- package/dist/components/layout/PageError.vue.d.ts +2 -0
- package/dist/go-chat.es.js +11341 -11014
- package/dist/go-chat.umd.js +15 -15
- package/dist/style.css +1 -1
- package/dist/test/assets/icons/call/IconPhoneBase.vue.js +20 -0
- package/dist/test/assets/icons/global/IconBackspace.vue.js +28 -0
- package/dist/test/chat/App.vue.js +143 -79
- package/dist/test/chat/page/home/ChatList.vue.js +37 -24
- package/dist/test/chat/page/home/Home.vue.js +40 -33
- package/dist/test/chat/page/home/PhoneNumpad.vue.js +127 -0
- package/dist/test/components/chat/call/Calling.vue.js +1 -0
- package/dist/test/components/layout/PageError.vue.js +91 -0
- package/dist/test/utils/chat/store/message.js +24 -0
- package/dist/test/views/home/phone-numpad/ConvercationList.vue.js +174 -0
- package/dist/test/views/home/phone-numpad/PhoneNumpad.vue.js +270 -0
- package/dist/utils/chat/store/message.d.ts +6 -0
- package/dist/views/home/phone-numpad/ConvercationList.vue.d.ts +18 -0
- package/dist/views/home/phone-numpad/PhoneNumpad.vue.d.ts +26 -0
- package/package.json +1 -1
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/// <reference types="C:/phonghq/go-chat-v2/node_modules/.vue-global-types/vue_3.5_0.d.ts" />
|
|
2
|
+
import { ref } from 'vue';
|
|
3
|
+
import IconBackspace from '../../../assets/icons/global/IconBackspace.vue';
|
|
4
|
+
import IconPhoneBase from '../../../assets/icons/call/IconPhoneBase.vue';
|
|
5
|
+
import { phoneNumberFormat, phoneNumberFormatInput } from '../../../utils/string-helper';
|
|
6
|
+
import { useDebounce } from '../../../utils/debounce';
|
|
7
|
+
import ConversationList from '../../../views/home/phone-numpad/ConvercationList.vue';
|
|
8
|
+
import { dataProfile } from '../../../utils/chat/store/auth';
|
|
9
|
+
import IconArrowLeft from '../../../assets/icons/global/IconArrowLeft.vue';
|
|
10
|
+
const props = withDefaults(defineProps(), {});
|
|
11
|
+
const emit = defineEmits();
|
|
12
|
+
const phone = defineModel();
|
|
13
|
+
const keys = [
|
|
14
|
+
{ label: '1', value: '1' },
|
|
15
|
+
{ label: '2', value: '2' },
|
|
16
|
+
{ label: '3', value: '3' },
|
|
17
|
+
{ label: '4', value: '4' },
|
|
18
|
+
{ label: '5', value: '5' },
|
|
19
|
+
{ label: '6', value: '6' },
|
|
20
|
+
{ label: '7', value: '7' },
|
|
21
|
+
{ label: '8', value: '8' },
|
|
22
|
+
{ label: '9', value: '9' },
|
|
23
|
+
{ label: 'C', value: 'Delete' },
|
|
24
|
+
{ label: '0', value: '0' },
|
|
25
|
+
{ label: 'X', value: 'Backspace' }
|
|
26
|
+
];
|
|
27
|
+
const activeKey = ref(null);
|
|
28
|
+
const activeUser = ref(null);
|
|
29
|
+
const conversationListRef = ref();
|
|
30
|
+
const handleKey = (key) => {
|
|
31
|
+
if (props.disabled)
|
|
32
|
+
return;
|
|
33
|
+
if (dataProfile.value?.user_type != 'tenant')
|
|
34
|
+
return;
|
|
35
|
+
activeKey.value = key.value == 'Backspace' ? null : key.value;
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
activeKey.value = null;
|
|
38
|
+
}, 80);
|
|
39
|
+
let newValue = keepOnlyNumber(phone.value ?? '');
|
|
40
|
+
if (key.value === 'Backspace') {
|
|
41
|
+
newValue = newValue.slice(0, -1);
|
|
42
|
+
}
|
|
43
|
+
else if (key.value === 'Delete') {
|
|
44
|
+
newValue = '';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
newValue += key.value;
|
|
48
|
+
}
|
|
49
|
+
phone.value = phoneNumberFormatInput(newValue);
|
|
50
|
+
handleGetListKeyPad();
|
|
51
|
+
emit('change', newValue);
|
|
52
|
+
};
|
|
53
|
+
const handleInput = () => {
|
|
54
|
+
phone.value = phoneNumberFormatInput(phone.value ?? '');
|
|
55
|
+
handleGetListInput();
|
|
56
|
+
};
|
|
57
|
+
function keepOnlyNumber(value) {
|
|
58
|
+
return value.replace(/\D+/g, '');
|
|
59
|
+
}
|
|
60
|
+
const handleGetListKeyPad = useDebounce(() => conversationListRef.value?.getUserList(keepOnlyNumber(phone.value ?? ''), { reset: true }), 800);
|
|
61
|
+
const handleGetListInput = useDebounce(() => conversationListRef.value?.getUserList(keepOnlyNumber(phone.value ?? ''), { reset: true }), 300);
|
|
62
|
+
const call = () => {
|
|
63
|
+
if (phone)
|
|
64
|
+
conversationListRef.value?.checkActiveUserList();
|
|
65
|
+
let value = keepOnlyNumber(phone.value ?? '');
|
|
66
|
+
let user = {
|
|
67
|
+
phone: activeUser.value?.phone || '1' + value,
|
|
68
|
+
username: activeUser.value?.username ?? '',
|
|
69
|
+
avatar: activeUser.value?.avatar ?? '',
|
|
70
|
+
color: activeUser.value?.color ?? '',
|
|
71
|
+
is_unknown: activeUser.value?.is_unknown
|
|
72
|
+
};
|
|
73
|
+
if (value.length == 10) {
|
|
74
|
+
emit('call', user);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// if (phone.value) Snackbar.error({ message: 'Phone number is invalid!' })
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const reset = () => {
|
|
81
|
+
phone.value = '';
|
|
82
|
+
};
|
|
83
|
+
const handleSelectConversation = (item) => {
|
|
84
|
+
phone.value = phoneNumberFormat(item.phone ?? '');
|
|
85
|
+
};
|
|
86
|
+
const __VLS_exposed = { reset };
|
|
87
|
+
defineExpose(__VLS_exposed);
|
|
88
|
+
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
|
89
|
+
const __VLS_modelEmit = defineEmits();
|
|
90
|
+
const __VLS_defaults = {};
|
|
91
|
+
const __VLS_ctx = {
|
|
92
|
+
...{},
|
|
93
|
+
...{},
|
|
94
|
+
...{},
|
|
95
|
+
...{},
|
|
96
|
+
...{},
|
|
97
|
+
};
|
|
98
|
+
let __VLS_elements;
|
|
99
|
+
let __VLS_components;
|
|
100
|
+
let __VLS_directives;
|
|
101
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
102
|
+
...{ class: "w-[480px] h-full flex flex-col" },
|
|
103
|
+
});
|
|
104
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
105
|
+
...{ class: "flex items-center justify-between border-chat-gray-5 layout-shadow border-b px-2 sm:px-6" },
|
|
106
|
+
});
|
|
107
|
+
__VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
|
|
108
|
+
...{ onClick: (...[$event]) => {
|
|
109
|
+
__VLS_ctx.emit('back');
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
[emit,];
|
|
112
|
+
} },
|
|
113
|
+
...{ class: "flex justify-center w-14 sm:hidden" },
|
|
114
|
+
});
|
|
115
|
+
/** @type {[typeof IconArrowLeft, ]} */ ;
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
const __VLS_0 = __VLS_asFunctionalComponent(IconArrowLeft, new IconArrowLeft({}));
|
|
118
|
+
const __VLS_1 = __VLS_0({}, ...__VLS_functionalComponentArgsRest(__VLS_0));
|
|
119
|
+
__VLS_asFunctionalElement(__VLS_elements.input)({
|
|
120
|
+
...{ onInput: (__VLS_ctx.handleInput) },
|
|
121
|
+
...{ class: "py-2 h-[80px] sm:h-[96px] text-xl grow" },
|
|
122
|
+
placeholder: "Enter your phone number",
|
|
123
|
+
disabled: (__VLS_ctx.dataProfile?.user_type != 'tenant'),
|
|
124
|
+
});
|
|
125
|
+
(__VLS_ctx.phone);
|
|
126
|
+
// @ts-ignore
|
|
127
|
+
[handleInput, dataProfile, phone,];
|
|
128
|
+
__VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
|
|
129
|
+
...{ onClick: (...[$event]) => {
|
|
130
|
+
__VLS_ctx.call();
|
|
131
|
+
// @ts-ignore
|
|
132
|
+
[call,];
|
|
133
|
+
} },
|
|
134
|
+
...{ class: "shrink-0 h-14 w-14 rounded-full flex-center bg-[#C7DEFF] text-chat-primary" },
|
|
135
|
+
...{ class: ({ 'cursor-not-allowed opacity-[0.3] pointer-events-none': __VLS_ctx.keepOnlyNumber(__VLS_ctx.phone ?? '').length < 10 }) },
|
|
136
|
+
});
|
|
137
|
+
// @ts-ignore
|
|
138
|
+
[phone, keepOnlyNumber,];
|
|
139
|
+
/** @type {[typeof IconPhoneBase, ]} */ ;
|
|
140
|
+
// @ts-ignore
|
|
141
|
+
const __VLS_4 = __VLS_asFunctionalComponent(IconPhoneBase, new IconPhoneBase({}));
|
|
142
|
+
const __VLS_5 = __VLS_4({}, ...__VLS_functionalComponentArgsRest(__VLS_4));
|
|
143
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
144
|
+
...{ class: "grow overflow-hidden relative" },
|
|
145
|
+
});
|
|
146
|
+
/** @type {[typeof ConversationList, ]} */ ;
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
const __VLS_8 = __VLS_asFunctionalComponent(ConversationList, new ConversationList({
|
|
149
|
+
...{ 'onSelectConversation': {} },
|
|
150
|
+
ref: "conversationListRef",
|
|
151
|
+
active: (__VLS_ctx.activeUser),
|
|
152
|
+
}));
|
|
153
|
+
const __VLS_9 = __VLS_8({
|
|
154
|
+
...{ 'onSelectConversation': {} },
|
|
155
|
+
ref: "conversationListRef",
|
|
156
|
+
active: (__VLS_ctx.activeUser),
|
|
157
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_8));
|
|
158
|
+
let __VLS_11;
|
|
159
|
+
let __VLS_12;
|
|
160
|
+
const __VLS_13 = ({ selectConversation: {} },
|
|
161
|
+
{ onSelectConversation: (__VLS_ctx.handleSelectConversation) });
|
|
162
|
+
/** @type {typeof __VLS_ctx.conversationListRef} */ ;
|
|
163
|
+
var __VLS_14 = {};
|
|
164
|
+
// @ts-ignore
|
|
165
|
+
[activeUser, handleSelectConversation, conversationListRef,];
|
|
166
|
+
var __VLS_10;
|
|
167
|
+
if (!__VLS_ctx.hideNumpad) {
|
|
168
|
+
// @ts-ignore
|
|
169
|
+
[hideNumpad,];
|
|
170
|
+
__VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
|
|
171
|
+
...{ class: "shrink-0 grid grid-cols-3 w-full h-[400px] sm:h-[500px] px-6 border-chat-gray-5 layout-shadow border-t" },
|
|
172
|
+
});
|
|
173
|
+
for (const [item] of __VLS_getVForSourceType((__VLS_ctx.keys))) {
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
[keys,];
|
|
176
|
+
__VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
|
|
177
|
+
...{ onClick: (...[$event]) => {
|
|
178
|
+
if (!(!__VLS_ctx.hideNumpad))
|
|
179
|
+
return;
|
|
180
|
+
__VLS_ctx.handleKey(item);
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
[handleKey,];
|
|
183
|
+
} },
|
|
184
|
+
...{ class: "text-3xl sm:text-[40px] flex-center rounded-lg" },
|
|
185
|
+
...{ class: ({
|
|
186
|
+
'bg-chat-haze-200': false,
|
|
187
|
+
'opacity-[0.6] cursor-not-allowed': __VLS_ctx.dataProfile?.user_type != 'tenant'
|
|
188
|
+
}) },
|
|
189
|
+
key: (item.value),
|
|
190
|
+
});
|
|
191
|
+
// @ts-ignore
|
|
192
|
+
[dataProfile,];
|
|
193
|
+
if (item.label !== 'X') {
|
|
194
|
+
__VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
|
|
195
|
+
(item.label);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
__VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({});
|
|
199
|
+
/** @type {[typeof IconBackspace, ]} */ ;
|
|
200
|
+
// @ts-ignore
|
|
201
|
+
const __VLS_17 = __VLS_asFunctionalComponent(IconBackspace, new IconBackspace({
|
|
202
|
+
...{ class: "w-14" },
|
|
203
|
+
}));
|
|
204
|
+
const __VLS_18 = __VLS_17({
|
|
205
|
+
...{ class: "w-14" },
|
|
206
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_17));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/** @type {__VLS_StyleScopedClasses['w-[480px]']} */ ;
|
|
211
|
+
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
|
212
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
213
|
+
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
|
214
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
215
|
+
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
|
216
|
+
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
|
217
|
+
/** @type {__VLS_StyleScopedClasses['border-chat-gray-5']} */ ;
|
|
218
|
+
/** @type {__VLS_StyleScopedClasses['layout-shadow']} */ ;
|
|
219
|
+
/** @type {__VLS_StyleScopedClasses['border-b']} */ ;
|
|
220
|
+
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
|
221
|
+
/** @type {__VLS_StyleScopedClasses['sm:px-6']} */ ;
|
|
222
|
+
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
|
223
|
+
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
|
224
|
+
/** @type {__VLS_StyleScopedClasses['w-14']} */ ;
|
|
225
|
+
/** @type {__VLS_StyleScopedClasses['sm:hidden']} */ ;
|
|
226
|
+
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
|
227
|
+
/** @type {__VLS_StyleScopedClasses['h-[80px]']} */ ;
|
|
228
|
+
/** @type {__VLS_StyleScopedClasses['sm:h-[96px]']} */ ;
|
|
229
|
+
/** @type {__VLS_StyleScopedClasses['text-xl']} */ ;
|
|
230
|
+
/** @type {__VLS_StyleScopedClasses['grow']} */ ;
|
|
231
|
+
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
|
232
|
+
/** @type {__VLS_StyleScopedClasses['h-14']} */ ;
|
|
233
|
+
/** @type {__VLS_StyleScopedClasses['w-14']} */ ;
|
|
234
|
+
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
|
235
|
+
/** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
|
|
236
|
+
/** @type {__VLS_StyleScopedClasses['bg-[#C7DEFF]']} */ ;
|
|
237
|
+
/** @type {__VLS_StyleScopedClasses['text-chat-primary']} */ ;
|
|
238
|
+
/** @type {__VLS_StyleScopedClasses['cursor-not-allowed']} */ ;
|
|
239
|
+
/** @type {__VLS_StyleScopedClasses['opacity-[0.3]']} */ ;
|
|
240
|
+
/** @type {__VLS_StyleScopedClasses['pointer-events-none']} */ ;
|
|
241
|
+
/** @type {__VLS_StyleScopedClasses['grow']} */ ;
|
|
242
|
+
/** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
|
|
243
|
+
/** @type {__VLS_StyleScopedClasses['relative']} */ ;
|
|
244
|
+
/** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
|
|
245
|
+
/** @type {__VLS_StyleScopedClasses['grid']} */ ;
|
|
246
|
+
/** @type {__VLS_StyleScopedClasses['grid-cols-3']} */ ;
|
|
247
|
+
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
|
248
|
+
/** @type {__VLS_StyleScopedClasses['h-[400px]']} */ ;
|
|
249
|
+
/** @type {__VLS_StyleScopedClasses['sm:h-[500px]']} */ ;
|
|
250
|
+
/** @type {__VLS_StyleScopedClasses['px-6']} */ ;
|
|
251
|
+
/** @type {__VLS_StyleScopedClasses['border-chat-gray-5']} */ ;
|
|
252
|
+
/** @type {__VLS_StyleScopedClasses['layout-shadow']} */ ;
|
|
253
|
+
/** @type {__VLS_StyleScopedClasses['border-t']} */ ;
|
|
254
|
+
/** @type {__VLS_StyleScopedClasses['text-3xl']} */ ;
|
|
255
|
+
/** @type {__VLS_StyleScopedClasses['sm:text-[40px]']} */ ;
|
|
256
|
+
/** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
|
|
257
|
+
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
|
258
|
+
/** @type {__VLS_StyleScopedClasses['bg-chat-haze-200']} */ ;
|
|
259
|
+
/** @type {__VLS_StyleScopedClasses['opacity-[0.6]']} */ ;
|
|
260
|
+
/** @type {__VLS_StyleScopedClasses['cursor-not-allowed']} */ ;
|
|
261
|
+
/** @type {__VLS_StyleScopedClasses['w-14']} */ ;
|
|
262
|
+
// @ts-ignore
|
|
263
|
+
var __VLS_15 = __VLS_14;
|
|
264
|
+
const __VLS_export = (await import('vue')).defineComponent({
|
|
265
|
+
setup: () => (__VLS_exposed),
|
|
266
|
+
__typeEmits: {},
|
|
267
|
+
__typeProps: {},
|
|
268
|
+
props: {},
|
|
269
|
+
});
|
|
270
|
+
export default {};
|
|
@@ -9,6 +9,12 @@ export declare const getDetailReceiver: (receiverId: string) => Promise<IResUser
|
|
|
9
9
|
export declare const getDetailUser: (id: any) => Promise<IResUser | null>;
|
|
10
10
|
export declare const readMessages: (conversationId: any) => Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
|
11
11
|
export declare const sendMessage: (body: FormData) => Promise<import("axios").AxiosResponse<any, any>>;
|
|
12
|
+
export declare const sendMessageSmsTest: (body: {
|
|
13
|
+
from: string;
|
|
14
|
+
to: string;
|
|
15
|
+
host_id: string;
|
|
16
|
+
text: string;
|
|
17
|
+
}) => Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
|
12
18
|
export declare const getCountUnread: (params: {
|
|
13
19
|
conversation_id: number;
|
|
14
20
|
receiver_id: number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IConversation } from '../../../types/conversation';
|
|
2
|
+
type __VLS_ModelProps = {
|
|
3
|
+
'active'?: IConversation | null;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_ModelProps, {
|
|
6
|
+
getUserList: (phone?: string | undefined, option?: {
|
|
7
|
+
reset?: boolean | undefined;
|
|
8
|
+
} | undefined) => Promise<never[] | undefined>;
|
|
9
|
+
checkActiveUserList: () => void;
|
|
10
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
|
+
"update:active": (value: IConversation | null | undefined) => any;
|
|
12
|
+
} & {
|
|
13
|
+
selectConversation: (val: any) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
15
|
+
"onUpdate:active"?: ((value: IConversation | null | undefined) => any) | undefined;
|
|
16
|
+
onSelectConversation?: ((val: any) => any) | undefined;
|
|
17
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { IResUser } from '../../../types/message';
|
|
2
|
+
type KeyPadProps = {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
hideNumpad?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_Props = KeyPadProps;
|
|
7
|
+
type __VLS_ModelProps = {
|
|
8
|
+
modelValue?: string;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
11
|
+
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
12
|
+
reset: () => void;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
+
"update:modelValue": (value: string | undefined) => any;
|
|
15
|
+
} & {
|
|
16
|
+
change: (value: string) => any;
|
|
17
|
+
"update:modelValue": (value: string) => any;
|
|
18
|
+
call: (value: IResUser) => any;
|
|
19
|
+
back: () => any;
|
|
20
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
21
|
+
onChange?: ((value: string) => any) | undefined;
|
|
22
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
23
|
+
onCall?: ((value: IResUser) => any) | undefined;
|
|
24
|
+
onBack?: (() => any) | undefined;
|
|
25
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
export default _default;
|