zcw-shared 2.8.0 → 2.11.0
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/assets/materialFileIconMaps.json +3256 -0
- package/dist/functions/ai/aiLlmModelCapabilities.d.ts +13 -0
- package/dist/functions/ai/aiLlmModelCapabilities.js +80 -0
- package/dist/functions/ai/aiLlmModelCapabilities.js.map +1 -0
- package/dist/functions/browser/shortcutModKeyHint.d.ts +7 -0
- package/dist/functions/browser/shortcutModKeyHint.js +21 -0
- package/dist/functions/browser/shortcutModKeyHint.js.map +1 -0
- package/dist/functions/chat/chatShellTabConfig.d.ts +31 -0
- package/dist/functions/chat/chatShellTabConfig.js +219 -0
- package/dist/functions/chat/chatShellTabConfig.js.map +1 -0
- package/dist/functions/chat/chatShellTabEditor.d.ts +7 -0
- package/dist/functions/chat/chatShellTabEditor.js +42 -0
- package/dist/functions/chat/chatShellTabEditor.js.map +1 -0
- package/dist/functions/code/getLanguageFromExtension.d.ts +5 -0
- package/dist/functions/code/getLanguageFromExtension.js +90 -0
- package/dist/functions/code/getLanguageFromExtension.js.map +1 -0
- package/dist/functions/code/index.d.ts +1 -0
- package/dist/functions/code/index.js +2 -0
- package/dist/functions/code/index.js.map +1 -0
- package/dist/functions/dom/copyTextToClipboard.d.ts +1 -0
- package/dist/functions/dom/copyTextToClipboard.js +36 -0
- package/dist/functions/dom/copyTextToClipboard.js.map +1 -0
- package/dist/functions/file/extractVideoCover.d.ts +6 -0
- package/dist/functions/file/extractVideoCover.js +57 -0
- package/dist/functions/file/extractVideoCover.js.map +1 -0
- package/dist/functions/file/getIconfontNameByExtension.js +8 -8
- package/dist/functions/file/getIconfontNameByExtension.js.map +1 -1
- package/dist/functions/file/index.d.ts +4 -0
- package/dist/functions/file/index.js +5 -0
- package/dist/functions/file/index.js.map +1 -0
- package/dist/functions/file/inferMediaType.d.ts +8 -0
- package/dist/functions/file/inferMediaType.js +24 -0
- package/dist/functions/file/inferMediaType.js.map +1 -0
- package/dist/functions/file/materialFileIcon.d.ts +10 -0
- package/dist/functions/file/materialFileIcon.js +36 -0
- package/dist/functions/file/materialFileIcon.js.map +1 -0
- package/dist/functions/im/parseImMentionSegments.js +7 -1
- package/dist/functions/im/parseImMentionSegments.js.map +1 -1
- package/dist/functions/path/index.d.ts +4 -0
- package/dist/functions/path/index.js +5 -0
- package/dist/functions/path/index.js.map +1 -0
- package/dist/functions/path/pathBasename.d.ts +1 -0
- package/dist/functions/path/pathBasename.js +11 -0
- package/dist/functions/path/pathBasename.js.map +1 -0
- package/dist/functions/path/pathDirname.d.ts +1 -0
- package/dist/functions/path/pathDirname.js +19 -0
- package/dist/functions/path/pathDirname.js.map +1 -0
- package/dist/functions/path/pathExtname.d.ts +4 -0
- package/dist/functions/path/pathExtname.js +15 -0
- package/dist/functions/path/pathExtname.js.map +1 -0
- package/dist/functions/path/pathLastSegment.d.ts +1 -0
- package/dist/functions/path/pathLastSegment.js +11 -0
- package/dist/functions/path/pathLastSegment.js.map +1 -0
- package/dist/functions/qiankun/createQiankunVueApp.js +94 -18
- package/dist/functions/qiankun/createQiankunVueApp.js.map +1 -1
- package/dist/functions/tree/index.d.ts +1 -0
- package/dist/functions/tree/index.js +2 -0
- package/dist/functions/tree/index.js.map +1 -0
- package/dist/functions/tree/pathsToTreeNodes.d.ts +26 -0
- package/dist/functions/tree/pathsToTreeNodes.js +102 -0
- package/dist/functions/tree/pathsToTreeNodes.js.map +1 -0
- package/dist/schemas/video.schema.d.ts +39 -39
- package/dist/schemas/video.schema.js +3 -3
- package/dist/schemas/video.schema.js.map +1 -1
- package/package.json +30 -14
- package/types/ai-llm-model-capabilities.d.ts +25 -0
- package/types/assets.d.ts +12 -0
- package/types/chat-shell-tab-config.d.ts +63 -0
- package/types/im-api.d.ts +7 -3
- package/types/im-chat.d.ts +16 -5
- package/types/video.d.ts +8 -4
- package/dist/functions/api/auth.d.ts +0 -14
- package/dist/functions/api/auth.js +0 -109
- package/dist/functions/api/auth.js.map +0 -1
- package/dist/functions/api/schemas/auth.schema.d.ts +0 -363
- package/dist/functions/api/schemas/auth.schema.js +0 -39
- package/dist/functions/api/schemas/auth.schema.js.map +0 -1
- package/dist/functions/api/schemas/video.schema.d.ts +0 -391
- package/dist/functions/api/schemas/video.schema.js +0 -55
- package/dist/functions/api/schemas/video.schema.js.map +0 -1
- package/dist/functions/api/video.d.ts +0 -62
- package/dist/functions/api/video.js +0 -243
- package/dist/functions/api/video.js.map +0 -1
- package/dist/functions/oss/uploadViaSignedPut.d.ts +0 -35
- package/dist/functions/oss/uploadViaSignedPut.js +0 -86
- package/dist/functions/oss/uploadViaSignedPut.js.map +0 -1
- package/dist/functions/software/publishToPgyer.d.ts +0 -16
- package/dist/functions/software/publishToPgyer.js +0 -96
- package/dist/functions/software/publishToPgyer.js.map +0 -1
- package/dist/functions/validation/generateFakeBankCard.d.ts +0 -87
- package/dist/functions/validation/generateFakeBankCard.js +0 -152
- package/dist/functions/validation/generateFakeBankCard.js.map +0 -1
- package/dist/functions/validation/generateFakeBusinessLicense.d.ts +0 -21
- package/dist/functions/validation/generateFakeBusinessLicense.js +0 -160
- package/dist/functions/validation/generateFakeBusinessLicense.js.map +0 -1
- package/dist/functions/validation/generateFakeDrivingLicense.d.ts +0 -31
- package/dist/functions/validation/generateFakeDrivingLicense.js +0 -119
- package/dist/functions/validation/generateFakeDrivingLicense.js.map +0 -1
- package/dist/functions/validation/generateFakeIdCard.d.ts +0 -30
- package/dist/functions/validation/generateFakeIdCard.js +0 -123
- package/dist/functions/validation/generateFakeIdCard.js.map +0 -1
- package/dist/functions/validation/generateFakeLicensePlate.d.ts +0 -13
- package/dist/functions/validation/generateFakeLicensePlate.js +0 -87
- package/dist/functions/validation/generateFakeLicensePlate.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AiLlmModelCapabilities, AiLlmModelCapabilitiesFormFlags } from '../../../types/ai-llm-model-capabilities';
|
|
2
|
+
export declare const DEFAULT_AI_LLM_MODEL_CAPABILITIES: AiLlmModelCapabilities;
|
|
3
|
+
export declare function normalizeAiLlmModelCapabilities(raw: unknown): AiLlmModelCapabilities;
|
|
4
|
+
export declare function capabilitiesFromDbRow(row: Record<string, unknown>): AiLlmModelCapabilities;
|
|
5
|
+
export declare function capabilitiesFlagsFromCapabilitiesRaw(capabilities: unknown): AiLlmModelCapabilitiesFormFlags;
|
|
6
|
+
export declare function capabilitiesFlagsFromModelRow(row: {
|
|
7
|
+
capabilities?: unknown;
|
|
8
|
+
}): AiLlmModelCapabilitiesFormFlags;
|
|
9
|
+
export declare function buildCapabilitiesPayload(flags: AiLlmModelCapabilitiesFormFlags): AiLlmModelCapabilities;
|
|
10
|
+
export declare function modelCallModeLabelFromCapabilities(capabilities: unknown): string;
|
|
11
|
+
export declare function modelCallModeLabelFromModelRow(row: {
|
|
12
|
+
capabilities?: unknown;
|
|
13
|
+
}): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const DEFAULT_AI_LLM_MODEL_CAPABILITIES = {
|
|
2
|
+
attachments: false,
|
|
3
|
+
imageInput: false,
|
|
4
|
+
streaming: true,
|
|
5
|
+
parameters: {
|
|
6
|
+
temperature: { enabled: true, min: 0, max: 2, default: 0.7 },
|
|
7
|
+
maxTokens: { enabled: false, min: 256, max: 8192, default: 4096 },
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
export function normalizeAiLlmModelCapabilities(raw) {
|
|
11
|
+
const base = {
|
|
12
|
+
...DEFAULT_AI_LLM_MODEL_CAPABILITIES,
|
|
13
|
+
parameters: { ...DEFAULT_AI_LLM_MODEL_CAPABILITIES.parameters },
|
|
14
|
+
};
|
|
15
|
+
if (raw == null || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
16
|
+
return base;
|
|
17
|
+
}
|
|
18
|
+
const o = raw;
|
|
19
|
+
if (typeof o.attachments === 'boolean')
|
|
20
|
+
base.attachments = o.attachments;
|
|
21
|
+
if (typeof o.imageInput === 'boolean')
|
|
22
|
+
base.imageInput = o.imageInput;
|
|
23
|
+
if (typeof o.streaming === 'boolean')
|
|
24
|
+
base.streaming = o.streaming;
|
|
25
|
+
const params = o.parameters;
|
|
26
|
+
if (params != null && typeof params === 'object' && !Array.isArray(params)) {
|
|
27
|
+
const p = params;
|
|
28
|
+
for (const key of ['temperature', 'maxTokens']) {
|
|
29
|
+
const spec = p[key];
|
|
30
|
+
if (spec != null && typeof spec === 'object' && !Array.isArray(spec)) {
|
|
31
|
+
const s = spec;
|
|
32
|
+
base.parameters[key] = {
|
|
33
|
+
enabled: s.enabled === true,
|
|
34
|
+
min: typeof s.min === 'number' ? s.min : undefined,
|
|
35
|
+
max: typeof s.max === 'number' ? s.max : undefined,
|
|
36
|
+
default: typeof s.default === 'number' ? s.default : undefined,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return base;
|
|
42
|
+
}
|
|
43
|
+
export function capabilitiesFromDbRow(row) {
|
|
44
|
+
return normalizeAiLlmModelCapabilities(row.capabilities);
|
|
45
|
+
}
|
|
46
|
+
export function capabilitiesFlagsFromCapabilitiesRaw(capabilities) {
|
|
47
|
+
const cap = normalizeAiLlmModelCapabilities(capabilities);
|
|
48
|
+
return {
|
|
49
|
+
attachments: cap.attachments,
|
|
50
|
+
imageInput: cap.imageInput,
|
|
51
|
+
temperature: cap.parameters.temperature?.enabled === true,
|
|
52
|
+
streaming: cap.streaming,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function capabilitiesFlagsFromModelRow(row) {
|
|
56
|
+
return capabilitiesFlagsFromCapabilitiesRaw(row.capabilities);
|
|
57
|
+
}
|
|
58
|
+
export function buildCapabilitiesPayload(flags) {
|
|
59
|
+
return {
|
|
60
|
+
attachments: flags.attachments,
|
|
61
|
+
imageInput: flags.imageInput,
|
|
62
|
+
streaming: flags.streaming,
|
|
63
|
+
parameters: {
|
|
64
|
+
temperature: {
|
|
65
|
+
enabled: flags.temperature,
|
|
66
|
+
min: 0,
|
|
67
|
+
max: 2,
|
|
68
|
+
default: 0.7,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export function modelCallModeLabelFromCapabilities(capabilities) {
|
|
74
|
+
const cap = normalizeAiLlmModelCapabilities(capabilities);
|
|
75
|
+
return cap.streaming ? 'SSE 流式' : 'HTTP 同步';
|
|
76
|
+
}
|
|
77
|
+
export function modelCallModeLabelFromModelRow(row) {
|
|
78
|
+
return modelCallModeLabelFromCapabilities(row.capabilities);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=aiLlmModelCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiLlmModelCapabilities.js","sourceRoot":"","sources":["../../../src/functions/ai/aiLlmModelCapabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ShortcutModKeyHint {
|
|
2
|
+
modKeyLabel: string;
|
|
3
|
+
ariaKeyshortcuts: string;
|
|
4
|
+
title: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function prefersMetaModifierInShortcutUi(userAgent: string): boolean;
|
|
7
|
+
export declare function getShortcutModKeyHint(userAgent: string | undefined): ShortcutModKeyHint;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { detectOS } from './detectOS';
|
|
2
|
+
const META_HINT = {
|
|
3
|
+
modKeyLabel: '⌘',
|
|
4
|
+
ariaKeyshortcuts: 'Meta+K',
|
|
5
|
+
title: '快捷键 Command K',
|
|
6
|
+
};
|
|
7
|
+
const CTRL_HINT = {
|
|
8
|
+
modKeyLabel: 'Ctrl',
|
|
9
|
+
ariaKeyshortcuts: 'Control+K',
|
|
10
|
+
title: '快捷键 Control K',
|
|
11
|
+
};
|
|
12
|
+
export function prefersMetaModifierInShortcutUi(userAgent) {
|
|
13
|
+
const os = detectOS({ userAgent });
|
|
14
|
+
return os === 'macOS' || os === 'iOS';
|
|
15
|
+
}
|
|
16
|
+
export function getShortcutModKeyHint(userAgent) {
|
|
17
|
+
if (!userAgent)
|
|
18
|
+
return CTRL_HINT;
|
|
19
|
+
return prefersMetaModifierInShortcutUi(userAgent) ? META_HINT : CTRL_HINT;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=shortcutModKeyHint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcutModKeyHint.js","sourceRoot":"","sources":["../../../src/functions/browser/shortcutModKeyHint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAQrC,MAAM,SAAS,GAAuB;IACpC,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,QAAQ;IAC1B,KAAK,EAAE,eAAe;CACvB,CAAA;AAED,MAAM,SAAS,GAAuB;IACpC,WAAW,EAAE,MAAM;IACnB,gBAAgB,EAAE,WAAW;IAC7B,KAAK,EAAE,eAAe;CACvB,CAAA;AAGD,MAAM,UAAU,+BAA+B,CAAC,SAAiB;IAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAClC,OAAO,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,KAAK,CAAA;AACvC,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,SAA6B;IACjE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAChC,OAAO,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3E,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ChatShellTabConfig, ChatShellTabbarItem } from '../../../types/chat-shell-tab-config';
|
|
2
|
+
export declare const DEFAULT_CHAT_SHELL_TABS: ChatShellTabConfig[];
|
|
3
|
+
export declare function isChatShellTabShellDark(tabs: ChatShellTabConfig[], activeKey: string): boolean;
|
|
4
|
+
export declare function parseChatShellTabsFromDisplays(displays: unknown): ChatShellTabConfig[];
|
|
5
|
+
export declare function filterChatShellTabsForRuntime(tabs: ChatShellTabConfig[], opts: {
|
|
6
|
+
isElectron: boolean;
|
|
7
|
+
}): ChatShellTabConfig[];
|
|
8
|
+
export declare function findChatShellDesktopFooterTab(tabs: ChatShellTabConfig[]): ChatShellTabConfig | undefined;
|
|
9
|
+
export declare function isChatShellMineTab(tab: {
|
|
10
|
+
key?: string;
|
|
11
|
+
useMineAvatar?: boolean;
|
|
12
|
+
}): boolean;
|
|
13
|
+
export type ChatShellNavTabbarItem = ChatShellTabbarItem & {
|
|
14
|
+
tooltip?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function buildChatShellNavTabbarItems(tabs: ChatShellTabConfig[]): ChatShellNavTabbarItem[];
|
|
17
|
+
export declare function buildChatShellMobileTabbarItems(tabs: ChatShellTabConfig[]): ChatShellTabbarItem[];
|
|
18
|
+
export declare function resolveChatShellTabRouteTarget(tab: ChatShellTabConfig): {
|
|
19
|
+
name: string;
|
|
20
|
+
} | {
|
|
21
|
+
path: string;
|
|
22
|
+
} | null;
|
|
23
|
+
export declare function toChatShellTabbarItem(tab: ChatShellTabConfig): ChatShellTabbarItem;
|
|
24
|
+
export declare function tabMatchesRoute(tab: ChatShellTabConfig, route: {
|
|
25
|
+
name?: string | symbol | null;
|
|
26
|
+
path?: string;
|
|
27
|
+
}): boolean;
|
|
28
|
+
export declare function resolveActiveTabKey(tabs: ChatShellTabConfig[], route: {
|
|
29
|
+
name?: string | symbol | null;
|
|
30
|
+
path?: string;
|
|
31
|
+
}): string;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
export const DEFAULT_CHAT_SHELL_TABS = [
|
|
2
|
+
{
|
|
3
|
+
key: 'messages',
|
|
4
|
+
label: '会话',
|
|
5
|
+
icon: 'a-huihuakuang',
|
|
6
|
+
iconActive: 'a-huihuakuang-filled',
|
|
7
|
+
route: '/messages',
|
|
8
|
+
routeName: 'chat',
|
|
9
|
+
desktopNav: true,
|
|
10
|
+
mobile: true,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
key: 'ai',
|
|
14
|
+
label: 'AI',
|
|
15
|
+
icon: 'cebian_liaotiancebianlan',
|
|
16
|
+
iconActive: 'rengongzhineng',
|
|
17
|
+
route: '/ai',
|
|
18
|
+
routeName: 'chat-ai',
|
|
19
|
+
desktopNav: true,
|
|
20
|
+
mobile: true,
|
|
21
|
+
shellDark: true,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
key: 'contacts',
|
|
25
|
+
label: '通讯录',
|
|
26
|
+
icon: 'pengyou',
|
|
27
|
+
route: '/contacts',
|
|
28
|
+
routeName: 'chat-contacts',
|
|
29
|
+
desktopNav: true,
|
|
30
|
+
mobile: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: 'org',
|
|
34
|
+
label: '组织',
|
|
35
|
+
icon: 'zuzhi',
|
|
36
|
+
route: '/org',
|
|
37
|
+
routeName: 'chat-org',
|
|
38
|
+
desktopNav: true,
|
|
39
|
+
mobile: true,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
key: 'short-video',
|
|
43
|
+
label: '短视频',
|
|
44
|
+
icon: 'Video',
|
|
45
|
+
route: '/short-video',
|
|
46
|
+
routeName: 'chat-short-video',
|
|
47
|
+
desktopNav: true,
|
|
48
|
+
mobile: true,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
key: 'docs',
|
|
52
|
+
label: '文档',
|
|
53
|
+
icon: 'wendang',
|
|
54
|
+
route: '/docs/home',
|
|
55
|
+
routeName: 'chat-docs-home',
|
|
56
|
+
routeNamePrefix: 'chat-doc',
|
|
57
|
+
desktopNav: true,
|
|
58
|
+
mobile: true,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: 'code',
|
|
62
|
+
label: '代码',
|
|
63
|
+
icon: 'code',
|
|
64
|
+
route: '/code',
|
|
65
|
+
routeName: 'chat-code',
|
|
66
|
+
routeNamePrefix: 'chat-code',
|
|
67
|
+
electronOnly: true,
|
|
68
|
+
desktopNav: true,
|
|
69
|
+
mobile: false,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
key: 'mine',
|
|
73
|
+
label: '我的',
|
|
74
|
+
route: '/mine',
|
|
75
|
+
routeName: 'chat-mine',
|
|
76
|
+
relatedRouteNames: ['chat-wallet'],
|
|
77
|
+
hideLabel: true,
|
|
78
|
+
useMineAvatar: true,
|
|
79
|
+
desktopNav: false,
|
|
80
|
+
desktopFooter: true,
|
|
81
|
+
mobile: true,
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
function normalizeTab(raw) {
|
|
85
|
+
if (raw == null || typeof raw !== 'object' || Array.isArray(raw))
|
|
86
|
+
return null;
|
|
87
|
+
const o = raw;
|
|
88
|
+
const key = String(o.key ?? '').trim();
|
|
89
|
+
if (!key)
|
|
90
|
+
return null;
|
|
91
|
+
const label = String(o.label ?? key).trim();
|
|
92
|
+
return {
|
|
93
|
+
key,
|
|
94
|
+
label,
|
|
95
|
+
icon: o.icon != null ? String(o.icon).trim() : undefined,
|
|
96
|
+
iconActive: o.iconActive != null ? String(o.iconActive).trim() : undefined,
|
|
97
|
+
route: o.route != null ? String(o.route).trim() : undefined,
|
|
98
|
+
routeName: o.routeName != null ? String(o.routeName).trim() : undefined,
|
|
99
|
+
routeNamePrefix: o.routeNamePrefix != null ? String(o.routeNamePrefix).trim() : undefined,
|
|
100
|
+
relatedRouteNames: Array.isArray(o.relatedRouteNames)
|
|
101
|
+
? o.relatedRouteNames.map((n) => String(n).trim()).filter(Boolean)
|
|
102
|
+
: undefined,
|
|
103
|
+
hideLabel: o.hideLabel === true,
|
|
104
|
+
desktopHideLabel: o.desktopHideLabel === false
|
|
105
|
+
? false
|
|
106
|
+
: o.desktopHideLabel === true
|
|
107
|
+
? true
|
|
108
|
+
: undefined,
|
|
109
|
+
electronOnly: o.electronOnly === true,
|
|
110
|
+
desktopNav: o.desktopNav !== false,
|
|
111
|
+
desktopFooter: o.desktopFooter === true,
|
|
112
|
+
mobile: o.mobile !== false,
|
|
113
|
+
useMineAvatar: o.useMineAvatar === true,
|
|
114
|
+
shellDark: o.shellDark === true ? true : undefined,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export function isChatShellTabShellDark(tabs, activeKey) {
|
|
118
|
+
const tab = tabs.find((t) => t.key === activeKey);
|
|
119
|
+
return tab?.shellDark === true;
|
|
120
|
+
}
|
|
121
|
+
export function parseChatShellTabsFromDisplays(displays) {
|
|
122
|
+
const d = displays;
|
|
123
|
+
const shell = d?.chatShell;
|
|
124
|
+
const fromShell = shell?.tabs;
|
|
125
|
+
if (Array.isArray(fromShell) && fromShell.length > 0) {
|
|
126
|
+
const parsed = fromShell
|
|
127
|
+
.map((t) => normalizeTab(t))
|
|
128
|
+
.filter((t) => t != null);
|
|
129
|
+
if (parsed.length > 0)
|
|
130
|
+
return parsed;
|
|
131
|
+
}
|
|
132
|
+
const legacy = d
|
|
133
|
+
?.mobileTabbar?.enabledTabs;
|
|
134
|
+
if (Array.isArray(legacy) && legacy.length > 0) {
|
|
135
|
+
const order = legacy.map((x) => String(x));
|
|
136
|
+
const byKey = new Map(DEFAULT_CHAT_SHELL_TABS.map((t) => [t.key, { ...t }]));
|
|
137
|
+
const out = [];
|
|
138
|
+
for (const key of order) {
|
|
139
|
+
const tab = byKey.get(key);
|
|
140
|
+
if (tab)
|
|
141
|
+
out.push(tab);
|
|
142
|
+
}
|
|
143
|
+
return out.length > 0 ? out : [...DEFAULT_CHAT_SHELL_TABS];
|
|
144
|
+
}
|
|
145
|
+
return [...DEFAULT_CHAT_SHELL_TABS];
|
|
146
|
+
}
|
|
147
|
+
export function filterChatShellTabsForRuntime(tabs, opts) {
|
|
148
|
+
return tabs.filter((t) => {
|
|
149
|
+
if (t.electronOnly && !opts.isElectron)
|
|
150
|
+
return false;
|
|
151
|
+
return true;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
export function findChatShellDesktopFooterTab(tabs) {
|
|
155
|
+
return tabs.find((t) => t.desktopFooter === true);
|
|
156
|
+
}
|
|
157
|
+
export function isChatShellMineTab(tab) {
|
|
158
|
+
return tab.useMineAvatar === true;
|
|
159
|
+
}
|
|
160
|
+
export function buildChatShellNavTabbarItems(tabs) {
|
|
161
|
+
return tabs
|
|
162
|
+
.filter((t) => t.desktopNav !== false && !t.desktopFooter)
|
|
163
|
+
.map((t) => {
|
|
164
|
+
const item = toChatShellTabbarItem(t);
|
|
165
|
+
const hideLabelOnDesktop = t.desktopHideLabel !== false;
|
|
166
|
+
const tip = (item.label || item.ariaLabel || '').trim() || undefined;
|
|
167
|
+
return {
|
|
168
|
+
...item,
|
|
169
|
+
hideLabel: hideLabelOnDesktop,
|
|
170
|
+
tooltip: hideLabelOnDesktop ? tip : undefined,
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
export function buildChatShellMobileTabbarItems(tabs) {
|
|
175
|
+
return tabs.filter((t) => t.mobile !== false).map((t) => toChatShellTabbarItem(t));
|
|
176
|
+
}
|
|
177
|
+
export function resolveChatShellTabRouteTarget(tab) {
|
|
178
|
+
const routeName = tab.routeName?.trim();
|
|
179
|
+
if (routeName)
|
|
180
|
+
return { name: routeName };
|
|
181
|
+
const path = tab.route?.trim();
|
|
182
|
+
if (!path)
|
|
183
|
+
return null;
|
|
184
|
+
return path.startsWith('/') ? { path } : { path: `/${path}` };
|
|
185
|
+
}
|
|
186
|
+
export function toChatShellTabbarItem(tab) {
|
|
187
|
+
return {
|
|
188
|
+
key: tab.key,
|
|
189
|
+
label: tab.label,
|
|
190
|
+
icon: '',
|
|
191
|
+
iconName: tab.icon,
|
|
192
|
+
iconActiveName: tab.iconActive || tab.icon,
|
|
193
|
+
hideLabel: tab.hideLabel,
|
|
194
|
+
ariaLabel: tab.hideLabel ? tab.label || tab.key : undefined,
|
|
195
|
+
useMineAvatar: tab.useMineAvatar,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
export function tabMatchesRoute(tab, route) {
|
|
199
|
+
const name = route.name != null ? String(route.name) : '';
|
|
200
|
+
const path = route.path ?? '';
|
|
201
|
+
if (tab.routeName && name === tab.routeName)
|
|
202
|
+
return true;
|
|
203
|
+
if (tab.routeNamePrefix && name.startsWith(tab.routeNamePrefix))
|
|
204
|
+
return true;
|
|
205
|
+
if (tab.relatedRouteNames?.includes(name))
|
|
206
|
+
return true;
|
|
207
|
+
const r = tab.route?.trim();
|
|
208
|
+
if (r) {
|
|
209
|
+
const p = r.startsWith('/') ? r : `/${r}`;
|
|
210
|
+
if (path === p || path.startsWith(`${p}/`))
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
export function resolveActiveTabKey(tabs, route) {
|
|
216
|
+
const hit = tabs.find((t) => tabMatchesRoute(t, route));
|
|
217
|
+
return hit?.key ?? tabs[0]?.key ?? '';
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=chatShellTabConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatShellTabConfig.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ChatShellTabConfig } from '../../../types/chat-shell-tab-config';
|
|
2
|
+
export type EditableChatShellTab = ChatShellTabConfig & {
|
|
3
|
+
_localId: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function resetChatShellTabEditorLocalIds(): void;
|
|
6
|
+
export declare function toEditableChatShellTabs(tabs: ChatShellTabConfig[]): EditableChatShellTab[];
|
|
7
|
+
export declare function stripEditableChatShellTabs(tabs: EditableChatShellTab[]): ChatShellTabConfig[];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
let localIdSeq = 0;
|
|
2
|
+
function nextLocalId() {
|
|
3
|
+
localIdSeq += 1;
|
|
4
|
+
return `tab-${localIdSeq}`;
|
|
5
|
+
}
|
|
6
|
+
export function resetChatShellTabEditorLocalIds() {
|
|
7
|
+
localIdSeq = 0;
|
|
8
|
+
}
|
|
9
|
+
export function toEditableChatShellTabs(tabs) {
|
|
10
|
+
return tabs.map((t) => ({
|
|
11
|
+
...t,
|
|
12
|
+
_localId: nextLocalId(),
|
|
13
|
+
desktopNav: t.desktopNav !== false,
|
|
14
|
+
mobile: t.mobile !== false,
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
export function stripEditableChatShellTabs(tabs) {
|
|
18
|
+
return tabs.map(({ _localId: _, ...rest }) => {
|
|
19
|
+
const tab = {
|
|
20
|
+
key: rest.key.trim(),
|
|
21
|
+
label: rest.label.trim(),
|
|
22
|
+
icon: rest.icon?.trim() || undefined,
|
|
23
|
+
iconActive: rest.iconActive?.trim() || undefined,
|
|
24
|
+
route: rest.route?.trim() || undefined,
|
|
25
|
+
routeName: rest.routeName?.trim() || undefined,
|
|
26
|
+
routeNamePrefix: rest.routeNamePrefix?.trim() || undefined,
|
|
27
|
+
relatedRouteNames: rest.relatedRouteNames && rest.relatedRouteNames.length > 0
|
|
28
|
+
? rest.relatedRouteNames
|
|
29
|
+
: undefined,
|
|
30
|
+
electronOnly: rest.electronOnly === true ? true : undefined,
|
|
31
|
+
desktopNav: rest.desktopNav === false ? false : undefined,
|
|
32
|
+
desktopFooter: rest.desktopFooter === true ? true : undefined,
|
|
33
|
+
mobile: rest.mobile === false ? false : undefined,
|
|
34
|
+
useMineAvatar: rest.useMineAvatar === true ? true : undefined,
|
|
35
|
+
hideLabel: rest.hideLabel === true ? true : undefined,
|
|
36
|
+
desktopHideLabel: rest.desktopHideLabel === false ? false : undefined,
|
|
37
|
+
shellDark: rest.shellDark === true ? true : undefined,
|
|
38
|
+
};
|
|
39
|
+
return tab;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=chatShellTabEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatShellTabEditor.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabEditor.ts"],"names":[],"mappings":"AAKA,IAAI,UAAU,GAAG,CAAC,CAAA;AAClB,SAAS,WAAW;IAClB,UAAU,IAAI,CAAC,CAAA;IACf,OAAO,OAAO,UAAU,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,UAAU,GAAG,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAA0B;IAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC;QACJ,QAAQ,EAAE,WAAW,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,KAAK;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAA4B;IAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAuB;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,SAAS;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,SAAS;YAC9C,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,SAAS;YAC1D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,iBAAiB;gBACxB,CAAC,CAAC,SAAS;YACf,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC3D,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACzD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACjD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrE,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type CodeLanguage = 'typescript' | 'javascript' | 'json' | 'css' | 'html' | 'vue' | 'markdown' | 'python' | 'sql' | 'xml' | 'yaml' | 'java' | 'cpp' | 'plaintext';
|
|
2
|
+
export declare function getLanguageFromExtension(path: string | null | undefined): CodeLanguage;
|
|
3
|
+
export declare function getCodeMirrorLanguage(path: string | null | undefined): string;
|
|
4
|
+
export declare function isFrontendLanguage(path: string | null | undefined): boolean;
|
|
5
|
+
export declare function isHighlightable(path: string | null | undefined): boolean;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const EXTENSION_TO_LANGUAGE = {
|
|
2
|
+
ts: 'typescript',
|
|
3
|
+
tsx: 'typescript',
|
|
4
|
+
mts: 'typescript',
|
|
5
|
+
cts: 'typescript',
|
|
6
|
+
js: 'javascript',
|
|
7
|
+
jsx: 'javascript',
|
|
8
|
+
mjs: 'javascript',
|
|
9
|
+
cjs: 'javascript',
|
|
10
|
+
json: 'json',
|
|
11
|
+
jsonc: 'json',
|
|
12
|
+
json5: 'json',
|
|
13
|
+
css: 'css',
|
|
14
|
+
scss: 'css',
|
|
15
|
+
sass: 'css',
|
|
16
|
+
less: 'css',
|
|
17
|
+
styl: 'css',
|
|
18
|
+
stylus: 'css',
|
|
19
|
+
html: 'html',
|
|
20
|
+
htm: 'html',
|
|
21
|
+
hbs: 'html',
|
|
22
|
+
handlebars: 'html',
|
|
23
|
+
vue: 'vue',
|
|
24
|
+
md: 'markdown',
|
|
25
|
+
mdx: 'markdown',
|
|
26
|
+
markdown: 'markdown',
|
|
27
|
+
py: 'python',
|
|
28
|
+
pyw: 'python',
|
|
29
|
+
pyi: 'python',
|
|
30
|
+
sql: 'sql',
|
|
31
|
+
mysql: 'sql',
|
|
32
|
+
pgsql: 'sql',
|
|
33
|
+
plsql: 'sql',
|
|
34
|
+
xml: 'xml',
|
|
35
|
+
svg: 'xml',
|
|
36
|
+
xsd: 'xml',
|
|
37
|
+
xsl: 'xml',
|
|
38
|
+
xslt: 'xml',
|
|
39
|
+
wsdl: 'xml',
|
|
40
|
+
yaml: 'yaml',
|
|
41
|
+
yml: 'yaml',
|
|
42
|
+
java: 'java',
|
|
43
|
+
cpp: 'cpp',
|
|
44
|
+
cc: 'cpp',
|
|
45
|
+
cxx: 'cpp',
|
|
46
|
+
hpp: 'cpp',
|
|
47
|
+
c: 'cpp',
|
|
48
|
+
h: 'cpp',
|
|
49
|
+
hh: 'cpp',
|
|
50
|
+
};
|
|
51
|
+
export function getLanguageFromExtension(path) {
|
|
52
|
+
if (!path) {
|
|
53
|
+
return 'plaintext';
|
|
54
|
+
}
|
|
55
|
+
const basename = path.split('/').pop() ?? path;
|
|
56
|
+
const lastDotIndex = basename.lastIndexOf('.');
|
|
57
|
+
if (lastDotIndex <= 0) {
|
|
58
|
+
return 'plaintext';
|
|
59
|
+
}
|
|
60
|
+
const ext = basename.slice(lastDotIndex + 1).toLowerCase();
|
|
61
|
+
return EXTENSION_TO_LANGUAGE[ext] ?? 'plaintext';
|
|
62
|
+
}
|
|
63
|
+
export function getCodeMirrorLanguage(path) {
|
|
64
|
+
const lang = getLanguageFromExtension(path);
|
|
65
|
+
const codemirrorMap = {
|
|
66
|
+
typescript: 'typescript',
|
|
67
|
+
javascript: 'javascript',
|
|
68
|
+
json: 'json',
|
|
69
|
+
css: 'css',
|
|
70
|
+
html: 'html',
|
|
71
|
+
vue: 'vue',
|
|
72
|
+
markdown: 'markdown',
|
|
73
|
+
python: 'python',
|
|
74
|
+
sql: 'sql',
|
|
75
|
+
xml: 'xml',
|
|
76
|
+
yaml: 'yaml',
|
|
77
|
+
java: 'java',
|
|
78
|
+
cpp: 'cpp',
|
|
79
|
+
plaintext: 'plaintext',
|
|
80
|
+
};
|
|
81
|
+
return codemirrorMap[lang];
|
|
82
|
+
}
|
|
83
|
+
export function isFrontendLanguage(path) {
|
|
84
|
+
const lang = getLanguageFromExtension(path);
|
|
85
|
+
return ['typescript', 'javascript', 'vue', 'css', 'html'].includes(lang);
|
|
86
|
+
}
|
|
87
|
+
export function isHighlightable(path) {
|
|
88
|
+
return getLanguageFromExtension(path) !== 'plaintext';
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=getLanguageFromExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLanguageFromExtension.js","sourceRoot":"","sources":["../../../src/functions/code/getLanguageFromExtension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getLanguageFromExtension, getCodeMirrorLanguage, isFrontendLanguage, isHighlightable, type CodeLanguage, } from './getLanguageFromExtension';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/code/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAEhB,MAAM,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function copyTextToClipboard(text: string): Promise<boolean>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export async function copyTextToClipboard(text) {
|
|
2
|
+
if (text === '')
|
|
3
|
+
return false;
|
|
4
|
+
const w = globalThis;
|
|
5
|
+
const doc = w.document;
|
|
6
|
+
const nav = w.navigator;
|
|
7
|
+
if (!doc?.body)
|
|
8
|
+
return false;
|
|
9
|
+
if (nav?.clipboard?.writeText) {
|
|
10
|
+
try {
|
|
11
|
+
await nav.clipboard.writeText(text);
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const ta = doc.createElement('textarea');
|
|
19
|
+
const t = ta;
|
|
20
|
+
t.value = text;
|
|
21
|
+
t.readOnly = true;
|
|
22
|
+
t.style.cssText =
|
|
23
|
+
'position:fixed;top:0;left:0;width:2em;height:2em;padding:0;border:none;outline:none;opacity:0;pointer-events:none;';
|
|
24
|
+
doc.body.appendChild(ta);
|
|
25
|
+
t.focus();
|
|
26
|
+
t.select();
|
|
27
|
+
t.setSelectionRange(0, text.length);
|
|
28
|
+
const ok = doc.execCommand?.('copy') ?? false;
|
|
29
|
+
doc.body.removeChild(ta);
|
|
30
|
+
return ok;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=copyTextToClipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyTextToClipboard.js","sourceRoot":"","sources":["../../../src/functions/dom/copyTextToClipboard.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAC7B,MAAM,CAAC,GAAG,UAAuE,CAAA;IACjF,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAA;IACtB,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAA;IACvB,IAAI,CAAC,GAAG,EAAE,IAAI;QAAE,OAAO,KAAK,CAAA;IAE5B,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACnC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACxC,MAAM,CAAC,GAAG,EAOT,CAAA;QACD,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;QACd,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC,CAAC,KAAK,CAAC,OAAO;YACb,oHAAoH,CAAA;QACtH,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC,KAAK,EAAE,CAAA;QACT,CAAC,CAAC,MAAM,EAAE,CAAA;QACV,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,EAAE,GAAI,GAAuB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;QAClE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|