im-ui-mobile 0.0.96 → 0.0.99

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 (40) hide show
  1. package/components/im-avatar/im-avatar.vue +121 -121
  2. package/components/im-button/im-button.vue +630 -626
  3. package/components/im-cell/im-cell.vue +10 -15
  4. package/components/im-cell-group/im-cell-group.vue +16 -16
  5. package/components/im-chat-item/im-chat-item.vue +213 -213
  6. package/components/im-context-menu/im-context-menu.vue +138 -138
  7. package/components/im-file-upload/im-file-upload.vue +309 -309
  8. package/components/im-friend-item/im-friend-item.vue +82 -75
  9. package/components/im-group-item/im-group-item.vue +62 -62
  10. package/components/im-group-member-selector/im-group-member-selector.vue +202 -202
  11. package/components/im-group-rtc-join/im-group-rtc-join.vue +112 -112
  12. package/components/im-image-upload/im-image-upload.vue +94 -94
  13. package/components/im-loading/im-loading.vue +64 -64
  14. package/components/im-mention-picker/im-mention-picker.vue +191 -191
  15. package/components/im-message-item/im-message-item.vue +555 -555
  16. package/components/im-nav-bar/im-nav-bar.vue +98 -98
  17. package/components/im-read-receipt/im-read-receipt.vue +174 -174
  18. package/components/im-virtual-list/im-virtual-list.vue +51 -50
  19. package/components/im-voice-input/im-voice-input.vue +305 -304
  20. package/libs/index.ts +2 -3
  21. package/package.json +58 -58
  22. package/styles/button.scss +1 -1
  23. package/theme.scss +61 -62
  24. package/types/components.d.ts +0 -1
  25. package/types/index.d.ts +94 -94
  26. package/types/libs/index.d.ts +206 -204
  27. package/types/utils/datetime.d.ts +9 -9
  28. package/types/utils/dom.d.ts +11 -11
  29. package/types/utils/emoji.d.ts +8 -8
  30. package/types/utils/enums.d.ts +73 -73
  31. package/types/utils/messageType.d.ts +35 -35
  32. package/types/utils/recorderApp.d.ts +9 -9
  33. package/types/utils/recorderH5.d.ts +9 -9
  34. package/types/utils/requester.d.ts +15 -15
  35. package/types/utils/url.d.ts +5 -5
  36. package/types/utils/useDynamicRefs.d.ts +9 -9
  37. package/types/utils/websocket.d.ts +34 -34
  38. package/utils/enums.js +1 -1
  39. package/components/im-virtual-scroller/im-virtual-scroller.vue +0 -54
  40. package/types/components/virtual-scroller.d.ts +0 -20
@@ -1,204 +1,206 @@
1
- import type { RTC_STATE, MESSAGE_TYPE } from '../utils/enums.d.ts';
2
- /**
3
- * 通话模式类型
4
- */
5
- export type RtcMode = 'audio' | 'video' | 'voice';
6
- /**
7
- * RTC 信息接口
8
- */
9
- export interface RtcInfo {
10
- friend: Friend;
11
- mode: RtcMode;
12
- state: RTC_STATE;
13
- isHost?: boolean;
14
- }
15
- /**
16
- * 聊天
17
- */
18
- export interface Chat {
19
- id?: string | number;
20
- targetId: number;
21
- type: 'PRIVATE' | 'GROUP';
22
- showName: string;
23
- headImage: string;
24
- isDnd: boolean;
25
- lastContent: string;
26
- lastSendTime?: number;
27
- unreadCount: number;
28
- hotMinIdx: number;
29
- readedMessageIdx: number;
30
- messages: Message[];
31
- atMe: boolean;
32
- atAll: boolean;
33
- stored: boolean;
34
- delete: boolean;
35
- lastTimeTip?: number;
36
- sendNickName?: string;
37
- }
38
- /**
39
- * 消息
40
- */
41
- export interface Message {
42
- id?: number;
43
- tmpId?: number;
44
- type: number;
45
- content: string;
46
- sendTime?: number;
47
- selfSend?: boolean;
48
- status?: number;
49
- sendNickName?: string;
50
- atUserIds?: number[];
51
- sendId?: number;
52
- recvId?: number;
53
- groupId?: number;
54
- receipt?: boolean;
55
- receiptOk?: boolean;
56
- readedCount?: number;
57
- quoteMessage?: Message;
58
- fileId?: string;
59
- }
60
- /**
61
- * 好友信息接口
62
- */
63
- export interface Friend {
64
- id: number;
65
- nickName: string;
66
- headImage?: string;
67
- online: boolean;
68
- onlineWeb: boolean;
69
- onlineApp: boolean;
70
- isDnd: boolean;
71
- deleted?: boolean;
72
- remarkName?: string;
73
- gender?: number;
74
- signature?: string;
75
- remarkNickName?: string;
76
- showNickName?: string;
77
- [key: string]: any;
78
- }
79
- /**
80
- * 在线终端信息接口
81
- */
82
- export interface OnlineTerminal {
83
- userId: string | number;
84
- terminals: number[];
85
- }
86
- /**
87
- * 菜单项
88
- */
89
- export interface MenuItem {
90
- key: string;
91
- name: string;
92
- icon?: string;
93
- color?: string;
94
- [key: string]: any;
95
- }
96
- export interface WebRTCMessage {
97
- type: number;
98
- content: string;
99
- sendId: number;
100
- selfSend?: boolean;
101
- }
102
- export interface GroupMember {
103
- id?: number;
104
- userId: number;
105
- showNickName: string;
106
- headImage?: string;
107
- quit?: boolean;
108
- [key: string]: any;
109
- }
110
- /**
111
- * 群组信息接口
112
- */
113
- export interface Group {
114
- id: number;
115
- ownerId: number;
116
- isBanned?: boolean;
117
- reason?: string;
118
- name: string;
119
- headImage: string;
120
- isDnd: boolean;
121
- quit?: boolean;
122
- topMessage?: string;
123
- memberCount?: number;
124
- createTime?: number;
125
- showGroupName: string;
126
- headImageThumb?: string;
127
- remarkGroupName?: string;
128
- remarkNickName?: string;
129
- notice?: string;
130
- [key: string]: any;
131
- }
132
- /**
133
- * 上传图片相应数据
134
- */
135
- export interface UploadImageResponse {
136
- originUrl: string;
137
- thumbUrl: string;
138
- [key: string]: any;
139
- }
140
- /**
141
- * 发送消息项
142
- */
143
- export interface SubmitItem {
144
- type: MESSAGE_TYPE;
145
- content: string | ImageItem | FileItem;
146
- atUserIds?: number[];
147
- }
148
- export interface ImageItem {
149
- fileId: number;
150
- file: File;
151
- url: string;
152
- }
153
- export interface FileItem {
154
- fileId: number;
155
- file: File;
156
- }
157
- export interface ApiResponse<T = any> {
158
- data?: T;
159
- code?: number;
160
- message?: string;
161
- success?: boolean;
162
- timestamp?: number;
163
- path?: string;
164
- }
165
- export interface RecorderError {
166
- errMsg: string;
167
- }
168
- export interface UploadRecorderFileResponse {
169
- code: number;
170
- data: string;
171
- message?: string;
172
- }
173
- export interface UploadRecorderFileResult {
174
- duration: number;
175
- url: string;
176
- }
177
- export interface RecorderFile {
178
- tempFilePath: string;
179
- }
180
- /**
181
- * 用户信息接口
182
- */
183
- export interface UserInfo {
184
- id: number;
185
- nickName: string;
186
- headImage: string;
187
- headImageThumb?: string;
188
- email?: string;
189
- phone?: string;
190
- gender?: number;
191
- signature?: string;
192
- isBanned?: boolean;
193
- reason?: string;
194
- userName?: string;
195
- sex?: number;
196
- online?: boolean;
197
- [key: string]: any;
198
- }
199
- export interface Response<T> {
200
- code: number;
201
- message: string;
202
- result: T;
203
- success: boolean;
204
- }
1
+ import type { RTC_STATE, MESSAGE_TYPE } from '../utils/enums.d.ts';
2
+ /**
3
+ * 通话模式类型
4
+ */
5
+ export type RtcMode = 'audio' | 'video' | 'voice';
6
+ /**
7
+ * RTC 信息接口
8
+ */
9
+ export interface RtcInfo {
10
+ friend: Friend;
11
+ mode: RtcMode;
12
+ state: RTC_STATE;
13
+ isHost?: boolean;
14
+ }
15
+ /**
16
+ * 聊天
17
+ */
18
+ export interface Chat {
19
+ id?: string | number;
20
+ targetId: number;
21
+ type: 'PRIVATE' | 'GROUP';
22
+ showName: string;
23
+ headImage: string;
24
+ isDnd: boolean;
25
+ lastContent: string;
26
+ lastSendTime?: number;
27
+ unreadCount: number;
28
+ hotMinIdx: number;
29
+ readedMessageIdx: number;
30
+ messages: Message[];
31
+ atMe: boolean;
32
+ atAll: boolean;
33
+ stored: boolean;
34
+ delete: boolean;
35
+ lastTimeTip?: number;
36
+ sendNickName?: string;
37
+ }
38
+ /**
39
+ * 消息
40
+ */
41
+ export interface Message {
42
+ id?: number;
43
+ tmpId?: number;
44
+ type: number;
45
+ content: string;
46
+ sendTime?: number;
47
+ selfSend?: boolean;
48
+ status?: number;
49
+ sendNickName?: string;
50
+ atUserIds?: number[];
51
+ sendId?: number;
52
+ recvId?: number;
53
+ groupId?: number;
54
+ receipt?: boolean;
55
+ receiptOk?: boolean;
56
+ readedCount?: number;
57
+ quoteMessage?: Message;
58
+ fileId?: string;
59
+ }
60
+ /**
61
+ * 好友信息接口
62
+ */
63
+ export interface Friend {
64
+ id: number;
65
+ nickName: string;
66
+ headImage?: string;
67
+ online: boolean;
68
+ onlineWeb: boolean;
69
+ onlineApp: boolean;
70
+ isDnd: boolean;
71
+ deleted?: boolean;
72
+ remarkName?: string;
73
+ gender?: number;
74
+ signature?: string;
75
+ remarkNickName?: string;
76
+ showNickName?: string;
77
+ [key: string]: any;
78
+ }
79
+ /**
80
+ * 在线终端信息接口
81
+ */
82
+ export interface OnlineTerminal {
83
+ userId: string | number;
84
+ terminals: number[];
85
+ }
86
+ /**
87
+ * 菜单项
88
+ */
89
+ export interface MenuItem {
90
+ key: string;
91
+ name: string;
92
+ icon?: string;
93
+ color?: string;
94
+ [key: string]: any;
95
+ }
96
+ export interface WebRTCMessage {
97
+ type: number;
98
+ content: string;
99
+ sendId: number;
100
+ selfSend?: boolean;
101
+ }
102
+ export interface GroupMember {
103
+ id?: number;
104
+ userId: number;
105
+ showNickName: string;
106
+ headImage?: string;
107
+ quit?: boolean;
108
+ [key: string]: any;
109
+ }
110
+ /**
111
+ * 群组信息接口
112
+ */
113
+ export interface Group {
114
+ id: number;
115
+ ownerId: number;
116
+ isBanned?: boolean;
117
+ reason?: string;
118
+ name: string;
119
+ headImage: string;
120
+ isDnd: boolean;
121
+ quit?: boolean;
122
+ topMessage?: string;
123
+ memberCount?: number;
124
+ createTime?: number;
125
+ showGroupName: string;
126
+ headImageThumb?: string;
127
+ remarkGroupName?: string;
128
+ remarkNickName?: string;
129
+ notice?: string;
130
+ [key: string]: any;
131
+ }
132
+ /**
133
+ * 上传图片相应数据
134
+ */
135
+ export interface UploadImageResponse {
136
+ originUrl: string;
137
+ thumbUrl: string;
138
+ [key: string]: any;
139
+ }
140
+ /**
141
+ * 发送消息项
142
+ */
143
+ export interface SubmitItem {
144
+ type: MESSAGE_TYPE;
145
+ content: string | ImageItem | FileItem;
146
+ atUserIds?: number[];
147
+ }
148
+ export interface ImageItem {
149
+ fileId: number;
150
+ file: File;
151
+ url: string;
152
+ }
153
+ export interface FileItem {
154
+ fileId: number;
155
+ file: File;
156
+ }
157
+ export interface ApiResponse<T = any> {
158
+ data?: T;
159
+ code?: number;
160
+ message?: string;
161
+ success?: boolean;
162
+ timestamp?: number;
163
+ path?: string;
164
+ }
165
+ export interface RecorderError {
166
+ errMsg: string;
167
+ }
168
+ export interface UploadRecorderFileResponse {
169
+ code: number;
170
+ data: string;
171
+ message?: string;
172
+ }
173
+ export interface UploadRecorderFileResult {
174
+ duration: number;
175
+ url: string;
176
+ }
177
+ export interface RecorderFile {
178
+ tempFilePath: string;
179
+ }
180
+ /**
181
+ * 用户信息接口
182
+ */
183
+ export interface UserInfo {
184
+ id: number;
185
+ nickName: string;
186
+ headImage: string;
187
+ headImageThumb?: string;
188
+ email?: string;
189
+ phone?: string;
190
+ gender?: number;
191
+ signature?: string;
192
+ isBanned?: boolean;
193
+ reason?: string;
194
+ userName?: string;
195
+ sex?: number;
196
+ online?: boolean;
197
+ [key: string]: any;
198
+ }
199
+ export interface Response<T> {
200
+ code: number;
201
+ message: string;
202
+ result: T;
203
+ success: boolean;
204
+ }
205
+
206
+ export type LoadingStatus = 'loading' | 'no-more' | 'error' | 'idle'
@@ -1,9 +1,9 @@
1
- declare const _default: {
2
- toTimeText: (timeStamp: string | number | Date, simple?: boolean | undefined) => string;
3
- toPreciseTimeText: (timeStamp: string | number | Date) => string;
4
- toChatTimeText: (timeStamp: string | number | Date) => string;
5
- isYestday: (date: Date) => boolean;
6
- isYear: (date: Date) => boolean;
7
- formatDateTime: (date: string | Date) => string;
8
- };
9
- export default _default;
1
+ declare const _default: {
2
+ toTimeText: (timeStamp: string | number | Date, simple?: boolean | undefined) => string;
3
+ toPreciseTimeText: (timeStamp: string | number | Date) => string;
4
+ toChatTimeText: (timeStamp: string | number | Date) => string;
5
+ isYestday: (date: Date) => boolean;
6
+ isYear: (date: Date) => boolean;
7
+ formatDateTime: (date: string | Date) => string;
8
+ };
9
+ export default _default;
@@ -1,11 +1,11 @@
1
- declare const _default: {
2
- html2Escape: (text: string) => string;
3
- htmlEscape: (text: string) => string;
4
- htmlUnescape: (text: string) => string;
5
- escapeAttribute: (value: string) => string;
6
- escapeTextContent: (text: string) => string;
7
- hasHtmlSpecialChars: (text: string) => boolean;
8
- setSafeHTML: (element: HTMLElement, html: string) => void;
9
- safeHTML: (strings: TemplateStringsArray, ...values: any[]) => string;
10
- };
11
- export default _default;
1
+ declare const _default: {
2
+ html2Escape: (text: string) => string;
3
+ htmlEscape: (text: string) => string;
4
+ htmlUnescape: (text: string) => string;
5
+ escapeAttribute: (value: string) => string;
6
+ escapeTextContent: (text: string) => string;
7
+ hasHtmlSpecialChars: (text: string) => boolean;
8
+ setSafeHTML: (element: HTMLElement, html: string) => void;
9
+ safeHTML: (strings: TemplateStringsArray, ...values: any[]) => string;
10
+ };
11
+ export default _default;
@@ -1,9 +1,9 @@
1
- declare class Emoji {
2
- constructor(options: any);
3
- containEmoji: (content: string) => boolean;
4
- emoTextList: string[];
5
- transform: (content: string, extClass?: string) => string;
6
- textToPath: (emoText: string) => string;
7
- pathToText: (path: string) => string;
8
- };
1
+ declare class Emoji {
2
+ constructor(options: any);
3
+ containEmoji: (content: string) => boolean;
4
+ emoTextList: string[];
5
+ transform: (content: string, extClass?: string) => string;
6
+ textToPath: (emoText: string) => string;
7
+ pathToText: (path: string) => string;
8
+ };
9
9
  export default Emoji;
@@ -1,73 +1,73 @@
1
- /**
2
- * 消息类型枚举
3
- */
4
- export declare enum MESSAGE_TYPE {
5
- TEXT = 0,
6
- IMAGE = 1,
7
- FILE = 2,
8
- AUDIO = 3,
9
- VIDEO = 4,
10
- RECALL = 10,
11
- READED = 11,
12
- RECEIPT = 12,
13
- TIP_TIME = 20,
14
- TIP_TEXT = 21,
15
- LOADING = 30,
16
- ACT_RT_VOICE = 40,
17
- ACT_RT_VIDEO = 41,
18
- USER_BANNED = 50,
19
- FRIEND_NEW = 80,
20
- FRIEND_DEL = 81,
21
- FRIEND_DND = 82,
22
- GROUP_NEW = 90,
23
- GROUP_DEL = 91,
24
- GROUP_DND = 92,
25
- RTC_CALL_VOICE = 100,
26
- RTC_CALL_VIDEO = 101,
27
- RTC_ACCEPT = 102,
28
- RTC_REJECT = 103,
29
- RTC_CANCEL = 104,
30
- RTC_FAILED = 105,
31
- RTC_HANDUP = 106,
32
- RTC_CANDIDATE = 107,
33
- RTC_GROUP_SETUP = 200,
34
- RTC_GROUP_ACCEPT = 201,
35
- RTC_GROUP_REJECT = 202,
36
- RTC_GROUP_FAILED = 203,
37
- RTC_GROUP_CANCEL = 204,
38
- RTC_GROUP_QUIT = 205,
39
- RTC_GROUP_INVITE = 206,
40
- RTC_GROUP_JOIN = 207,
41
- RTC_GROUP_OFFER = 208,
42
- RTC_GROUP_ANSWER = 209,
43
- RTC_GROUP_CANDIDATE = 210,
44
- RTC_GROUP_DEVICE = 211
45
- }
46
- /**
47
- * RTC 状态枚举
48
- */
49
- export declare enum RTC_STATE {
50
- FREE = 0,// 空闲,可以被呼叫
51
- WAIT_CALL = 1,// 呼叫后等待
52
- WAIT_ACCEPT = 2,// 被呼叫后等待
53
- ACCEPTED = 3,// 已接受聊天,等待建立连接
54
- CHATING = 4
55
- }
56
- /**
57
- * 终端类型枚举
58
- */
59
- export declare enum TERMINAL_TYPE {
60
- WEB = 0,
61
- APP = 1
62
- }
63
- /**
64
- * 消息状态枚举
65
- */
66
- export declare enum MESSAGE_STATUS {
67
- FAILED = -2,// 发送失败
68
- SENDING = -1,// 发送中(消息没到服务器)
69
- PENDING = 0,// 未送达(消息已到服务器,但对方没收到)
70
- DELIVERED = 1,// 已送达(对方已收到,但是未读消息)
71
- RECALL = 2,// 已撤回
72
- READED = 3
73
- }
1
+ /**
2
+ * 消息类型枚举
3
+ */
4
+ export declare enum MESSAGE_TYPE {
5
+ TEXT = 0,
6
+ IMAGE = 1,
7
+ FILE = 2,
8
+ AUDIO = 3,
9
+ VIDEO = 4,
10
+ RECALL = 10,
11
+ READED = 11,
12
+ RECEIPT = 12,
13
+ TIP_TIME = 20,
14
+ TIP_TEXT = 21,
15
+ LOADING = 30,
16
+ ACT_RT_VOICE = 40,
17
+ ACT_RT_VIDEO = 41,
18
+ USER_BANNED = 50,
19
+ FRIEND_NEW = 80,
20
+ FRIEND_DEL = 81,
21
+ FRIEND_DND = 82,
22
+ GROUP_NEW = 90,
23
+ GROUP_DEL = 91,
24
+ GROUP_DND = 92,
25
+ RTC_CALL_VOICE = 100,
26
+ RTC_CALL_VIDEO = 101,
27
+ RTC_ACCEPT = 102,
28
+ RTC_REJECT = 103,
29
+ RTC_CANCEL = 104,
30
+ RTC_FAILED = 105,
31
+ RTC_HANDUP = 106,
32
+ RTC_CANDIDATE = 107,
33
+ RTC_GROUP_SETUP = 200,
34
+ RTC_GROUP_ACCEPT = 201,
35
+ RTC_GROUP_REJECT = 202,
36
+ RTC_GROUP_FAILED = 203,
37
+ RTC_GROUP_CANCEL = 204,
38
+ RTC_GROUP_QUIT = 205,
39
+ RTC_GROUP_INVITE = 206,
40
+ RTC_GROUP_JOIN = 207,
41
+ RTC_GROUP_OFFER = 208,
42
+ RTC_GROUP_ANSWER = 209,
43
+ RTC_GROUP_CANDIDATE = 210,
44
+ RTC_GROUP_DEVICE = 211
45
+ }
46
+ /**
47
+ * RTC 状态枚举
48
+ */
49
+ export declare enum RTC_STATE {
50
+ FREE = 0,// 空闲,可以被呼叫
51
+ WAIT_CALL = 1,// 呼叫后等待
52
+ WAIT_ACCEPT = 2,// 被呼叫后等待
53
+ ACCEPTED = 3,// 已接受聊天,等待建立连接
54
+ CHATING = 4
55
+ }
56
+ /**
57
+ * 终端类型枚举
58
+ */
59
+ export declare enum TERMINAL_TYPE {
60
+ WEB = 0,
61
+ APP = 1
62
+ }
63
+ /**
64
+ * 消息状态枚举
65
+ */
66
+ export declare enum MESSAGE_STATUS {
67
+ FAILED = -2,// 发送失败
68
+ SENDING = -1,// 发送中(消息没到服务器)
69
+ PENDING = 0,// 未送达(消息已到服务器,但对方没收到)
70
+ DELIVERED = 1,// 已送达(对方已收到,但是未读消息)
71
+ RECALL = 2,// 已撤回
72
+ READED = 3
73
+ }
@@ -1,35 +1,35 @@
1
- /**
2
- * 消息类型枚举
3
- * 消息类型范围
4
- */
5
- export declare enum MessageTypeRange {
6
- NORMAL_MIN = 0,
7
- NORMAL_MAX = 9,
8
- STATUS_MIN = 10,
9
- STATUS_MAX = 19,
10
- TIP_MIN = 20,
11
- TIP_MAX = 29,
12
- ACTION_MIN = 40,
13
- ACTION_MAX = 49,
14
- RTC_PRIVATE_MIN = 100,
15
- RTC_PRIVATE_MAX = 199,
16
- RTC_GROUP_MIN = 200,
17
- RTC_GROUP_MAX = 299
18
- }
19
- declare const _default: {
20
- isNormal: (type: number) => boolean;
21
- isStatus: (type: number) => boolean;
22
- isTip: (type: number) => boolean;
23
- isAction: (type: number) => boolean;
24
- isRtcPrivate: (type: number) => boolean;
25
- isRtcGroup: (type: number) => boolean;
26
- getMessageCategory: (type: number) => string;
27
- isValidMessageType: (type: number) => boolean;
28
- getMessageTypeRanges: () => {
29
- category: string;
30
- min: number;
31
- max: number;
32
- description: string;
33
- }[];
34
- };
35
- export default _default;
1
+ /**
2
+ * 消息类型枚举
3
+ * 消息类型范围
4
+ */
5
+ export declare enum MessageTypeRange {
6
+ NORMAL_MIN = 0,
7
+ NORMAL_MAX = 9,
8
+ STATUS_MIN = 10,
9
+ STATUS_MAX = 19,
10
+ TIP_MIN = 20,
11
+ TIP_MAX = 29,
12
+ ACTION_MIN = 40,
13
+ ACTION_MAX = 49,
14
+ RTC_PRIVATE_MIN = 100,
15
+ RTC_PRIVATE_MAX = 199,
16
+ RTC_GROUP_MIN = 200,
17
+ RTC_GROUP_MAX = 299
18
+ }
19
+ declare const _default: {
20
+ isNormal: (type: number) => boolean;
21
+ isStatus: (type: number) => boolean;
22
+ isTip: (type: number) => boolean;
23
+ isAction: (type: number) => boolean;
24
+ isRtcPrivate: (type: number) => boolean;
25
+ isRtcGroup: (type: number) => boolean;
26
+ getMessageCategory: (type: number) => string;
27
+ isValidMessageType: (type: number) => boolean;
28
+ getMessageTypeRanges: () => {
29
+ category: string;
30
+ min: number;
31
+ max: number;
32
+ description: string;
33
+ }[];
34
+ };
35
+ export default _default;