@blueking/chat-x 0.0.51-beta.5 → 0.0.52-dev.1
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/README.md +15 -8
- package/dist/ag-ui/types/contents.d.ts +2 -0
- package/dist/ag-ui/types/messages.d.ts +6 -1
- package/dist/common/constants.d.ts +2 -0
- package/dist/components/ai-buttons/add-menu-btn/add-menu-btn.vue.d.ts +24 -0
- package/dist/components/chat-content/collapsible-content/collapsible-content.vue.d.ts +28 -0
- package/dist/components/chat-content/file-content/upload-file-item.vue.d.ts +5 -2
- package/dist/components/chat-content/file-content/upload-image-item.vue.d.ts +1 -0
- package/dist/components/chat-content/flow-agent-content/use-flow-node-actions.d.ts +1 -1
- package/dist/components/chat-input/ai-slash-input/ai-slash-input.vue.d.ts +21 -10
- package/dist/components/chat-input/ai-slash-input/command.d.ts +6 -3
- package/dist/components/chat-input/ai-slash-input/constants.d.ts +2 -0
- package/dist/components/chat-input/ai-slash-input/use-menu-trigger.d.ts +17 -0
- package/dist/components/chat-input/build-default-placeholder.d.ts +9 -3
- package/dist/components/chat-input/chat-input.vue.d.ts +30 -18
- package/dist/components/chat-input/input-menu/constants.d.ts +60 -0
- package/dist/components/chat-input/input-menu/index.d.ts +4 -0
- package/dist/components/chat-input/input-menu/input-menu-option.vue.d.ts +14 -0
- package/dist/components/chat-input/input-menu/input-menu-panel.vue.d.ts +17 -0
- package/dist/components/chat-input/input-menu/use-input-menu.d.ts +22 -0
- package/dist/components/chat-input/model-selector/types.d.ts +3 -2
- package/dist/components/chat-message/message-container/message-container.vue.d.ts +1 -1
- package/dist/components/chat-message/user-message/user-message.vue.d.ts +1 -1
- package/dist/components/mention/create-mention-tippy.d.ts +27 -0
- package/dist/components/mention/index.d.ts +4 -0
- package/dist/components/{chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue.d.ts → mention/mention-popover.vue.d.ts} +3 -2
- package/dist/components/{chat-input/ai-slash-input/ai-skill-list/ai-skill-list.vue.d.ts → mention/mention-tag.vue.d.ts} +7 -3
- package/dist/components/{chat-input/ai-slash-input/ai-slash-menu/ai-slash-menu.vue.d.ts → mention/mention-text.vue.d.ts} +3 -3
- package/dist/components/resource-icon/index.d.ts +1 -0
- package/dist/components/resource-icon/resource-icon.vue.d.ts +11 -0
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/use-artifact-preview.d.ts +5 -2
- package/dist/composables/use-common.d.ts +0 -9
- package/dist/composables/use-global-config.d.ts +4 -0
- package/dist/composables/use-input-mention.d.ts +13 -0
- package/dist/composables/use-message-group.d.ts +1011 -72
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/input.d.ts +21 -0
- package/dist/icons/menu-item.d.ts +22 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4953 -4429
- package/dist/index.js.map +1 -1
- package/dist/lang/lang.d.ts +13 -3
- package/dist/mcp/generated/docs/activity-message.md +3 -3
- package/dist/mcp/generated/docs/add-menu-btn.md +91 -0
- package/dist/mcp/generated/docs/ai-slash-input.md +72 -26
- package/dist/mcp/generated/docs/assistant-message.md +7 -1
- package/dist/mcp/generated/docs/chat-container.md +45 -6
- package/dist/mcp/generated/docs/chat-input.md +327 -483
- package/dist/mcp/generated/docs/collapsible-content.md +78 -0
- package/dist/mcp/generated/docs/constants.md +36 -3
- package/dist/mcp/generated/docs/execution-summary.md +1 -23
- package/dist/mcp/generated/docs/file-artifact-panel.md +24 -5
- package/dist/mcp/generated/docs/file-content.md +4 -0
- package/dist/mcp/generated/docs/file-upload-btn.md +15 -12
- package/dist/mcp/generated/docs/flow-agent-content.md +10 -12
- package/dist/mcp/generated/docs/input-menu-panel.md +166 -0
- package/dist/mcp/generated/docs/mention-tag.md +83 -0
- package/dist/mcp/generated/docs/mention-text.md +86 -0
- package/dist/mcp/generated/docs/message-container.md +1 -1
- package/dist/mcp/generated/docs/message-render.md +1 -1
- package/dist/mcp/generated/docs/message-tools.md +15 -4
- package/dist/mcp/generated/docs/messages.md +3 -0
- package/dist/mcp/generated/docs/model-selector.md +4 -2
- package/dist/mcp/generated/docs/overflow-tips.md +3 -3
- package/dist/mcp/generated/docs/resource-icon.md +102 -0
- package/dist/mcp/generated/docs/text-content.md +7 -3
- package/dist/mcp/generated/docs/theme.md +27 -35
- package/dist/mcp/generated/docs/use-artifact-preview.md +7 -3
- package/dist/mcp/generated/docs/use-command-selection.md +1 -1
- package/dist/mcp/generated/docs/use-container-scroll.md +2 -1
- package/dist/mcp/generated/docs/use-flow-node-actions.md +8 -15
- package/dist/mcp/generated/docs/use-global-config.md +11 -4
- package/dist/mcp/generated/docs/use-input-mention.md +119 -0
- package/dist/mcp/generated/docs/use-menu-keydown.md +15 -16
- package/dist/mcp/generated/docs/use-message-group.md +3 -6
- package/dist/mcp/generated/docs/user-message.md +39 -17
- package/dist/mcp/generated/index.json +233 -81
- package/dist/types/editor.d.ts +0 -29
- package/dist/types/index.d.ts +1 -0
- package/dist/types/input-menu.d.ts +46 -0
- package/dist/utils/artifact-tags.d.ts +36 -0
- package/dist/utils/collect-message-artifacts.d.ts +14 -0
- package/dist/utils/file.d.ts +3 -3
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/upload-file.d.ts +6 -1
- package/package.json +3 -2
- package/skills/blueking-chat-x/SKILL.md +143 -0
- package/skills/blueking-chat-x/references/_index.md +153 -0
- package/skills/blueking-chat-x/references/components/activity-layout.md +134 -0
- package/skills/blueking-chat-x/references/components/activity-message.md +486 -0
- package/skills/blueking-chat-x/references/components/add-menu-btn.md +88 -0
- package/skills/blueking-chat-x/references/components/ai-image.md +230 -0
- package/skills/blueking-chat-x/references/components/ai-loading.md +131 -0
- package/skills/blueking-chat-x/references/components/ai-selection.md +439 -0
- package/skills/blueking-chat-x/references/components/ai-slash-input.md +102 -0
- package/skills/blueking-chat-x/references/components/animation-text.md +202 -0
- package/skills/blueking-chat-x/references/components/assistant-message.md +504 -0
- package/skills/blueking-chat-x/references/components/chat-container.md +912 -0
- package/skills/blueking-chat-x/references/components/chat-input.md +614 -0
- package/skills/blueking-chat-x/references/components/cite-content.md +142 -0
- package/skills/blueking-chat-x/references/components/code-content.md +211 -0
- package/skills/blueking-chat-x/references/components/collapsible-content.md +76 -0
- package/skills/blueking-chat-x/references/components/common-error-content.md +73 -0
- package/skills/blueking-chat-x/references/components/content-render.md +233 -0
- package/skills/blueking-chat-x/references/components/delete-tool.md +191 -0
- package/skills/blueking-chat-x/references/components/desc-panel.md +162 -0
- package/skills/blueking-chat-x/references/components/detail-section.md +91 -0
- package/skills/blueking-chat-x/references/components/execution-summary.md +150 -0
- package/skills/blueking-chat-x/references/components/file-artifact-panel.md +307 -0
- package/skills/blueking-chat-x/references/components/file-content.md +340 -0
- package/skills/blueking-chat-x/references/components/file-icon.md +109 -0
- package/skills/blueking-chat-x/references/components/file-upload-btn.md +162 -0
- package/skills/blueking-chat-x/references/components/flow-agent-content.md +266 -0
- package/skills/blueking-chat-x/references/components/flow-agent-node-detail.md +236 -0
- package/skills/blueking-chat-x/references/components/highlight-keyword.md +146 -0
- package/skills/blueking-chat-x/references/components/image-content.md +182 -0
- package/skills/blueking-chat-x/references/components/image-preview-group.md +184 -0
- package/skills/blueking-chat-x/references/components/image-preview.md +226 -0
- package/skills/blueking-chat-x/references/components/info-message.md +144 -0
- package/skills/blueking-chat-x/references/components/input-attachment.md +49 -0
- package/skills/blueking-chat-x/references/components/input-info-alert.md +42 -0
- package/skills/blueking-chat-x/references/components/input-menu-panel.md +162 -0
- package/skills/blueking-chat-x/references/components/interrupt-message.md +212 -0
- package/skills/blueking-chat-x/references/components/key-value-content.md +128 -0
- package/skills/blueking-chat-x/references/components/knowledge-rag-content.md +122 -0
- package/skills/blueking-chat-x/references/components/latex-content.md +200 -0
- package/skills/blueking-chat-x/references/components/loading-message.md +192 -0
- package/skills/blueking-chat-x/references/components/markdown-content.md +232 -0
- package/skills/blueking-chat-x/references/components/mention-tag.md +79 -0
- package/skills/blueking-chat-x/references/components/mention-text.md +83 -0
- package/skills/blueking-chat-x/references/components/mermaid-content.md +189 -0
- package/skills/blueking-chat-x/references/components/message-container.md +645 -0
- package/skills/blueking-chat-x/references/components/message-loading.md +118 -0
- package/skills/blueking-chat-x/references/components/message-render.md +327 -0
- package/skills/blueking-chat-x/references/components/message-time.md +177 -0
- package/skills/blueking-chat-x/references/components/message-tools.md +427 -0
- package/skills/blueking-chat-x/references/components/model-selector.md +157 -0
- package/skills/blueking-chat-x/references/components/preview-toolbar.md +42 -0
- package/skills/blueking-chat-x/references/components/questions-container.md +85 -0
- package/skills/blueking-chat-x/references/components/reasoning-message.md +232 -0
- package/skills/blueking-chat-x/references/components/reference-content.md +135 -0
- package/skills/blueking-chat-x/references/components/reference-doc-content.md +109 -0
- package/skills/blueking-chat-x/references/components/resource-icon.md +98 -0
- package/skills/blueking-chat-x/references/components/scroll-btn.md +159 -0
- package/skills/blueking-chat-x/references/components/selection-footer.md +78 -0
- package/skills/blueking-chat-x/references/components/selection-question.md +88 -0
- package/skills/blueking-chat-x/references/components/shortcut-btn.md +204 -0
- package/skills/blueking-chat-x/references/components/shortcut-btns.md +266 -0
- package/skills/blueking-chat-x/references/components/shortcut-render.md +424 -0
- package/skills/blueking-chat-x/references/components/simple-table.md +101 -0
- package/skills/blueking-chat-x/references/components/text-content.md +80 -0
- package/skills/blueking-chat-x/references/components/tool-approval-card.md +183 -0
- package/skills/blueking-chat-x/references/components/tool-btn.md +317 -0
- package/skills/blueking-chat-x/references/components/tool-message.md +235 -0
- package/skills/blueking-chat-x/references/components/toolcall-render.md +348 -0
- package/skills/blueking-chat-x/references/components/user-feedback.md +233 -0
- package/skills/blueking-chat-x/references/components/user-message.md +444 -0
- package/skills/blueking-chat-x/references/components/user-question-answered-card.md +104 -0
- package/skills/blueking-chat-x/references/components/user-question-card.md +231 -0
- package/skills/blueking-chat-x/references/components/user-question-choice.md +105 -0
- package/skills/blueking-chat-x/references/components/user-question-option.md +42 -0
- package/skills/blueking-chat-x/references/components/vnode-renderer.md +122 -0
- package/skills/blueking-chat-x/references/composables/use-animation-text.md +196 -0
- package/skills/blueking-chat-x/references/composables/use-artifact-preview.md +235 -0
- package/skills/blueking-chat-x/references/composables/use-clipboard.md +203 -0
- package/skills/blueking-chat-x/references/composables/use-command-selection.md +150 -0
- package/skills/blueking-chat-x/references/composables/use-container-scroll.md +57 -0
- package/skills/blueking-chat-x/references/composables/use-custom-tab.md +158 -0
- package/skills/blueking-chat-x/references/composables/use-flow-node-actions.md +164 -0
- package/skills/blueking-chat-x/references/composables/use-full-screen.md +112 -0
- package/skills/blueking-chat-x/references/composables/use-global-config.md +155 -0
- package/skills/blueking-chat-x/references/composables/use-input-mention.md +115 -0
- package/skills/blueking-chat-x/references/composables/use-menu-keydown.md +161 -0
- package/skills/blueking-chat-x/references/composables/use-message-group.md +244 -0
- package/skills/blueking-chat-x/references/composables/use-observer-visible-list.md +188 -0
- package/skills/blueking-chat-x/references/composables/use-parent-scrolling.md +46 -0
- package/skills/blueking-chat-x/references/directives/index.md +61 -0
- package/skills/blueking-chat-x/references/directives/overflow-tips.md +205 -0
- package/skills/blueking-chat-x/references/icons/index.md +185 -0
- package/skills/blueking-chat-x/references/plugins/index.md +56 -0
- package/skills/blueking-chat-x/references/plugins/markdown-container.md +55 -0
- package/skills/blueking-chat-x/references/plugins/markdown-latex.md +205 -0
- package/skills/blueking-chat-x/references/plugins/markdown-mermaid.md +247 -0
- package/skills/blueking-chat-x/references/theme/theme.md +423 -0
- package/skills/blueking-chat-x/references/types/constants.md +340 -0
- package/skills/blueking-chat-x/references/types/index.md +120 -0
- package/skills/blueking-chat-x/references/types/interrupt.md +379 -0
- package/skills/blueking-chat-x/references/types/messages.md +556 -0
- package/skills/blueking-chat-x/references/types/schema.md +91 -0
- package/skills/blueking-chat-x/references/utils/index.md +196 -0
- package/skills/blueking-chat-x/scripts/generate-references.mjs +536 -0
- package/dist/components/chat-input/ai-slash-editor/ai-slash-editor.vue.d.ts +0 -28
- package/dist/components/chat-input/ai-slash-editor/theme.d.ts +0 -24
- package/dist/mcp/generated/docs/ai-prompt-list.md +0 -45
- package/dist/mcp/generated/docs/ai-skill-list.md +0 -75
- package/dist/mcp/generated/docs/ai-slash-editor.md +0 -43
- package/dist/mcp/generated/docs/ai-slash-menu.md +0 -42
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# 工具函数
|
|
2
|
+
|
|
3
|
+
`@blueking/chat-x` 提供了一些工具函数,用于处理 Markdown、Cookie 等常见操作。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 工具函数
|
|
8
|
+
|
|
9
|
+
`@blueking/chat-x` 提供了一些工具函数,用于处理 Markdown、Cookie 等常见操作。
|
|
10
|
+
|
|
11
|
+
## 函数列表
|
|
12
|
+
|
|
13
|
+
| 函数名 | 说明 |
|
|
14
|
+
| -------------------------- | ------------------------------------------------- |
|
|
15
|
+
| `completeMarkdown` | Markdown 语法补全 |
|
|
16
|
+
| `completeMarkdownSyntax` | 流式 Markdown 语法补全 |
|
|
17
|
+
| `getCookieByName` | 获取 Cookie 值 |
|
|
18
|
+
| `mergeToolsById` | 按 id 合并消息工具栏按钮,`hidden: true` 可隐藏 |
|
|
19
|
+
| `collectMessageArtifacts` | 从会话消息里收集「会话产物」作为输入框菜单条目 |
|
|
20
|
+
| `toArtifactMenuItem` | 把单个文件产物转成输入框菜单条目 |
|
|
21
|
+
| `toArtifactTagNode` | 把文件转成 `artifact` 标签节点(`name`→`label`、`outputId`→`value`) |
|
|
22
|
+
| `appendArtifactTags` | 发送前把附件补成一行 `artifact` 标签,按 `value` 去重 |
|
|
23
|
+
| `omitArtifactTags` | 回显 / 编辑回填前剥掉由附件卡片承载的 `artifact` 标签 |
|
|
24
|
+
|
|
25
|
+
`ALLOWED_UPLOAD_EXTENSIONS` / `DEFAULT_UPLOAD_ACCEPT` 也从本模块导出,见下方 [上传常量](#上传常量)。
|
|
26
|
+
|
|
27
|
+
## Markdown 语法补全
|
|
28
|
+
|
|
29
|
+
### completeMarkdownSyntax
|
|
30
|
+
|
|
31
|
+
用于流式输入时自动补全未闭合的 Markdown 语法:
|
|
32
|
+
|
|
33
|
+
````typescript
|
|
34
|
+
import { completeMarkdownSyntax } from '@blueking/chat-x';
|
|
35
|
+
|
|
36
|
+
// 补全未闭合的代码块
|
|
37
|
+
const incomplete = '```javascript\nconst a = 1;';
|
|
38
|
+
const completed = completeMarkdownSyntax(incomplete);
|
|
39
|
+
// => '```javascript\nconst a = 1;\n```'
|
|
40
|
+
|
|
41
|
+
// 补全未闭合的粗体
|
|
42
|
+
const incomplete2 = '这是 **粗体';
|
|
43
|
+
const completed2 = completeMarkdownSyntax(incomplete2);
|
|
44
|
+
// => '这是 **粗体**'
|
|
45
|
+
````
|
|
46
|
+
|
|
47
|
+
### 支持补全的语法
|
|
48
|
+
|
|
49
|
+
| 语法 | 示例 | 补全结果 |
|
|
50
|
+
| -------- | --------------- | -------------------- |
|
|
51
|
+
| 代码块 | ` ```js\ncode ` | ` ```js\ncode\n``` ` |
|
|
52
|
+
| 行内代码 | `` `code `` | `` `code` `` |
|
|
53
|
+
| 粗体 | `**bold` | `**bold**` |
|
|
54
|
+
| 斜体 | `*italic` | `*italic*` |
|
|
55
|
+
| 删除线 | `~~strike` | `~~strike~~` |
|
|
56
|
+
| 链接 | `[text](` | `[text](#)` |
|
|
57
|
+
| 图片 | `` |
|
|
58
|
+
|
|
59
|
+
## 消息工具栏合并
|
|
60
|
+
|
|
61
|
+
### mergeToolsById
|
|
62
|
+
|
|
63
|
+
按 `id` 将自定义工具按钮合并到内置列表:同 id 字段级覆盖,新 id 追加到末尾,`hidden: true` 的项会被过滤。
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
import { mergeToolsById } from '@blueking/chat-x';
|
|
67
|
+
|
|
68
|
+
const tools = mergeToolsById(
|
|
69
|
+
[
|
|
70
|
+
{ id: 'copy', name: '复制' },
|
|
71
|
+
{ id: 'edit', name: '编辑' },
|
|
72
|
+
{ id: 'delete', name: '删除' },
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
{ id: 'edit', hidden: true },
|
|
76
|
+
{ id: 'delete', hidden: true },
|
|
77
|
+
],
|
|
78
|
+
);
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 会话产物收集
|
|
82
|
+
|
|
83
|
+
### collectMessageArtifacts
|
|
84
|
+
|
|
85
|
+
从会话消息里收集「会话产物」,产出 `IInputMenuItem[]`,作为输入框 `@` 菜单的 `artifact` 选项。[ChatContainer](/components/setup/chat-container#输入框菜单与资源引用) 在业务方未自行提供 `artifact` 条目时自动调用它。
|
|
86
|
+
|
|
87
|
+
收集两个来源:
|
|
88
|
+
|
|
89
|
+
| 来源 | id 取值 | 名称 |
|
|
90
|
+
| ------------------------------- | ------------------------------------------------ | ---------------------- |
|
|
91
|
+
| 助手消息的 `property.artifacts` | `file.outputId` | `file.name` |
|
|
92
|
+
| 用户消息里的二进制附件 | `content.outputId` | `content.filename` 或 id |
|
|
93
|
+
|
|
94
|
+
缺少 `outputId` 的文件会被跳过;上传响应中的 `path` 由 `ChatInput` 映射为 `outputId`。同一 id 多次出现时取最后一次的名称(文件可能被后续轮次更新),位置保持首次出现的顺序。
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
import { collectMessageArtifacts } from '@blueking/chat-x';
|
|
98
|
+
|
|
99
|
+
const artifactItems = collectMessageArtifacts(messages.value);
|
|
100
|
+
// => [{ id: 'output-1', type: 'artifact', name: '巡检报告.pdf' }, ...]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### toArtifactMenuItem
|
|
104
|
+
|
|
105
|
+
把单个 `AIFileInfo` 转成菜单条目。「消息里自动收集」与「点击引用按钮插入」必须共用这套映射——id 不一致会导致 `@` 菜单的去重与已插入标签的匹配同时失效。
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
import { toArtifactMenuItem, useInputMentionConsumer } from '@blueking/chat-x';
|
|
109
|
+
|
|
110
|
+
const inputMention = useInputMentionConsumer();
|
|
111
|
+
inputMention?.insertMention(toArtifactMenuItem(file));
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
> 详见 [useInputMention](/composables/use-input-mention) 与 [ChatInput](/components/input/chat-input) 的统一菜单说明。
|
|
115
|
+
|
|
116
|
+
## Cookie 工具
|
|
117
|
+
|
|
118
|
+
### getCookieByName
|
|
119
|
+
|
|
120
|
+
获取指定名称的 Cookie 值:
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
import { getCookieByName } from '@blueking/chat-x';
|
|
124
|
+
|
|
125
|
+
// 获取语言设置
|
|
126
|
+
const lang = getCookieByName('blueking_language');
|
|
127
|
+
console.log(lang); // 'zh-cn' 或 'en'
|
|
128
|
+
|
|
129
|
+
// 获取不存在的 Cookie 返回 null
|
|
130
|
+
const notExist = getCookieByName('not_exist');
|
|
131
|
+
console.log(notExist); // null
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 使用示例
|
|
135
|
+
|
|
136
|
+
### 流式渲染时补全 Markdown
|
|
137
|
+
|
|
138
|
+
````vue
|
|
139
|
+
<template>
|
|
140
|
+
<MarkdownContent
|
|
141
|
+
:content="completedContent"
|
|
142
|
+
:status="MessageStatus.Streaming"
|
|
143
|
+
/>
|
|
144
|
+
</template>
|
|
145
|
+
|
|
146
|
+
<script setup lang="ts">
|
|
147
|
+
import { computed, ref } from 'vue';
|
|
148
|
+
import { MarkdownContent, MessageStatus, completeMarkdownSyntax } from '@blueking/chat-x';
|
|
149
|
+
|
|
150
|
+
const rawContent = ref('');
|
|
151
|
+
|
|
152
|
+
// 自动补全未闭合的语法
|
|
153
|
+
const completedContent = computed(() => {
|
|
154
|
+
return completeMarkdownSyntax(rawContent.value);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// 模拟流式输入
|
|
158
|
+
const simulateStreaming = async () => {
|
|
159
|
+
const text = '```javascript\nconst greeting = "Hello";\nconsole.log(greeting);\n```';
|
|
160
|
+
for (const char of text) {
|
|
161
|
+
await new Promise(r => setTimeout(r, 50));
|
|
162
|
+
rawContent.value += char;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
</script>
|
|
166
|
+
````
|
|
167
|
+
|
|
168
|
+
### 根据语言设置切换显示
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
import { getCookieByName } from '@blueking/chat-x';
|
|
172
|
+
|
|
173
|
+
const lang = getCookieByName('blueking_language');
|
|
174
|
+
const isEnglish = lang === 'en';
|
|
175
|
+
|
|
176
|
+
const greeting = isEnglish ? 'Hello' : '你好';
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## 上传常量
|
|
180
|
+
|
|
181
|
+
与 [ChatInput 文件上传](/components/input/chat-input#file-upload) 共用,从 `@blueking/chat-x` 导出(源码 `src/utils/upload-accept.ts`)。
|
|
182
|
+
|
|
183
|
+
| 常量 | 说明 |
|
|
184
|
+
| ---- | ---- |
|
|
185
|
+
| `ALLOWED_UPLOAD_EXTENSIONS` | 按 `image` / `document` / `text` / `code` 分类的扩展名(含点),分类用于 tooltip |
|
|
186
|
+
| `DEFAULT_UPLOAD_ACCEPT` | 上述分类展平后的逗号串;`ChatInput.accept` 缺省值,「文件」项 / 拖拽 / 粘贴共用 |
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
import { DEFAULT_UPLOAD_ACCEPT } from '@blueking/chat-x';
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## 注意事项
|
|
193
|
+
|
|
194
|
+
1. `completeMarkdownSyntax` 主要用于流式渲染场景
|
|
195
|
+
2. 语法补全不会修改原始内容,只返回补全后的副本
|
|
196
|
+
3. `getCookieByName` 在服务端渲染时需要注意 `document` 不可用
|