@ant-design/agentic-ui 2.11.2 → 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/index.js +5 -3
- package/dist/MarkdownInputField/MarkdownInputField.d.ts +32 -0
- package/dist/MarkdownInputField/MarkdownInputField.js +26 -8
- 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
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
function _array_like_to_array(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _array_with_holes(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
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
|
+
}
|
|
1
38
|
function _class_call_check(instance, Constructor) {
|
|
2
39
|
if (!(instance instanceof Constructor)) {
|
|
3
40
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -30,6 +67,33 @@ function _define_property(obj, key, value) {
|
|
|
30
67
|
}
|
|
31
68
|
return obj;
|
|
32
69
|
}
|
|
70
|
+
function _iterable_to_array_limit(arr, i) {
|
|
71
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
72
|
+
if (_i == null) return;
|
|
73
|
+
var _arr = [];
|
|
74
|
+
var _n = true;
|
|
75
|
+
var _d = false;
|
|
76
|
+
var _s, _e;
|
|
77
|
+
try {
|
|
78
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
79
|
+
_arr.push(_s.value);
|
|
80
|
+
if (i && _arr.length === i) break;
|
|
81
|
+
}
|
|
82
|
+
} catch (err) {
|
|
83
|
+
_d = true;
|
|
84
|
+
_e = err;
|
|
85
|
+
} finally{
|
|
86
|
+
try {
|
|
87
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
88
|
+
} finally{
|
|
89
|
+
if (_d) throw _e;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return _arr;
|
|
93
|
+
}
|
|
94
|
+
function _non_iterable_rest() {
|
|
95
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
96
|
+
}
|
|
33
97
|
function _object_spread(target) {
|
|
34
98
|
for(var i = 1; i < arguments.length; i++){
|
|
35
99
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
@@ -45,9 +109,115 @@ function _object_spread(target) {
|
|
|
45
109
|
}
|
|
46
110
|
return target;
|
|
47
111
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
112
|
+
function _sliced_to_array(arr, i) {
|
|
113
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
114
|
+
}
|
|
115
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
116
|
+
if (!o) return;
|
|
117
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
118
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
119
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
120
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
121
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
122
|
+
}
|
|
123
|
+
function _ts_generator(thisArg, body) {
|
|
124
|
+
var f, y, t, g, _ = {
|
|
125
|
+
label: 0,
|
|
126
|
+
sent: function() {
|
|
127
|
+
if (t[0] & 1) throw t[1];
|
|
128
|
+
return t[1];
|
|
129
|
+
},
|
|
130
|
+
trys: [],
|
|
131
|
+
ops: []
|
|
132
|
+
};
|
|
133
|
+
return g = {
|
|
134
|
+
next: verb(0),
|
|
135
|
+
"throw": verb(1),
|
|
136
|
+
"return": verb(2)
|
|
137
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
138
|
+
return this;
|
|
139
|
+
}), g;
|
|
140
|
+
function verb(n) {
|
|
141
|
+
return function(v) {
|
|
142
|
+
return step([
|
|
143
|
+
n,
|
|
144
|
+
v
|
|
145
|
+
]);
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function step(op) {
|
|
149
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
150
|
+
while(_)try {
|
|
151
|
+
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;
|
|
152
|
+
if (y = 0, t) op = [
|
|
153
|
+
op[0] & 2,
|
|
154
|
+
t.value
|
|
155
|
+
];
|
|
156
|
+
switch(op[0]){
|
|
157
|
+
case 0:
|
|
158
|
+
case 1:
|
|
159
|
+
t = op;
|
|
160
|
+
break;
|
|
161
|
+
case 4:
|
|
162
|
+
_.label++;
|
|
163
|
+
return {
|
|
164
|
+
value: op[1],
|
|
165
|
+
done: false
|
|
166
|
+
};
|
|
167
|
+
case 5:
|
|
168
|
+
_.label++;
|
|
169
|
+
y = op[1];
|
|
170
|
+
op = [
|
|
171
|
+
0
|
|
172
|
+
];
|
|
173
|
+
continue;
|
|
174
|
+
case 7:
|
|
175
|
+
op = _.ops.pop();
|
|
176
|
+
_.trys.pop();
|
|
177
|
+
continue;
|
|
178
|
+
default:
|
|
179
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
180
|
+
_ = 0;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
184
|
+
_.label = op[1];
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
188
|
+
_.label = t[1];
|
|
189
|
+
t = op;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
if (t && _.label < t[2]) {
|
|
193
|
+
_.label = t[2];
|
|
194
|
+
_.ops.push(op);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
if (t[2]) _.ops.pop();
|
|
198
|
+
_.trys.pop();
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
op = body.call(thisArg, _);
|
|
202
|
+
} catch (e) {
|
|
203
|
+
op = [
|
|
204
|
+
6,
|
|
205
|
+
e
|
|
206
|
+
];
|
|
207
|
+
y = 0;
|
|
208
|
+
} finally{
|
|
209
|
+
f = t = 0;
|
|
210
|
+
}
|
|
211
|
+
if (op[0] & 5) throw op[1];
|
|
212
|
+
return {
|
|
213
|
+
value: op[0] ? op[1] : void 0,
|
|
214
|
+
done: true
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
219
|
+
import { getAceLangs, modeMap } from "../../MarkdownEditor/editor/utils/ace";
|
|
220
|
+
import { loadAceEditor } from "../../Plugins/code/loadAceEditor";
|
|
51
221
|
// 确保 ResizeObserver 在测试环境中可用
|
|
52
222
|
if (typeof window !== 'undefined' && !window.ResizeObserver) {
|
|
53
223
|
window.ResizeObserver = /*#__PURE__*/ function() {
|
|
@@ -84,76 +254,195 @@ if (typeof window !== 'undefined' && !window.ResizeObserver) {
|
|
|
84
254
|
var containerRef = useRef(null);
|
|
85
255
|
var editorRef = useRef();
|
|
86
256
|
var valueRef = useRef(value);
|
|
257
|
+
var aceModuleRef = useRef(null);
|
|
258
|
+
var _useState = _sliced_to_array(useState(false), 2), aceLoaded = _useState[0], setAceLoaded = _useState[1];
|
|
259
|
+
// 异步加载 Ace Editor
|
|
260
|
+
useEffect(function() {
|
|
261
|
+
_async_to_generator(function() {
|
|
262
|
+
var aceModule, error;
|
|
263
|
+
return _ts_generator(this, function(_state) {
|
|
264
|
+
switch(_state.label){
|
|
265
|
+
case 0:
|
|
266
|
+
_state.trys.push([
|
|
267
|
+
0,
|
|
268
|
+
2,
|
|
269
|
+
,
|
|
270
|
+
3
|
|
271
|
+
]);
|
|
272
|
+
return [
|
|
273
|
+
4,
|
|
274
|
+
loadAceEditor()
|
|
275
|
+
];
|
|
276
|
+
case 1:
|
|
277
|
+
aceModule = _state.sent();
|
|
278
|
+
aceModuleRef.current = aceModule;
|
|
279
|
+
setAceLoaded(true);
|
|
280
|
+
return [
|
|
281
|
+
3,
|
|
282
|
+
3
|
|
283
|
+
];
|
|
284
|
+
case 2:
|
|
285
|
+
error = _state.sent();
|
|
286
|
+
console.error('Failed to load Ace Editor:', error);
|
|
287
|
+
setAceLoaded(true);
|
|
288
|
+
return [
|
|
289
|
+
3,
|
|
290
|
+
3
|
|
291
|
+
];
|
|
292
|
+
case 3:
|
|
293
|
+
return [
|
|
294
|
+
2
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
})();
|
|
299
|
+
}, []);
|
|
87
300
|
// 初始化编辑器
|
|
88
301
|
useEffect(function() {
|
|
89
|
-
if (!containerRef.current) return;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
302
|
+
if (!aceLoaded || !aceModuleRef.current || !containerRef.current) return;
|
|
303
|
+
_async_to_generator(function() {
|
|
304
|
+
var ace, codeEditor;
|
|
305
|
+
return _ts_generator(this, function(_state) {
|
|
306
|
+
try {
|
|
307
|
+
ace = aceModuleRef.current.default || aceModuleRef.current;
|
|
308
|
+
codeEditor = ace.edit(containerRef.current, _object_spread({
|
|
309
|
+
useWorker: false,
|
|
310
|
+
value: value,
|
|
311
|
+
fontSize: 12,
|
|
312
|
+
animatedScroll: true,
|
|
313
|
+
maxLines: Infinity,
|
|
314
|
+
wrap: true,
|
|
315
|
+
tabSize: 4,
|
|
316
|
+
readOnly: readonly,
|
|
317
|
+
showPrintMargin: false,
|
|
318
|
+
showLineNumbers: true,
|
|
319
|
+
showGutter: true
|
|
320
|
+
}, options));
|
|
321
|
+
editorRef.current = codeEditor;
|
|
322
|
+
// 设置语法高亮
|
|
323
|
+
setTimeout(/*#__PURE__*/ _async_to_generator(function() {
|
|
324
|
+
var lang, aceLangs;
|
|
325
|
+
return _ts_generator(this, function(_state) {
|
|
326
|
+
switch(_state.label){
|
|
327
|
+
case 0:
|
|
328
|
+
lang = language.toLowerCase();
|
|
329
|
+
if (modeMap.has(lang)) {
|
|
330
|
+
lang = modeMap.get(lang);
|
|
331
|
+
}
|
|
332
|
+
return [
|
|
333
|
+
4,
|
|
334
|
+
getAceLangs()
|
|
335
|
+
];
|
|
336
|
+
case 1:
|
|
337
|
+
aceLangs = _state.sent();
|
|
338
|
+
if (aceLangs.has(lang)) {
|
|
339
|
+
codeEditor.session.setMode("ace/mode/".concat(lang));
|
|
340
|
+
}
|
|
341
|
+
return [
|
|
342
|
+
2
|
|
343
|
+
];
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
}), 16);
|
|
347
|
+
// 配置编辑器事件
|
|
348
|
+
if (!readonly && onChange) {
|
|
349
|
+
codeEditor.on('change', function() {
|
|
350
|
+
var newValue = codeEditor.getValue();
|
|
351
|
+
if (newValue !== valueRef.current) {
|
|
352
|
+
valueRef.current = newValue;
|
|
353
|
+
onChange(newValue);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
} catch (error) {
|
|
358
|
+
console.error('Failed to initialize Ace Editor:', error);
|
|
121
359
|
}
|
|
360
|
+
return [
|
|
361
|
+
2
|
|
362
|
+
];
|
|
122
363
|
});
|
|
123
|
-
}
|
|
364
|
+
})();
|
|
124
365
|
return function() {
|
|
125
|
-
|
|
366
|
+
var _editorRef_current;
|
|
367
|
+
(_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.destroy();
|
|
126
368
|
};
|
|
127
|
-
}, [
|
|
369
|
+
}, [
|
|
370
|
+
aceLoaded
|
|
371
|
+
]);
|
|
128
372
|
// 更新值
|
|
129
373
|
useEffect(function() {
|
|
130
374
|
if (editorRef.current && value !== valueRef.current) {
|
|
131
|
-
|
|
132
|
-
|
|
375
|
+
try {
|
|
376
|
+
editorRef.current.setValue(value);
|
|
377
|
+
valueRef.current = value;
|
|
378
|
+
} catch (error) {
|
|
379
|
+
console.error('Failed to set editor value:', error);
|
|
380
|
+
}
|
|
133
381
|
}
|
|
134
382
|
}, [
|
|
135
383
|
value
|
|
136
384
|
]);
|
|
137
385
|
// 更新语言
|
|
138
386
|
useEffect(function() {
|
|
139
|
-
if (editorRef.current)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
387
|
+
if (!editorRef.current || !aceLoaded) return;
|
|
388
|
+
_async_to_generator(function() {
|
|
389
|
+
var lang, aceLangs, _editorRef_current, _editorRef_current1, error;
|
|
390
|
+
return _ts_generator(this, function(_state) {
|
|
391
|
+
switch(_state.label){
|
|
392
|
+
case 0:
|
|
393
|
+
_state.trys.push([
|
|
394
|
+
0,
|
|
395
|
+
2,
|
|
396
|
+
,
|
|
397
|
+
3
|
|
398
|
+
]);
|
|
399
|
+
lang = language.toLowerCase();
|
|
400
|
+
if (modeMap.has(lang)) {
|
|
401
|
+
lang = modeMap.get(lang);
|
|
402
|
+
}
|
|
403
|
+
return [
|
|
404
|
+
4,
|
|
405
|
+
getAceLangs()
|
|
406
|
+
];
|
|
407
|
+
case 1:
|
|
408
|
+
aceLangs = _state.sent();
|
|
409
|
+
if (aceLangs.has(lang)) {
|
|
410
|
+
;
|
|
411
|
+
(_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.session.setMode("ace/mode/".concat(lang));
|
|
412
|
+
} else {
|
|
413
|
+
;
|
|
414
|
+
(_editorRef_current1 = editorRef.current) === null || _editorRef_current1 === void 0 ? void 0 : _editorRef_current1.session.setMode("ace/mode/text");
|
|
415
|
+
}
|
|
416
|
+
return [
|
|
417
|
+
3,
|
|
418
|
+
3
|
|
419
|
+
];
|
|
420
|
+
case 2:
|
|
421
|
+
error = _state.sent();
|
|
422
|
+
console.error('Failed to set editor mode:', error);
|
|
423
|
+
return [
|
|
424
|
+
3,
|
|
425
|
+
3
|
|
426
|
+
];
|
|
427
|
+
case 3:
|
|
428
|
+
return [
|
|
429
|
+
2
|
|
430
|
+
];
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
})();
|
|
150
434
|
}, [
|
|
151
|
-
language
|
|
435
|
+
language,
|
|
436
|
+
aceLoaded
|
|
152
437
|
]);
|
|
153
438
|
// 更新只读状态
|
|
154
439
|
useEffect(function() {
|
|
155
440
|
if (editorRef.current) {
|
|
156
|
-
|
|
441
|
+
try {
|
|
442
|
+
editorRef.current.setReadOnly(readonly);
|
|
443
|
+
} catch (error) {
|
|
444
|
+
console.error('Failed to set editor readOnly:', error);
|
|
445
|
+
}
|
|
157
446
|
}
|
|
158
447
|
}, [
|
|
159
448
|
readonly
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CSS 异步加载工具
|
|
3
|
+
*
|
|
4
|
+
* 提供动态加载 CSS 文件的功能,支持按需加载和缓存
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 异步加载 CSS 文件
|
|
8
|
+
*
|
|
9
|
+
* 对于 webpack 处理的 CSS 文件,应该使用动态 import 函数形式
|
|
10
|
+
* webpack 会自动处理 CSS 的提取和加载
|
|
11
|
+
*
|
|
12
|
+
* @param cssPath - CSS 文件路径(推荐使用函数形式的动态 import)
|
|
13
|
+
* @returns Promise<void> 加载完成的 Promise
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // 推荐:使用动态 import 加载 CSS 模块(webpack 会自动处理)
|
|
18
|
+
* await loadCSS(() => import('./katex.min.css'));
|
|
19
|
+
*
|
|
20
|
+
* // 不推荐:直接使用字符串路径(仅适用于外部 URL)
|
|
21
|
+
* await loadCSS('https://example.com/style.css');
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const loadCSS: (cssPath: string | (() => Promise<unknown>)) => Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 预加载 CSS 文件
|
|
27
|
+
* 使用低优先级加载,不阻塞当前执行
|
|
28
|
+
*
|
|
29
|
+
* @param cssPath - CSS 文件路径
|
|
30
|
+
*/
|
|
31
|
+
export declare const preloadCSS: (cssPath: string | (() => Promise<unknown>)) => void;
|