yx-web-sdk 0.0.4

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 (100) hide show
  1. package/README.md +424 -0
  2. package/dist/AntdIcon-B0sjNvGu.mjs +307 -0
  3. package/dist/CloseOutlined-DDb89ei3.mjs +37 -0
  4. package/dist/_plugin-vue_export-helper-1tPrXgE0.mjs +10 -0
  5. package/dist/ait-person-popover/index.d.ts +3 -0
  6. package/dist/ait-person-popover/index.js +5 -0
  7. package/dist/ait-person-popover/index.vue.d.ts +39 -0
  8. package/dist/chat-card/index.d.ts +3 -0
  9. package/dist/chat-card/index.js +5 -0
  10. package/dist/chat-card/index.vue.d.ts +25 -0
  11. package/dist/chat-content/index.d.ts +3 -0
  12. package/dist/chat-content/index.js +5 -0
  13. package/dist/chat-content/index.vue.d.ts +51 -0
  14. package/dist/chat-page/index.d.ts +3 -0
  15. package/dist/chat-page/index.js +5 -0
  16. package/dist/chat-page/index.vue.d.ts +6 -0
  17. package/dist/chat-room/index.d.ts +3 -0
  18. package/dist/chat-room/index.js +5 -0
  19. package/dist/chat-room/index.vue.d.ts +9 -0
  20. package/dist/common-avatar/index.d.ts +3 -0
  21. package/dist/common-avatar/index.js +5 -0
  22. package/dist/common-avatar/index.vue.d.ts +17 -0
  23. package/dist/components/ait-person-popover/index.d.ts +3 -0
  24. package/dist/components/ait-person-popover/index.vue.d.ts +39 -0
  25. package/dist/components/chat-card/index.d.ts +3 -0
  26. package/dist/components/chat-card/index.vue.d.ts +25 -0
  27. package/dist/components/chat-content/composables/ait-person.d.ts +86 -0
  28. package/dist/components/chat-content/index.d.ts +3 -0
  29. package/dist/components/chat-content/index.vue.d.ts +51 -0
  30. package/dist/components/chat-page/index.d.ts +3 -0
  31. package/dist/components/chat-page/index.vue.d.ts +6 -0
  32. package/dist/components/chat-room/index.d.ts +3 -0
  33. package/dist/components/chat-room/index.vue.d.ts +9 -0
  34. package/dist/components/common-avatar/index.d.ts +3 -0
  35. package/dist/components/common-avatar/index.vue.d.ts +17 -0
  36. package/dist/components/icon-font/index.d.ts +47 -0
  37. package/dist/components/index-entry/index.d.ts +2 -0
  38. package/dist/components/index-entry/index.vue.d.ts +25 -0
  39. package/dist/components/index.d.ts +12 -0
  40. package/dist/components/list.d.ts +2 -0
  41. package/dist/components/members-sidebar/index.d.ts +3 -0
  42. package/dist/components/members-sidebar/index.vue.d.ts +4 -0
  43. package/dist/components/notice-box/index.d.ts +3 -0
  44. package/dist/components/notice-box/index.vue.d.ts +13 -0
  45. package/dist/components/server-channel-sidebar/index.d.ts +3 -0
  46. package/dist/components/server-channel-sidebar/index.vue.d.ts +18 -0
  47. package/dist/global.css +39 -0
  48. package/dist/icon-font/index.d.ts +47 -0
  49. package/dist/icon-font/index.js +7 -0
  50. package/dist/index/style.css +199 -0
  51. package/dist/index/style2.css +175 -0
  52. package/dist/index/style3.css +36 -0
  53. package/dist/index/style4.css +168 -0
  54. package/dist/index/style5.css +147 -0
  55. package/dist/index/style6.css +43 -0
  56. package/dist/index/style7.css +491 -0
  57. package/dist/index/style8.css +19 -0
  58. package/dist/index-3sSWCzxu.mjs +225 -0
  59. package/dist/index-4m4OVlx8.mjs +611 -0
  60. package/dist/index-CFI0URc5.mjs +135 -0
  61. package/dist/index-Dg8Q3cli.mjs +1092 -0
  62. package/dist/index-entry/index.d.ts +2 -0
  63. package/dist/index-entry/index.js +271 -0
  64. package/dist/index-entry/index.vue.d.ts +25 -0
  65. package/dist/index-entry/style.css +51 -0
  66. package/dist/index.d.ts +8 -0
  67. package/dist/index.vue_vue_type_script_setup_true_lang-DkMXpHkt.mjs +158 -0
  68. package/dist/index.vue_vue_type_style_index_0_lang-CfLKcYM9.mjs +102 -0
  69. package/dist/index.vue_vue_type_style_index_0_lang-CibeOmhP.mjs +407 -0
  70. package/dist/index.vue_vue_type_style_index_0_lang-CmfE8EVU.mjs +288 -0
  71. package/dist/index.vue_vue_type_style_index_0_lang-XiDTgYoZ.mjs +1012 -0
  72. package/dist/index.vue_vue_type_style_index_0_lang-Y-vyKHWz.mjs +36985 -0
  73. package/dist/members-sidebar/index.d.ts +3 -0
  74. package/dist/members-sidebar/index.js +5 -0
  75. package/dist/members-sidebar/index.vue.d.ts +4 -0
  76. package/dist/notice-box/index.d.ts +3 -0
  77. package/dist/notice-box/index.js +5 -0
  78. package/dist/notice-box/index.vue.d.ts +13 -0
  79. package/dist/plugin/index.d.ts +22 -0
  80. package/dist/resolver/index.d.ts +22 -0
  81. package/dist/resolver/index.es.js +36 -0
  82. package/dist/resolver/index.umd.js +40 -0
  83. package/dist/server-channel-sidebar/index.d.ts +3 -0
  84. package/dist/server-channel-sidebar/index.js +5 -0
  85. package/dist/server-channel-sidebar/index.vue.d.ts +18 -0
  86. package/dist/stores/channel.d.ts +114 -0
  87. package/dist/stores/global.d.ts +15 -0
  88. package/dist/stores/index.d.ts +7 -0
  89. package/dist/stores/qchat.d.ts +397 -0
  90. package/dist/stores/sdk.d.ts +48 -0
  91. package/dist/stores/server.d.ts +58 -0
  92. package/dist/stores/user.d.ts +9 -0
  93. package/dist/style.css +1359 -0
  94. package/dist/types/missing.d.ts +14 -0
  95. package/dist/utils/events.d.ts +7 -0
  96. package/dist/utils/index.d.ts +26 -0
  97. package/dist/utils/storage.d.ts +15 -0
  98. package/dist/yx-web-sdk.es.js +41593 -0
  99. package/dist/yx-web-sdk.umd.js +41590 -0
  100. package/package.json +191 -0
@@ -0,0 +1,86 @@
1
+ import type { ComputedRef, Ref } from 'vue';
2
+ import type { MemberInfo } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatServerServiceInterface';
3
+ /**
4
+ * 获取文本中所有 `@用户 + 空格` 标签的起止下标(左闭右开),供外部按需使用
5
+ * @param {string} text - 文本
6
+ * @return {Array} 所有 `@用户 + 空格` 标签的起止下标
7
+ */
8
+ export declare function getMentionSpans(text: string): {
9
+ start: number;
10
+ end: number;
11
+ }[];
12
+ /**
13
+ * 获取光标位置所在的 `@用户 + 空格` 标签区间;若不在任何标签内则返回 null,供外部按需使用
14
+ * @param {string} text - 文本
15
+ * @param {number} pos - 光标位置
16
+ * @param {KeyboardEvent['key']} key - 键盘事件的键
17
+ * @return {Object | null} 光标位置所在的 `@用户 + 空格` 标签区间,若不在任何标签内则返回 null
18
+ */
19
+ export declare function getMentionSpanAt(text: string, pos: number, key?: KeyboardEvent['key']): {
20
+ start: number;
21
+ end: number;
22
+ } | null;
23
+ /** @ 提及成员项类型(与频道成员数据结构一致) */
24
+ export interface AitPersonMember {
25
+ accid: string;
26
+ nick?: string;
27
+ avatar?: string;
28
+ }
29
+ /** @ 提及列表单项:所有人 | 成员 */
30
+ export interface AitPopoverItem {
31
+ label: string;
32
+ member: AitPersonMember | null;
33
+ }
34
+ /**
35
+ * 从完整文本解析所有 @ 标签,得到「是否含所有人」与去重后的 accid 列表(供发送使用)
36
+ * 删除/新增 @ 后只需用最新文本调用本函数即可同步,无需保存光标或区间位置
37
+ * @param text - 输入框文本
38
+ * @param members - 当前频道成员列表
39
+ * @param myAccid - 当前用户 accid
40
+ * @param enableMentionEveryone - 是否开启@所有人功能
41
+ * @returns { hasEveryone: boolean, accids: string[] } 是否含所有人,去重后的 accid 列表
42
+ */
43
+ export declare function parseMentionStateFromText(text: string, members: MemberInfo[], myAccid: string, enableMentionEveryone?: boolean): {
44
+ hasEveryone: boolean;
45
+ accids: string[];
46
+ };
47
+ /** useAitPerson 入参:依赖组件的输入状态与成员列表 */
48
+ export interface UseAitPersonOptions {
49
+ scrollRef: Ref<HTMLDivElement | undefined>;
50
+ curText: Ref<string>;
51
+ cursorIndex: Ref<number>;
52
+ serverMembers: ComputedRef<MemberInfo[]>;
53
+ /** 当前用户 accid,用于从列表中排除自己(弹框只展示「所有人」+ 除我以外的成员) */
54
+ myAccid?: string;
55
+ }
56
+ /**
57
+ * @用户 提及选人逻辑:弹框显隐、光标坐标、上下键选中、回车/点击确认
58
+ */
59
+ export declare function useAitPerson(options: UseAitPersonOptions): {
60
+ showAitPersonPopover: Ref<boolean, boolean>;
61
+ scrollbarWidth: Ref<number, number>;
62
+ cursorRectRef: Ref<{
63
+ left: number;
64
+ top: number;
65
+ } | null, {
66
+ left: number;
67
+ top: number;
68
+ } | {
69
+ left: number;
70
+ top: number;
71
+ } | null>;
72
+ aitPersonSelectedIndex: Ref<number, number>;
73
+ aitPopoverItems: ComputedRef<MemberInfo[]>;
74
+ /** 弹框内展示的成员列表(无前缀全量,有前缀为过滤结果) */
75
+ aitDisplayItems: ComputedRef<MemberInfo[]>;
76
+ aitPopoverItemsLength: ComputedRef<number>;
77
+ mentionAccids: ComputedRef<string[]>;
78
+ setAitItemRef: (el: unknown, index: number) => void;
79
+ handleInputKeydown: (e: KeyboardEvent) => void;
80
+ /** 点击时若落在 @用户 标签内则整段选中 */
81
+ handleMentionClick: (e: MouseEvent) => void;
82
+ confirmAitSelection: (clickIndex?: number) => void;
83
+ aitPersonHandler: (e: Event) => void;
84
+ closeAitPopover: () => void;
85
+ getAccurateScrollbarWidth: () => void;
86
+ };
@@ -0,0 +1,3 @@
1
+ import ChatContent from './index.vue';
2
+ export default ChatContent;
3
+ export { ChatContent };
@@ -0,0 +1,51 @@
1
+ import type { SendMsgOption } from '../../stores/channel';
2
+ import type { QChatMessage } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatMsgServiceInterface';
3
+ type __VLS_Props = {
4
+ /** 当前频道消息列表 */
5
+ msgs?: QChatMessage[];
6
+ /** 当前频道名称 */
7
+ channelName?: string;
8
+ /** 当前频道主题 */
9
+ topic?: string;
10
+ /** 图片上传状态 */
11
+ imgUploading?: boolean;
12
+ /** 文件上传状态 */
13
+ fileUploading?: boolean;
14
+ /** 发送权限 */
15
+ sendDisabled?: boolean;
16
+ /** 是否没有更多消息 */
17
+ isNoMore?: boolean;
18
+ /** 我的账号 ID */
19
+ myAccid?: string;
20
+ /** 我的头像 */
21
+ myAvatar?: string;
22
+ /** 加载更多历史消息回调(需要返回值,保持 props) */
23
+ onLoadMore?: (lastTime: number) => Promise<void>;
24
+ };
25
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
26
+ resendText: (msg: QChatMessage) => any;
27
+ resendImg: (msg: QChatMessage) => any;
28
+ resendFile: (msg: QChatMessage) => any;
29
+ sendText: (text: string, option?: SendMsgOption | undefined) => any;
30
+ sendImg: (file: File) => any;
31
+ sendFile: (file: File) => any;
32
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
33
+ onResendText?: ((msg: QChatMessage) => any) | undefined;
34
+ onResendImg?: ((msg: QChatMessage) => any) | undefined;
35
+ onResendFile?: ((msg: QChatMessage) => any) | undefined;
36
+ onSendText?: ((text: string, option?: SendMsgOption | undefined) => any) | undefined;
37
+ onSendImg?: ((file: File) => any) | undefined;
38
+ onSendFile?: ((file: File) => any) | undefined;
39
+ }>, {
40
+ topic: string;
41
+ myAccid: string;
42
+ myAvatar: string;
43
+ msgs: QChatMessage[];
44
+ channelName: string;
45
+ imgUploading: boolean;
46
+ fileUploading: boolean;
47
+ sendDisabled: boolean;
48
+ isNoMore: boolean;
49
+ onLoadMore: (lastTime: number) => Promise<void>;
50
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
51
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import ChatPage from './index.vue';
2
+ export default ChatPage;
3
+ export { ChatPage };
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ myAccid?: string;
3
+ myAvatar?: string;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import ChatRoom from './index.vue';
2
+ export default ChatRoom;
3
+ export { ChatRoom };
@@ -0,0 +1,9 @@
1
+ type __VLS_Props = {
2
+ myAccid?: string;
3
+ myAvatar?: string;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ myAccid: string;
7
+ myAvatar: string;
8
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import CommonAvatar from './index.vue';
2
+ export default CommonAvatar;
3
+ export { CommonAvatar };
@@ -0,0 +1,17 @@
1
+ type __VLS_Props = {
2
+ avatar?: string;
3
+ nick?: string;
4
+ accid?: string;
5
+ width?: number;
6
+ border?: number;
7
+ borderColor?: string;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ accid: string;
11
+ nick: string;
12
+ avatar: string;
13
+ width: number;
14
+ border: number;
15
+ borderColor: string;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ export default _default;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 原始 IconFont 组件,由 iconfont 脚本生成
3
+ */
4
+ declare const IconFontBase: import("vue").FunctionalComponent<import("@ant-design/icons-vue/lib/components/IconFont").IconFontProps, {}, any, {}>;
5
+ /**
6
+ * IconFont 包装组件,支持 size 属性
7
+ * @example
8
+ * <Icon type="gt-line-Refresh1" size="16" />
9
+ * <Icon type="gt-logo-picture" size={20} />
10
+ */
11
+ declare const IconFont: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
+ /**
13
+ * 图标类型/名称
14
+ */
15
+ type: {
16
+ type: StringConstructor;
17
+ required: true;
18
+ };
19
+ /**
20
+ * 图标大小,支持数字或字符串(如 '16px'、'1em')
21
+ */
22
+ size: {
23
+ type: (StringConstructor | NumberConstructor)[];
24
+ default: undefined;
25
+ };
26
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
+ /**
30
+ * 图标类型/名称
31
+ */
32
+ type: {
33
+ type: StringConstructor;
34
+ required: true;
35
+ };
36
+ /**
37
+ * 图标大小,支持数字或字符串(如 '16px'、'1em')
38
+ */
39
+ size: {
40
+ type: (StringConstructor | NumberConstructor)[];
41
+ default: undefined;
42
+ };
43
+ }>> & Readonly<{}>, {
44
+ size: string | number;
45
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
46
+ export default IconFont;
47
+ export { IconFont, IconFontBase };
@@ -0,0 +1,2 @@
1
+ import IndexEntry from './index.vue';
2
+ export default IndexEntry;
@@ -0,0 +1,25 @@
1
+ import type { QChatMessage } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatMsgServiceInterface';
2
+ import type { IMCredentials } from '../../stores/sdk';
3
+ type __VLS_Props = {
4
+ credentials: IMCredentials;
5
+ autoInit?: boolean;
6
+ serverId?: string;
7
+ request: (options: {
8
+ url: string;
9
+ method: string;
10
+ data?: any;
11
+ }) => Promise<any>;
12
+ };
13
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
14
+ init: () => Promise<void>;
15
+ destroy: () => Promise<void>;
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
+ message: (msg: QChatMessage) => any;
18
+ error: (error: string) => any;
19
+ ready: () => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onMessage?: ((msg: QChatMessage) => any) | undefined;
22
+ onError?: ((error: string) => any) | undefined;
23
+ onReady?: (() => any) | undefined;
24
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ export default _default;
@@ -0,0 +1,12 @@
1
+ export { default as ChatCard } from './chat-card';
2
+ export { default as ChatContent } from './chat-content';
3
+ export { default as ChatPage } from './chat-page';
4
+ export { default as ChatRoom } from './chat-room';
5
+ export { default as CommonAvatar } from './common-avatar';
6
+ export { default as IconFont } from './icon-font';
7
+ export { default as ServerChannelSidebar } from './server-channel-sidebar';
8
+ export { default as MembersSidebar } from './members-sidebar';
9
+ export { default as IndexEntry } from './index-entry';
10
+ export { default as AitPersonPopover } from './ait-person-popover';
11
+ export { default as NoticeBox } from './notice-box';
12
+ export { componentList, type ComponentName } from './list';
@@ -0,0 +1,2 @@
1
+ export declare const componentList: readonly ["chat-card", "chat-content", "chat-page", "chat-room", "common-avatar", "icon-font", "notice-box", "index-entry", "server-channel-sidebar", "members-sidebar", "ait-person-popover"];
2
+ export type ComponentName = (typeof componentList)[number];
@@ -0,0 +1,3 @@
1
+ import MembersSidebar from './index.vue';
2
+ export { MembersSidebar };
3
+ export default MembersSidebar;
@@ -0,0 +1,4 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ toggleCollapse: () => void;
3
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import NoticeBox from './index.vue';
2
+ export { NoticeBox };
3
+ export default NoticeBox;
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ /** 公告内容 */
3
+ content: string;
4
+ /** 滚动速度(像素/秒),与内容长度无关,越大滚得越快 */
5
+ scrollSpeed?: number;
6
+ /** 渲染好后延迟多少毫秒开始滚动,默认 3000 */
7
+ scrollDelayMs?: number;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ scrollSpeed: number;
11
+ scrollDelayMs: number;
12
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import ServerChannelSidebar from './index.vue';
2
+ export { ServerChannelSidebar };
3
+ export default ServerChannelSidebar;
@@ -0,0 +1,18 @@
1
+ import type { ServerInfo } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatServerServiceInterface';
2
+ import type { ChannelInfo } from 'nim-web-sdk-ng/dist/v1/QCHAT_BROWSER_SDK/QChatChannelServiceInterface';
3
+ type __VLS_Props = {
4
+ request: (options: {
5
+ url: string;
6
+ method: string;
7
+ data?: any;
8
+ params?: any;
9
+ }) => Promise<any>;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ selectServer: (server: ServerInfo) => any;
13
+ selectChannel: (channel: ChannelInfo) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onSelectServer?: ((server: ServerInfo) => any) | undefined;
16
+ onSelectChannel?: ((channel: ChannelInfo) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ export default _default;
@@ -0,0 +1,39 @@
1
+ :root {
2
+ --im-img-msg-width: 230px;
3
+ --im-img-msg-height: 160px;
4
+ }
5
+
6
+ .ant-btn-primary {
7
+ background-color: var(--theme-primary);
8
+ }
9
+
10
+ .ant-btn-primary:not(:disabled):hover {
11
+ background-color: var(--theme-primary);
12
+ }
13
+
14
+ .ant-modal .ant-modal-content {
15
+ padding: 0;
16
+ }
17
+
18
+ .ant-modal-header {
19
+ padding: 16px 16px 0 16px;
20
+ }
21
+
22
+ .ant-modal-body {
23
+ padding: 16px 16px 0 16px;
24
+ }
25
+
26
+ .ant-modal-footer {
27
+ padding: 0 16px 16px 16px;
28
+ }
29
+
30
+ .ant-image-img.imgMsg {
31
+ width: var(--im-img-msg-width, 230px);
32
+ height: var(--im-img-msg-height, 160px);
33
+ border-radius: 8px;
34
+ -o-object-fit: cover;
35
+ object-fit: cover;
36
+ background-color: transparent;
37
+ padding: 2px 0;
38
+ cursor: pointer;
39
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 原始 IconFont 组件,由 iconfont 脚本生成
3
+ */
4
+ declare const IconFontBase: import("vue").FunctionalComponent<import("@ant-design/icons-vue/lib/components/IconFont").IconFontProps, {}, any, {}>;
5
+ /**
6
+ * IconFont 包装组件,支持 size 属性
7
+ * @example
8
+ * <Icon type="gt-line-Refresh1" size="16" />
9
+ * <Icon type="gt-logo-picture" size={20} />
10
+ */
11
+ declare const IconFont: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
+ /**
13
+ * 图标类型/名称
14
+ */
15
+ type: {
16
+ type: StringConstructor;
17
+ required: true;
18
+ };
19
+ /**
20
+ * 图标大小,支持数字或字符串(如 '16px'、'1em')
21
+ */
22
+ size: {
23
+ type: (StringConstructor | NumberConstructor)[];
24
+ default: undefined;
25
+ };
26
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
+ /**
30
+ * 图标类型/名称
31
+ */
32
+ type: {
33
+ type: StringConstructor;
34
+ required: true;
35
+ };
36
+ /**
37
+ * 图标大小,支持数字或字符串(如 '16px'、'1em')
38
+ */
39
+ size: {
40
+ type: (StringConstructor | NumberConstructor)[];
41
+ default: undefined;
42
+ };
43
+ }>> & Readonly<{}>, {
44
+ size: string | number;
45
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
46
+ export default IconFont;
47
+ export { IconFont, IconFontBase };
@@ -0,0 +1,7 @@
1
+ import "vue";
2
+ import { I, d, I as I2 } from "../index-Dg8Q3cli.mjs";
3
+ export {
4
+ I as IconFont,
5
+ d as IconFontBase,
6
+ I2 as default
7
+ };
@@ -0,0 +1,199 @@
1
+ .yx-chat-page-container {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: column;
5
+ height: 100%;
6
+ background-color: var(--theme-default-bg, #fff);
7
+ }
8
+ .yx-chat-page-container .header-wrap {
9
+ display: flex;
10
+ justify-content: space-between;
11
+ padding: 22px 20px;
12
+ height: 68px;
13
+ align-items: center;
14
+ border-bottom: 1px solid var(--theme-dividing-line, #f1f1f8);
15
+ font-size: 16px;
16
+ box-sizing: border-box;
17
+ }
18
+ .yx-chat-page-container .header-wrap .left {
19
+ display: flex;
20
+ align-items: center;
21
+ }
22
+ .yx-chat-page-container .header-wrap .left .symbol {
23
+ margin-right: 6px;
24
+ font-size: 16px;
25
+ }
26
+ .yx-chat-page-container .header-wrap .left .name {
27
+ margin-right: 16px;
28
+ font-weight: bold;
29
+ }
30
+ .yx-chat-page-container .header-wrap .left .divider {
31
+ width: 1px;
32
+ height: 28px;
33
+ margin-right: 16px;
34
+ background: #464a54;
35
+ }
36
+ .yx-chat-page-container .header-wrap .left .title {
37
+ font-size: 14px;
38
+ color: var(--theme-head-title-link);
39
+ }
40
+ .yx-chat-page-container .header-wrap .right {
41
+ color: #464a54;
42
+ font-size: 26px;
43
+ }
44
+ .yx-chat-page-container .header-wrap .right.active {
45
+ color: #a3a4a9;
46
+ }
47
+ .yx-chat-page-container .content-wrap {
48
+ display: inline-flex;
49
+ flex-direction: row;
50
+ height: calc(100% - 68px);
51
+ }
52
+ .yx-chat-page-container .content-wrap .main {
53
+ flex: 1;
54
+ height: 100%;
55
+ max-width: 100%;
56
+ }
57
+ .yx-chat-page-container .content-wrap .members-wrap {
58
+ position: relative;
59
+ width: 208px;
60
+ height: 100%;
61
+ padding: 2px 0;
62
+ background-color: var(--theme-bg-default, #fff);
63
+ border-left: 1px solid var(--theme-line-border, #f1f1f8);
64
+ }
65
+ .yx-chat-page-container .content-wrap .members-wrap .mask {
66
+ position: fixed;
67
+ top: 55px;
68
+ right: 0;
69
+ width: 208px;
70
+ height: auto;
71
+ }
72
+ .yx-chat-page-container .content-wrap .members-wrap .mask .ant-list-item {
73
+ padding: 0;
74
+ }
75
+ .yx-chat-page-container .content-wrap .members-wrap .mask .ant-list-header {
76
+ position: fixed;
77
+ }
78
+ .yx-chat-page-container .content-wrap .members-wrap .mask.expand {
79
+ position: fixed;
80
+ top: 0;
81
+ right: 0;
82
+ bottom: 0;
83
+ left: 0;
84
+ width: 100vw;
85
+ }
86
+ .yx-chat-page-container .content-wrap .members-wrap .mask.expand .mask-content {
87
+ top: 55px;
88
+ }
89
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content {
90
+ position: absolute;
91
+ top: 0;
92
+ right: 0;
93
+ width: 208px;
94
+ max-height: calc(100vh - 55px);
95
+ overflow-y: scroll;
96
+ }
97
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .load-more-wrap {
98
+ padding: 4px 0;
99
+ color: var(--theme-text);
100
+ border: 1px solid var(--theme-line-border);
101
+ }
102
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item {
103
+ display: inline-flex;
104
+ flex-direction: row;
105
+ align-items: center;
106
+ width: 100%;
107
+ height: 48px;
108
+ font-size: 14px;
109
+ color: var(--theme-text);
110
+ cursor: pointer;
111
+ }
112
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item.selected {
113
+ background-color: #212326;
114
+ }
115
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item .avatar {
116
+ margin-right: 8px;
117
+ margin-left: 14px;
118
+ }
119
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item .nick-name {
120
+ margin-right: 8px;
121
+ }
122
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item .nick-name .ant-typography {
123
+ color: var(--theme-text);
124
+ }
125
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-item .owner {
126
+ color: #ffbd3e;
127
+ }
128
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap {
129
+ position: fixed;
130
+ width: 300px;
131
+ top: 93px;
132
+ right: 220px;
133
+ min-height: 318px;
134
+ border-radius: 8px;
135
+ background-color: #18191c;
136
+ text-align: left;
137
+ }
138
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .header-background {
139
+ width: 100%;
140
+ height: 80px;
141
+ border-radius: 8px 8px 0 0;
142
+ -o-object-fit: cover;
143
+ object-fit: cover;
144
+ }
145
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap {
146
+ margin-top: -35px;
147
+ padding: 0 20px 36px;
148
+ }
149
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .avatar-wrap {
150
+ height: 70px;
151
+ border-radius: 50%;
152
+ }
153
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .avatar-wrap img {
154
+ display: inline-block;
155
+ width: 70px;
156
+ height: 70px;
157
+ -o-object-fit: cover;
158
+ object-fit: cover;
159
+ border-radius: 50%;
160
+ border: 4px solid #18191c;
161
+ }
162
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .name-wrap {
163
+ margin-top: 17px;
164
+ margin-right: 8px;
165
+ font-weight: 500;
166
+ font-size: 24px;
167
+ line-height: 26px;
168
+ }
169
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .accid-wrap {
170
+ margin-top: 6px;
171
+ font-weight: 500;
172
+ font-size: 16px;
173
+ line-height: 20px;
174
+ }
175
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .divider {
176
+ height: 1px;
177
+ margin-top: 16px;
178
+ background-color: var(--theme-line-border);
179
+ }
180
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .roles-title {
181
+ margin-top: 16px;
182
+ font-size: 14px;
183
+ line-height: 16px;
184
+ color: #6e6f74;
185
+ }
186
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .roles-wrap {
187
+ display: flex;
188
+ flex-direction: row;
189
+ flex-wrap: wrap;
190
+ margin-top: 16px;
191
+ color: var(--theme-text);
192
+ }
193
+ .yx-chat-page-container .content-wrap .members-wrap .mask .mask-content .member-detail-wrap .body-wrap .roles-wrap .role-item {
194
+ padding: 4px 8px;
195
+ margin-right: 6px;
196
+ margin-bottom: 6px;
197
+ border-radius: 8px;
198
+ background-color: #282a2f;
199
+ }