yx-web-sdk 0.0.15 → 0.0.18
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/ait-person-popover/index.js +1 -1
- package/dist/ait-person-popover/index.vue.d.ts +3 -3
- package/dist/api/im/index.d.ts +14 -0
- package/dist/api/im/type.d.ts +20 -0
- package/dist/chat-card/index.js +1 -1
- package/dist/chat-content/index.js +1 -1
- package/dist/chat-page/index.js +1 -1
- package/dist/chat-room/index.js +1 -1
- package/dist/common-avatar/index.js +1 -1
- package/dist/components/ait-person-popover/index.vue.d.ts +3 -3
- package/dist/components/chat-content/composables/ait-person.d.ts +7 -7
- package/dist/index/style3.css +13 -6
- package/dist/index/style5.css +21 -21
- package/dist/index/style7.css +68 -68
- package/dist/{index-Ca89BZXm.mjs → index-0o2Mn1Jl.mjs} +7 -5
- package/dist/{index-CYfSO-GX.mjs → index-C14AY1pk.mjs} +23 -61
- package/dist/index-entry/index.js +11 -11
- package/dist/index-entry/style.css +19 -19
- package/dist/{index-DATsUjjD.mjs → index-sJcDnl5D.mjs} +13 -4
- package/dist/{index.vue_vue_type_script_setup_true_lang-DExY7kq1.mjs → index.vue_vue_type_script_setup_true_lang-0YeDxfed.mjs} +2 -2
- package/dist/{index.vue_vue_type_style_index_0_lang-DEJb1Arq.mjs → index.vue_vue_type_style_index_0_lang-BdIDeEyF.mjs} +29 -21
- package/dist/{index.vue_vue_type_style_index_0_lang-DlWIaJyr.mjs → index.vue_vue_type_style_index_0_lang-BxxUcry3.mjs} +3 -4
- package/dist/{index.vue_vue_type_style_index_0_lang-CtQx_ghu.mjs → index.vue_vue_type_style_index_0_lang-UfvEW_0n.mjs} +93 -27
- package/dist/{index.vue_vue_type_style_index_0_lang-BTFpT8vx.mjs → index.vue_vue_type_style_index_0_lang-oO4NDv0U.mjs} +1 -1
- package/dist/members-sidebar/index.js +1 -1
- package/dist/server-channel-sidebar/index.js +1 -1
- package/dist/stores/channel.d.ts +5 -3
- package/dist/stores/server.d.ts +12 -3
- package/dist/stores/user.d.ts +1 -0
- package/dist/style.css +121 -114
- package/dist/types/qchat-server.d.ts +7 -0
- package/dist/yx-web-sdk.es.js +167 -123
- package/dist/yx-web-sdk.umd.js +167 -123
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QChatServerMember } from '../../types/qchat-server';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
/** 是否显示弹框 */
|
|
4
4
|
visible: boolean;
|
|
@@ -8,7 +8,7 @@ type __VLS_Props = {
|
|
|
8
8
|
top: number;
|
|
9
9
|
} | null;
|
|
10
10
|
/** 列表项(全量成员或按 @ 后前缀过滤的成员) */
|
|
11
|
-
items?:
|
|
11
|
+
items?: QChatServerMember[];
|
|
12
12
|
/** 当前键盘选中的项索引(-1=所有人,0..n-1=成员) */
|
|
13
13
|
selectedIndex?: number;
|
|
14
14
|
/** 成员总数(全量列表长度),用于展示「所有人(n)」且用于 membersCount === items.length 时展示「所有人」 */
|
|
@@ -29,7 +29,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
29
29
|
left: number;
|
|
30
30
|
top: number;
|
|
31
31
|
} | null;
|
|
32
|
-
items:
|
|
32
|
+
items: QChatServerMember[];
|
|
33
33
|
selectedIndex: number;
|
|
34
34
|
membersCount: number;
|
|
35
35
|
setItemRef: (el: unknown, index: number) => void;
|
package/dist/api/im/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AxiosResponse } from 'axios';
|
|
2
|
+
import type { GetMembersByPageQuery, ServerMemberInfo } from './type';
|
|
2
3
|
/**
|
|
3
4
|
* 根据云信 accid 列表批量查询在线状态
|
|
4
5
|
* @param data - accid 列表
|
|
@@ -10,3 +11,16 @@ export declare const getUsersStatusByAccids: (data: string[]) => Promise<AxiosRe
|
|
|
10
11
|
status: "offline" | "online";
|
|
11
12
|
}[];
|
|
12
13
|
}, unknown, unknown>>;
|
|
14
|
+
/**
|
|
15
|
+
* 查询服务器成员列表
|
|
16
|
+
* @param params - 分页查询参数
|
|
17
|
+
* @returns 成员列表分页结果
|
|
18
|
+
*/
|
|
19
|
+
export declare const getServerMembers: (params: GetMembersByPageQuery) => Promise<AxiosResponse<{
|
|
20
|
+
list: ServerMemberInfo[];
|
|
21
|
+
has_more: boolean;
|
|
22
|
+
next_timetag: number;
|
|
23
|
+
}, unknown, unknown>>;
|
|
24
|
+
export declare const getServerMembersByAccids: (serverId: string, accids: string[]) => Promise<AxiosResponse<{
|
|
25
|
+
server_members: ServerMemberInfo[];
|
|
26
|
+
}, unknown, unknown>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MemberInfo } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatServerServiceInterface';
|
|
2
|
+
/** 分页查询成员列表参数 */
|
|
3
|
+
export interface GetMembersByPageQuery {
|
|
4
|
+
/** 查询参数 */
|
|
5
|
+
query: {
|
|
6
|
+
/** 分页时间戳 */
|
|
7
|
+
timetag?: number;
|
|
8
|
+
/** 每页数量 */
|
|
9
|
+
per_page?: number;
|
|
10
|
+
};
|
|
11
|
+
/** 服务器ID */
|
|
12
|
+
serverId: string;
|
|
13
|
+
/** 频道ID */
|
|
14
|
+
channelId: string;
|
|
15
|
+
}
|
|
16
|
+
/** 服务器成员信息(包含在线状态) */
|
|
17
|
+
export type ServerMemberInfo = MemberInfo & {
|
|
18
|
+
/** 在线状态 */
|
|
19
|
+
status?: 'offline' | 'online';
|
|
20
|
+
};
|
package/dist/chat-card/index.js
CHANGED
package/dist/chat-page/index.js
CHANGED
package/dist/chat-room/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QChatServerMember } from '../../types/qchat-server';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
/** 是否显示弹框 */
|
|
4
4
|
visible: boolean;
|
|
@@ -8,7 +8,7 @@ type __VLS_Props = {
|
|
|
8
8
|
top: number;
|
|
9
9
|
} | null;
|
|
10
10
|
/** 列表项(全量成员或按 @ 后前缀过滤的成员) */
|
|
11
|
-
items?:
|
|
11
|
+
items?: QChatServerMember[];
|
|
12
12
|
/** 当前键盘选中的项索引(-1=所有人,0..n-1=成员) */
|
|
13
13
|
selectedIndex?: number;
|
|
14
14
|
/** 成员总数(全量列表长度),用于展示「所有人(n)」且用于 membersCount === items.length 时展示「所有人」 */
|
|
@@ -29,7 +29,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
29
29
|
left: number;
|
|
30
30
|
top: number;
|
|
31
31
|
} | null;
|
|
32
|
-
items:
|
|
32
|
+
items: QChatServerMember[];
|
|
33
33
|
selectedIndex: number;
|
|
34
34
|
membersCount: number;
|
|
35
35
|
setItemRef: (el: unknown, index: number) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ComputedRef, Ref } from 'vue';
|
|
2
|
-
import type {
|
|
2
|
+
import type { QChatServerMember } from '../../../types/qchat-server';
|
|
3
3
|
/**
|
|
4
4
|
* 获取文本中所有 `@用户 + 空格` 标签的起止下标(左闭右开),供外部按需使用
|
|
5
5
|
* @param {string} text - 文本
|
|
@@ -33,14 +33,14 @@ export interface AitPopoverItem {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* 从完整文本解析所有 @ 标签,得到「是否含所有人」与去重后的 accid 列表(供发送使用)
|
|
36
|
-
*
|
|
36
|
+
* 标签内容按用户名(username)解析,昵称仅用于下拉展示
|
|
37
37
|
* @param text - 输入框文本
|
|
38
|
-
* @param members -
|
|
38
|
+
* @param members - 当前频道成员列表(含 username)
|
|
39
39
|
* @param myAccid - 当前用户 accid
|
|
40
40
|
* @param enableMentionEveryone - 是否开启@所有人功能
|
|
41
41
|
* @returns { hasEveryone: boolean, accids: string[] } 是否含所有人,去重后的 accid 列表
|
|
42
42
|
*/
|
|
43
|
-
export declare function parseMentionStateFromText(text: string, members:
|
|
43
|
+
export declare function parseMentionStateFromText(text: string, members: QChatServerMember[], myAccid: string, enableMentionEveryone?: boolean): {
|
|
44
44
|
hasEveryone: boolean;
|
|
45
45
|
accids: string[];
|
|
46
46
|
};
|
|
@@ -49,7 +49,7 @@ export interface UseAitPersonOptions {
|
|
|
49
49
|
scrollRef: Ref<HTMLDivElement | undefined>;
|
|
50
50
|
curText: Ref<string>;
|
|
51
51
|
cursorIndex: Ref<number>;
|
|
52
|
-
serverMembers: ComputedRef<
|
|
52
|
+
serverMembers: ComputedRef<QChatServerMember[]>;
|
|
53
53
|
/** 当前用户 accid,用于从列表中排除自己(弹框只展示「所有人」+ 除我以外的成员) */
|
|
54
54
|
myAccid?: string;
|
|
55
55
|
}
|
|
@@ -70,9 +70,9 @@ export declare function useAitPerson(options: UseAitPersonOptions): {
|
|
|
70
70
|
top: number;
|
|
71
71
|
} | null>;
|
|
72
72
|
aitPersonSelectedIndex: Ref<number, number>;
|
|
73
|
-
aitPopoverItems: ComputedRef<
|
|
73
|
+
aitPopoverItems: ComputedRef<QChatServerMember[]>;
|
|
74
74
|
/** 弹框内展示的成员列表(无前缀全量,有前缀为过滤结果) */
|
|
75
|
-
aitDisplayItems: ComputedRef<
|
|
75
|
+
aitDisplayItems: ComputedRef<QChatServerMember[]>;
|
|
76
76
|
aitPopoverItemsLength: ComputedRef<number>;
|
|
77
77
|
mentionAccids: ComputedRef<string[]>;
|
|
78
78
|
setAitItemRef: (el: unknown, index: number) => void;
|
package/dist/index/style3.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
/* @ 提及弹框:位置由 @floating-ui/dom 计算并应用 */
|
|
3
|
-
.yx-ait-person-popover[data-v-
|
|
3
|
+
.yx-ait-person-popover[data-v-df4cd254] {
|
|
4
4
|
position: fixed;
|
|
5
5
|
z-index: 1050;
|
|
6
6
|
min-width: 200px;
|
|
@@ -11,26 +11,33 @@
|
|
|
11
11
|
border: 1px solid var(--theme-dividing-line, #f1f1f8);
|
|
12
12
|
box-shadow: var(--theme-chat-input-shadow, 0px 1px 3px 0px rgba(29, 31, 58, 0.0196078431), 0px 2px 6px 0px rgba(29, 31, 58, 0.0196078431), 0px 4px 12px 0px rgba(29, 31, 58, 0.0196078431), 0px 8px 24px 0px rgba(29, 31, 58, 0.0392156863));
|
|
13
13
|
}
|
|
14
|
-
.yx-ait-person-popover .ait-person-popover-content[data-v-
|
|
14
|
+
.yx-ait-person-popover .ait-person-popover-content[data-v-df4cd254] {
|
|
15
15
|
padding: 4px 0;
|
|
16
16
|
}
|
|
17
|
-
.yx-ait-person-popover .ait-person-item[data-v-
|
|
17
|
+
.yx-ait-person-popover .ait-person-item[data-v-df4cd254] {
|
|
18
|
+
min-width: 200px;
|
|
19
|
+
width: 200px;
|
|
18
20
|
display: flex;
|
|
19
21
|
align-items: center;
|
|
20
22
|
padding: 8px 12px;
|
|
21
23
|
cursor: pointer;
|
|
22
24
|
gap: 8px;
|
|
25
|
+
overflow: hidden;
|
|
23
26
|
}
|
|
24
|
-
.yx-ait-person-popover .ait-person-item[data-v-
|
|
27
|
+
.yx-ait-person-popover .ait-person-item[data-v-df4cd254]:hover {
|
|
25
28
|
background-color: var(--theme-area, #f1f1f8);
|
|
26
29
|
}
|
|
27
|
-
.yx-ait-person-popover .ait-person-item--selected[data-v-
|
|
30
|
+
.yx-ait-person-popover .ait-person-item--selected[data-v-df4cd254] {
|
|
28
31
|
background-color: var(--theme-area, #f1f1f8);
|
|
29
32
|
}
|
|
30
|
-
.yx-ait-person-popover .ait-person-item-name[data-v-
|
|
33
|
+
.yx-ait-person-popover .ait-person-item-name[data-v-df4cd254] {
|
|
31
34
|
font-size: 14px;
|
|
32
35
|
color: var(--theme-text, #252b3a);
|
|
33
36
|
overflow: hidden;
|
|
34
37
|
text-overflow: ellipsis;
|
|
35
38
|
white-space: nowrap;
|
|
39
|
+
}
|
|
40
|
+
.yx-ait-person-popover .ait-person-item-nickname[data-v-df4cd254] {
|
|
41
|
+
margin-right: 0.5rem;
|
|
42
|
+
font-weight: bold;
|
|
36
43
|
}
|
package/dist/index/style5.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.yx-members-sidebar[data-v-
|
|
1
|
+
.yx-members-sidebar[data-v-b479fb17] {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
width: 240px;
|
|
@@ -7,24 +7,24 @@
|
|
|
7
7
|
transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
8
8
|
position: relative;
|
|
9
9
|
}
|
|
10
|
-
.yx-members-sidebar.collapsed[data-v-
|
|
10
|
+
.yx-members-sidebar.collapsed[data-v-b479fb17] {
|
|
11
11
|
width: 50px;
|
|
12
12
|
}
|
|
13
|
-
.yx-members-sidebar.collapsed .members-header[data-v-
|
|
13
|
+
.yx-members-sidebar.collapsed .members-header[data-v-b479fb17] {
|
|
14
14
|
justify-content: center;
|
|
15
15
|
border-bottom: 1px solid var(--theme-dividing-line, #f1f1f8);
|
|
16
16
|
}
|
|
17
|
-
.yx-members-sidebar.collapsed .members-list[data-v-
|
|
17
|
+
.yx-members-sidebar.collapsed .members-list[data-v-b479fb17] {
|
|
18
18
|
padding: 8px 6px;
|
|
19
19
|
}
|
|
20
|
-
.yx-members-sidebar.collapsed .member-item[data-v-
|
|
20
|
+
.yx-members-sidebar.collapsed .member-item[data-v-b479fb17] {
|
|
21
21
|
justify-content: center;
|
|
22
22
|
padding: 6px 0;
|
|
23
23
|
}
|
|
24
|
-
.yx-members-sidebar.collapsed .member-item .member-avatar[data-v-
|
|
24
|
+
.yx-members-sidebar.collapsed .member-item .member-avatar[data-v-b479fb17] {
|
|
25
25
|
margin-right: 0;
|
|
26
26
|
}
|
|
27
|
-
.yx-members-sidebar .members-header[data-v-
|
|
27
|
+
.yx-members-sidebar .members-header[data-v-b479fb17] {
|
|
28
28
|
display: flex;
|
|
29
29
|
align-items: center;
|
|
30
30
|
justify-content: space-between;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
border-bottom: 1px solid var(--theme-dividing-line, #f1f1f8);
|
|
33
33
|
gap: 8px;
|
|
34
34
|
}
|
|
35
|
-
.yx-members-sidebar .members-header .members-title[data-v-
|
|
35
|
+
.yx-members-sidebar .members-header .members-title[data-v-b479fb17] {
|
|
36
36
|
font-size: 13px;
|
|
37
37
|
font-weight: 600;
|
|
38
38
|
color: var(--theme-icon-fill-weak);
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
text-transform: uppercase;
|
|
41
41
|
letter-spacing: 0.5px;
|
|
42
42
|
}
|
|
43
|
-
.yx-members-sidebar .members-header .members-count[data-v-
|
|
43
|
+
.yx-members-sidebar .members-header .members-count[data-v-b479fb17] {
|
|
44
44
|
font-size: 12px;
|
|
45
45
|
color: var(--theme-icon-fill-weak);
|
|
46
46
|
background-color: var(--theme-global-bg);
|
|
47
47
|
padding: 2px 8px;
|
|
48
48
|
border-radius: 10px;
|
|
49
49
|
}
|
|
50
|
-
.yx-members-sidebar .members-header .toggle-btn[data-v-
|
|
50
|
+
.yx-members-sidebar .members-header .toggle-btn[data-v-b479fb17] {
|
|
51
51
|
width: 22px;
|
|
52
52
|
height: 22px;
|
|
53
53
|
display: flex;
|
|
@@ -59,23 +59,23 @@
|
|
|
59
59
|
transition: all 0.15s ease;
|
|
60
60
|
flex-shrink: 0;
|
|
61
61
|
}
|
|
62
|
-
.yx-members-sidebar .members-header .toggle-btn[data-v-
|
|
62
|
+
.yx-members-sidebar .members-header .toggle-btn[data-v-b479fb17]:hover {
|
|
63
63
|
background-color: var(--theme-icon-hover);
|
|
64
64
|
color: var(--theme-text);
|
|
65
65
|
}
|
|
66
|
-
.yx-members-sidebar .members-list[data-v-
|
|
66
|
+
.yx-members-sidebar .members-list[data-v-b479fb17] {
|
|
67
67
|
flex: 1;
|
|
68
68
|
overflow-y: auto;
|
|
69
69
|
padding: 8px;
|
|
70
70
|
}
|
|
71
|
-
.yx-members-sidebar .members-list[data-v-
|
|
71
|
+
.yx-members-sidebar .members-list[data-v-b479fb17]::-webkit-scrollbar {
|
|
72
72
|
width: 4px;
|
|
73
73
|
}
|
|
74
|
-
.yx-members-sidebar .members-list[data-v-
|
|
74
|
+
.yx-members-sidebar .members-list[data-v-b479fb17]::-webkit-scrollbar-thumb {
|
|
75
75
|
background-color: var(--theme-line);
|
|
76
76
|
border-radius: 2px;
|
|
77
77
|
}
|
|
78
|
-
.yx-members-sidebar .member-item[data-v-
|
|
78
|
+
.yx-members-sidebar .member-item[data-v-b479fb17] {
|
|
79
79
|
display: flex;
|
|
80
80
|
align-items: center;
|
|
81
81
|
padding: 6px 8px;
|
|
@@ -84,15 +84,15 @@
|
|
|
84
84
|
transition: background-color 0.15s ease, opacity 0.15s ease;
|
|
85
85
|
margin-bottom: 2px;
|
|
86
86
|
}
|
|
87
|
-
.yx-members-sidebar .member-item[data-v-
|
|
87
|
+
.yx-members-sidebar .member-item[data-v-b479fb17]:hover {
|
|
88
88
|
background-color: var(--theme-icon-hover);
|
|
89
89
|
}
|
|
90
|
-
.yx-members-sidebar .member-item .member-avatar[data-v-
|
|
90
|
+
.yx-members-sidebar .member-item .member-avatar[data-v-b479fb17] {
|
|
91
91
|
position: relative;
|
|
92
92
|
margin-right: 10px;
|
|
93
93
|
flex-shrink: 0;
|
|
94
94
|
}
|
|
95
|
-
.yx-members-sidebar .member-item .member-avatar .owner-badge[data-v-
|
|
95
|
+
.yx-members-sidebar .member-item .member-avatar .owner-badge[data-v-b479fb17] {
|
|
96
96
|
position: absolute;
|
|
97
97
|
bottom: -2px;
|
|
98
98
|
right: -2px;
|
|
@@ -107,11 +107,11 @@
|
|
|
107
107
|
color: #fff;
|
|
108
108
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
109
109
|
}
|
|
110
|
-
.yx-members-sidebar .member-item .member-info[data-v-
|
|
110
|
+
.yx-members-sidebar .member-item .member-info[data-v-b479fb17] {
|
|
111
111
|
flex: 1;
|
|
112
112
|
overflow: hidden;
|
|
113
113
|
}
|
|
114
|
-
.yx-members-sidebar .member-item .member-info .member-name[data-v-
|
|
114
|
+
.yx-members-sidebar .member-item .member-info .member-name[data-v-b479fb17] {
|
|
115
115
|
font-size: 14px;
|
|
116
116
|
color: var(--theme-text);
|
|
117
117
|
overflow: hidden;
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
white-space: nowrap;
|
|
120
120
|
transition: color 0.15s ease;
|
|
121
121
|
}
|
|
122
|
-
.yx-members-sidebar .loading-more[data-v-
|
|
122
|
+
.yx-members-sidebar .loading-more[data-v-b479fb17] {
|
|
123
123
|
display: flex;
|
|
124
124
|
justify-content: center;
|
|
125
125
|
align-items: center;
|