ds-markdown 0.1.2-beta.2 → 0.1.2
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 +542 -28
- package/README.ja.md +289 -33
- package/README.ko.md +245 -28
- package/README.md +397 -28
- package/dist/cjs/Markdown/index.js +3 -0
- package/dist/cjs/Markdown/index.js.map +1 -1
- package/dist/cjs/MarkdownCMD/index.js +26 -13
- package/dist/cjs/MarkdownCMD/index.js.map +1 -1
- package/dist/cjs/defined.d.ts +15 -6
- package/dist/cjs/hooks/useTypingTask.d.ts +4 -1
- package/dist/cjs/hooks/useTypingTask.js +82 -57
- package/dist/cjs/hooks/useTypingTask.js.map +1 -1
- package/dist/esm/Markdown/index.js +3 -0
- package/dist/esm/Markdown/index.js.map +1 -1
- package/dist/esm/MarkdownCMD/index.js +26 -13
- package/dist/esm/MarkdownCMD/index.js.map +1 -1
- package/dist/esm/defined.d.ts +15 -6
- package/dist/esm/hooks/useTypingTask.d.ts +4 -1
- package/dist/esm/hooks/useTypingTask.js +82 -57
- package/dist/esm/hooks/useTypingTask.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/defined.d.ts
CHANGED
|
@@ -9,10 +9,6 @@ export type Theme = 'light' | 'dark';
|
|
|
9
9
|
export interface IChar {
|
|
10
10
|
content: string;
|
|
11
11
|
answerType: AnswerType;
|
|
12
|
-
/**
|
|
13
|
-
* split_segment 两个连续的段落,需要做分割
|
|
14
|
-
*/
|
|
15
|
-
contentType: 'space' | 'segment' | 'split_segment';
|
|
16
12
|
tokenId: number;
|
|
17
13
|
/** 字符索引 */
|
|
18
14
|
index: number;
|
|
@@ -46,6 +42,10 @@ export interface IOnTypedCharData {
|
|
|
46
42
|
}
|
|
47
43
|
export interface ITypedChar extends IOnTypedCharData {
|
|
48
44
|
percent: number;
|
|
45
|
+
currentStr: string;
|
|
46
|
+
}
|
|
47
|
+
export interface IBeforeTypedChar extends IOnTypedCharData {
|
|
48
|
+
percent: number;
|
|
49
49
|
}
|
|
50
50
|
export interface MarkdownBaseProps {
|
|
51
51
|
/** 计时类型: 支持setTimeout和requestAnimationFrame */
|
|
@@ -60,6 +60,8 @@ export interface MarkdownBaseProps {
|
|
|
60
60
|
onEnd?: (data?: IEndData) => void;
|
|
61
61
|
/** 开始打字回调 */
|
|
62
62
|
onStart?: (data?: IOnTypedCharData) => void;
|
|
63
|
+
/** 打字前回调 */
|
|
64
|
+
onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
|
|
63
65
|
/**
|
|
64
66
|
* 打字机打完一个字符回调
|
|
65
67
|
* @param char 字符
|
|
@@ -96,10 +98,12 @@ export interface IWholeContent {
|
|
|
96
98
|
thinking: {
|
|
97
99
|
content: string;
|
|
98
100
|
length: number;
|
|
101
|
+
prevLength: number;
|
|
99
102
|
};
|
|
100
103
|
answer: {
|
|
101
104
|
content: string;
|
|
102
105
|
length: number;
|
|
106
|
+
prevLength: number;
|
|
103
107
|
};
|
|
104
108
|
allLength: number;
|
|
105
109
|
}
|
|
@@ -107,6 +111,7 @@ export interface MarkdownBaseRef {
|
|
|
107
111
|
stop: () => void;
|
|
108
112
|
resume: () => void;
|
|
109
113
|
start: () => void;
|
|
114
|
+
restart: () => void;
|
|
110
115
|
}
|
|
111
116
|
/** Markdown 组件的ref 类型 */
|
|
112
117
|
export type MarkdownRef = MarkdownBaseRef;
|
|
@@ -117,7 +122,11 @@ export interface MarkdownCMDRef extends MarkdownBaseRef {
|
|
|
117
122
|
triggerWholeEnd: () => void;
|
|
118
123
|
}
|
|
119
124
|
export interface IEndData {
|
|
120
|
-
str?: string;
|
|
121
|
-
answerType?: AnswerType;
|
|
122
125
|
manual: boolean;
|
|
126
|
+
/** 回答字符串 */
|
|
127
|
+
answerStr: string;
|
|
128
|
+
/** 思考字符串 */
|
|
129
|
+
thinkingStr: string;
|
|
130
|
+
/** 打字机打过的字符串, 和answerStr 相同 */
|
|
131
|
+
str: string;
|
|
123
132
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnswerType, IChar, ITypedChar, IWholeContent, MarkdownProps, IEndData } from '../defined.js';
|
|
1
|
+
import { AnswerType, IChar, ITypedChar, IWholeContent, MarkdownProps, IEndData, IBeforeTypedChar } from '../defined.js';
|
|
2
2
|
interface UseTypingTaskOptions {
|
|
3
3
|
timerType: MarkdownProps['timerType'];
|
|
4
4
|
interval: number;
|
|
@@ -10,11 +10,13 @@ interface UseTypingTaskOptions {
|
|
|
10
10
|
answerType: AnswerType;
|
|
11
11
|
prevStr: string;
|
|
12
12
|
}) => void;
|
|
13
|
+
onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
|
|
13
14
|
onTypedChar?: (data?: ITypedChar) => void;
|
|
14
15
|
processCharDisplay: (char: IChar) => void;
|
|
15
16
|
wholeContentRef: React.RefObject<IWholeContent>;
|
|
16
17
|
disableTyping: boolean;
|
|
17
18
|
triggerUpdate: () => void;
|
|
19
|
+
resetWholeContent: () => void;
|
|
18
20
|
}
|
|
19
21
|
export interface TypingTaskController {
|
|
20
22
|
start: () => void;
|
|
@@ -24,6 +26,7 @@ export interface TypingTaskController {
|
|
|
24
26
|
/** 是否主动调用 stop 方法 */
|
|
25
27
|
typedIsManualStopRef: React.RefObject<boolean>;
|
|
26
28
|
resume: () => void;
|
|
29
|
+
restart: () => void;
|
|
27
30
|
}
|
|
28
31
|
export declare const useTypingTask: (options: UseTypingTaskOptions) => TypingTaskController;
|
|
29
32
|
export {};
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useTypingTask = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const useTypingTask = (options) => {
|
|
6
|
-
const { timerType = 'setTimeout', interval, charsRef, onEnd, onStart, onTypedChar, processCharDisplay, wholeContentRef, disableTyping, triggerUpdate } = options;
|
|
6
|
+
const { timerType = 'setTimeout', interval, charsRef, onEnd, onStart, onBeforeTypedChar, onTypedChar, processCharDisplay, wholeContentRef, disableTyping, triggerUpdate, resetWholeContent, } = options;
|
|
7
7
|
/** 是否卸载 */
|
|
8
8
|
const isUnmountRef = (0, react_1.useRef)(false);
|
|
9
9
|
/** 是否正在打字 */
|
|
@@ -27,30 +27,6 @@ const useTypingTask = (options) => {
|
|
|
27
27
|
isUnmountRef.current = true;
|
|
28
28
|
};
|
|
29
29
|
}, []);
|
|
30
|
-
/**
|
|
31
|
-
* 记录打过的字
|
|
32
|
-
* @param char 当前字符
|
|
33
|
-
* @returns
|
|
34
|
-
*/
|
|
35
|
-
const recordTypedChars = (char) => {
|
|
36
|
-
let prevStr = '';
|
|
37
|
-
if (!typedCharsRef.current || typedCharsRef.current.answerType !== char.answerType) {
|
|
38
|
-
typedCharsRef.current = {
|
|
39
|
-
typedContent: char.content,
|
|
40
|
-
answerType: char.answerType,
|
|
41
|
-
prevStr: '',
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
prevStr = typedCharsRef.current.typedContent;
|
|
46
|
-
typedCharsRef.current.typedContent += char.content;
|
|
47
|
-
typedCharsRef.current.prevStr = prevStr;
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
prevStr,
|
|
51
|
-
nextStr: typedCharsRef.current?.typedContent || '',
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
30
|
/**
|
|
55
31
|
* 触发打字开始回调
|
|
56
32
|
* @param char 当前字符
|
|
@@ -59,7 +35,7 @@ const useTypingTask = (options) => {
|
|
|
59
35
|
if (!onStart) {
|
|
60
36
|
return;
|
|
61
37
|
}
|
|
62
|
-
const
|
|
38
|
+
const prevStr = wholeContentRef.current[char.answerType].content;
|
|
63
39
|
onStart({
|
|
64
40
|
currentIndex: prevStr.length,
|
|
65
41
|
currentChar: char.content,
|
|
@@ -75,20 +51,34 @@ const useTypingTask = (options) => {
|
|
|
75
51
|
return;
|
|
76
52
|
}
|
|
77
53
|
onEnd({
|
|
78
|
-
str:
|
|
79
|
-
|
|
54
|
+
str: wholeContentRef.current.answer.content,
|
|
55
|
+
answerStr: wholeContentRef.current.answer.content,
|
|
56
|
+
thinkingStr: wholeContentRef.current.thinking.content,
|
|
80
57
|
manual: data?.manual ?? false,
|
|
81
58
|
});
|
|
82
59
|
};
|
|
83
60
|
/**
|
|
84
61
|
* 触发打字过程中回调
|
|
85
62
|
* @param char 当前字符
|
|
86
|
-
* @param isStartPoint 是否是开始打字(第一个字)
|
|
87
63
|
*/
|
|
88
|
-
const
|
|
89
|
-
if (!
|
|
90
|
-
|
|
64
|
+
const triggerOnBeforeTypedChar = async (char) => {
|
|
65
|
+
if (!onBeforeTypedChar) {
|
|
66
|
+
return;
|
|
91
67
|
}
|
|
68
|
+
const { answerType, content, index } = char;
|
|
69
|
+
const allLength = wholeContentRef.current.allLength;
|
|
70
|
+
// 计算之前字符的百分比
|
|
71
|
+
const percent = (char.index / allLength) * 100;
|
|
72
|
+
await onBeforeTypedChar({
|
|
73
|
+
currentIndex: index,
|
|
74
|
+
currentChar: content,
|
|
75
|
+
answerType: answerType,
|
|
76
|
+
prevStr: wholeContentRef.current[answerType].content,
|
|
77
|
+
percent,
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
/** 打字完成回调 */
|
|
81
|
+
const triggerOnTypedChar = async (char) => {
|
|
92
82
|
if (!onTypedChar) {
|
|
93
83
|
return;
|
|
94
84
|
}
|
|
@@ -99,7 +89,8 @@ const useTypingTask = (options) => {
|
|
|
99
89
|
currentIndex: index,
|
|
100
90
|
currentChar: content,
|
|
101
91
|
answerType: answerType,
|
|
102
|
-
prevStr:
|
|
92
|
+
prevStr: wholeContentRef.current[answerType].content.slice(0, index),
|
|
93
|
+
currentStr: wholeContentRef.current[answerType].content,
|
|
103
94
|
percent,
|
|
104
95
|
});
|
|
105
96
|
};
|
|
@@ -135,7 +126,7 @@ const useTypingTask = (options) => {
|
|
|
135
126
|
}
|
|
136
127
|
};
|
|
137
128
|
/** 打字机打完所有字符 */
|
|
138
|
-
function typingRemainAll() {
|
|
129
|
+
async function typingRemainAll() {
|
|
139
130
|
const chars = getChars();
|
|
140
131
|
const thinkingCharsStr = chars
|
|
141
132
|
.filter((char) => char.answerType === 'thinking')
|
|
@@ -146,20 +137,20 @@ const useTypingTask = (options) => {
|
|
|
146
137
|
.map((char) => char.content)
|
|
147
138
|
.join('');
|
|
148
139
|
if (thinkingCharsStr) {
|
|
149
|
-
|
|
140
|
+
await onBeforeTypedChar?.({
|
|
150
141
|
currentIndex: wholeContentRef.current.thinking.length,
|
|
151
142
|
currentChar: thinkingCharsStr,
|
|
152
143
|
answerType: 'thinking',
|
|
153
|
-
prevStr:
|
|
144
|
+
prevStr: wholeContentRef.current.thinking.content,
|
|
154
145
|
percent: 100,
|
|
155
146
|
});
|
|
156
147
|
}
|
|
157
148
|
if (answerCharsStr) {
|
|
158
|
-
|
|
149
|
+
await onBeforeTypedChar?.({
|
|
159
150
|
currentIndex: wholeContentRef.current.answer.length,
|
|
160
151
|
currentChar: answerCharsStr,
|
|
161
152
|
answerType: 'answer',
|
|
162
|
-
prevStr:
|
|
153
|
+
prevStr: wholeContentRef.current.answer.content,
|
|
163
154
|
percent: 100,
|
|
164
155
|
});
|
|
165
156
|
}
|
|
@@ -176,10 +167,10 @@ const useTypingTask = (options) => {
|
|
|
176
167
|
/** requestAnimationFrame 模式 */
|
|
177
168
|
const startAnimationFrameMode = () => {
|
|
178
169
|
let lastFrameTime = 0;
|
|
179
|
-
const frameLoop = (currentTime) => {
|
|
170
|
+
const frameLoop = async (currentTime) => {
|
|
180
171
|
// 如果关闭打字机效果,则打完所有字符
|
|
181
172
|
if (disableTypingRef.current) {
|
|
182
|
-
typingRemainAll();
|
|
173
|
+
await typingRemainAll();
|
|
183
174
|
return;
|
|
184
175
|
}
|
|
185
176
|
const chars = getChars();
|
|
@@ -204,14 +195,14 @@ const useTypingTask = (options) => {
|
|
|
204
195
|
if (!isTypingRef.current) {
|
|
205
196
|
isTypingRef.current = true;
|
|
206
197
|
triggerOnStart(char);
|
|
207
|
-
triggerOnTypedChar(char, true);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
triggerOnTypedChar(char);
|
|
211
198
|
}
|
|
199
|
+
/** 打字前回调 */
|
|
200
|
+
await triggerOnBeforeTypedChar(char);
|
|
212
201
|
processCharDisplay(char);
|
|
202
|
+
/** 打字完成回调 */
|
|
203
|
+
triggerOnTypedChar(char);
|
|
213
204
|
}
|
|
214
|
-
lastFrameTime =
|
|
205
|
+
lastFrameTime = performance.now();
|
|
215
206
|
// 继续下一帧
|
|
216
207
|
if (chars.length > 0) {
|
|
217
208
|
animationFrameRef.current = requestAnimationFrame(frameLoop);
|
|
@@ -244,7 +235,7 @@ const useTypingTask = (options) => {
|
|
|
244
235
|
}
|
|
245
236
|
timerRef.current = setTimeout(startTyped, interval);
|
|
246
237
|
};
|
|
247
|
-
const startTyped = (isStartPoint = false) => {
|
|
238
|
+
const startTyped = async (isStartPoint = false) => {
|
|
248
239
|
// 如果关闭打字机效果,则打完所有字符
|
|
249
240
|
if (disableTypingRef.current) {
|
|
250
241
|
typingRemainAll();
|
|
@@ -261,12 +252,12 @@ const useTypingTask = (options) => {
|
|
|
261
252
|
}
|
|
262
253
|
if (isStartPoint) {
|
|
263
254
|
triggerOnStart(char);
|
|
264
|
-
triggerOnTypedChar(char, isStartPoint);
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
triggerOnTypedChar(char);
|
|
268
255
|
}
|
|
256
|
+
/** 打字前回调 */
|
|
257
|
+
await triggerOnBeforeTypedChar(char);
|
|
269
258
|
processCharDisplay(char);
|
|
259
|
+
/** 打字完成回调 */
|
|
260
|
+
triggerOnTypedChar(char);
|
|
270
261
|
nextTyped();
|
|
271
262
|
};
|
|
272
263
|
startTyped(true);
|
|
@@ -280,8 +271,7 @@ const useTypingTask = (options) => {
|
|
|
280
271
|
}
|
|
281
272
|
triggerOnEnd();
|
|
282
273
|
};
|
|
283
|
-
const
|
|
284
|
-
typedIsManualStopRef.current = true;
|
|
274
|
+
const cancelTask = () => {
|
|
285
275
|
if (timerType === 'requestAnimationFrame') {
|
|
286
276
|
stopAnimationFrame();
|
|
287
277
|
}
|
|
@@ -289,18 +279,53 @@ const useTypingTask = (options) => {
|
|
|
289
279
|
stopTimeout();
|
|
290
280
|
}
|
|
291
281
|
};
|
|
282
|
+
/** 暂时停止 */
|
|
283
|
+
const stopTask = () => {
|
|
284
|
+
typedIsManualStopRef.current = true;
|
|
285
|
+
cancelTask();
|
|
286
|
+
};
|
|
287
|
+
/** 停止打字任务 */
|
|
288
|
+
const endTask = () => {
|
|
289
|
+
cancelTask();
|
|
290
|
+
};
|
|
292
291
|
function restartTypedTask() {
|
|
292
|
+
endTask();
|
|
293
|
+
// 将wholeContentRef的内容放到charsRef中
|
|
294
|
+
charsRef.current.unshift(...wholeContentRef.current.thinking.content.split('').map((charUnit) => {
|
|
295
|
+
const char = {
|
|
296
|
+
content: charUnit,
|
|
297
|
+
answerType: 'thinking',
|
|
298
|
+
tokenId: 0,
|
|
299
|
+
index: 0,
|
|
300
|
+
};
|
|
301
|
+
return char;
|
|
302
|
+
}));
|
|
303
|
+
charsRef.current.unshift(...wholeContentRef.current.answer.content.split('').map((charUnit) => {
|
|
304
|
+
const char = {
|
|
305
|
+
content: charUnit,
|
|
306
|
+
answerType: 'answer',
|
|
307
|
+
tokenId: 0,
|
|
308
|
+
index: 0,
|
|
309
|
+
};
|
|
310
|
+
return char;
|
|
311
|
+
}));
|
|
312
|
+
resetWholeContent();
|
|
313
|
+
triggerUpdate();
|
|
314
|
+
startTypedTask();
|
|
315
|
+
}
|
|
316
|
+
function clear() {
|
|
317
|
+
clearTimer();
|
|
318
|
+
}
|
|
319
|
+
function resume() {
|
|
293
320
|
typedIsManualStopRef.current = false;
|
|
294
321
|
startTypedTask();
|
|
295
322
|
}
|
|
296
323
|
return {
|
|
297
324
|
start: startTypedTask,
|
|
325
|
+
restart: restartTypedTask,
|
|
298
326
|
stop: stopTask,
|
|
299
|
-
resume:
|
|
300
|
-
clear:
|
|
301
|
-
clearTimer();
|
|
302
|
-
typedCharsRef.current = undefined;
|
|
303
|
-
},
|
|
327
|
+
resume: resume,
|
|
328
|
+
clear: clear,
|
|
304
329
|
isTyping: () => isTypingRef.current,
|
|
305
330
|
typedIsManualStopRef,
|
|
306
331
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypingTask.js","sourceRoot":"","sources":["../../../src/hooks/useTypingTask.ts"],"names":[],"mappings":";;;AAAA,iCAA0C;
|
|
1
|
+
{"version":3,"file":"useTypingTask.js","sourceRoot":"","sources":["../../../src/hooks/useTypingTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Markdown/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAMlD,MAAM,aAAa,GAAiC,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACrH,MAAM,MAAM,GAAG,MAAM,CAAiB,IAAK,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC7B,UAAU,GAAG,OAAO,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,OAAO,CAAC;oBACrB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC5C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO,KAAC,WAAW,IAAC,GAAG,EAAE,MAAM,KAAM,IAAI,GAAI,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,CAA6B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,UAAU,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEvD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,KAAC,aAAa,OAAK,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,GAAI,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Markdown/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import HighReactMarkdown from '../components/HighReactMarkdown/index.js';
|
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import { __DEV__ } from '../constant.js';
|
|
6
6
|
import { useTypingTask } from '../hooks/useTypingTask.js';
|
|
7
|
-
const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, timerType = 'setTimeout', theme = 'light', math, plugins, disableTyping = false, autoStartTyping = true }, ref) => {
|
|
7
|
+
const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, onBeforeTypedChar, timerType = 'setTimeout', theme = 'light', math, plugins, disableTyping = false, autoStartTyping = true }, ref) => {
|
|
8
8
|
/** 是否自动开启打字动画, 后面发生变化将不会生效 */
|
|
9
9
|
const autoStartTypingRef = useRef(autoStartTyping);
|
|
10
10
|
/** 是否打过字 */
|
|
@@ -22,10 +22,12 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
22
22
|
thinking: {
|
|
23
23
|
content: '',
|
|
24
24
|
length: 0,
|
|
25
|
+
prevLength: 0,
|
|
25
26
|
},
|
|
26
27
|
answer: {
|
|
27
28
|
content: '',
|
|
28
29
|
length: 0,
|
|
30
|
+
prevLength: 0,
|
|
29
31
|
},
|
|
30
32
|
allLength: 0,
|
|
31
33
|
});
|
|
@@ -50,6 +52,15 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
50
52
|
}
|
|
51
53
|
triggerUpdate();
|
|
52
54
|
};
|
|
55
|
+
const resetWholeContent = () => {
|
|
56
|
+
wholeContentRef.current.thinking.content = '';
|
|
57
|
+
wholeContentRef.current.thinking.length = 0;
|
|
58
|
+
wholeContentRef.current.thinking.prevLength = 0;
|
|
59
|
+
wholeContentRef.current.answer.content = '';
|
|
60
|
+
wholeContentRef.current.answer.length = 0;
|
|
61
|
+
wholeContentRef.current.answer.prevLength = 0;
|
|
62
|
+
wholeContentRef.current.allLength = 0;
|
|
63
|
+
};
|
|
53
64
|
// 使用新的打字任务 hook
|
|
54
65
|
const typingTask = useTypingTask({
|
|
55
66
|
timerType,
|
|
@@ -58,10 +69,12 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
58
69
|
onEnd,
|
|
59
70
|
onStart,
|
|
60
71
|
onTypedChar,
|
|
72
|
+
onBeforeTypedChar,
|
|
61
73
|
processCharDisplay,
|
|
62
74
|
wholeContentRef,
|
|
63
75
|
disableTyping,
|
|
64
76
|
triggerUpdate,
|
|
77
|
+
resetWholeContent,
|
|
65
78
|
});
|
|
66
79
|
/**
|
|
67
80
|
* 内部推送处理逻辑
|
|
@@ -75,7 +88,6 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
75
88
|
const charObj = {
|
|
76
89
|
content: chatStr,
|
|
77
90
|
answerType,
|
|
78
|
-
contentType: 'segment',
|
|
79
91
|
tokenId: 0,
|
|
80
92
|
index,
|
|
81
93
|
};
|
|
@@ -92,11 +104,14 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
92
104
|
};
|
|
93
105
|
const processNoTypingPush = (content, answerType) => {
|
|
94
106
|
wholeContentRef.current[answerType].content += content;
|
|
107
|
+
// 记录打字前的长度
|
|
108
|
+
wholeContentRef.current[answerType].prevLength = wholeContentRef.current[answerType].length;
|
|
95
109
|
wholeContentRef.current[answerType].length += content.length;
|
|
96
110
|
triggerUpdate();
|
|
97
111
|
onEnd?.({
|
|
98
112
|
str: content,
|
|
99
|
-
|
|
113
|
+
answerStr: wholeContentRef.current.answer.content,
|
|
114
|
+
thinkingStr: wholeContentRef.current.thinking.content,
|
|
100
115
|
manual: false,
|
|
101
116
|
});
|
|
102
117
|
};
|
|
@@ -120,11 +135,7 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
120
135
|
typingTask.stop();
|
|
121
136
|
typingTask.typedIsManualStopRef.current = false;
|
|
122
137
|
charsRef.current = [];
|
|
123
|
-
|
|
124
|
-
wholeContentRef.current.thinking.length = 0;
|
|
125
|
-
wholeContentRef.current.answer.content = '';
|
|
126
|
-
wholeContentRef.current.answer.length = 0;
|
|
127
|
-
wholeContentRef.current.allLength = 0;
|
|
138
|
+
resetWholeContent();
|
|
128
139
|
isWholeTypedEndRef.current = false;
|
|
129
140
|
charIndexRef.current = 0;
|
|
130
141
|
isStartedTypingRef.current = false;
|
|
@@ -152,15 +163,17 @@ const MarkdownCMD = forwardRef(({ interval = 30, onEnd, onStart, onTypedChar, ti
|
|
|
152
163
|
if (!typingTask.isTyping()) {
|
|
153
164
|
// 这里需要手动触发结束回调,因为 hook 中的 triggerOnEnd 不能直接调用
|
|
154
165
|
onEnd?.({
|
|
155
|
-
str:
|
|
156
|
-
|
|
166
|
+
str: wholeContentRef.current.answer.content,
|
|
167
|
+
answerStr: wholeContentRef.current.answer.content,
|
|
168
|
+
thinkingStr: wholeContentRef.current.thinking.content,
|
|
157
169
|
manual: true,
|
|
158
170
|
});
|
|
159
171
|
}
|
|
160
172
|
},
|
|
161
|
-
/**
|
|
162
|
-
|
|
163
|
-
|
|
173
|
+
/** 重新开始打字任务 */
|
|
174
|
+
restart: () => {
|
|
175
|
+
typingTask.restart();
|
|
176
|
+
},
|
|
164
177
|
}));
|
|
165
178
|
const getParagraphs = (answerType) => {
|
|
166
179
|
const content = wholeContentRef.current[answerType].content || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,GAAG,UAAU,CAC5B,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,GAAG,YAAY,EAAE,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/defined.d.ts
CHANGED
|
@@ -9,10 +9,6 @@ export type Theme = 'light' | 'dark';
|
|
|
9
9
|
export interface IChar {
|
|
10
10
|
content: string;
|
|
11
11
|
answerType: AnswerType;
|
|
12
|
-
/**
|
|
13
|
-
* split_segment 两个连续的段落,需要做分割
|
|
14
|
-
*/
|
|
15
|
-
contentType: 'space' | 'segment' | 'split_segment';
|
|
16
12
|
tokenId: number;
|
|
17
13
|
/** 字符索引 */
|
|
18
14
|
index: number;
|
|
@@ -46,6 +42,10 @@ export interface IOnTypedCharData {
|
|
|
46
42
|
}
|
|
47
43
|
export interface ITypedChar extends IOnTypedCharData {
|
|
48
44
|
percent: number;
|
|
45
|
+
currentStr: string;
|
|
46
|
+
}
|
|
47
|
+
export interface IBeforeTypedChar extends IOnTypedCharData {
|
|
48
|
+
percent: number;
|
|
49
49
|
}
|
|
50
50
|
export interface MarkdownBaseProps {
|
|
51
51
|
/** 计时类型: 支持setTimeout和requestAnimationFrame */
|
|
@@ -60,6 +60,8 @@ export interface MarkdownBaseProps {
|
|
|
60
60
|
onEnd?: (data?: IEndData) => void;
|
|
61
61
|
/** 开始打字回调 */
|
|
62
62
|
onStart?: (data?: IOnTypedCharData) => void;
|
|
63
|
+
/** 打字前回调 */
|
|
64
|
+
onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
|
|
63
65
|
/**
|
|
64
66
|
* 打字机打完一个字符回调
|
|
65
67
|
* @param char 字符
|
|
@@ -96,10 +98,12 @@ export interface IWholeContent {
|
|
|
96
98
|
thinking: {
|
|
97
99
|
content: string;
|
|
98
100
|
length: number;
|
|
101
|
+
prevLength: number;
|
|
99
102
|
};
|
|
100
103
|
answer: {
|
|
101
104
|
content: string;
|
|
102
105
|
length: number;
|
|
106
|
+
prevLength: number;
|
|
103
107
|
};
|
|
104
108
|
allLength: number;
|
|
105
109
|
}
|
|
@@ -107,6 +111,7 @@ export interface MarkdownBaseRef {
|
|
|
107
111
|
stop: () => void;
|
|
108
112
|
resume: () => void;
|
|
109
113
|
start: () => void;
|
|
114
|
+
restart: () => void;
|
|
110
115
|
}
|
|
111
116
|
/** Markdown 组件的ref 类型 */
|
|
112
117
|
export type MarkdownRef = MarkdownBaseRef;
|
|
@@ -117,7 +122,11 @@ export interface MarkdownCMDRef extends MarkdownBaseRef {
|
|
|
117
122
|
triggerWholeEnd: () => void;
|
|
118
123
|
}
|
|
119
124
|
export interface IEndData {
|
|
120
|
-
str?: string;
|
|
121
|
-
answerType?: AnswerType;
|
|
122
125
|
manual: boolean;
|
|
126
|
+
/** 回答字符串 */
|
|
127
|
+
answerStr: string;
|
|
128
|
+
/** 思考字符串 */
|
|
129
|
+
thinkingStr: string;
|
|
130
|
+
/** 打字机打过的字符串, 和answerStr 相同 */
|
|
131
|
+
str: string;
|
|
123
132
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnswerType, IChar, ITypedChar, IWholeContent, MarkdownProps, IEndData } from '../defined.js';
|
|
1
|
+
import { AnswerType, IChar, ITypedChar, IWholeContent, MarkdownProps, IEndData, IBeforeTypedChar } from '../defined.js';
|
|
2
2
|
interface UseTypingTaskOptions {
|
|
3
3
|
timerType: MarkdownProps['timerType'];
|
|
4
4
|
interval: number;
|
|
@@ -10,11 +10,13 @@ interface UseTypingTaskOptions {
|
|
|
10
10
|
answerType: AnswerType;
|
|
11
11
|
prevStr: string;
|
|
12
12
|
}) => void;
|
|
13
|
+
onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
|
|
13
14
|
onTypedChar?: (data?: ITypedChar) => void;
|
|
14
15
|
processCharDisplay: (char: IChar) => void;
|
|
15
16
|
wholeContentRef: React.RefObject<IWholeContent>;
|
|
16
17
|
disableTyping: boolean;
|
|
17
18
|
triggerUpdate: () => void;
|
|
19
|
+
resetWholeContent: () => void;
|
|
18
20
|
}
|
|
19
21
|
export interface TypingTaskController {
|
|
20
22
|
start: () => void;
|
|
@@ -24,6 +26,7 @@ export interface TypingTaskController {
|
|
|
24
26
|
/** 是否主动调用 stop 方法 */
|
|
25
27
|
typedIsManualStopRef: React.RefObject<boolean>;
|
|
26
28
|
resume: () => void;
|
|
29
|
+
restart: () => void;
|
|
27
30
|
}
|
|
28
31
|
export declare const useTypingTask: (options: UseTypingTaskOptions) => TypingTaskController;
|
|
29
32
|
export {};
|