@ant-design/agentic-ui 2.11.1 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Bubble/MessagesContent/BubbleExtra.js +7 -1
- package/dist/MarkdownEditor/editor/types/Table.d.ts +1 -0
- package/dist/MarkdownEditor/editor/utils/ace.d.ts +22 -105
- package/dist/MarkdownEditor/editor/utils/ace.js +328 -106
- package/dist/MarkdownEditor/types.d.ts +1 -1
- package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.d.ts +2 -4
- package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +8 -61
- package/dist/MarkdownInputField/AttachmentButton/index.d.ts +1 -1
- package/dist/MarkdownInputField/AttachmentButton/index.js +7 -19
- package/dist/MarkdownInputField/FileUploadManager/index.d.ts +1 -1
- package/dist/MarkdownInputField/FileUploadManager/index.js +137 -138
- package/dist/MarkdownInputField/MarkdownInputField.d.ts +32 -0
- package/dist/MarkdownInputField/MarkdownInputField.js +26 -8
- package/dist/MarkdownInputField/SendActions/index.d.ts +1 -1
- package/dist/Plugins/chart/ChartRender.js +75 -13
- package/dist/Plugins/chart/LineChart/index.js +10 -4
- package/dist/Plugins/chart/index.js +17 -5
- package/dist/Plugins/chart/utils.d.ts +40 -0
- package/dist/Plugins/chart/utils.js +116 -0
- package/dist/Plugins/code/CodeUI/Katex/Katex.d.ts +0 -1
- package/dist/Plugins/code/CodeUI/Katex/Katex.js +182 -6
- package/dist/Plugins/code/components/AceEditor.d.ts +4 -6
- package/dist/Plugins/code/components/AceEditor.js +362 -40
- package/dist/Plugins/code/loadAceEditor.d.ts +26 -0
- package/dist/Plugins/code/loadAceEditor.js +266 -0
- package/dist/Plugins/katex/InlineKatex.d.ts +0 -1
- package/dist/Plugins/katex/InlineKatex.js +183 -7
- package/dist/Plugins/katex/Katex.d.ts +0 -1
- package/dist/Plugins/katex/Katex.js +184 -6
- package/dist/Plugins/katex/loadKatex.d.ts +18 -0
- package/dist/Plugins/katex/loadKatex.js +181 -0
- package/dist/Plugins/mermaid/Mermaid.js +315 -113
- package/dist/Schema/SchemaEditor/AceEditorWrapper.d.ts +1 -1
- package/dist/Schema/SchemaEditor/AceEditorWrapper.js +342 -53
- package/dist/Utils/loadCSS.d.ts +31 -0
- package/dist/Utils/loadCSS.js +264 -0
- package/package.json +1 -1
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Ace Editor 异步加载器
|
|
3
|
+
*
|
|
4
|
+
* 使用单例模式确保 ace-builds 库只加载一次
|
|
5
|
+
* 支持动态导入主题和语言模式,实现代码分割
|
|
6
|
+
* CSS 文件也会异步加载
|
|
7
|
+
*/ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
8
|
+
try {
|
|
9
|
+
var info = gen[key](arg);
|
|
10
|
+
var value = info.value;
|
|
11
|
+
} catch (error) {
|
|
12
|
+
reject(error);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (info.done) {
|
|
16
|
+
resolve(value);
|
|
17
|
+
} else {
|
|
18
|
+
Promise.resolve(value).then(_next, _throw);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _async_to_generator(fn) {
|
|
22
|
+
return function() {
|
|
23
|
+
var self = this, args = arguments;
|
|
24
|
+
return new Promise(function(resolve, reject) {
|
|
25
|
+
var gen = fn.apply(self, args);
|
|
26
|
+
function _next(value) {
|
|
27
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
28
|
+
}
|
|
29
|
+
function _throw(err) {
|
|
30
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
31
|
+
}
|
|
32
|
+
_next(undefined);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function _ts_generator(thisArg, body) {
|
|
37
|
+
var f, y, t, g, _ = {
|
|
38
|
+
label: 0,
|
|
39
|
+
sent: function() {
|
|
40
|
+
if (t[0] & 1) throw t[1];
|
|
41
|
+
return t[1];
|
|
42
|
+
},
|
|
43
|
+
trys: [],
|
|
44
|
+
ops: []
|
|
45
|
+
};
|
|
46
|
+
return g = {
|
|
47
|
+
next: verb(0),
|
|
48
|
+
"throw": verb(1),
|
|
49
|
+
"return": verb(2)
|
|
50
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
51
|
+
return this;
|
|
52
|
+
}), g;
|
|
53
|
+
function verb(n) {
|
|
54
|
+
return function(v) {
|
|
55
|
+
return step([
|
|
56
|
+
n,
|
|
57
|
+
v
|
|
58
|
+
]);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function step(op) {
|
|
62
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
63
|
+
while(_)try {
|
|
64
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
65
|
+
if (y = 0, t) op = [
|
|
66
|
+
op[0] & 2,
|
|
67
|
+
t.value
|
|
68
|
+
];
|
|
69
|
+
switch(op[0]){
|
|
70
|
+
case 0:
|
|
71
|
+
case 1:
|
|
72
|
+
t = op;
|
|
73
|
+
break;
|
|
74
|
+
case 4:
|
|
75
|
+
_.label++;
|
|
76
|
+
return {
|
|
77
|
+
value: op[1],
|
|
78
|
+
done: false
|
|
79
|
+
};
|
|
80
|
+
case 5:
|
|
81
|
+
_.label++;
|
|
82
|
+
y = op[1];
|
|
83
|
+
op = [
|
|
84
|
+
0
|
|
85
|
+
];
|
|
86
|
+
continue;
|
|
87
|
+
case 7:
|
|
88
|
+
op = _.ops.pop();
|
|
89
|
+
_.trys.pop();
|
|
90
|
+
continue;
|
|
91
|
+
default:
|
|
92
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
93
|
+
_ = 0;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
97
|
+
_.label = op[1];
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
101
|
+
_.label = t[1];
|
|
102
|
+
t = op;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
if (t && _.label < t[2]) {
|
|
106
|
+
_.label = t[2];
|
|
107
|
+
_.ops.push(op);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (t[2]) _.ops.pop();
|
|
111
|
+
_.trys.pop();
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
op = body.call(thisArg, _);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
op = [
|
|
117
|
+
6,
|
|
118
|
+
e
|
|
119
|
+
];
|
|
120
|
+
y = 0;
|
|
121
|
+
} finally{
|
|
122
|
+
f = t = 0;
|
|
123
|
+
}
|
|
124
|
+
if (op[0] & 5) throw op[1];
|
|
125
|
+
return {
|
|
126
|
+
value: op[0] ? op[1] : void 0,
|
|
127
|
+
done: true
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
var aceEditorLoader = null;
|
|
132
|
+
/**
|
|
133
|
+
* 加载 Ace Editor 核心库
|
|
134
|
+
* 使用单例模式确保只加载一次
|
|
135
|
+
*/ export var loadAceEditor = /*#__PURE__*/ function() {
|
|
136
|
+
var _ref = _async_to_generator(function() {
|
|
137
|
+
return _ts_generator(this, function(_state) {
|
|
138
|
+
if (typeof window === 'undefined') {
|
|
139
|
+
throw new Error('Ace Editor 仅在浏览器环境中可用');
|
|
140
|
+
}
|
|
141
|
+
if (!aceEditorLoader) {
|
|
142
|
+
// 使用 webpack 魔法注释确保正确代码分割
|
|
143
|
+
aceEditorLoader = import(/* webpackChunkName: "ace-editor" */ "ace-builds").then(function(module) {
|
|
144
|
+
return module;
|
|
145
|
+
}).catch(function(error) {
|
|
146
|
+
aceEditorLoader = null;
|
|
147
|
+
throw error;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return [
|
|
151
|
+
2,
|
|
152
|
+
aceEditorLoader
|
|
153
|
+
];
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
return function loadAceEditor() {
|
|
157
|
+
return _ref.apply(this, arguments);
|
|
158
|
+
};
|
|
159
|
+
}();
|
|
160
|
+
/**
|
|
161
|
+
* 加载 Ace Editor 主题
|
|
162
|
+
* 支持按需加载主题和对应的 CSS,减少初始 bundle 大小
|
|
163
|
+
*/ export var loadAceTheme = /*#__PURE__*/ function() {
|
|
164
|
+
var _ref = _async_to_generator(function(themeName) {
|
|
165
|
+
var error;
|
|
166
|
+
return _ts_generator(this, function(_state) {
|
|
167
|
+
switch(_state.label){
|
|
168
|
+
case 0:
|
|
169
|
+
if (typeof window === 'undefined') return [
|
|
170
|
+
2
|
|
171
|
+
];
|
|
172
|
+
_state.label = 1;
|
|
173
|
+
case 1:
|
|
174
|
+
_state.trys.push([
|
|
175
|
+
1,
|
|
176
|
+
9,
|
|
177
|
+
,
|
|
178
|
+
10
|
|
179
|
+
]);
|
|
180
|
+
switch(themeName){
|
|
181
|
+
case 'github':
|
|
182
|
+
return [
|
|
183
|
+
3,
|
|
184
|
+
2
|
|
185
|
+
];
|
|
186
|
+
case 'chaos':
|
|
187
|
+
return [
|
|
188
|
+
3,
|
|
189
|
+
4
|
|
190
|
+
];
|
|
191
|
+
}
|
|
192
|
+
return [
|
|
193
|
+
3,
|
|
194
|
+
6
|
|
195
|
+
];
|
|
196
|
+
case 2:
|
|
197
|
+
return [
|
|
198
|
+
4,
|
|
199
|
+
import(/* webpackChunkName: "ace-theme-github" */ "ace-builds/src-noconflict/theme-github")
|
|
200
|
+
];
|
|
201
|
+
case 3:
|
|
202
|
+
_state.sent();
|
|
203
|
+
// 注意:Ace Editor 的主题 CSS 通常包含在主 CSS 中
|
|
204
|
+
// 如果需要单独加载,可以在这里添加
|
|
205
|
+
return [
|
|
206
|
+
3,
|
|
207
|
+
8
|
|
208
|
+
];
|
|
209
|
+
case 4:
|
|
210
|
+
return [
|
|
211
|
+
4,
|
|
212
|
+
import(/* webpackChunkName: "ace-theme-chaos" */ "ace-builds/src-noconflict/theme-chaos")
|
|
213
|
+
];
|
|
214
|
+
case 5:
|
|
215
|
+
_state.sent();
|
|
216
|
+
return [
|
|
217
|
+
3,
|
|
218
|
+
8
|
|
219
|
+
];
|
|
220
|
+
case 6:
|
|
221
|
+
// 默认加载 github 主题
|
|
222
|
+
return [
|
|
223
|
+
4,
|
|
224
|
+
import(/* webpackChunkName: "ace-theme-github" */ "ace-builds/src-noconflict/theme-github")
|
|
225
|
+
];
|
|
226
|
+
case 7:
|
|
227
|
+
_state.sent();
|
|
228
|
+
_state.label = 8;
|
|
229
|
+
case 8:
|
|
230
|
+
return [
|
|
231
|
+
3,
|
|
232
|
+
10
|
|
233
|
+
];
|
|
234
|
+
case 9:
|
|
235
|
+
error = _state.sent();
|
|
236
|
+
console.warn("Failed to load Ace theme: ".concat(themeName), error);
|
|
237
|
+
return [
|
|
238
|
+
3,
|
|
239
|
+
10
|
|
240
|
+
];
|
|
241
|
+
case 10:
|
|
242
|
+
return [
|
|
243
|
+
2
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
return function loadAceTheme(themeName) {
|
|
249
|
+
return _ref.apply(this, arguments);
|
|
250
|
+
};
|
|
251
|
+
}();
|
|
252
|
+
/**
|
|
253
|
+
* 预加载 Ace Editor 资源
|
|
254
|
+
* 使用动态 import 提前开始加载,但不阻塞当前执行
|
|
255
|
+
* 可以在用户可能使用代码编辑器之前调用此函数
|
|
256
|
+
*/ export var preloadAceEditor = function() {
|
|
257
|
+
if (typeof window === 'undefined') return;
|
|
258
|
+
// 使用动态 import 预加载,不等待结果
|
|
259
|
+
// 浏览器会自动缓存已加载的模块
|
|
260
|
+
if (!aceEditorLoader) {
|
|
261
|
+
// 触发加载但不阻塞
|
|
262
|
+
loadAceEditor().catch(function() {
|
|
263
|
+
// 静默处理错误,预加载失败不影响后续使用
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
};
|
|
@@ -6,6 +6,35 @@ function _array_like_to_array(arr, len) {
|
|
|
6
6
|
function _array_with_holes(arr) {
|
|
7
7
|
if (Array.isArray(arr)) return arr;
|
|
8
8
|
}
|
|
9
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
10
|
+
try {
|
|
11
|
+
var info = gen[key](arg);
|
|
12
|
+
var value = info.value;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
reject(error);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (info.done) {
|
|
18
|
+
resolve(value);
|
|
19
|
+
} else {
|
|
20
|
+
Promise.resolve(value).then(_next, _throw);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function _async_to_generator(fn) {
|
|
24
|
+
return function() {
|
|
25
|
+
var self = this, args = arguments;
|
|
26
|
+
return new Promise(function(resolve, reject) {
|
|
27
|
+
var gen = fn.apply(self, args);
|
|
28
|
+
function _next(value) {
|
|
29
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
30
|
+
}
|
|
31
|
+
function _throw(err) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
33
|
+
}
|
|
34
|
+
_next(undefined);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
9
38
|
function _define_property(obj, key, value) {
|
|
10
39
|
if (key in obj) {
|
|
11
40
|
Object.defineProperty(obj, key, {
|
|
@@ -96,13 +125,107 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
96
125
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
97
126
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
98
127
|
}
|
|
128
|
+
function _ts_generator(thisArg, body) {
|
|
129
|
+
var f, y, t, g, _ = {
|
|
130
|
+
label: 0,
|
|
131
|
+
sent: function() {
|
|
132
|
+
if (t[0] & 1) throw t[1];
|
|
133
|
+
return t[1];
|
|
134
|
+
},
|
|
135
|
+
trys: [],
|
|
136
|
+
ops: []
|
|
137
|
+
};
|
|
138
|
+
return g = {
|
|
139
|
+
next: verb(0),
|
|
140
|
+
"throw": verb(1),
|
|
141
|
+
"return": verb(2)
|
|
142
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
143
|
+
return this;
|
|
144
|
+
}), g;
|
|
145
|
+
function verb(n) {
|
|
146
|
+
return function(v) {
|
|
147
|
+
return step([
|
|
148
|
+
n,
|
|
149
|
+
v
|
|
150
|
+
]);
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function step(op) {
|
|
154
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
155
|
+
while(_)try {
|
|
156
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
157
|
+
if (y = 0, t) op = [
|
|
158
|
+
op[0] & 2,
|
|
159
|
+
t.value
|
|
160
|
+
];
|
|
161
|
+
switch(op[0]){
|
|
162
|
+
case 0:
|
|
163
|
+
case 1:
|
|
164
|
+
t = op;
|
|
165
|
+
break;
|
|
166
|
+
case 4:
|
|
167
|
+
_.label++;
|
|
168
|
+
return {
|
|
169
|
+
value: op[1],
|
|
170
|
+
done: false
|
|
171
|
+
};
|
|
172
|
+
case 5:
|
|
173
|
+
_.label++;
|
|
174
|
+
y = op[1];
|
|
175
|
+
op = [
|
|
176
|
+
0
|
|
177
|
+
];
|
|
178
|
+
continue;
|
|
179
|
+
case 7:
|
|
180
|
+
op = _.ops.pop();
|
|
181
|
+
_.trys.pop();
|
|
182
|
+
continue;
|
|
183
|
+
default:
|
|
184
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
185
|
+
_ = 0;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
189
|
+
_.label = op[1];
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
193
|
+
_.label = t[1];
|
|
194
|
+
t = op;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
if (t && _.label < t[2]) {
|
|
198
|
+
_.label = t[2];
|
|
199
|
+
_.ops.push(op);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
if (t[2]) _.ops.pop();
|
|
203
|
+
_.trys.pop();
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
op = body.call(thisArg, _);
|
|
207
|
+
} catch (e) {
|
|
208
|
+
op = [
|
|
209
|
+
6,
|
|
210
|
+
e
|
|
211
|
+
];
|
|
212
|
+
y = 0;
|
|
213
|
+
} finally{
|
|
214
|
+
f = t = 0;
|
|
215
|
+
}
|
|
216
|
+
if (op[0] & 5) throw op[1];
|
|
217
|
+
return {
|
|
218
|
+
value: op[0] ? op[1] : void 0,
|
|
219
|
+
done: true
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
99
223
|
import classNames from "classnames";
|
|
100
|
-
import
|
|
101
|
-
import React, { useEffect, useRef } from "react";
|
|
224
|
+
import React, { useEffect, useRef, useState, startTransition } from "react";
|
|
102
225
|
import { Editor, Node, Transforms } from "slate";
|
|
103
226
|
import { useEditorStore } from "../../MarkdownEditor/editor/store";
|
|
104
227
|
import { useSelStatus } from "../../MarkdownEditor/hooks/editor";
|
|
105
|
-
import "./
|
|
228
|
+
import { loadKatex } from "./loadKatex";
|
|
106
229
|
/**
|
|
107
230
|
* InlineKatex 组件 - 内联KaTeX数学公式组件
|
|
108
231
|
*
|
|
@@ -144,10 +267,61 @@ import "./katex.min.css";
|
|
|
144
267
|
var renderEl = useRef(null);
|
|
145
268
|
var _useEditorStore = useEditorStore(), markdownEditorRef = _useEditorStore.markdownEditorRef, readonly = _useEditorStore.readonly;
|
|
146
269
|
var _useSelStatus = _sliced_to_array(useSelStatus(element), 2), selected = _useSelStatus[0], path = _useSelStatus[1];
|
|
270
|
+
var _useState = _sliced_to_array(useState(false), 2), katexLoaded = _useState[0], setKatexLoaded = _useState[1];
|
|
271
|
+
var katexRef = useRef(null);
|
|
272
|
+
// 异步加载 Katex 库和 CSS
|
|
273
|
+
useEffect(function() {
|
|
274
|
+
if (process.env.NODE_ENV === 'test') {
|
|
275
|
+
setKatexLoaded(true);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
startTransition(function() {
|
|
279
|
+
// 异步加载在 startTransition 外部执行
|
|
280
|
+
_async_to_generator(function() {
|
|
281
|
+
var katexModule, error;
|
|
282
|
+
return _ts_generator(this, function(_state) {
|
|
283
|
+
switch(_state.label){
|
|
284
|
+
case 0:
|
|
285
|
+
_state.trys.push([
|
|
286
|
+
0,
|
|
287
|
+
2,
|
|
288
|
+
,
|
|
289
|
+
3
|
|
290
|
+
]);
|
|
291
|
+
return [
|
|
292
|
+
4,
|
|
293
|
+
loadKatex()
|
|
294
|
+
];
|
|
295
|
+
case 1:
|
|
296
|
+
katexModule = _state.sent();
|
|
297
|
+
katexRef.current = katexModule.default;
|
|
298
|
+
setKatexLoaded(true);
|
|
299
|
+
return [
|
|
300
|
+
3,
|
|
301
|
+
3
|
|
302
|
+
];
|
|
303
|
+
case 2:
|
|
304
|
+
error = _state.sent();
|
|
305
|
+
console.error('Failed to load Katex:', error);
|
|
306
|
+
setKatexLoaded(true);
|
|
307
|
+
return [
|
|
308
|
+
3,
|
|
309
|
+
3
|
|
310
|
+
];
|
|
311
|
+
case 3:
|
|
312
|
+
return [
|
|
313
|
+
2
|
|
314
|
+
];
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
})();
|
|
318
|
+
});
|
|
319
|
+
}, []);
|
|
147
320
|
useEffect(function() {
|
|
148
|
-
if (!selected)
|
|
149
|
-
|
|
150
|
-
|
|
321
|
+
if (!katexLoaded || !katexRef.current || selected) return;
|
|
322
|
+
var value = Node.string(element);
|
|
323
|
+
if (renderEl.current && katexRef.current) {
|
|
324
|
+
katexRef.current.render("".concat(value), renderEl.current, {
|
|
151
325
|
strict: false,
|
|
152
326
|
output: 'html',
|
|
153
327
|
throwOnError: false,
|
|
@@ -157,7 +331,9 @@ import "./katex.min.css";
|
|
|
157
331
|
});
|
|
158
332
|
}
|
|
159
333
|
}, [
|
|
160
|
-
selected
|
|
334
|
+
selected,
|
|
335
|
+
katexLoaded,
|
|
336
|
+
element
|
|
161
337
|
]);
|
|
162
338
|
if (process.env.NODE_ENV === 'test') {
|
|
163
339
|
return /*#__PURE__*/ React.createElement("span", {
|