ds-markdown 0.1.3-beta.1 → 0.1.4-beta.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.
Files changed (93) hide show
  1. package/README.md +14 -14
  2. package/dist/cjs/index.d.ts +98 -6
  3. package/dist/cjs/index.js +2 -12
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/plugins/index.d.ts +8 -1
  6. package/dist/cjs/plugins/index.js +2 -24
  7. package/dist/cjs/plugins/index.js.map +1 -1
  8. package/dist/esm/index.d.ts +98 -6
  9. package/dist/esm/index.js +2 -5
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/plugins/index.d.ts +8 -1
  12. package/dist/esm/plugins/index.js +2 -17
  13. package/dist/esm/plugins/index.js.map +1 -1
  14. package/package.json +15 -5
  15. package/dist/cjs/AutoScroll/index.d.ts +0 -6
  16. package/dist/cjs/AutoScroll/index.js +0 -9
  17. package/dist/cjs/AutoScroll/index.js.map +0 -1
  18. package/dist/cjs/Markdown/index.d.ts +0 -4
  19. package/dist/cjs/Markdown/index.js +0 -70
  20. package/dist/cjs/Markdown/index.js.map +0 -1
  21. package/dist/cjs/MarkdownCMD/index.d.ts +0 -3
  22. package/dist/cjs/MarkdownCMD/index.js +0 -197
  23. package/dist/cjs/MarkdownCMD/index.js.map +0 -1
  24. package/dist/cjs/components/BlockWrap/index.d.ts +0 -9
  25. package/dist/cjs/components/BlockWrap/index.js +0 -8
  26. package/dist/cjs/components/BlockWrap/index.js.map +0 -1
  27. package/dist/cjs/components/HighReactMarkdown/index.d.ts +0 -11
  28. package/dist/cjs/components/HighReactMarkdown/index.js +0 -58
  29. package/dist/cjs/components/HighReactMarkdown/index.js.map +0 -1
  30. package/dist/cjs/constant.d.ts +0 -3
  31. package/dist/cjs/constant.js +0 -7
  32. package/dist/cjs/constant.js.map +0 -1
  33. package/dist/cjs/defined.d.ts +0 -132
  34. package/dist/cjs/defined.js +0 -3
  35. package/dist/cjs/defined.js.map +0 -1
  36. package/dist/cjs/hooks/useTypingTask.d.ts +0 -32
  37. package/dist/cjs/hooks/useTypingTask.js +0 -338
  38. package/dist/cjs/hooks/useTypingTask.js.map +0 -1
  39. package/dist/cjs/package.json +0 -1
  40. package/dist/cjs/utils/Tokenizer.d.ts +0 -47
  41. package/dist/cjs/utils/Tokenizer.js +0 -196
  42. package/dist/cjs/utils/Tokenizer.js.map +0 -1
  43. package/dist/cjs/utils/compiler.d.ts +0 -4
  44. package/dist/cjs/utils/compiler.js +0 -65
  45. package/dist/cjs/utils/compiler.js.map +0 -1
  46. package/dist/cjs/utils/methods/deepClone.d.ts +0 -1
  47. package/dist/cjs/utils/methods/deepClone.js +0 -7
  48. package/dist/cjs/utils/methods/deepClone.js.map +0 -1
  49. package/dist/cjs/utils/remarkMathBracket.d.ts +0 -7
  50. package/dist/cjs/utils/remarkMathBracket.js +0 -40
  51. package/dist/cjs/utils/remarkMathBracket.js.map +0 -1
  52. package/dist/cjs/utils/rule.d.ts +0 -25
  53. package/dist/cjs/utils/rule.js +0 -72
  54. package/dist/cjs/utils/rule.js.map +0 -1
  55. package/dist/esm/AutoScroll/index.d.ts +0 -6
  56. package/dist/esm/AutoScroll/index.js +0 -7
  57. package/dist/esm/AutoScroll/index.js.map +0 -1
  58. package/dist/esm/Markdown/index.d.ts +0 -4
  59. package/dist/esm/Markdown/index.js +0 -65
  60. package/dist/esm/Markdown/index.js.map +0 -1
  61. package/dist/esm/MarkdownCMD/index.d.ts +0 -3
  62. package/dist/esm/MarkdownCMD/index.js +0 -192
  63. package/dist/esm/MarkdownCMD/index.js.map +0 -1
  64. package/dist/esm/components/BlockWrap/index.d.ts +0 -9
  65. package/dist/esm/components/BlockWrap/index.js +0 -6
  66. package/dist/esm/components/BlockWrap/index.js.map +0 -1
  67. package/dist/esm/components/HighReactMarkdown/index.d.ts +0 -11
  68. package/dist/esm/components/HighReactMarkdown/index.js +0 -53
  69. package/dist/esm/components/HighReactMarkdown/index.js.map +0 -1
  70. package/dist/esm/constant.d.ts +0 -3
  71. package/dist/esm/constant.js +0 -4
  72. package/dist/esm/constant.js.map +0 -1
  73. package/dist/esm/defined.d.ts +0 -132
  74. package/dist/esm/defined.js +0 -2
  75. package/dist/esm/defined.js.map +0 -1
  76. package/dist/esm/hooks/useTypingTask.d.ts +0 -32
  77. package/dist/esm/hooks/useTypingTask.js +0 -334
  78. package/dist/esm/hooks/useTypingTask.js.map +0 -1
  79. package/dist/esm/utils/Tokenizer.d.ts +0 -47
  80. package/dist/esm/utils/Tokenizer.js +0 -191
  81. package/dist/esm/utils/Tokenizer.js.map +0 -1
  82. package/dist/esm/utils/compiler.d.ts +0 -4
  83. package/dist/esm/utils/compiler.js +0 -62
  84. package/dist/esm/utils/compiler.js.map +0 -1
  85. package/dist/esm/utils/methods/deepClone.d.ts +0 -1
  86. package/dist/esm/utils/methods/deepClone.js +0 -4
  87. package/dist/esm/utils/methods/deepClone.js.map +0 -1
  88. package/dist/esm/utils/remarkMathBracket.d.ts +0 -7
  89. package/dist/esm/utils/remarkMathBracket.js +0 -36
  90. package/dist/esm/utils/remarkMathBracket.js.map +0 -1
  91. package/dist/esm/utils/rule.d.ts +0 -25
  92. package/dist/esm/utils/rule.js +0 -69
  93. package/dist/esm/utils/rule.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Markdown/index.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { MarkdownCMDProps, MarkdownCMDRef } from '../defined.js';
2
- declare const MarkdownCMD: import("react").ForwardRefExoticComponent<MarkdownCMDProps & import("react").RefAttributes<MarkdownCMDRef>>;
3
- export default MarkdownCMD;
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("react");
8
- const index_js_1 = __importDefault(require("../components/HighReactMarkdown/index.js"));
9
- const classnames_1 = __importDefault(require("classnames"));
10
- const constant_js_1 = require("../constant.js");
11
- const useTypingTask_js_1 = require("../hooks/useTypingTask.js");
12
- const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, onEnd, onStart, onTypedChar, onBeforeTypedChar, timerType = 'setTimeout', theme = 'light', math, plugins, disableTyping = false, autoStartTyping = true }, ref) => {
13
- /** 是否自动开启打字动画, 后面发生变化将不会生效 */
14
- const autoStartTypingRef = (0, react_1.useRef)(autoStartTyping);
15
- /** 是否打过字 */
16
- const isStartedTypingRef = (0, react_1.useRef)(false);
17
- /** 当前需要打字的内容 */
18
- const charsRef = (0, react_1.useRef)([]);
19
- /**
20
- * 打字是否已经完全结束
21
- * 如果打字已经完全结束,则不会再触发打字效果
22
- */
23
- const isWholeTypedEndRef = (0, react_1.useRef)(false);
24
- const charIndexRef = (0, react_1.useRef)(0);
25
- /** 整个内容引用 */
26
- const wholeContentRef = (0, react_1.useRef)({
27
- thinking: {
28
- content: '',
29
- length: 0,
30
- prevLength: 0,
31
- },
32
- answer: {
33
- content: '',
34
- length: 0,
35
- prevLength: 0,
36
- },
37
- allLength: 0,
38
- });
39
- const [, setUpdate] = (0, react_1.useState)(0);
40
- const triggerUpdate = () => {
41
- setUpdate((prev) => prev + 1);
42
- };
43
- /**
44
- * 处理字符显示逻辑
45
- */
46
- const processCharDisplay = (char) => {
47
- if (!isStartedTypingRef.current) {
48
- isStartedTypingRef.current = true;
49
- }
50
- if (char.answerType === 'thinking') {
51
- wholeContentRef.current.thinking.content += char.content;
52
- wholeContentRef.current.thinking.length += 1;
53
- }
54
- else {
55
- wholeContentRef.current.answer.content += char.content;
56
- wholeContentRef.current.answer.length += 1;
57
- }
58
- triggerUpdate();
59
- };
60
- const resetWholeContent = () => {
61
- wholeContentRef.current.thinking.content = '';
62
- wholeContentRef.current.thinking.length = 0;
63
- wholeContentRef.current.thinking.prevLength = 0;
64
- wholeContentRef.current.answer.content = '';
65
- wholeContentRef.current.answer.length = 0;
66
- wholeContentRef.current.answer.prevLength = 0;
67
- wholeContentRef.current.allLength = 0;
68
- };
69
- // 使用新的打字任务 hook
70
- const typingTask = (0, useTypingTask_js_1.useTypingTask)({
71
- timerType,
72
- interval,
73
- charsRef,
74
- onEnd,
75
- onStart,
76
- onTypedChar,
77
- onBeforeTypedChar,
78
- processCharDisplay,
79
- wholeContentRef,
80
- disableTyping,
81
- triggerUpdate,
82
- resetWholeContent,
83
- });
84
- /**
85
- * 内部推送处理逻辑
86
- */
87
- const processHasTypingPush = (content, answerType) => {
88
- if (content.length === 0) {
89
- return;
90
- }
91
- charsRef.current.push(...content.split('').map((chatStr) => {
92
- const index = charIndexRef.current++;
93
- const charObj = {
94
- content: chatStr,
95
- answerType,
96
- tokenId: 0,
97
- index,
98
- };
99
- return charObj;
100
- }));
101
- wholeContentRef.current.allLength += content.length;
102
- // 如果关闭了自动打字, 并且没有打过字, 则不开启打字动画
103
- if (!autoStartTypingRef.current && !isStartedTypingRef.current) {
104
- return;
105
- }
106
- if (!typingTask.isTyping()) {
107
- typingTask.start();
108
- }
109
- };
110
- const processNoTypingPush = (content, answerType) => {
111
- wholeContentRef.current[answerType].content += content;
112
- // 记录打字前的长度
113
- wholeContentRef.current[answerType].prevLength = wholeContentRef.current[answerType].length;
114
- wholeContentRef.current[answerType].length += content.length;
115
- triggerUpdate();
116
- onEnd?.({
117
- str: content,
118
- answerStr: wholeContentRef.current.answer.content,
119
- thinkingStr: wholeContentRef.current.thinking.content,
120
- manual: false,
121
- });
122
- };
123
- (0, react_1.useImperativeHandle)(ref, () => ({
124
- /**
125
- * 添加内容
126
- * @param content 内容 {string}
127
- * @param answerType 回答类型 {AnswerType}
128
- */
129
- push: (content, answerType = 'answer') => {
130
- if (disableTyping) {
131
- processNoTypingPush(content, answerType);
132
- return;
133
- }
134
- processHasTypingPush(content, answerType);
135
- },
136
- /**
137
- * 清除打字任务
138
- */
139
- clear: () => {
140
- typingTask.stop();
141
- typingTask.typedIsManualStopRef.current = false;
142
- charsRef.current = [];
143
- resetWholeContent();
144
- isWholeTypedEndRef.current = false;
145
- charIndexRef.current = 0;
146
- isStartedTypingRef.current = false;
147
- triggerUpdate();
148
- },
149
- /** 开启打字,只有在关闭了自动打字才生效 */
150
- start: () => {
151
- if (!autoStartTypingRef.current) {
152
- typingTask.start();
153
- }
154
- },
155
- /** 停止打字任务 */
156
- stop: () => {
157
- typingTask.stop();
158
- },
159
- /** 重新开始打字任务 */
160
- resume: () => {
161
- typingTask.resume();
162
- },
163
- /**
164
- * 主动触发打字结束
165
- */
166
- triggerWholeEnd: () => {
167
- isWholeTypedEndRef.current = true;
168
- if (!typingTask.isTyping()) {
169
- // 这里需要手动触发结束回调,因为 hook 中的 triggerOnEnd 不能直接调用
170
- onEnd?.({
171
- str: wholeContentRef.current.answer.content,
172
- answerStr: wholeContentRef.current.answer.content,
173
- thinkingStr: wholeContentRef.current.thinking.content,
174
- manual: true,
175
- });
176
- }
177
- },
178
- /** 重新开始打字任务 */
179
- restart: () => {
180
- typingTask.restart();
181
- },
182
- }));
183
- const getParagraphs = (answerType) => {
184
- const content = wholeContentRef.current[answerType].content || '';
185
- return ((0, jsx_runtime_1.jsx)("div", { className: `ds-markdown-paragraph ds-typed-${answerType}`, children: (0, jsx_runtime_1.jsx)(index_js_1.default, { theme: theme, math: math, plugins: plugins, children: content }) }));
186
- };
187
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)({
188
- 'ds-markdown': true,
189
- apple: true,
190
- 'ds-markdown-dark': theme === 'dark',
191
- }), children: [(0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-thinking", children: getParagraphs('thinking') }), (0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-answer", children: getParagraphs('answer') })] }));
192
- });
193
- if (constant_js_1.__DEV__) {
194
- MarkdownCMD.displayName = 'MarkdownCMD';
195
- }
196
- exports.default = MarkdownCMD;
197
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { Theme } from '../../defined.js';
3
- interface BlockWrapProps {
4
- children: React.ReactNode;
5
- language: string;
6
- theme?: Theme;
7
- }
8
- declare const BlockWrap: React.FC<BlockWrapProps>;
9
- export default BlockWrap;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const BlockWrap = ({ children, language, theme = 'light' }) => {
5
- return ((0, jsx_runtime_1.jsxs)("div", { className: `md-code-block md-code-block-${theme}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "md-code-block-banner-wrap", children: (0, jsx_runtime_1.jsx)("div", { className: "md-code-block-banner md-code-block-banner-lite", children: (0, jsx_runtime_1.jsx)("div", { className: "md-code-block-banner-content", children: (0, jsx_runtime_1.jsx)("div", { className: "md-code-block-language", children: language }) }) }) }), (0, jsx_runtime_1.jsx)("div", { className: "md-code-block-content", children: children })] }));
6
- };
7
- exports.default = BlockWrap;
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/BlockWrap/index.tsx"],"names":[],"mappings":";;;AASA,MAAM,SAAS,GAA6B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,EAAE;IACtF,OAAO,CACL,iCAAK,SAAS,EAAE,+BAA+B,KAAK,EAAE,aACpD,gCAAK,SAAS,EAAC,2BAA2B,YACxC,gCAAK,SAAS,EAAC,gDAAgD,YAC7D,gCAAK,SAAS,EAAC,8BAA8B,YAC3C,gCAAK,SAAS,EAAC,wBAAwB,YAAE,QAAQ,GAAO,GAEpD,GACF,GACF,EACN,gCAAK,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAO,IACnD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { Options } from 'react-markdown';
3
- import { IMarkdownMath, IMarkdownPlugin, Theme } from '../../defined.js';
4
- interface HighReactMarkdownProps extends Options {
5
- theme?: Theme;
6
- children: string;
7
- math?: IMarkdownMath;
8
- plugins?: IMarkdownPlugin[];
9
- }
10
- declare const _default: React.NamedExoticComponent<HighReactMarkdownProps>;
11
- export default _default;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- /* eslint-disable @typescript-eslint/no-explicit-any */
8
- const react_1 = require("react");
9
- const react_markdown_1 = __importDefault(require("react-markdown"));
10
- const react_syntax_highlighter_1 = require("react-syntax-highlighter");
11
- const remark_gfm_1 = __importDefault(require("remark-gfm"));
12
- const remarkMathBracket_js_1 = require("../../utils/remarkMathBracket.js");
13
- const index_js_1 = __importDefault(require("../BlockWrap/index.js"));
14
- const constant_js_1 = require("../../constant.js");
15
- const HighReactMarkdown = ({ theme = 'light', children: _children, math, plugins, ...props }) => {
16
- const mathSplitSymbol = math?.splitSymbol ?? 'dollar';
17
- const { remarkPlugins, rehypePlugins, hasKatexPlugin } = (0, react_1.useMemo)(() => {
18
- let hasKatexPlugin = false;
19
- const remarkPlugins = [remark_gfm_1.default];
20
- const rehypePlugins = [];
21
- if (!plugins) {
22
- return {
23
- remarkPlugins,
24
- rehypePlugins,
25
- };
26
- }
27
- plugins.forEach((plugin) => {
28
- if (plugin.id === constant_js_1.katexId) {
29
- hasKatexPlugin = true;
30
- remarkPlugins.push(plugin.remarkPlugin);
31
- rehypePlugins.push(plugin.rehypePlugin);
32
- }
33
- });
34
- return {
35
- remarkPlugins,
36
- rehypePlugins,
37
- hasKatexPlugin,
38
- };
39
- }, [plugins]);
40
- const children = (0, react_1.useMemo)(() => {
41
- /** 如果存在数学公式插件,并且数学公式分隔符为括号,则替换成 $ 符号 */
42
- if (hasKatexPlugin && mathSplitSymbol === 'bracket') {
43
- return (0, remarkMathBracket_js_1.replaceMathBracket)(_children);
44
- }
45
- return _children;
46
- }, [hasKatexPlugin, mathSplitSymbol, _children]);
47
- return ((0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: remarkPlugins, rehypePlugins: rehypePlugins, components: {
48
- code: ({ className, children, ...props }) => {
49
- const match = /language-(\w+)/.exec(className || '');
50
- return match ? ((0, jsx_runtime_1.jsx)(index_js_1.default, { language: match[1], theme: theme, children: (0, jsx_runtime_1.jsx)(react_syntax_highlighter_1.Prism, { useInlineStyles: false, language: match[1], style: {}, children: String(children).replace(/\n$/, '') }) })) : ((0, jsx_runtime_1.jsx)("code", { className: className, ...props, children: children }));
51
- },
52
- table: ({ children, ...props }) => {
53
- return ((0, jsx_runtime_1.jsx)("div", { className: "markdown-table-wrapper", children: (0, jsx_runtime_1.jsx)("table", { className: "ds-markdown-table", children: children }) }));
54
- },
55
- }, ...props, children: children }));
56
- };
57
- exports.default = (0, react_1.memo)(HighReactMarkdown);
58
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/HighReactMarkdown/index.tsx"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,iCAA6C;AAC7C,oEAAsC;AAEtC,uEAAsE;AACtE,4DAAmC;AACnC,2EAAsE;AACtE,qEAA8C;AAE9C,mDAA4C;AAS5C,MAAM,iBAAiB,GAAqC,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChI,MAAM,eAAe,GAAG,IAAI,EAAE,WAAW,IAAI,QAAQ,CAAC;IAEtD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpE,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,aAAa,GAAU,CAAC,oBAAS,CAAC,CAAC;QACzC,MAAM,aAAa,GAAU,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,aAAa;gBACb,aAAa;aACd,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,EAAE,KAAK,qBAAO,EAAE,CAAC;gBAC1B,cAAc,GAAG,IAAI,CAAC;gBACtB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,aAAa;YACb,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC5B,wCAAwC;QACxC,IAAI,cAAc,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,IAAA,yCAAkB,EAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjD,OAAO,CACL,uBAAC,wBAAQ,IACP,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE;YACV,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;gBAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,uBAAC,kBAAS,IAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,YACzC,uBAAC,gCAAiB,IAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAClB,GACV,CACb,CAAC,CAAC,CAAC,CACF,iCAAM,SAAS,EAAE,SAAS,KAAM,KAAK,YAClC,QAAQ,GACJ,CACR,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;gBAChC,OAAO,CACL,gCAAK,SAAS,EAAC,wBAAwB,YACrC,kCAAO,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAS,GACnD,CACP,CAAC;YACJ,CAAC;SACF,KACG,KAAK,YAER,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC;AACF,kBAAe,IAAA,YAAI,EAAC,iBAAiB,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const __DEV__: boolean;
2
- /** 数学公式插件id */
3
- export declare const katexId: unique symbol;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.katexId = exports.__DEV__ = void 0;
4
- exports.__DEV__ = process.env.NODE_ENV === 'development';
5
- /** 数学公式插件id */
6
- exports.katexId = Symbol('katex');
7
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAE9D,eAAe;AACF,QAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -1,132 +0,0 @@
1
- /**
2
- * 回答类型,思考和回答
3
- */
4
- export type AnswerType = 'answer' | 'thinking';
5
- export type Theme = 'light' | 'dark';
6
- /**
7
- * 字符接口
8
- */
9
- export interface IChar {
10
- content: string;
11
- answerType: AnswerType;
12
- tokenId: number;
13
- /** 字符索引 */
14
- index: number;
15
- }
16
- /**
17
- * 段落类型
18
- * 段落类型为br时,表示换行
19
- * 段落类型为text时,表示文本
20
- */
21
- export interface IParagraph {
22
- /** 段落内容 */
23
- content?: string;
24
- /** 是否已打字 */
25
- isTyped: boolean;
26
- /** 段落类型 */
27
- type: 'br' | 'text';
28
- /** 回答类型 */
29
- answerType: AnswerType;
30
- /** token 参考 */
31
- tokensReference: Record<string, ITokensReference>;
32
- }
33
- export interface ITokensReference {
34
- startIndex: number;
35
- raw: string;
36
- }
37
- export interface IOnTypedCharData {
38
- currentIndex: number;
39
- currentChar: string;
40
- answerType: AnswerType;
41
- prevStr: string;
42
- }
43
- export interface ITypedChar extends IOnTypedCharData {
44
- percent: number;
45
- currentStr: string;
46
- }
47
- export interface IBeforeTypedChar extends IOnTypedCharData {
48
- percent: number;
49
- }
50
- export interface MarkdownBaseProps {
51
- /** 计时类型: 支持setTimeout和requestAnimationFrame */
52
- timerType?: 'setTimeout' | 'requestAnimationFrame';
53
- /** 回答类型 */
54
- answerType?: 'thinking' | 'answer';
55
- /** 打字机效果间隔时间 */
56
- interval: number;
57
- /** 是否关闭打字机效果 */
58
- disableTyping?: boolean;
59
- /** 打字完成后回调, */
60
- onEnd?: (data?: IEndData) => void;
61
- /** 开始打字回调 */
62
- onStart?: (data?: IOnTypedCharData) => void;
63
- /** 打字前回调 */
64
- onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
65
- /**
66
- * 打字机打完一个字符回调
67
- * @param char 字符
68
- * @param index 字符索引
69
- */
70
- onTypedChar?: (data?: ITypedChar) => void;
71
- /** 主题 */
72
- theme?: Theme;
73
- /** 数学公式配置 */
74
- math?: IMarkdownMath;
75
- /** 插件配置 */
76
- plugins?: IMarkdownPlugin[];
77
- /** 是否自动开启打字动画 */
78
- autoStartTyping?: boolean;
79
- }
80
- export interface MarkdownProps extends MarkdownBaseProps {
81
- children: string | undefined;
82
- }
83
- /** MarkdownCMD 组件不需要 children */
84
- export interface MarkdownCMDProps extends MarkdownBaseProps {
85
- children?: undefined;
86
- }
87
- export interface IMarkdownPlugin {
88
- remarkPlugin?: unknown;
89
- rehypePlugin?: unknown;
90
- type: 'buildIn' | 'custom';
91
- id?: any;
92
- }
93
- export interface IMarkdownMath {
94
- /** 是括号还是$作为分隔符, 默认是$ */
95
- splitSymbol: 'bracket' | 'dollar';
96
- }
97
- export interface IWholeContent {
98
- thinking: {
99
- content: string;
100
- length: number;
101
- prevLength: number;
102
- };
103
- answer: {
104
- content: string;
105
- length: number;
106
- prevLength: number;
107
- };
108
- allLength: number;
109
- }
110
- export interface MarkdownBaseRef {
111
- stop: () => void;
112
- resume: () => void;
113
- start: () => void;
114
- restart: () => void;
115
- }
116
- /** Markdown 组件的ref 类型 */
117
- export type MarkdownRef = MarkdownBaseRef;
118
- /** MarkdownCMD 组件的 ref 类型 */
119
- export interface MarkdownCMDRef extends MarkdownBaseRef {
120
- push: (content: string, answerType?: AnswerType) => void;
121
- clear: () => void;
122
- triggerWholeEnd: () => void;
123
- }
124
- export interface IEndData {
125
- manual: boolean;
126
- /** 回答字符串 */
127
- answerStr: string;
128
- /** 思考字符串 */
129
- thinkingStr: string;
130
- /** 打字机打过的字符串, 和answerStr 相同 */
131
- str: string;
132
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=defined.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defined.js","sourceRoot":"","sources":["../../src/defined.ts"],"names":[],"mappings":""}
@@ -1,32 +0,0 @@
1
- import { AnswerType, IChar, ITypedChar, IWholeContent, MarkdownProps, IEndData, IBeforeTypedChar } from '../defined.js';
2
- interface UseTypingTaskOptions {
3
- timerType: MarkdownProps['timerType'];
4
- interval: number;
5
- charsRef: React.RefObject<IChar[]>;
6
- onEnd?: (data?: IEndData) => void;
7
- onStart?: (data?: {
8
- currentIndex: number;
9
- currentChar: string;
10
- answerType: AnswerType;
11
- prevStr: string;
12
- }) => void;
13
- onBeforeTypedChar?: (data?: IBeforeTypedChar) => Promise<void>;
14
- onTypedChar?: (data?: ITypedChar) => void;
15
- processCharDisplay: (char: IChar) => void;
16
- wholeContentRef: React.RefObject<IWholeContent>;
17
- disableTyping: boolean;
18
- triggerUpdate: () => void;
19
- resetWholeContent: () => void;
20
- }
21
- export interface TypingTaskController {
22
- start: () => void;
23
- stop: () => void;
24
- clear: () => void;
25
- isTyping: () => boolean;
26
- /** 是否主动调用 stop 方法 */
27
- typedIsManualStopRef: React.RefObject<boolean>;
28
- resume: () => void;
29
- restart: () => void;
30
- }
31
- export declare const useTypingTask: (options: UseTypingTaskOptions) => TypingTaskController;
32
- export {};