ds-markdown 0.0.11-beta.0 → 0.0.11
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.en.md +7 -19
- package/README.ja.md +3 -14
- package/README.ko.md +3 -15
- package/README.md +7 -19
- package/dist/cjs/MarkdownCMD/index.d.ts +0 -1
- package/dist/cjs/MarkdownCMD/index.js +57 -159
- package/dist/cjs/MarkdownCMD/index.js.map +1 -1
- package/dist/cjs/defined.d.ts +2 -0
- package/dist/cjs/utils/Tokenizer.d.ts +0 -4
- package/dist/cjs/utils/Tokenizer.js +2 -11
- package/dist/cjs/utils/Tokenizer.js.map +1 -1
- package/dist/cjs/utils/compiler.js +1 -1
- package/dist/cjs/utils/compiler.js.map +1 -1
- package/dist/esm/MarkdownCMD/index.d.ts +0 -1
- package/dist/esm/MarkdownCMD/index.js +57 -159
- package/dist/esm/MarkdownCMD/index.js.map +1 -1
- package/dist/esm/defined.d.ts +2 -0
- package/dist/esm/utils/Tokenizer.d.ts +0 -4
- package/dist/esm/utils/Tokenizer.js +2 -11
- package/dist/esm/utils/Tokenizer.js.map +1 -1
- package/dist/esm/utils/compiler.js +1 -1
- package/dist/esm/utils/compiler.js.map +1 -1
- package/package.json +2 -2
package/README.en.md
CHANGED
|
@@ -63,7 +63,7 @@ No installation required, use directly in browser:
|
|
|
63
63
|
|
|
64
64
|
```html
|
|
65
65
|
<!-- Import styles -->
|
|
66
|
-
<link rel="stylesheet" href="https://esm.sh/ds-markdown/style.css" />
|
|
66
|
+
<link rel="stylesheet" href="https://esm.sh/ds-markdown/dist/style.css" />
|
|
67
67
|
|
|
68
68
|
<!-- Import component -->
|
|
69
69
|
<script type="importmap">
|
|
@@ -71,7 +71,7 @@ No installation required, use directly in browser:
|
|
|
71
71
|
"imports": {
|
|
72
72
|
"react": "https://esm.sh/react@19.1.0",
|
|
73
73
|
"react-dom/client": "https://esm.sh/react-dom@19.1.0/client",
|
|
74
|
-
"ds-markdown": "https://esm.sh/ds-markdown
|
|
74
|
+
"ds-markdown": "https://esm.sh/ds-markdown"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
</script>
|
|
@@ -182,16 +182,14 @@ interface MarkdownRef {
|
|
|
182
182
|
push: (content: string, answerType: AnswerType) => void;
|
|
183
183
|
clear: () => void;
|
|
184
184
|
triggerWholeEnd: () => void;
|
|
185
|
-
flushBuffer: (answerType?: AnswerType) => void;
|
|
186
185
|
}
|
|
187
186
|
```
|
|
188
187
|
|
|
189
|
-
| Method | Parameters | Description
|
|
190
|
-
| ----------------- | ------------------------------------------- |
|
|
191
|
-
| `push` | `(content: string, answerType: AnswerType)` | Add content and start typing
|
|
192
|
-
| `clear` | - | Clear all content and state
|
|
193
|
-
| `triggerWholeEnd` | - | Manually trigger
|
|
194
|
-
| `flushBuffer` | `answerType?: AnswerType` | Force flush buffer content |
|
|
188
|
+
| Method | Parameters | Description |
|
|
189
|
+
| ----------------- | ------------------------------------------- | ----------------------------- |
|
|
190
|
+
| `push` | `(content: string, answerType: AnswerType)` | Add content and start typing |
|
|
191
|
+
| `clear` | - | Clear all content and state |
|
|
192
|
+
| `triggerWholeEnd` | - | Manually trigger end callback |
|
|
195
193
|
|
|
196
194
|
---
|
|
197
195
|
|
|
@@ -330,9 +328,6 @@ const handleStreamingMarkdown = () => {
|
|
|
330
328
|
markdownRef.current?.push(chunk, 'answer');
|
|
331
329
|
// No delay needed, component buffers intelligently internally
|
|
332
330
|
});
|
|
333
|
-
|
|
334
|
-
// Optional: manually flush remaining buffer content
|
|
335
|
-
markdownRef.current?.flushBuffer();
|
|
336
331
|
};
|
|
337
332
|
|
|
338
333
|
// 🧠 Smart Processing Flow:
|
|
@@ -342,13 +337,6 @@ const handleStreamingMarkdown = () => {
|
|
|
342
337
|
// 4. Zero delay, pure synchronous processing
|
|
343
338
|
```
|
|
344
339
|
|
|
345
|
-
**Buffer Mechanism Features**:
|
|
346
|
-
|
|
347
|
-
- ⚡ **Zero Delay**: No setTimeout, pure synchronous real-time processing
|
|
348
|
-
- 🧠 **Smart Boundaries**: Boundary detection based on Markdown syntax rules
|
|
349
|
-
- 🔄 **Real-time Splitting**: Process immediately when complete syntax is encountered, smart buffering when incomplete
|
|
350
|
-
- 🛡️ **Safety Guarantee**: Provides `flushBuffer()` method to handle remaining content
|
|
351
|
-
|
|
352
340
|
**Supported Syntax Detection**:
|
|
353
341
|
|
|
354
342
|
````typescript
|
package/README.ja.md
CHANGED
|
@@ -63,7 +63,7 @@ pnpm add ds-markdown
|
|
|
63
63
|
|
|
64
64
|
```html
|
|
65
65
|
<!-- スタイルのインポート -->
|
|
66
|
-
<link rel="stylesheet" href="https://esm.sh/ds-markdown/style.css" />
|
|
66
|
+
<link rel="stylesheet" href="https://esm.sh/ds-markdown/dist/style.css" />
|
|
67
67
|
|
|
68
68
|
<!-- コンポーネントのインポート -->
|
|
69
69
|
<script type="importmap">
|
|
@@ -71,7 +71,7 @@ pnpm add ds-markdown
|
|
|
71
71
|
"imports": {
|
|
72
72
|
"react": "https://esm.sh/react@19.1.0",
|
|
73
73
|
"react-dom/client": "https://esm.sh/react-dom@19.1.0/client",
|
|
74
|
-
"ds-markdown": "https://esm.sh/ds-markdown
|
|
74
|
+
"ds-markdown": "https://esm.sh/ds-markdown"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
</script>
|
|
@@ -182,7 +182,6 @@ interface MarkdownRef {
|
|
|
182
182
|
push: (content: string, answerType: AnswerType) => void;
|
|
183
183
|
clear: () => void;
|
|
184
184
|
triggerWholeEnd: () => void;
|
|
185
|
-
flushBuffer: (answerType?: AnswerType) => void;
|
|
186
185
|
}
|
|
187
186
|
```
|
|
188
187
|
|
|
@@ -190,8 +189,7 @@ interface MarkdownRef {
|
|
|
190
189
|
| ----------------- | ------------------------------------------- | ------------------------------------ |
|
|
191
190
|
| `push` | `(content: string, answerType: AnswerType)` | コンテンツを追加してタイピングを開始 |
|
|
192
191
|
| `clear` | - | すべてのコンテンツと状態をクリア |
|
|
193
|
-
| `triggerWholeEnd` | - |
|
|
194
|
-
| `flushBuffer` | `answerType?: AnswerType` | バッファーコンテンツを強制フラッシュ |
|
|
192
|
+
| `triggerWholeEnd` | - | 完了コールバックを手動でトリガー |
|
|
195
193
|
|
|
196
194
|
---
|
|
197
195
|
|
|
@@ -331,8 +329,6 @@ const handleStreamingMarkdown = () => {
|
|
|
331
329
|
// 遅延不要、コンポーネント内部で知的バッファリング
|
|
332
330
|
});
|
|
333
331
|
|
|
334
|
-
// オプション:残りのバッファーコンテンツを手動でフラッシュ
|
|
335
|
-
markdownRef.current?.flushBuffer();
|
|
336
332
|
};
|
|
337
333
|
|
|
338
334
|
// 🧠 スマート処理フロー:
|
|
@@ -342,13 +338,6 @@ const handleStreamingMarkdown = () => {
|
|
|
342
338
|
// 4. ゼロ遅延、純粋同期処理
|
|
343
339
|
```
|
|
344
340
|
|
|
345
|
-
**バッファーメカニズム特徴**:
|
|
346
|
-
|
|
347
|
-
- ⚡ **ゼロ遅延**:setTimeout なし、純粋同期リアルタイム処理
|
|
348
|
-
- 🧠 **スマート境界**:Markdown 構文ルールに基づく境界検出
|
|
349
|
-
- 🔄 **リアルタイム分割**:完全構文に遭遇時即座に処理、不完全時はスマートバッファリング
|
|
350
|
-
- 🛡️ **安全保証**:残りコンテンツを処理する `flushBuffer()` メソッドを提供
|
|
351
|
-
|
|
352
341
|
**サポートされる構文検出**:
|
|
353
342
|
|
|
354
343
|
````typescript
|
package/README.ko.md
CHANGED
|
@@ -63,7 +63,7 @@ pnpm add ds-markdown
|
|
|
63
63
|
|
|
64
64
|
```html
|
|
65
65
|
<!-- 스타일 가져오기 -->
|
|
66
|
-
<link rel="stylesheet" href="https://esm.sh/ds-markdown/style.css" />
|
|
66
|
+
<link rel="stylesheet" href="https://esm.sh/ds-markdown/dist/style.css" />
|
|
67
67
|
|
|
68
68
|
<!-- 컴포넌트 가져오기 -->
|
|
69
69
|
<script type="importmap">
|
|
@@ -71,7 +71,7 @@ pnpm add ds-markdown
|
|
|
71
71
|
"imports": {
|
|
72
72
|
"react": "https://esm.sh/react@19.1.0",
|
|
73
73
|
"react-dom/client": "https://esm.sh/react-dom@19.1.0/client",
|
|
74
|
-
"ds-markdown": "https://esm.sh/ds-markdown
|
|
74
|
+
"ds-markdown": "https://esm.sh/ds-markdown"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
</script>
|
|
@@ -182,7 +182,6 @@ interface MarkdownRef {
|
|
|
182
182
|
push: (content: string, answerType: AnswerType) => void;
|
|
183
183
|
clear: () => void;
|
|
184
184
|
triggerWholeEnd: () => void;
|
|
185
|
-
flushBuffer: (answerType?: AnswerType) => void;
|
|
186
185
|
}
|
|
187
186
|
```
|
|
188
187
|
|
|
@@ -190,8 +189,7 @@ interface MarkdownRef {
|
|
|
190
189
|
| ----------------- | ------------------------------------------- | -------------------------- |
|
|
191
190
|
| `push` | `(content: string, answerType: AnswerType)` | 콘텐츠 추가 및 타이핑 시작 |
|
|
192
191
|
| `clear` | - | 모든 콘텐츠와 상태 초기화 |
|
|
193
|
-
| `triggerWholeEnd` | - |
|
|
194
|
-
| `flushBuffer` | `answerType?: AnswerType` | 버퍼 콘텐츠 강제 플러시 |
|
|
192
|
+
| `triggerWholeEnd` | - | 완료 콜백 수동 트리거 |
|
|
195
193
|
|
|
196
194
|
---
|
|
197
195
|
|
|
@@ -330,9 +328,6 @@ const handleStreamingMarkdown = () => {
|
|
|
330
328
|
markdownRef.current?.push(chunk, 'answer');
|
|
331
329
|
// 지연 불필요, 컴포넌트 내부에서 지능적 버퍼링
|
|
332
330
|
});
|
|
333
|
-
|
|
334
|
-
// 선택사항: 남은 버퍼 콘텐츠 수동 플러시
|
|
335
|
-
markdownRef.current?.flushBuffer();
|
|
336
331
|
};
|
|
337
332
|
|
|
338
333
|
// 🧠 스마트 처리 플로우:
|
|
@@ -342,13 +337,6 @@ const handleStreamingMarkdown = () => {
|
|
|
342
337
|
// 4. 지연 없음, 순수 동기 처리
|
|
343
338
|
```
|
|
344
339
|
|
|
345
|
-
**버퍼 메커니즘 특징**:
|
|
346
|
-
|
|
347
|
-
- ⚡ **지연 없음**: setTimeout 없음, 순수 동기 실시간 처리
|
|
348
|
-
- 🧠 **스마트 경계**: Markdown 구문 규칙 기반 경계 감지
|
|
349
|
-
- 🔄 **실시간 분할**: 완전한 구문 만날 때 즉시 처리, 불완전할 때 스마트 버퍼링
|
|
350
|
-
- 🛡️ **안전 보장**: 남은 콘텐츠 처리를 위한 `flushBuffer()` 메서드 제공
|
|
351
|
-
|
|
352
340
|
**지원되는 구문 감지**:
|
|
353
341
|
|
|
354
342
|
````typescript
|
package/README.md
CHANGED
|
@@ -62,16 +62,16 @@ pnpm add ds-markdown
|
|
|
62
62
|
无需安装,直接在浏览器中使用:
|
|
63
63
|
|
|
64
64
|
```html
|
|
65
|
-
<!--
|
|
66
|
-
<link rel="stylesheet" href="https://esm.sh/ds-markdown/style.css" />
|
|
65
|
+
<!-- 导入样式 -->
|
|
66
|
+
<link rel="stylesheet" href="https://esm.sh/ds-markdown/dist/style.css" />
|
|
67
67
|
|
|
68
|
-
<!--
|
|
68
|
+
<!-- 导入组件 -->
|
|
69
69
|
<script type="importmap">
|
|
70
70
|
{
|
|
71
71
|
"imports": {
|
|
72
72
|
"react": "https://esm.sh/react@19.1.0",
|
|
73
73
|
"react-dom/client": "https://esm.sh/react-dom@19.1.0/client",
|
|
74
|
-
"ds-markdown": "https://esm.sh/ds-markdown
|
|
74
|
+
"ds-markdown": "https://esm.sh/ds-markdown"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
</script>
|
|
@@ -84,12 +84,12 @@ pnpm add ds-markdown
|
|
|
84
84
|
const markdown = `
|
|
85
85
|
# Hello ds-markdown
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
这是一个**高性能**的 Markdown 打字动画组件!
|
|
88
88
|
|
|
89
89
|
## 特性
|
|
90
90
|
- ⚡ 零延迟流式处理
|
|
91
|
-
- 🎬
|
|
92
|
-
- 🎯
|
|
91
|
+
- 🎬 流畅的打字动画
|
|
92
|
+
- 🎯 完美的语法支持
|
|
93
93
|
`;
|
|
94
94
|
|
|
95
95
|
const root = createRoot(document.getElementById('root'));
|
|
@@ -182,7 +182,6 @@ interface MarkdownRef {
|
|
|
182
182
|
push: (content: string, answerType: AnswerType) => void;
|
|
183
183
|
clear: () => void;
|
|
184
184
|
triggerWholeEnd: () => void;
|
|
185
|
-
flushBuffer: (answerType?: AnswerType) => void;
|
|
186
185
|
}
|
|
187
186
|
```
|
|
188
187
|
|
|
@@ -191,7 +190,6 @@ interface MarkdownRef {
|
|
|
191
190
|
| `push` | `(content: string, answerType: AnswerType)` | 添加内容并开始打字 |
|
|
192
191
|
| `clear` | - | 清空所有内容和状态 |
|
|
193
192
|
| `triggerWholeEnd` | - | 手动触发完成回调 |
|
|
194
|
-
| `flushBuffer` | `answerType?: AnswerType` | 强制刷新缓冲区内容 |
|
|
195
193
|
|
|
196
194
|
---
|
|
197
195
|
|
|
@@ -330,9 +328,6 @@ const handleStreamingMarkdown = () => {
|
|
|
330
328
|
markdownRef.current?.push(chunk, 'answer');
|
|
331
329
|
// 无需延迟,组件内部智能缓冲
|
|
332
330
|
});
|
|
333
|
-
|
|
334
|
-
// 可选:手动刷新剩余缓冲内容
|
|
335
|
-
markdownRef.current?.flushBuffer();
|
|
336
331
|
};
|
|
337
332
|
|
|
338
333
|
// 🧠 智能处理流程:
|
|
@@ -342,13 +337,6 @@ const handleStreamingMarkdown = () => {
|
|
|
342
337
|
// 4. 零延迟,纯同步处理
|
|
343
338
|
```
|
|
344
339
|
|
|
345
|
-
**缓冲机制特性**:
|
|
346
|
-
|
|
347
|
-
- ⚡ **零延迟**:无 setTimeout,纯同步实时处理
|
|
348
|
-
- 🧠 **智能边界**:基于 Markdown 语法规则的边界检测
|
|
349
|
-
- 🔄 **实时分割**:遇到完整语法立即处理,不完整时智能缓冲
|
|
350
|
-
- 🛡️ **安全保障**:提供 `flushBuffer()` 方法处理剩余内容
|
|
351
|
-
|
|
352
340
|
**支持的语法检测**:
|
|
353
341
|
|
|
354
342
|
````typescript
|
|
@@ -3,7 +3,6 @@ export interface MarkdownRef {
|
|
|
3
3
|
push: (content: string, answerType: AnswerType) => void;
|
|
4
4
|
clear: () => void;
|
|
5
5
|
triggerWholeEnd: () => void;
|
|
6
|
-
flushBuffer: (answerType?: AnswerType) => void;
|
|
7
6
|
}
|
|
8
7
|
declare const MarkdownCMD: import("react").ForwardRefExoticComponent<MarkdownProps & import("react").RefAttributes<MarkdownRef>>;
|
|
9
8
|
export default MarkdownCMD;
|
|
@@ -28,12 +28,13 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
28
28
|
const [currentSegment, setCurrentSegment] = (0, react_1.useState)(undefined);
|
|
29
29
|
/** 当前段落引用 */
|
|
30
30
|
const currentParagraphRef = (0, react_1.useRef)(undefined);
|
|
31
|
-
// currentParagraphRef.current = currentSegment;
|
|
32
31
|
/**
|
|
33
32
|
* 处理字符显示逻辑
|
|
34
33
|
*/
|
|
35
34
|
const processCharDisplay = (char) => {
|
|
35
|
+
console.log('processCharDisplay', char);
|
|
36
36
|
const currentSegment = currentParagraphRef.current;
|
|
37
|
+
// debugger;
|
|
37
38
|
/** 如果碰到 space,和split_segment 则需要处理成两个段落 */
|
|
38
39
|
if (char.contentType === 'space' || char.contentType === 'split_segment') {
|
|
39
40
|
if (currentSegment) {
|
|
@@ -41,45 +42,14 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
41
42
|
const newParagraphs = [...prev];
|
|
42
43
|
// 放入到稳定队列
|
|
43
44
|
if (currentSegment) {
|
|
45
|
+
debugger;
|
|
44
46
|
newParagraphs.push({ ...currentSegment, isTyped: false });
|
|
45
47
|
}
|
|
46
|
-
if (char.contentType === 'space') {
|
|
47
|
-
newParagraphs.push({
|
|
48
|
-
content: '',
|
|
49
|
-
isTyped: false,
|
|
50
|
-
type: 'br',
|
|
51
|
-
answerType: char.answerType,
|
|
52
|
-
tokensReference: {
|
|
53
|
-
[char.tokenId]: {
|
|
54
|
-
startIndex: 0,
|
|
55
|
-
raw: char.content,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
48
|
return newParagraphs;
|
|
61
49
|
});
|
|
62
50
|
setCurrentSegment(() => undefined);
|
|
63
51
|
currentParagraphRef.current = undefined;
|
|
64
52
|
}
|
|
65
|
-
else {
|
|
66
|
-
setStableSegments((prev) => {
|
|
67
|
-
const newParagraphs = [...prev];
|
|
68
|
-
newParagraphs.push({
|
|
69
|
-
content: '',
|
|
70
|
-
isTyped: false,
|
|
71
|
-
type: 'br',
|
|
72
|
-
answerType: char.answerType,
|
|
73
|
-
tokensReference: {
|
|
74
|
-
[char.tokenId]: {
|
|
75
|
-
startIndex: 0,
|
|
76
|
-
raw: char.content,
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
return newParagraphs;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
53
|
return;
|
|
84
54
|
}
|
|
85
55
|
// 处理当前段落
|
|
@@ -139,89 +109,19 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
139
109
|
processCharDisplay,
|
|
140
110
|
});
|
|
141
111
|
const lastSegmentRawRef = (0, react_1.useRef)({
|
|
142
|
-
thinking: '',
|
|
143
|
-
answer: '',
|
|
144
112
|
thinkingReference: null,
|
|
145
113
|
answerReference: null,
|
|
146
|
-
thinkingBuffer: '',
|
|
147
|
-
answerBuffer: '',
|
|
148
114
|
});
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return true;
|
|
160
|
-
// 检查最后一行是否是完整的语法结构
|
|
161
|
-
const patterns = [
|
|
162
|
-
/^#+\s+.+$/, // 完整标题: "## 标题"
|
|
163
|
-
/^\s*(\d+\.|\*|\+|-)\s+.+$/, // 完整列表项: "1. 项目" 或 "- 项目"
|
|
164
|
-
/^\s*```\s*$/, // 代码块结束: "```"
|
|
165
|
-
/^\s*```\w*\s*$/, // 代码块开始: "```js"
|
|
166
|
-
/^\s*>.*$/, // 引用: "> 内容"
|
|
167
|
-
/^\s*\|.*\|\s*$/, // 完整表格行: "| 列1 | 列2 |"
|
|
168
|
-
/^.*[.!?。!?]\s*$/, // 以句号等结尾的句子
|
|
169
|
-
];
|
|
170
|
-
return patterns.some((pattern) => pattern.test(lastLine));
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* 查找最近的安全分割点
|
|
174
|
-
*/
|
|
175
|
-
const findLastSafeBoundary = (content) => {
|
|
176
|
-
const lines = content.split('\n');
|
|
177
|
-
// 从后往前找最后一个完整的行
|
|
178
|
-
for (let i = lines.length - 1; i >= 0; i--) {
|
|
179
|
-
const currentContent = lines.slice(0, i + 1).join('\n');
|
|
180
|
-
if (i < lines.length - 1) {
|
|
181
|
-
// 有后续行,说明当前行以换行结尾,通常是安全的
|
|
182
|
-
return currentContent.length + 1; // +1 for \n
|
|
183
|
-
}
|
|
184
|
-
const line = lines[i];
|
|
185
|
-
// 检查当前行是否是完整的结构
|
|
186
|
-
if (/^#+\s+.+$/.test(line) || // 完整标题
|
|
187
|
-
/^\s*(\d+\.|\*|\+|-)\s+.+$/.test(line) || // 完整列表项
|
|
188
|
-
/^\s*```\s*$/.test(line) || // 代码块标记
|
|
189
|
-
/^\s*>.*$/.test(line) || // 引用行
|
|
190
|
-
/^.*[.!?。!?]\s*$/.test(line)) {
|
|
191
|
-
// 完整句子
|
|
192
|
-
return currentContent.length;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return 0; // 没找到安全点
|
|
196
|
-
};
|
|
197
|
-
/**
|
|
198
|
-
* 同步处理带缓冲的内容推送
|
|
199
|
-
*/
|
|
200
|
-
const processBufferedPush = (content, answerType) => {
|
|
201
|
-
const bufferKey = `${answerType}Buffer`;
|
|
202
|
-
const lastSegmentRef = lastSegmentRawRef.current;
|
|
203
|
-
// 将内容添加到缓冲区
|
|
204
|
-
lastSegmentRef[bufferKey] += content;
|
|
205
|
-
// 检查当前是否在安全边界
|
|
206
|
-
if (isAtSafeMarkdownBoundary(lastSegmentRef[bufferKey])) {
|
|
207
|
-
// 在安全边界,直接处理所有内容
|
|
208
|
-
const bufferedContent = lastSegmentRef[bufferKey];
|
|
209
|
-
lastSegmentRef[bufferKey] = '';
|
|
210
|
-
processPushInternal(bufferedContent, answerType);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
// 不在安全边界,找到最后一个安全分割点
|
|
214
|
-
const safeBoundary = findLastSafeBoundary(lastSegmentRef[bufferKey]);
|
|
215
|
-
if (safeBoundary > 0) {
|
|
216
|
-
// 有安全分割点,处理安全部分,保留其余部分
|
|
217
|
-
const safeContent = lastSegmentRef[bufferKey].substring(0, safeBoundary);
|
|
218
|
-
const remainingContent = lastSegmentRef[bufferKey].substring(safeBoundary);
|
|
219
|
-
lastSegmentRef[bufferKey] = remainingContent;
|
|
220
|
-
processPushInternal(safeContent, answerType);
|
|
221
|
-
}
|
|
222
|
-
// 如果没有安全分割点,继续缓冲等待更多内容
|
|
223
|
-
}
|
|
224
|
-
};
|
|
115
|
+
const wholeContentRef = (0, react_1.useRef)({
|
|
116
|
+
thinking: {
|
|
117
|
+
content: '',
|
|
118
|
+
length: 0,
|
|
119
|
+
},
|
|
120
|
+
answer: {
|
|
121
|
+
content: '',
|
|
122
|
+
length: 0,
|
|
123
|
+
},
|
|
124
|
+
});
|
|
225
125
|
/**
|
|
226
126
|
* 内部推送处理逻辑
|
|
227
127
|
*/
|
|
@@ -236,11 +136,13 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
236
136
|
}
|
|
237
137
|
return;
|
|
238
138
|
}
|
|
139
|
+
const wholeContent = wholeContentRef.current[`${answerType}`] || '';
|
|
140
|
+
let currentIndex = wholeContent.length;
|
|
239
141
|
let currentLastSegmentReference = null;
|
|
240
142
|
let currentLastSegmentRaw = '';
|
|
241
143
|
let lastSegmentRaw = '';
|
|
242
144
|
if (lastSegmentReference) {
|
|
243
|
-
lastSegmentRaw = lastSegmentReference.
|
|
145
|
+
lastSegmentRaw = lastSegmentReference.raw;
|
|
244
146
|
currentLastSegmentRaw = lastSegmentRaw + content;
|
|
245
147
|
}
|
|
246
148
|
else {
|
|
@@ -252,22 +154,30 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
252
154
|
currentLastSegmentReference = null;
|
|
253
155
|
}
|
|
254
156
|
else {
|
|
255
|
-
|
|
157
|
+
// 如果上一个segment存在并且当前只有一个token,则说明是同一个segment
|
|
158
|
+
if (lastSegmentReference !== null && tokens.length === 1) {
|
|
159
|
+
const newCurrentLastSegmentReference = lastSegmentReference;
|
|
160
|
+
newCurrentLastSegmentReference.raw = newCurrentLastSegmentReference.raw + content;
|
|
161
|
+
currentLastSegmentReference = newCurrentLastSegmentReference;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
currentLastSegmentReference = tokens[tokens.length - 1];
|
|
165
|
+
}
|
|
256
166
|
}
|
|
257
|
-
const pushAndSplitSegment = (raw,
|
|
258
|
-
const currentToken = tokens[
|
|
259
|
-
if (
|
|
260
|
-
const prevToken = tokens[
|
|
167
|
+
const pushAndSplitSegment = (raw, tokenIndex, segmentTokenId) => {
|
|
168
|
+
const currentToken = tokens[tokenIndex];
|
|
169
|
+
if (tokenIndex > 0) {
|
|
170
|
+
const prevToken = tokens[tokenIndex - 1];
|
|
261
171
|
if (prevToken.type !== 'space' && currentToken.type !== 'space') {
|
|
262
|
-
charsRef.current.push({ content: '', answerType, contentType: 'split_segment', tokenId: currentToken.id });
|
|
172
|
+
charsRef.current.push({ content: '', answerType, contentType: 'split_segment', tokenId: currentToken.id, index: currentIndex++ });
|
|
263
173
|
}
|
|
264
174
|
}
|
|
265
|
-
charsRef.current.push(...raw.split('').map((char) => ({ content: char, answerType, contentType: 'segment', tokenId: segmentTokenId })));
|
|
175
|
+
charsRef.current.push(...raw.split('').map((char) => ({ content: char, answerType, contentType: 'segment', tokenId: segmentTokenId, index: currentIndex++ })));
|
|
266
176
|
};
|
|
267
177
|
if (!lastSegmentReference) {
|
|
268
178
|
tokens.forEach((token, i) => {
|
|
269
179
|
if (token.type === 'space') {
|
|
270
|
-
charsRef.current.push({ content:
|
|
180
|
+
charsRef.current.push(...token.raw.split('').map((char) => ({ content: char, answerType, contentType: 'space', tokenId: token.id, index: currentIndex++ })));
|
|
271
181
|
}
|
|
272
182
|
else {
|
|
273
183
|
pushAndSplitSegment(token.raw, i, token.id);
|
|
@@ -275,6 +185,7 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
275
185
|
});
|
|
276
186
|
}
|
|
277
187
|
else {
|
|
188
|
+
// debugger;
|
|
278
189
|
let str = '';
|
|
279
190
|
let firstSpaceIndex = -1;
|
|
280
191
|
let nextTokenIndex = lastSegmentRaw.length;
|
|
@@ -287,14 +198,28 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
287
198
|
str += token.raw;
|
|
288
199
|
if (lastSegmentRaw.length > firstSpaceIndex) {
|
|
289
200
|
// 如果lastSegmentRaw的长度大于firstSpaceIndex,则需要将当前设置为 segment
|
|
290
|
-
charsRef.current.push(...token.raw.split('').map((char) => ({ content: char, answerType, contentType: 'segment', tokenId: token.id })));
|
|
201
|
+
charsRef.current.push(...token.raw.split('').map((char) => ({ content: char, answerType, contentType: 'segment', tokenId: token.id, index: currentIndex++ })));
|
|
291
202
|
}
|
|
292
203
|
else {
|
|
293
|
-
charsRef.current.push({ content:
|
|
204
|
+
charsRef.current.push(...token.raw.split('').map((char) => ({ content: char, answerType, contentType: 'space', tokenId: token.id, index: currentIndex++ })));
|
|
294
205
|
}
|
|
295
206
|
}
|
|
296
207
|
else {
|
|
297
|
-
str += token.
|
|
208
|
+
str += token.raw;
|
|
209
|
+
if (str.length < nextTokenIndex && i == 0) {
|
|
210
|
+
/** 如果当前字符串长度小于下一个token的索引,则需要将当前段落更新, 以修正不完整的token */
|
|
211
|
+
const lastSegmentReferenceId = lastSegmentReference.id;
|
|
212
|
+
const currentSegment = currentParagraphRef.current;
|
|
213
|
+
const tokensReference = currentSegment?.tokensReference || {};
|
|
214
|
+
const lastTokenReference = tokensReference[lastSegmentReferenceId];
|
|
215
|
+
if (lastTokenReference) {
|
|
216
|
+
const newTokensReference = { ...tokensReference, [lastSegmentReferenceId]: { startIndex: lastTokenReference.startIndex, raw: token.raw } };
|
|
217
|
+
const newCurrentSegment = { ...currentSegment, tokensReference: newTokensReference, isTyped: false, type: 'text', answerType };
|
|
218
|
+
newCurrentSegment.content = Object.values(newTokensReference).reduce((acc, curr) => acc + curr.raw, '');
|
|
219
|
+
setCurrentSegment(newCurrentSegment);
|
|
220
|
+
currentParagraphRef.current = newCurrentSegment;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
298
223
|
const realRaw = str.slice(nextTokenIndex);
|
|
299
224
|
if (realRaw.length > 0) {
|
|
300
225
|
pushAndSplitSegment(realRaw, i, lastSegmentReference.id);
|
|
@@ -304,38 +229,12 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
304
229
|
}
|
|
305
230
|
}
|
|
306
231
|
lastSegmentRawRef.current[`${answerType}Reference`] = currentLastSegmentReference;
|
|
232
|
+
wholeContent.content = wholeContent.content + content;
|
|
233
|
+
wholeContent.length = wholeContent.content.length;
|
|
307
234
|
if (!typingTask.isTyping()) {
|
|
308
235
|
typingTask.start();
|
|
309
236
|
}
|
|
310
237
|
};
|
|
311
|
-
/**
|
|
312
|
-
* 强制刷新缓冲区内容
|
|
313
|
-
*/
|
|
314
|
-
const flushBuffer = (answerType) => {
|
|
315
|
-
const lastSegmentRef = lastSegmentRawRef.current;
|
|
316
|
-
if (answerType) {
|
|
317
|
-
// 刷新指定类型的缓冲区
|
|
318
|
-
const bufferKey = `${answerType}Buffer`;
|
|
319
|
-
const bufferedContent = lastSegmentRef[bufferKey];
|
|
320
|
-
if (bufferedContent) {
|
|
321
|
-
lastSegmentRef[bufferKey] = '';
|
|
322
|
-
processPushInternal(bufferedContent, answerType);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
// 刷新所有缓冲区
|
|
327
|
-
if (lastSegmentRef.thinkingBuffer) {
|
|
328
|
-
const content = lastSegmentRef.thinkingBuffer;
|
|
329
|
-
lastSegmentRef.thinkingBuffer = '';
|
|
330
|
-
processPushInternal(content, 'thinking');
|
|
331
|
-
}
|
|
332
|
-
if (lastSegmentRef.answerBuffer) {
|
|
333
|
-
const content = lastSegmentRef.answerBuffer;
|
|
334
|
-
lastSegmentRef.answerBuffer = '';
|
|
335
|
-
processPushInternal(content, 'answer');
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
};
|
|
339
238
|
(0, react_1.useImperativeHandle)(ref, () => ({
|
|
340
239
|
/**
|
|
341
240
|
* 添加内容
|
|
@@ -343,7 +242,7 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
343
242
|
* @param answerType 回答类型 {AnswerType}
|
|
344
243
|
*/
|
|
345
244
|
push: (content, answerType) => {
|
|
346
|
-
|
|
245
|
+
processPushInternal(content, answerType);
|
|
347
246
|
},
|
|
348
247
|
/**
|
|
349
248
|
* 清除打字任务
|
|
@@ -358,17 +257,17 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
358
257
|
typingTask.clear();
|
|
359
258
|
// 清理缓冲区
|
|
360
259
|
const lastSegmentRef = lastSegmentRawRef.current;
|
|
361
|
-
lastSegmentRef.thinkingBuffer = '';
|
|
362
|
-
lastSegmentRef.answerBuffer = '';
|
|
363
260
|
lastSegmentRef.thinkingReference = null;
|
|
364
261
|
lastSegmentRef.answerReference = null;
|
|
262
|
+
wholeContentRef.current.thinking.content = '';
|
|
263
|
+
wholeContentRef.current.thinking.length = 0;
|
|
264
|
+
wholeContentRef.current.answer.content = '';
|
|
265
|
+
wholeContentRef.current.answer.length = 0;
|
|
365
266
|
},
|
|
366
267
|
/**
|
|
367
268
|
* 主动触发打字结束
|
|
368
269
|
*/
|
|
369
270
|
triggerWholeEnd: () => {
|
|
370
|
-
// 先刷新所有缓冲区内容
|
|
371
|
-
flushBuffer();
|
|
372
271
|
isWholeTypedEndRef.current = true;
|
|
373
272
|
if (!typingTask.isTyping()) {
|
|
374
273
|
// 这里需要手动触发结束回调,因为 hook 中的 triggerOnEnd 不能直接调用
|
|
@@ -381,7 +280,6 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, on
|
|
|
381
280
|
/**
|
|
382
281
|
* 刷新缓冲区 (新增方法)
|
|
383
282
|
*/
|
|
384
|
-
flushBuffer,
|
|
385
283
|
}));
|
|
386
284
|
const getParagraphs = (paragraphs, answerType) => {
|
|
387
285
|
return ((0, jsx_runtime_1.jsxs)("div", { className: `ds-markdown-paragraph ds-typed-${answerType}`, children: [paragraphs.map((paragraph, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAA8F;AAE9F,wFAAyE;AACzE,4DAAoC;AAEpC,sDAAgD;AAChD,gDAAyC;AACzC,iFAAsD;AAEtD,gEAA0D;AAU1D,MAAM,WAAW,GAAG,IAAA,kBAAU,EAAgC,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,GAAG,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE;IAC9I,gBAAgB;IAChB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAU,EAAE,CAAC,CAAC;IAErC;;;OAGG;IACH,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAEzC;;;OAGG;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAe,EAAE,CAAC,CAAC;IACvE,WAAW;IACX,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAyB,SAAS,CAAC,CAAC;IACxF,aAAa;IACb,MAAM,mBAAmB,GAAG,IAAA,cAAM,EAAyB,SAAS,CAAC,CAAC;IACtE,gDAAgD;IAEhD;;OAEG;IACH,MAAM,kBAAkB,GAAG,CAAC,IAAW,EAAE,EAAE;QACzC,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC;QACnD,2CAA2C;QAC3C,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,eAAe,EAAE,CAAC;YACzE,IAAI,cAAc,EAAE,CAAC;gBACnB,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBAChC,UAAU;oBACV,IAAI,cAAc,EAAE,CAAC;wBACnB,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;wBACjC,aAAa,CAAC,IAAI,CAAC;4BACjB,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,KAAK;4BACd,IAAI,EAAE,IAAI;4BACV,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,eAAe,EAAE;gCACf,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oCACd,UAAU,EAAE,CAAC;oCACb,GAAG,EAAE,IAAI,CAAC,OAAO;iCAClB;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,aAAa,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACnC,mBAAmB,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBAChC,aAAa,CAAC,IAAI,CAAC;wBACjB,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,eAAe,EAAE;4BACf,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gCACd,UAAU,EAAE,CAAC;gCACb,GAAG,EAAE,IAAI,CAAC,OAAO;6BAClB;yBACF;qBACF,CAAC,CAAC;oBACH,OAAO,aAAa,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,SAAS;QACT,MAAM,mBAAmB,GAAe;YACtC,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,IAAI,iBAAiB,GAAG,cAAc,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,uBAAuB;YACvB,iBAAiB,GAAG,mBAAmB,CAAC;QAC1C,CAAC;aAAM,IAAI,cAAc,IAAI,cAAc,EAAE,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5E,iCAAiC;YACjC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAChC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,OAAO,aAAa,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,iBAAiB,GAAG,mBAAmB,CAAC;QAC1C,CAAC;QAED,MAAM,eAAe,GAAG,IAAA,sBAAS,EAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACrE,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,cAAc,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;gBAC9B,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;gBAChD,GAAG,EAAE,IAAI,CAAC,OAAO;aAClB,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,GAAG,iBAAiB;YACpB,eAAe;YACf,OAAO,EAAE,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO;YACvD,OAAO,EAAE,IAAI;SACd,CAAC;QACF,mBAAmB,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChD,iBAAiB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,WAAW;IACX,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACtI,WAAW;IACX,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAElI,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAA,gCAAa,EAAC;QAC/B,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,WAAW;QACX,kBAAkB;KACnB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAA,cAAM,EAQ7B;QACD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,EAAE;QAClB,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAW,EAAE;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzC,kBAAkB;QAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,mBAAmB;QACnB,MAAM,QAAQ,GAAG;YACf,WAAW,EAAE,gBAAgB;YAC7B,2BAA2B,EAAE,0BAA0B;YACvD,aAAa,EAAE,eAAe;YAC9B,gBAAgB,EAAE,iBAAiB;YACnC,UAAU,EAAE,aAAa;YACzB,gBAAgB,EAAE,uBAAuB;YACzC,iBAAiB,EAAE,YAAY;SAChC,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAU,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,gBAAgB;QAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,yBAAyB;gBACzB,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY;YAChD,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,gBAAgB;YAChB,IACE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO;gBACjC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;gBAClD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;gBACpC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;gBAC/B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC;gBACD,OAAO;gBACP,OAAO,cAAc,CAAC,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,CAAC,SAAS;IACrB,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,UAAsB,EAAE,EAAE;QACtE,MAAM,SAAS,GAAG,GAAG,UAAU,QAAiB,CAAC;QACjD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAEjD,YAAY;QACZ,cAAc,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC;QAErC,cAAc;QACd,IAAI,wBAAwB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACxD,iBAAiB;YACjB,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;YAErE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,uBAAuB;gBACvB,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBACzE,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAE3E,cAAc,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;gBAC7C,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC;YACD,uBAAuB;QACzB,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,UAAsB,EAAE,EAAE;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,UAAU,WAAW,CAAC,CAAC;QAEjF,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,qBAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACrC,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,2BAA2B,GAAiB,IAAI,CAAC;QACrD,IAAI,qBAAqB,GAAG,EAAE,CAAC;QAC/B,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,oBAAoB,EAAE,CAAC;YACzB,cAAc,GAAG,oBAAoB,CAAC,YAAY,IAAI,oBAAoB,CAAC,GAAG,CAAC;YAC/E,qBAAqB,GAAG,cAAc,GAAG,OAAO,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,qBAAqB,GAAG,OAAO,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,sBAAQ,EAAC,qBAAqB,CAAC,CAAC;QAE/C,yCAAyC;QACzC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/C,2BAA2B,GAAG,IAAI,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,WAAmB,EAAE,cAAsB,EAAE,EAAE;YACvF,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAE1C,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAa,CAAC,CAAC;QACvJ,CAAC,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrG,CAAC;qBAAM,CAAC;oBACN,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAExB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC3B,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;oBAC/B,CAAC;oBACD,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;oBACjB,IAAI,cAAc,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;wBAC5C,yDAAyD;wBACzD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAa,CAAC,CAAC;oBACvJ,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC;oBACvC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,mBAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAED,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,iBAAiB,CAAC,OAAO,CAAC,GAAG,UAAU,WAAW,CAAC,GAAG,2BAA2B,CAAC;QAElF,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,WAAW,GAAG,CAAC,UAAuB,EAAE,EAAE;QAC9C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAEjD,IAAI,UAAU,EAAE,CAAC;YACf,aAAa;YACb,MAAM,SAAS,GAAG,GAAG,UAAU,QAAiB,CAAC;YACjD,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,eAAe,EAAE,CAAC;gBACpB,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC/B,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU;YACV,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC;gBAC9C,cAAc,CAAC,cAAc,GAAG,EAAE,CAAC;gBACnC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC;gBAC5C,cAAc,CAAC,YAAY,GAAG,EAAE,CAAC;gBACjC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAA,2BAAmB,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B;;;;WAIG;QACH,IAAI,EAAE,CAAC,OAAe,EAAE,UAAsB,EAAE,EAAE;YAChD,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD;;WAEG;QACH,KAAK,EAAE,GAAG,EAAE;YACV,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;YACtB,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;YACnC,mBAAmB,CAAC,OAAO,GAAG,SAAS,CAAC;YACxC,UAAU,CAAC,KAAK,EAAE,CAAC;YAEnB,QAAQ;YACR,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC;YACjD,cAAc,CAAC,cAAc,GAAG,EAAE,CAAC;YACnC,cAAc,CAAC,YAAY,GAAG,EAAE,CAAC;YACjC,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACxC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC;QACxC,CAAC;QACD;;WAEG;QACH,eAAe,EAAE,GAAG,EAAE;YACpB,aAAa;YACb,WAAW,EAAE,CAAC;YAEd,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3B,8CAA8C;gBAC9C,KAAK,EAAE,CAAC;oBACN,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD;;WAEG;QACH,WAAW;KACZ,CAAC,CAAC,CAAC;IAEJ,MAAM,aAAa,GAAG,CAAC,UAAwB,EAAE,UAAsB,EAAE,EAAE;QACzE,OAAO,CACL,iCAAK,SAAS,EAAE,kCAAkC,UAAU,EAAE,aAC3D,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;oBACnC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wBAC5B,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,uBAAC,kBAAiB,cAAc,SAAS,CAAC,OAAO,IAAI,EAAE,IAA/B,KAAK,CAA+C,CAAC;gBACtF,CAAC,CAAC,EACD,cAAc,EAAE,UAAU,KAAK,UAAU,IAAI,uBAAC,kBAAiB,cAA+B,cAAc,CAAC,OAAO,IAAI,EAAE,IAArD,cAAc,CAAC,OAAO,CAAoD,IAC5I,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,iCACE,SAAS,EAAE,IAAA,oBAAU,EAAC;YACpB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,IAAI;SACZ,CAAC,aAED,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,EAAE,UAAU,KAAK,UAAU,CAAC,IAAI,gCAAK,SAAS,EAAC,sBAAsB,YAAE,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAO,EAC3K,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,EAAE,UAAU,KAAK,QAAQ,CAAC,IAAI,gCAAK,SAAS,EAAC,oBAAoB,YAAE,aAAa,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAO,IAC9J,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,kBAAe,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":"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"}
|