@flatbiz/antd 5.2.6 → 5.2.8

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 (35) hide show
  1. package/dist/content-CXmBn9B0.js +297 -0
  2. package/dist/content-CXmBn9B0.js.map +1 -0
  3. package/dist/content-DnpCk2LR.js +556 -0
  4. package/dist/content-DnpCk2LR.js.map +1 -0
  5. package/dist/{drag-DUY7Olcc.js → drag-D3i6_WRS.js} +2 -2
  6. package/dist/{drag-DUY7Olcc.js.map → drag-D3i6_WRS.js.map} +1 -1
  7. package/dist/drag-editable-table/index.css +1 -1
  8. package/dist/drag-editable-table/index.d.ts +3 -0
  9. package/dist/drag-editable-table/index.js +3 -4
  10. package/dist/editable-table/index.css +1 -1
  11. package/dist/editable-table/index.d.ts +3 -0
  12. package/dist/editable-table/index.js +2 -3
  13. package/dist/{editable-table-DYR12TJM.js → editable-table-BaKnBuHT.js} +2 -2
  14. package/dist/{editable-table-DYR12TJM.js.map → editable-table-BaKnBuHT.js.map} +1 -1
  15. package/dist/index.d.ts +46 -3
  16. package/dist/index.js +7 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/markdown-editor/index.css +1 -0
  19. package/dist/markdown-editor/index.d.ts +7 -2
  20. package/dist/markdown-editor/index.js +53 -2
  21. package/dist/markdown-editor/index.js.map +1 -1
  22. package/dist/pre-defined-class-name/index.css +1 -1
  23. package/dist/upload-multi-type/index.css +1 -0
  24. package/dist/upload-multi-type/index.d.ts +37 -0
  25. package/dist/upload-multi-type/index.js +44 -0
  26. package/dist/upload-multi-type/index.js.map +1 -0
  27. package/dist/upload-wrapper/index.css +1 -1
  28. package/dist/upload-wrapper/index.d.ts +4 -1
  29. package/dist/upload-wrapper/index.js +1 -2
  30. package/dist/{upload-wrapper-BovR_RV6.js → upload-wrapper-DmZglNR4.js} +29 -13
  31. package/dist/upload-wrapper-DmZglNR4.js.map +1 -0
  32. package/package.json +5 -1
  33. package/dist/content-DQTZHavT.js +0 -404
  34. package/dist/content-DQTZHavT.js.map +0 -1
  35. package/dist/upload-wrapper-BovR_RV6.js.map +0 -1
@@ -0,0 +1,556 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+
3
+ import { _ as _objectWithoutProperties, a as _slicedToArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BspM60Sw.js';
4
+ import _CloseCircleFilled from '@ant-design/icons/es/icons/CloseCircleFilled.js';
5
+ import { useRef, useState, useEffect, useCallback, useMemo } from 'react';
6
+ import { Button, InputNumber, message, Spin } from 'antd';
7
+ import { openNewWindow, getUuid, loadScripts, loadStyles } from '@flatbiz/utils';
8
+ import { classNames } from '@dimjs/utils/class-names/class-names';
9
+ import { useMemoizedFn, useSize } from 'ahooks';
10
+ import { C as CardLayout } from './card-layout-P-Qb5pCT.js';
11
+ import { C as CodeRender } from './code-Dbu2QlhZ.js';
12
+ import { d as dialogModal } from './dialog-modal-CGMNBSgq.js';
13
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
+ import { getCodeString } from 'rehype-rewrite';
15
+ import { isObject } from '@dimjs/lang/is-object';
16
+ import { isString } from '@dimjs/lang/is-string';
17
+ import { A as AlertWrapper } from './alert-DGRFbqqK.js';
18
+ import { E as EasyForm } from './form-ByFljQr9.js';
19
+ import { F as FormItemHidden } from './form-item-hidden-BtQvJEx7.js';
20
+ import { F as FormItemWrapper } from './form-item-wrapper-Ci7-5IKi.js';
21
+ import { G as Gap } from './gap-5v_ndf2v.js';
22
+ import { U as UploadMultiType } from './content-CXmBn9B0.js';
23
+
24
+ var MermaidViewBtn = function MermaidViewBtn() {
25
+ var handeClick = function handeClick() {
26
+ dialogModal.open({
27
+ title: 'Mermaid图形示例',
28
+ content: function content() {
29
+ return /*#__PURE__*/jsxs("div", {
30
+ children: [/*#__PURE__*/jsx(CardLayout, {
31
+ title: '示例',
32
+ subTitle: '在Markdown中使用Mermaid图形',
33
+ layoutType: "tight",
34
+ children: /*#__PURE__*/jsx(CodeRender, {
35
+ code: "```mermaid\nsequenceDiagram\n native->>haipay\u670D\u52A1\u7AEF:\u83B7\u53D6accessToken\n haipay\u670D\u52A1\u7AEF->>tc\u670D\u52A1\u7AEF: \u8C03\u7528tc\u7684\u63A5\u53E3\u83B7\u53D6accessToken\n tc\u670D\u52A1\u7AEF->>haipay\u670D\u52A1\u7AEF: \u8FD4\u56DEaccessToken\n haipay\u670D\u52A1\u7AEF-->>native: \u5C06accessToken\u8FD4\u56DEnative\n native->>tch5: \u5C06accessToken\u8FD4\u56DE\u7ED9tch5\uFF0C\u8FDB\u884C\u767B\u5F55"
36
+ })
37
+ }), /*#__PURE__*/jsx(Button, {
38
+ block: true,
39
+ type: "primary",
40
+ ghost: true,
41
+ style: {
42
+ marginTop: 20
43
+ },
44
+ onClick: function onClick() {
45
+ openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');
46
+ },
47
+ children: "\u67E5\u770B\u66F4\u591A\u793A\u4F8B"
48
+ })]
49
+ });
50
+ },
51
+ okHidden: true,
52
+ cancelHidden: true
53
+ });
54
+ };
55
+ return /*#__PURE__*/jsx(Button, {
56
+ type: "default",
57
+ size: "small",
58
+ style: {
59
+ fontSize: 12
60
+ },
61
+ onClick: handeClick,
62
+ children: "\u652F\u6301Mermaid\u56FE\u5F62"
63
+ }, "imageUpload");
64
+ };
65
+
66
+ var _excluded$1 = ["children", "className"];
67
+ var PluginMermaidCode = function PluginMermaidCode(_ref) {
68
+ var _ref$children = _ref.children,
69
+ children = _ref$children === void 0 ? [] : _ref$children,
70
+ className = _ref.className,
71
+ props = _objectWithoutProperties(_ref, _excluded$1);
72
+ var demoid = useRef(getUuid());
73
+ var _useState = useState(''),
74
+ _useState2 = _slicedToArray(_useState, 2),
75
+ svgContent = _useState2[0],
76
+ setSvgContent = _useState2[1];
77
+ var renderAbortRef = useRef(false);
78
+ var isMermaid = className && /^language-mermaid/.test(className.toLocaleLowerCase());
79
+ var code = children ? getCodeString(props.node.children) : children[0] || '';
80
+ useEffect(function () {
81
+ if (isMermaid && code) {
82
+ // 标记之前的渲染为已取消
83
+ renderAbortRef.current = true;
84
+
85
+ // 重置取消标志
86
+ renderAbortRef.current = false;
87
+
88
+ // 生成新的唯一 ID
89
+ var currentId = getUuid();
90
+ demoid.current = currentId;
91
+
92
+ // 创建一个临时的隐藏容器用于 Mermaid 渲染
93
+ var tempContainer = document.createElement('div');
94
+ tempContainer.style.position = 'absolute';
95
+ tempContainer.style.visibility = 'hidden';
96
+ tempContainer.style.width = '0';
97
+ tempContainer.style.height = '0';
98
+ tempContainer.style.top = '-9999px';
99
+ tempContainer.style.left = '-9999px';
100
+ tempContainer.id = currentId;
101
+ document.body.appendChild(tempContainer);
102
+
103
+ // 使用 requestAnimationFrame 确保在正确的时机渲染
104
+ var frameId = requestAnimationFrame(function () {
105
+ if (renderAbortRef.current) {
106
+ // 清理临时容器
107
+ try {
108
+ if (tempContainer.parentNode) {
109
+ document.body.removeChild(tempContainer);
110
+ }
111
+ } catch (_unused) {
112
+ // 忽略清理错误
113
+ }
114
+ return;
115
+ }
116
+ var mermaid = window['mermaid'];
117
+ // 在临时容器中渲染
118
+ mermaid.render(currentId, code).then(function (_ref2) {
119
+ var svg = _ref2.svg;
120
+ // 检查是否已被取消
121
+ if (renderAbortRef.current) {
122
+ return;
123
+ }
124
+
125
+ // 使用 React state 更新 SVG 内容,而不是直接操作 DOM
126
+ setSvgContent(svg);
127
+ }).catch(function (error) {
128
+ if (!renderAbortRef.current) {
129
+ console.log('Mermaid render error:', error);
130
+ setSvgContent('');
131
+ }
132
+ }).finally(function () {
133
+ // 清理临时容器
134
+ try {
135
+ if (tempContainer.parentNode) {
136
+ document.body.removeChild(tempContainer);
137
+ }
138
+ } catch (_unused2) {
139
+ // 忽略清理错误
140
+ }
141
+ });
142
+ });
143
+
144
+ // 清理函数:取消正在进行的渲染
145
+ return function () {
146
+ renderAbortRef.current = true;
147
+ cancelAnimationFrame(frameId);
148
+
149
+ // 清理临时容器
150
+ try {
151
+ if (tempContainer.parentNode) {
152
+ document.body.removeChild(tempContainer);
153
+ }
154
+ } catch (_unused3) {
155
+ // 忽略清理错误
156
+ }
157
+ };
158
+ } else {
159
+ setSvgContent('');
160
+ }
161
+ return undefined;
162
+ }, [isMermaid, code]);
163
+ if (isMermaid) {
164
+ return /*#__PURE__*/jsx("code", {
165
+ className: className,
166
+ "data-name": "mermaid",
167
+ dangerouslySetInnerHTML: {
168
+ __html: svgContent
169
+ }
170
+ });
171
+ }
172
+ return /*#__PURE__*/jsx("code", {
173
+ className: className,
174
+ children: children
175
+ });
176
+ };
177
+
178
+ function getImageDimensions(url) {
179
+ return new Promise(function (resolve, reject) {
180
+ var img = new Image();
181
+ img.onload = function () {
182
+ resolve({
183
+ width: img.naturalWidth,
184
+ height: img.naturalHeight
185
+ });
186
+ };
187
+ img.onerror = function () {
188
+ reject(new Error('图片加载失败'));
189
+ };
190
+ img.src = url;
191
+ });
192
+ }
193
+ var UploadImageContent = function UploadImageContent(props) {
194
+ var onValuesChange = useCallback(function (changedFields) {
195
+ return new Promise(function ($return, $error) {
196
+ if (changedFields.imageUrls) {
197
+ var imageUrls = changedFields.imageUrls;
198
+ if (!(imageUrls !== null && imageUrls !== void 0 && imageUrls.length)) return $return();
199
+ var imageUrl = isString(imageUrls[0]) ? imageUrls[0] : imageUrls[0].url;
200
+ getImageDimensions(imageUrl).then(function (_ref) {
201
+ var width = _ref.width,
202
+ height = _ref.height;
203
+ props.form.setFieldsValue({
204
+ width: width,
205
+ height: height
206
+ });
207
+ }).catch(function () {});
208
+ }
209
+ return $return();
210
+ });
211
+ }, [props.form]);
212
+ var onUploadFile = useMemoizedFn(function (file) {
213
+ return new Promise(function ($return, $error) {
214
+ var _props$onUploadImage, formData, respData;
215
+ formData = new FormData();
216
+ formData.append('file', file);
217
+ return Promise.resolve((_props$onUploadImage = props.onUploadImage) === null || _props$onUploadImage === void 0 ? void 0 : _props$onUploadImage.call(props, file)).then(function ($await_1) {
218
+ try {
219
+ respData = $await_1;
220
+ return $return(respData);
221
+ } catch ($boundEx) {
222
+ return $error($boundEx);
223
+ }
224
+ }, $error);
225
+ });
226
+ });
227
+ return /*#__PURE__*/jsxs(EasyForm, {
228
+ form: props.form,
229
+ onValuesChange: onValuesChange,
230
+ initialValues: {
231
+ file: [{
232
+ url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',
233
+ name: 'xxx1.png'
234
+ }, {
235
+ url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',
236
+ name: 'xxx2.png'
237
+ }]
238
+ },
239
+ children: [/*#__PURE__*/jsx(FormItemHidden, {
240
+ name: "height"
241
+ }), /*#__PURE__*/jsx(FormItemWrapper, {
242
+ name: "imageUrls",
243
+ label: "\u56FE\u7247",
244
+ rules: [{
245
+ required: true,
246
+ message: '请选择或粘贴图片'
247
+ }],
248
+ noStyle: true,
249
+ children: /*#__PURE__*/jsx(UploadMultiType, {
250
+ onUploadFile: onUploadFile,
251
+ maxCount: 1
252
+ })
253
+ }), /*#__PURE__*/jsx(Gap, {
254
+ height: 12
255
+ }), /*#__PURE__*/jsx(FormItemWrapper, {
256
+ name: "width",
257
+ label: "\u5BBD\u5EA6",
258
+ children: /*#__PURE__*/jsx(InputNumber, {
259
+ placeholder: "\u8BF7\u8F93\u5165\u5BBD\u5EA6",
260
+ style: {
261
+ width: '200px'
262
+ },
263
+ addonAfter: "px"
264
+ })
265
+ }), /*#__PURE__*/jsx(AlertWrapper, {
266
+ size: "small",
267
+ description: "\u53EF\u4FEE\u6539\u5BBD\u5EA6\u8FDB\u884C\u7B49\u6BD4\u7F29\u653E\u663E\u793A"
268
+ })]
269
+ });
270
+ };
271
+
272
+ var UploadImageBtn = function UploadImageBtn(props) {
273
+ var handleImageClick = function handleImageClick() {
274
+ dialogModal.open({
275
+ title: '上传图片',
276
+ content: function content(form) {
277
+ return /*#__PURE__*/jsx(UploadImageContent, {
278
+ form: form,
279
+ onUploadImage: props.onUploadImage
280
+ });
281
+ },
282
+ okText: '确定',
283
+ onOk: function onOk(form) {
284
+ return new Promise(function ($return, $error) {
285
+ var values, imageUrls, imageItem, _props$onUploadResult, _props$onUploadResult2, name;
286
+ return Promise.resolve(form.validateFields()).then(function ($await_2) {
287
+ try {
288
+ values = $await_2;
289
+ try {
290
+ imageUrls = values.imageUrls;
291
+ if (!(imageUrls !== null && imageUrls !== void 0 && imageUrls.length)) return $return();
292
+ imageItem = imageUrls[0];
293
+ if (isObject(imageItem)) {
294
+ (_props$onUploadResult = props.onUploadResult) === null || _props$onUploadResult === void 0 || _props$onUploadResult.call(props, {
295
+ url: imageItem.url,
296
+ name: imageItem.name,
297
+ width: values.width
298
+ });
299
+ } else {
300
+ name = imageItem.split('/').pop();
301
+ (_props$onUploadResult2 = props.onUploadResult) === null || _props$onUploadResult2 === void 0 || _props$onUploadResult2.call(props, {
302
+ url: imageItem,
303
+ name: name,
304
+ width: values.width
305
+ });
306
+ }
307
+ } catch (error) {
308
+ message.error((error === null || error === void 0 ? void 0 : error['message']) || '上传图片失败');
309
+ return $return(Promise.reject());
310
+ }
311
+ return $return(Promise.resolve());
312
+ } catch ($boundEx) {
313
+ return $error($boundEx);
314
+ }
315
+ }, $error);
316
+ });
317
+ },
318
+ onCancel: function onCancel() {
319
+ console.log('onCancel');
320
+ }
321
+ });
322
+ };
323
+ return /*#__PURE__*/jsx(Button, {
324
+ type: "default",
325
+ size: "small",
326
+ style: {
327
+ fontSize: 12
328
+ },
329
+ onClick: handleImageClick,
330
+ children: "\u4E0A\u4F20\u56FE\u7247"
331
+ });
332
+ };
333
+
334
+ var _excluded = ["value", "onChange", "onUploadImage", "readonly", "isDarkMode", "className", "style", "readonlyHeightAuto", "height", "hideBorder"];
335
+ var ReactMdEditor = function ReactMdEditor(props) {
336
+ var value = props.value,
337
+ onChange = props.onChange,
338
+ onUploadImage = props.onUploadImage,
339
+ readonly = props.readonly,
340
+ isDarkMode = props.isDarkMode,
341
+ className = props.className,
342
+ style = props.style,
343
+ readonlyHeightAuto = props.readonlyHeightAuto,
344
+ height = props.height,
345
+ hideBorder = props.hideBorder,
346
+ restProps = _objectWithoutProperties(props, _excluded);
347
+ var _useState = useState(value),
348
+ _useState2 = _slicedToArray(_useState, 2),
349
+ innerValue = _useState2[0],
350
+ setInnerValue = _useState2[1];
351
+ var readonlyHeightAutoFt = readonlyHeightAuto !== null && readonlyHeightAuto !== void 0 ? readonlyHeightAuto : true;
352
+ useEffect(function () {
353
+ console.log('props.value', props.value);
354
+ setInnerValue(props.value);
355
+ }, [props.value]);
356
+
357
+ // 编辑器实例引用(用于操作内容)
358
+ var editorRef = useRef(null);
359
+ // 隐藏的文件选择器ref
360
+ useRef(null);
361
+ var onInnerChange = function onInnerChange(value) {
362
+ setInnerValue(value);
363
+ onChange === null || onChange === void 0 || onChange(value);
364
+ };
365
+
366
+ // 处理图片选择(核心:读取图片并插入)
367
+ var onUploadResult = function onUploadResult(respData) {
368
+ try {
369
+ var imageMarkdown = "\n<img src=\"".concat(respData.url, "\" width=\"").concat(respData.width, "\" alt=\"").concat(respData.name, "\">\n");
370
+ // 将图片Markdown插入到编辑器光标位置
371
+ if (editorRef.current) {
372
+ var _editorRef$current;
373
+ var textarea = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current['textarea'];
374
+ var cursorPosition = textarea.selectionStart;
375
+ var newContent = (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(0, cursorPosition)) + imageMarkdown + (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(cursorPosition));
376
+ onInnerChange(newContent);
377
+ }
378
+ } catch (error) {
379
+ message.error((error === null || error === void 0 ? void 0 : error['message']) || '添加图片失败');
380
+ }
381
+ };
382
+ var imageUploadCommand = onUploadImage ? {
383
+ name: 'imageUpload',
384
+ keyCommand: 'imageUpload',
385
+ render: function render() {
386
+ return /*#__PURE__*/jsx(UploadImageBtn, {
387
+ onUploadResult: onUploadResult,
388
+ onUploadImage: onUploadImage
389
+ // type="default"
390
+ // size="small"
391
+ // style={{ fontSize: 12 }}
392
+ // onClick={handleImageClick}
393
+ }, "imageUpload");
394
+ }
395
+ } : null;
396
+ // 支持 mermaid 语法
397
+ var mermaidCommand = {
398
+ name: 'mermaid',
399
+ keyCommand: 'mermaid',
400
+ render: function render() {
401
+ return /*#__PURE__*/jsx(MermaidViewBtn
402
+ // type="default"
403
+ , {}, "mermaid");
404
+ }
405
+ };
406
+ var MDEditor = window['@uiw/react-md-editor'].default;
407
+ var commands = window['@uiw/react-md-editor'].commands;
408
+ var extraCommands = [];
409
+ if (imageUploadCommand && !readonly) {
410
+ extraCommands = [imageUploadCommand, commands.divider, mermaidCommand, commands.divider, commands.fullscreen];
411
+ } else {
412
+ extraCommands = [mermaidCommand, commands.divider, commands.fullscreen];
413
+ }
414
+ var preview = readonly ? 'preview' : 'live';
415
+ var dataColorMode = isDarkMode ? 'dark' : 'light';
416
+ var commandsFt = useMemo(function () {
417
+ if (readonly) return [];
418
+ return undefined;
419
+ }, [readonly]);
420
+ var id = useMemo(function () {
421
+ return getUuid();
422
+ }, []);
423
+ var wmdeMarkdownSize = useSize(function () {
424
+ return document.querySelector("#".concat(id, " .wmde-markdown"));
425
+ });
426
+ var autoHeight = useMemo(function () {
427
+ return readonly && readonlyHeightAutoFt;
428
+ }, [readonly, readonlyHeightAutoFt]);
429
+ var heightFt = useMemo(function () {
430
+ if (autoHeight) {
431
+ var _wmdeMarkdownSize$hei;
432
+ return ((_wmdeMarkdownSize$hei = wmdeMarkdownSize === null || wmdeMarkdownSize === void 0 ? void 0 : wmdeMarkdownSize.height) !== null && _wmdeMarkdownSize$hei !== void 0 ? _wmdeMarkdownSize$hei : 0) + 25;
433
+ }
434
+ return height;
435
+ }, [autoHeight, wmdeMarkdownSize === null || wmdeMarkdownSize === void 0 ? void 0 : wmdeMarkdownSize.height, height]);
436
+ var visibleDragbarFt = useMemo(function () {
437
+ if (autoHeight) return false;
438
+ return restProps.visibleDragbar;
439
+ }, [autoHeight, restProps.visibleDragbar]);
440
+ return /*#__PURE__*/jsx("div", {
441
+ style: style,
442
+ className: classNames('v-markdown-editor', className),
443
+ id: id,
444
+ children: /*#__PURE__*/jsx(MDEditor, _objectSpread2(_objectSpread2({
445
+ highlightEnable: true
446
+ }, restProps), {}, {
447
+ style: {
448
+ boxShadow: hideBorder ? 'none' : undefined
449
+ },
450
+ height: heightFt,
451
+ ref: editorRef,
452
+ value: innerValue,
453
+ preview: preview,
454
+ onChange: onInnerChange,
455
+ visibleDragbar: visibleDragbarFt,
456
+ "data-color-mode": dataColorMode,
457
+ extraCommands: extraCommands,
458
+ commands: commandsFt,
459
+ previewOptions: {
460
+ components: {
461
+ code: PluginMermaidCode
462
+ }
463
+ }
464
+ }))
465
+ });
466
+ };
467
+
468
+ /**
469
+ * markdown编辑器
470
+ * ```
471
+ * 1. 使用@uiw/react-md-editor组件
472
+ * 2. 动态加载 mermaid.js 和 mdeditor.js 和 mdeditor.css
473
+ * //oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js
474
+ * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js
475
+ * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css
476
+ * ```
477
+ */
478
+ var MarkdownEditor = function MarkdownEditor(props) {
479
+ var _useState = useState(false),
480
+ _useState2 = _slicedToArray(_useState, 2),
481
+ renderFlag = _useState2[0],
482
+ setRenderFlag = _useState2[1];
483
+ var _useState3 = useState(null),
484
+ _useState4 = _slicedToArray(_useState3, 2),
485
+ errorMsg = _useState4[0],
486
+ setErrorMsg = _useState4[1];
487
+ useEffect(function () {
488
+ Promise.all([loadScripts({
489
+ scriptUrls: ['//oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js', '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js'],
490
+ checkFn: function checkFn() {
491
+ var isLoaded = window['@uiw/react-md-editor'] && window['mermaid'];
492
+ return isLoaded;
493
+ },
494
+ intervalMs: 20
495
+ }), loadStyles({
496
+ styleUrls: ['//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css']
497
+ })]).then(function () {
498
+ setRenderFlag(true);
499
+ }).catch(function (error) {
500
+ console.error(error);
501
+ setRenderFlag(true);
502
+ setErrorMsg((error === null || error === void 0 ? void 0 : error.message) || 'Markdown编辑器加载失败');
503
+ });
504
+ }, []);
505
+ if (!renderFlag) {
506
+ return /*#__PURE__*/jsx(Spin, {
507
+ tip: /*#__PURE__*/jsx("div", {
508
+ style: {
509
+ marginTop: 10
510
+ },
511
+ children: "Markdown\u7F16\u8F91\u5668\u52A0\u8F7D\u4E2D"
512
+ }),
513
+ size: "small",
514
+ children: /*#__PURE__*/jsx("div", {
515
+ style: {
516
+ padding: 50,
517
+ background: 'rgba(0, 0, 0, 0.05)',
518
+ borderRadius: 4
519
+ }
520
+ })
521
+ });
522
+ }
523
+ if (errorMsg) {
524
+ return /*#__PURE__*/jsxs("div", {
525
+ style: {
526
+ textAlign: 'center',
527
+ padding: 20,
528
+ background: '#fff'
529
+ },
530
+ children: [/*#__PURE__*/jsx(_CloseCircleFilled, {
531
+ style: {
532
+ color: '#f00',
533
+ fontSize: 30
534
+ }
535
+ }), /*#__PURE__*/jsx("div", {
536
+ style: {
537
+ color: '#f00',
538
+ marginTop: 10,
539
+ fontSize: 16
540
+ },
541
+ children: "Markdown\u7F16\u8F91\u5668\u52A0\u8F7D\u5931\u8D25"
542
+ }), /*#__PURE__*/jsx("div", {
543
+ style: {
544
+ color: '#898989',
545
+ marginTop: 5,
546
+ fontSize: 12
547
+ },
548
+ children: errorMsg
549
+ })]
550
+ });
551
+ }
552
+ return /*#__PURE__*/jsx(ReactMdEditor, _objectSpread2({}, props));
553
+ };
554
+
555
+ export { MarkdownEditor as M };
556
+ //# sourceMappingURL=content-DnpCk2LR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-DnpCk2LR.js","sources":["@flatbiz/antd/src/markdown-editor/mermaid-view/index.tsx","@flatbiz/antd/src/markdown-editor/plugin-mermaid.tsx","@flatbiz/antd/src/markdown-editor/upload-image/content.tsx","@flatbiz/antd/src/markdown-editor/upload-image/index.tsx","@flatbiz/antd/src/markdown-editor/editor.tsx","@flatbiz/antd/src/markdown-editor/content.tsx"],"sourcesContent":["import { Button } from 'antd';\nimport { openNewWindow } from '@flatbiz/utils';\nimport { CardLayout } from '../../card-layout/card-layout.jsx';\nimport { CodeRender } from '../../code-render/code.jsx';\nimport { dialogModal } from '../../dialog-modal/dialog-modal.jsx';\n\nexport const MermaidViewBtn = () => {\n const handeClick = () => {\n dialogModal.open({\n title: 'Mermaid图形示例',\n content: () => {\n return (\n <div>\n <CardLayout\n title={'示例'}\n subTitle={'在Markdown中使用Mermaid图形'}\n layoutType=\"tight\"\n >\n <CodeRender\n code={`\\`\\`\\`mermaid\nsequenceDiagram\n native->>haipay服务端:获取accessToken\n haipay服务端->>tc服务端: 调用tc的接口获取accessToken\n tc服务端->>haipay服务端: 返回accessToken\n haipay服务端-->>native: 将accessToken返回native\n native->>tch5: 将accessToken返回给tch5,进行登录`}\n />\n </CardLayout>\n <Button\n block\n type=\"primary\"\n ghost\n style={{ marginTop: 20 }}\n onClick={() => {\n openNewWindow(\n 'https://docs.min2k.com/zh/mermaid/syntax/pie.html'\n );\n }}\n >\n 查看更多示例\n </Button>\n </div>\n );\n },\n okHidden: true,\n cancelHidden: true,\n });\n };\n\n return (\n <Button\n key=\"imageUpload\"\n type=\"default\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={handeClick}\n >\n 支持Mermaid图形\n </Button>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { getCodeString } from 'rehype-rewrite';\nimport { getUuid } from '@flatbiz/utils';\n\nexport const PluginMermaidCode = ({\n children = [],\n className,\n ...props\n}: any) => {\n const demoid = useRef(getUuid());\n const [svgContent, setSvgContent] = useState<string>('');\n const renderAbortRef = useRef<boolean>(false);\n const isMermaid =\n className && /^language-mermaid/.test(className.toLocaleLowerCase());\n const code = children\n ? getCodeString(props.node.children)\n : children[0] || '';\n\n useEffect(() => {\n if (isMermaid && code) {\n // 标记之前的渲染为已取消\n renderAbortRef.current = true;\n\n // 重置取消标志\n renderAbortRef.current = false;\n\n // 生成新的唯一 ID\n const currentId = getUuid();\n demoid.current = currentId;\n\n // 创建一个临时的隐藏容器用于 Mermaid 渲染\n const tempContainer = document.createElement('div');\n tempContainer.style.position = 'absolute';\n tempContainer.style.visibility = 'hidden';\n tempContainer.style.width = '0';\n tempContainer.style.height = '0';\n tempContainer.style.top = '-9999px';\n tempContainer.style.left = '-9999px';\n tempContainer.id = currentId;\n document.body.appendChild(tempContainer);\n\n // 使用 requestAnimationFrame 确保在正确的时机渲染\n const frameId = requestAnimationFrame(() => {\n if (renderAbortRef.current) {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n return;\n }\n const mermaid = window['mermaid'];\n // 在临时容器中渲染\n mermaid\n .render(currentId, code)\n .then(({ svg }) => {\n // 检查是否已被取消\n if (renderAbortRef.current) {\n return;\n }\n\n // 使用 React state 更新 SVG 内容,而不是直接操作 DOM\n setSvgContent(svg);\n })\n .catch((error) => {\n if (!renderAbortRef.current) {\n console.log('Mermaid render error:', error);\n setSvgContent('');\n }\n })\n .finally(() => {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n });\n });\n\n // 清理函数:取消正在进行的渲染\n return () => {\n renderAbortRef.current = true;\n cancelAnimationFrame(frameId);\n\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n };\n } else {\n setSvgContent('');\n }\n\n return undefined;\n }, [isMermaid, code]);\n\n if (isMermaid) {\n return (\n <code\n className={className}\n data-name=\"mermaid\"\n dangerouslySetInnerHTML={{ __html: svgContent }}\n />\n );\n }\n return <code className={className}>{children}</code>;\n};\n","import { useCallback } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport type { FormInstance } from 'antd';\nimport { InputNumber } from 'antd';\nimport { isString } from '@dimjs/lang';\nimport { AlertWrapper } from '../../alert-wrapper/alert.jsx';\nimport { EasyForm } from '../../easy-form/form.jsx';\nimport { FormItemHidden } from '../../form-item-hidden/form-item-hidden.jsx';\nimport { FormItemWrapper } from '../../form-item-wrapper/form-item-wrapper.jsx';\nimport { Gap } from '../../gap/gap.jsx';\nimport { UploadMultiType } from '../../upload-multi-type/content.jsx';\n\nfunction getImageDimensions(\n url: string\n): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.naturalWidth, height: img.naturalHeight });\n };\n img.onerror = () => {\n reject(new Error('图片加载失败'));\n };\n img.src = url;\n });\n}\n\nexport const UploadImageContent = (props: {\n form: FormInstance;\n onUploadImage: (file: File) => Promise<{ url: string; name: string }>;\n}) => {\n const onValuesChange = useCallback(\n async (changedFields: any) => {\n if (changedFields.imageUrls) {\n const imageUrls = changedFields.imageUrls;\n if (!imageUrls?.length) return;\n const imageUrl = isString(imageUrls[0])\n ? imageUrls[0]\n : imageUrls[0].url;\n getImageDimensions(imageUrl)\n .then(({ width, height }) => {\n props.form.setFieldsValue({ width, height });\n })\n .catch(() => {});\n }\n },\n [props.form]\n );\n\n const onUploadFile = useMemoizedFn(async (file: File) => {\n const formData = new FormData();\n formData.append('file', file);\n const respData = await props.onUploadImage?.(file);\n return respData;\n });\n\n return (\n <EasyForm\n form={props.form}\n onValuesChange={onValuesChange}\n initialValues={{\n file: [\n {\n url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',\n name: 'xxx1.png',\n },\n {\n url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',\n name: 'xxx2.png',\n },\n ],\n }}\n >\n <FormItemHidden name=\"height\" />\n <FormItemWrapper\n name=\"imageUrls\"\n label=\"图片\"\n rules={[{ required: true, message: '请选择或粘贴图片' }]}\n noStyle\n >\n <UploadMultiType onUploadFile={onUploadFile} maxCount={1} />\n </FormItemWrapper>\n <Gap height={12} />\n <FormItemWrapper name=\"width\" label=\"宽度\">\n <InputNumber\n placeholder=\"请输入宽度\"\n style={{ width: '200px' }}\n addonAfter=\"px\"\n />\n </FormItemWrapper>\n\n <AlertWrapper size=\"small\" description=\"可修改宽度进行等比缩放显示\" />\n </EasyForm>\n );\n};\n","import { Button, message } from 'antd';\nimport { isObject } from '@dimjs/lang';\nimport { dialogModal } from '../../dialog-modal/dialog-modal.jsx';\nimport { UploadImageContent } from './content.jsx';\n\nexport const UploadImageBtn = (props: {\n onUploadResult: (respData: {\n url: string;\n name: string;\n width: number;\n }) => void;\n onUploadImage: (file: File) => Promise<{ url: string; name: string }>;\n}) => {\n const handleImageClick = () => {\n dialogModal.open({\n title: '上传图片',\n content: (form) => {\n return (\n <UploadImageContent form={form} onUploadImage={props.onUploadImage} />\n );\n },\n okText: '确定',\n onOk: async (form) => {\n const values = await form.validateFields();\n try {\n const imageUrls = values.imageUrls;\n if (!imageUrls?.length) return;\n const imageItem = imageUrls[0];\n if (isObject(imageItem)) {\n props.onUploadResult?.({\n url: imageItem.url,\n name: imageItem.name,\n width: values.width,\n });\n } else {\n const name = imageItem.split('/').pop();\n props.onUploadResult?.({\n url: imageItem,\n name: name,\n width: values.width,\n });\n }\n } catch (error) {\n message.error(error?.['message'] || '上传图片失败');\n return Promise.reject();\n }\n return Promise.resolve();\n },\n onCancel: () => {\n console.log('onCancel');\n },\n });\n };\n\n return (\n <Button\n type=\"default\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={handleImageClick}\n >\n 上传图片\n </Button>\n );\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useSize } from 'ahooks';\nimport { message } from 'antd';\nimport { classNames } from '@dimjs/utils';\nimport { getUuid } from '@flatbiz/utils';\nimport { MermaidViewBtn } from './mermaid-view/index.jsx';\nimport { PluginMermaidCode } from './plugin-mermaid.jsx';\nimport type { MarkdownEditorProps } from './type.js';\nimport { UploadImageBtn } from './upload-image/index.jsx';\n// import MDEditor from '@uiw/react-md-editor';\n\n/**\n * ```\n * 使用:@uiw/react-md-editor 组件\n * 文档:https://www.npmjs.com/package/@uiw/react-md-editor\n * ```\n */\nexport const ReactMdEditor = (props: MarkdownEditorProps) => {\n const {\n value,\n onChange,\n onUploadImage,\n readonly,\n isDarkMode,\n className,\n style,\n readonlyHeightAuto,\n height,\n hideBorder,\n ...restProps\n } = props;\n const [innerValue, setInnerValue] = useState<string | undefined>(value);\n\n const readonlyHeightAutoFt = readonlyHeightAuto ?? true;\n\n useEffect(() => {\n console.log('props.value', props.value);\n setInnerValue(props.value);\n }, [props.value]);\n\n // 编辑器实例引用(用于操作内容)\n const editorRef = useRef(null);\n // 隐藏的文件选择器ref\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 触发文件选择框\n const handleImageClick = () => {\n fileInputRef.current?.click();\n };\n\n const onInnerChange = (value?: string) => {\n setInnerValue(value);\n onChange?.(value);\n };\n\n // 处理图片选择(核心:读取图片并插入)\n const onUploadResult = (respData: {\n url: string;\n name: string;\n width: number;\n }) => {\n try {\n const imageMarkdown = `\\n<img src=\"${respData.url}\" width=\"${respData.width}\" alt=\"${respData.name}\">\\n`;\n // 将图片Markdown插入到编辑器光标位置\n if (editorRef.current) {\n const textarea = editorRef.current?.['textarea'] as HTMLTextAreaElement;\n const cursorPosition = textarea.selectionStart;\n const newContent =\n innerValue?.slice(0, cursorPosition) +\n imageMarkdown +\n innerValue?.slice(cursorPosition);\n onInnerChange(newContent);\n }\n } catch (error) {\n message.error(error?.['message'] || '添加图片失败');\n }\n };\n\n const imageUploadCommand = onUploadImage\n ? {\n name: 'imageUpload',\n keyCommand: 'imageUpload',\n render: () => {\n return (\n <UploadImageBtn\n key=\"imageUpload\"\n onUploadResult={onUploadResult}\n onUploadImage={onUploadImage}\n // type=\"default\"\n // size=\"small\"\n // style={{ fontSize: 12 }}\n // onClick={handleImageClick}\n />\n );\n },\n }\n : null;\n // 支持 mermaid 语法\n const mermaidCommand = {\n name: 'mermaid',\n keyCommand: 'mermaid',\n render: () => {\n return (\n <MermaidViewBtn\n // type=\"default\"\n key=\"mermaid\"\n // size=\"small\"\n // style={{ fontSize: 12 }}\n // onClick={() => {\n // openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');\n // }}\n />\n );\n },\n };\n\n const MDEditor = window['@uiw/react-md-editor'].default;\n const commands = window['@uiw/react-md-editor'].commands;\n\n let extraCommands: any[] = [];\n\n if (imageUploadCommand && !readonly) {\n extraCommands = [\n imageUploadCommand,\n commands.divider,\n mermaidCommand,\n commands.divider,\n commands.fullscreen,\n ];\n } else {\n extraCommands = [mermaidCommand, commands.divider, commands.fullscreen];\n }\n\n const preview = readonly ? 'preview' : 'live';\n\n const dataColorMode = isDarkMode ? 'dark' : 'light';\n\n const commandsFt = useMemo(() => {\n if (readonly) return [];\n return undefined;\n }, [readonly]);\n\n const id = useMemo(() => {\n return getUuid();\n }, []);\n\n const wmdeMarkdownSize = useSize(() =>\n document.querySelector(`#${id} .wmde-markdown`)\n );\n\n const autoHeight = useMemo(() => {\n return readonly && readonlyHeightAutoFt;\n }, [readonly, readonlyHeightAutoFt]);\n\n const heightFt = useMemo(() => {\n if (autoHeight) {\n return (wmdeMarkdownSize?.height ?? 0) + 25;\n }\n return height;\n }, [autoHeight, wmdeMarkdownSize?.height, height]);\n\n const visibleDragbarFt = useMemo(() => {\n if (autoHeight) return false;\n return restProps.visibleDragbar;\n }, [autoHeight, restProps.visibleDragbar]);\n return (\n <div\n style={style}\n className={classNames('v-markdown-editor', className)}\n id={id}\n >\n <MDEditor\n highlightEnable={true}\n {...restProps}\n style={{ boxShadow: hideBorder ? 'none' : undefined }}\n height={heightFt}\n ref={editorRef}\n value={innerValue}\n preview={preview}\n onChange={onInnerChange}\n visibleDragbar={visibleDragbarFt}\n data-color-mode={dataColorMode}\n extraCommands={extraCommands}\n commands={commandsFt}\n previewOptions={{\n components: {\n code: PluginMermaidCode,\n },\n }}\n />\n {/* 隐藏的文件选择输入框 */}\n {/* <input\n type=\"file\"\n ref={fileInputRef}\n accept=\"image/*\" // 只允许选择图片\n onChange={handleFileChange}\n style={{ display: 'none' }}\n /> */}\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { Spin } from 'antd';\nimport { CloseCircleFilled } from '@ant-design/icons';\nimport { loadScripts, loadStyles } from '@flatbiz/utils';\nimport { ReactMdEditor } from './editor.jsx';\nimport type { MarkdownEditorProps } from './type.js';\n\n/**\n * markdown编辑器\n * ```\n * 1. 使用@uiw/react-md-editor组件\n * 2. 动态加载 mermaid.js 和 mdeditor.js 和 mdeditor.css\n * //oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css\n * ```\n */\nexport const MarkdownEditor = (props: MarkdownEditorProps) => {\n const [renderFlag, setRenderFlag] = useState(false);\n const [errorMsg, setErrorMsg] = useState<string | null>(null);\n\n useEffect(() => {\n Promise.all([\n loadScripts({\n scriptUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js',\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js',\n ],\n checkFn: () => {\n const isLoaded = window['@uiw/react-md-editor'] && window['mermaid'];\n return isLoaded;\n },\n intervalMs: 20,\n }),\n loadStyles({\n styleUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css',\n ],\n }),\n ])\n .then(() => {\n setRenderFlag(true);\n })\n .catch((error) => {\n console.error(error);\n setRenderFlag(true);\n setErrorMsg(error?.message || 'Markdown编辑器加载失败');\n });\n }, []);\n\n if (!renderFlag) {\n return (\n <Spin\n tip={<div style={{ marginTop: 10 }}>Markdown编辑器加载中</div>}\n size=\"small\"\n >\n <div\n style={{\n padding: 50,\n background: 'rgba(0, 0, 0, 0.05)',\n borderRadius: 4,\n }}\n />\n </Spin>\n );\n }\n\n if (errorMsg) {\n return (\n <div style={{ textAlign: 'center', padding: 20, background: '#fff' }}>\n <CloseCircleFilled style={{ color: '#f00', fontSize: 30 }} />\n <div style={{ color: '#f00', marginTop: 10, fontSize: 16 }}>\n Markdown编辑器加载失败\n </div>\n <div style={{ color: '#898989', marginTop: 5, fontSize: 12 }}>\n {errorMsg}\n </div>\n </div>\n );\n }\n\n return <ReactMdEditor {...props} />;\n};\n"],"names":["MermaidViewBtn","handeClick","dialogModal","open","title","content","_jsxs","children","_jsx","CardLayout","subTitle","layoutType","CodeRender","code","Button","block","type","ghost","style","marginTop","onClick","openNewWindow","okHidden","cancelHidden","size","fontSize","PluginMermaidCode","_ref","_ref$children","className","props","_objectWithoutProperties","_excluded","demoid","useRef","getUuid","_useState","useState","_useState2","_slicedToArray","svgContent","setSvgContent","renderAbortRef","isMermaid","test","toLocaleLowerCase","getCodeString","node","useEffect","current","currentId","tempContainer","document","createElement","position","visibility","width","height","top","left","id","body","appendChild","frameId","requestAnimationFrame","parentNode","removeChild","_unused","mermaid","window","render","then","_ref2","svg","catch","error","console","log","finally","_unused2","cancelAnimationFrame","_unused3","undefined","dangerouslySetInnerHTML","__html","getImageDimensions","url","Promise","resolve","reject","img","Image","onload","naturalWidth","naturalHeight","onerror","Error","src","UploadImageContent","onValuesChange","useCallback","changedFields","$return","$error","imageUrls","length","imageUrl","_isString","form","setFieldsValue","onUploadFile","useMemoizedFn","file","_props$onUploadImage","formData","respData","FormData","append","onUploadImage","call","$await_1","$boundEx","EasyForm","initialValues","name","FormItemHidden","FormItemWrapper","label","rules","required","message","noStyle","UploadMultiType","maxCount","Gap","InputNumber","placeholder","addonAfter","AlertWrapper","description","UploadImageBtn","handleImageClick","okText","onOk","values","imageItem","_props$onUploadResult","_props$onUploadResult2","validateFields","$await_2","_isObject","onUploadResult","split","pop","onCancel","ReactMdEditor","value","onChange","readonly","isDarkMode","readonlyHeightAuto","hideBorder","restProps","innerValue","setInnerValue","readonlyHeightAutoFt","editorRef","onInnerChange","imageMarkdown","concat","_editorRef$current","textarea","cursorPosition","selectionStart","newContent","slice","imageUploadCommand","keyCommand","mermaidCommand","MDEditor","default","commands","extraCommands","divider","fullscreen","preview","dataColorMode","commandsFt","useMemo","wmdeMarkdownSize","useSize","querySelector","autoHeight","heightFt","_wmdeMarkdownSize$hei","visibleDragbarFt","visibleDragbar","_classNames","_objectSpread","highlightEnable","boxShadow","ref","previewOptions","components","MarkdownEditor","renderFlag","setRenderFlag","_useState3","_useState4","errorMsg","setErrorMsg","all","loadScripts","scriptUrls","checkFn","isLoaded","intervalMs","loadStyles","styleUrls","Spin","tip","padding","background","borderRadius","textAlign","_CloseCircleFilled","color"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { Form } from 'antd';
5
5
  import { useSensors, useSensor, PointerSensor, DndContext } from '@dnd-kit/core';
6
6
  import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
7
7
  import { useSortable, SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable';
8
- import { E as EditableTable } from './editable-table-DYR12TJM.js';
8
+ import { E as EditableTable } from './editable-table-BaKnBuHT.js';
9
9
  import { fbaHooks } from './fba-hooks/index.js';
10
10
  import _DragOutlined from '@ant-design/icons/es/icons/DragOutlined.js';
11
11
  import { createElement, Children, cloneElement } from 'react';
@@ -178,4 +178,4 @@ var DragEditableTable = function DragEditableTable(props) {
178
178
  };
179
179
 
180
180
  export { DragEditableTable as D };
181
- //# sourceMappingURL=drag-DUY7Olcc.js.map
181
+ //# sourceMappingURL=drag-D3i6_WRS.js.map