@flatbiz/antd 5.0.16 → 5.0.18
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/button-operate/index.d.ts +6 -2
- package/dist/button-operate/index.js +2 -2
- package/dist/{button-operate-C7NGikli.js → button-operate-3J_ml0DO.js} +19 -11
- package/dist/button-operate-3J_ml0DO.js.map +1 -0
- package/dist/{cell-render-D4e6I9eI.js → cell-render-ZmpHDPNW.js} +2 -2
- package/dist/{cell-render-D4e6I9eI.js.map → cell-render-ZmpHDPNW.js.map} +1 -1
- package/dist/dialog-modal-xt2uoEa-.js.map +1 -1
- package/dist/dialog-preview-image/index.css +0 -0
- package/dist/dialog-preview-image/index.d.ts +12 -0
- package/dist/dialog-preview-image/index.js +17 -0
- package/dist/dialog-preview-image/index.js.map +1 -0
- package/dist/{drag-C1CCBzbn.js → drag-CpN8Syvu.js} +2 -2
- package/dist/{drag-C1CCBzbn.js.map → drag-CpN8Syvu.js.map} +1 -1
- package/dist/drag-editable-table/index.css +1 -1
- package/dist/drag-editable-table/index.d.ts +14 -0
- package/dist/drag-editable-table/index.js +6 -5
- package/dist/editable-table/index.css +1 -1
- package/dist/editable-table/index.d.ts +14 -0
- package/dist/editable-table/index.js +5 -4
- package/dist/{editable-table-BgRLIKDS.js → editable-table-B79C_CpN.js} +3 -3
- package/dist/{editable-table-BgRLIKDS.js.map → editable-table-B79C_CpN.js.map} +1 -1
- package/dist/index.d.ts +36 -4
- package/dist/index.js +9 -7
- package/dist/index.js.map +1 -1
- package/dist/local-loading/index.css +1 -1
- package/dist/local-loading/index.d.ts +4 -2
- package/dist/local-loading/index.js +10 -5
- package/dist/local-loading/index.js.map +1 -1
- package/dist/preview-image-DP4umDzQ.js +80 -0
- package/dist/preview-image-DP4umDzQ.js.map +1 -0
- package/dist/selector-wrapper-simple/index.js +1 -1
- package/dist/{selector-wrapper-simple-CRqPexg2.js → selector-wrapper-simple-BRd4QhdQ.js} +4 -2
- package/dist/selector-wrapper-simple-BRd4QhdQ.js.map +1 -0
- package/dist/table-cell-render/index.d.ts +1 -1
- package/dist/table-cell-render/index.js +2 -2
- package/dist/{tabs-D2IfpmxW.js → tabs-CbMuUsXN.js} +5 -3
- package/dist/tabs-CbMuUsXN.js.map +1 -0
- package/dist/tabs-sticky/index.d.ts +3 -1
- package/dist/tabs-sticky/index.js +1 -1
- package/dist/tree-modal/index.d.ts +1 -1
- package/dist/tree-modal/index.js +1 -1
- package/dist/tree-modal-selector/index.d.ts +1 -1
- package/dist/tree-modal-selector/index.js +1 -1
- package/dist/tree-wrapper/index.d.ts +1 -1
- package/dist/tree-wrapper/index.js +1 -1
- package/dist/upload-wrapper/index.css +1 -1
- package/dist/upload-wrapper/index.d.ts +15 -0
- package/dist/upload-wrapper/index.js +21 -1
- package/dist/upload-wrapper/index.js.map +1 -1
- package/dist/{upload-wrapper-BUfwwddm.js → upload-wrapper-CwKeqggJ.js} +116 -20
- package/dist/upload-wrapper-CwKeqggJ.js.map +1 -0
- package/package.json +5 -1
- package/dist/button-operate-C7NGikli.js.map +0 -1
- package/dist/selector-wrapper-simple-CRqPexg2.js.map +0 -1
- package/dist/tabs-D2IfpmxW.js.map +0 -1
- package/dist/upload-wrapper-BUfwwddm.js.map +0 -1
package/dist/tree-modal/index.js
CHANGED
|
@@ -40,7 +40,7 @@ import '@ant-design/icons/es/icons/MoreOutlined.js';
|
|
|
40
40
|
import '@dimjs/utils/extend/extend';
|
|
41
41
|
import '@dimjs/utils/get/get';
|
|
42
42
|
import '@dimjs/model';
|
|
43
|
-
import '../button-operate-
|
|
43
|
+
import '../button-operate-3J_ml0DO.js';
|
|
44
44
|
import '@dimjs/lang/is-plain-object';
|
|
45
45
|
import '@dimjs/lang/is-promise';
|
|
46
46
|
import '../button-wrapper-l9FUsrWl.js';
|
|
@@ -113,7 +113,7 @@ export interface ButtonOperateProps {
|
|
|
113
113
|
style?: CSSProperties;
|
|
114
114
|
/**
|
|
115
115
|
* 如果数组中元素为ReactElement类型
|
|
116
|
-
* 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏
|
|
116
|
+
* 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏
|
|
117
117
|
* 2. 可配置 v-permission 权限值,例如 v-permission="add"
|
|
118
118
|
* 3. 任何confirm、disabled等状态在外部控制
|
|
119
119
|
* 3. 不支持fold效果
|
|
@@ -43,7 +43,7 @@ import '@ant-design/icons/es/icons/MoreOutlined.js';
|
|
|
43
43
|
import '@dimjs/utils/extend/extend';
|
|
44
44
|
import '@dimjs/utils/get/get';
|
|
45
45
|
import '@dimjs/model';
|
|
46
|
-
import '../button-operate-
|
|
46
|
+
import '../button-operate-3J_ml0DO.js';
|
|
47
47
|
import '@dimjs/lang/is-plain-object';
|
|
48
48
|
import '@dimjs/lang/is-promise';
|
|
49
49
|
import '../button-wrapper-l9FUsrWl.js';
|
|
@@ -113,7 +113,7 @@ export interface ButtonOperateProps {
|
|
|
113
113
|
style?: CSSProperties;
|
|
114
114
|
/**
|
|
115
115
|
* 如果数组中元素为ReactElement类型
|
|
116
|
-
* 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏
|
|
116
|
+
* 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏
|
|
117
117
|
* 2. 可配置 v-permission 权限值,例如 v-permission="add"
|
|
118
118
|
* 3. 任何confirm、disabled等状态在外部控制
|
|
119
119
|
* 3. 不支持fold效果
|
|
@@ -22,7 +22,7 @@ import { get } from '@dimjs/utils/get/get';
|
|
|
22
22
|
import { forwardRef, useState, useMemo, useRef, useImperativeHandle, Fragment, isValidElement } from 'react';
|
|
23
23
|
import { Spin, Tree, Button, message } from 'antd';
|
|
24
24
|
import { cloneState } from '@dimjs/model';
|
|
25
|
-
import { a as ButtonOperate } from '../button-operate-
|
|
25
|
+
import { a as ButtonOperate } from '../button-operate-3J_ml0DO.js';
|
|
26
26
|
import { D as DropdownMenuWrapper } from '../dropdown-menu-wrapper-CSzVvlcO.js';
|
|
27
27
|
import { fbaHooks } from '../fba-hooks/index.js';
|
|
28
28
|
import { I as InputSearchWrapper } from '../input-search-wrapper-wVYGWi2O.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-file-upload .ant-upload-span{cursor:pointer}
|
|
1
|
+
.v-file-upload .ant-upload-span{cursor:pointer}.ant-upload-list-picture .v-upload-list-item-extra-actions .ant-btn-icon,.ant-upload-list-text .v-upload-list-item-extra-actions .ant-btn-icon{color:rgba(0,0,0,.45)}.ant-upload-list-picture .v-upload-list-item-extra-actions .ant-btn,.ant-upload-list-text .v-upload-list-item-extra-actions .ant-btn{height:20px;margin:0 0 0 5px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions,.ant-upload-list-text .v-upload-list-item-extra-actions{opacity:0;transition:opacity .3s}.ant-upload-list-picture-card .ant-upload-list-item:hover .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .ant-upload-list-item:hover .v-upload-list-item-extra-actions,.ant-upload-list-text .ant-upload-list-item:hover .v-upload-list-item-extra-actions{opacity:1}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .ant-upload-list-item-actions{inset-inline-start:auto!important;width:auto!important}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions{position:absolute;z-index:10}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions .ant-btn-icon,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions .ant-btn-icon{color:#fff}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-1 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-1 .ant-upload-list-item-actions{right:38px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-1 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-1 .v-upload-list-item-extra-actions{right:15px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .ant-upload-list-item-actions{left:15px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions{right:8px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions .ant-btn,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions .ant-btn{width:20px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-1 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-1 .ant-upload-list-item-actions{right:47px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-1 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-1 .v-upload-list-item-extra-actions{right:20px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-2 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-2 .ant-upload-list-item-actions{right:60px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-2 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-2 .v-upload-list-item-extra-actions{right:14px}
|
|
@@ -2,6 +2,7 @@ import { TAny, TPlainObject } from '@flatbiz/utils';
|
|
|
2
2
|
import { UploadProps } from 'antd';
|
|
3
3
|
import { UploadChangeParam } from 'antd/lib/upload';
|
|
4
4
|
import { UploadFile } from 'antd/lib/upload/interface.js';
|
|
5
|
+
import { ReactElement } from 'react';
|
|
5
6
|
|
|
6
7
|
export type UploadWrapperFileItem = {
|
|
7
8
|
uid: string;
|
|
@@ -38,6 +39,20 @@ export type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {
|
|
|
38
39
|
* ```
|
|
39
40
|
*/
|
|
40
41
|
autoSubmit?: boolean;
|
|
42
|
+
/** 图片预览开关, 重写 onPreview 方法后失效 */
|
|
43
|
+
imagePreviewSwitch?: boolean;
|
|
44
|
+
/** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */
|
|
45
|
+
imagePreviewAccept?: string[];
|
|
46
|
+
/**
|
|
47
|
+
* 配置文件额外操作
|
|
48
|
+
* ```
|
|
49
|
+
* 额外操作超过两项后,listType为 picture-card、picture-circle 时会出现显示异常,需要自行修改覆盖样式
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
extraOperate?: {
|
|
53
|
+
icon: ReactElement;
|
|
54
|
+
onClick: (file: UploadFile, fileList: UploadFile[], e: any) => void;
|
|
55
|
+
}[];
|
|
41
56
|
} & Omit<UploadProps, "onChange" | "fileList">;
|
|
42
57
|
/**
|
|
43
58
|
* 文件上传
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../button-wrapper/index.css';
|
|
2
3
|
import './../fba-hooks/index.css';
|
|
3
4
|
import './index.css';
|
|
4
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
6
|
|
|
6
|
-
export { U as UploadWrapper } from '../upload-wrapper-
|
|
7
|
+
export { U as UploadWrapper } from '../upload-wrapper-CwKeqggJ.js';
|
|
7
8
|
import '@ant-design/icons/es/icons/PlusOutlined.js';
|
|
8
9
|
import '@dimjs/utils/class-names/class-names';
|
|
9
10
|
import '@wove/react/hooks';
|
|
@@ -14,7 +15,26 @@ import 'react';
|
|
|
14
15
|
import 'react-dom';
|
|
15
16
|
import 'antd';
|
|
16
17
|
import '@flatbiz/utils';
|
|
18
|
+
import '../button-wrapper-l9FUsrWl.js';
|
|
19
|
+
import '@ant-design/icons/es/icons/LoadingOutlined.js';
|
|
20
|
+
import '@dimjs/lang/is-promise';
|
|
21
|
+
import '../config-provider-wrapper-DDa_64Ce.js';
|
|
22
|
+
import 'antd/es/locale/en_US.js';
|
|
23
|
+
import 'antd/es/locale/zh_CN.js';
|
|
24
|
+
import 'dayjs';
|
|
25
|
+
import 'dayjs/plugin/advancedFormat.js';
|
|
26
|
+
import 'dayjs/plugin/customParseFormat.js';
|
|
27
|
+
import 'dayjs/plugin/localeData.js';
|
|
28
|
+
import 'dayjs/plugin/utc.js';
|
|
29
|
+
import 'dayjs/plugin/weekday.js';
|
|
30
|
+
import 'dayjs/plugin/weekOfYear.js';
|
|
31
|
+
import 'dayjs/plugin/weekYear.js';
|
|
17
32
|
import '../fba-hooks/index.js';
|
|
18
33
|
import '../use-responsive-point-Bp3D3lZT.js';
|
|
34
|
+
import 'dayjs/locale/en.js';
|
|
35
|
+
import 'dayjs/locale/zh-cn.js';
|
|
19
36
|
import 'react/jsx-runtime';
|
|
37
|
+
import '../fba-utils-Dfbczn1S.js';
|
|
38
|
+
import '@dimjs/lang/is-array';
|
|
39
|
+
import '@dimjs/model';
|
|
20
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,14 +6,28 @@ import { hooks } from '@wove/react/hooks';
|
|
|
6
6
|
import { _ as _objectWithoutProperties, a as _slicedToArray, c as _toConsumableArray, b as _objectSpread2, i as _defineProperty } from './_rollupPluginBabelHelpers-BYm17lo8.js';
|
|
7
7
|
import { isPlainObject } from '@dimjs/lang/is-plain-object';
|
|
8
8
|
import { extend } from '@dimjs/utils/extend/extend';
|
|
9
|
-
import { useState, useMemo, Fragment } from 'react';
|
|
9
|
+
import { useState, useMemo, Fragment, cloneElement } from 'react';
|
|
10
10
|
import { flushSync } from 'react-dom';
|
|
11
|
-
import { message, Upload, Button } from 'antd';
|
|
12
|
-
import { isUndefinedOrNull, toArray } from '@flatbiz/utils';
|
|
11
|
+
import { message, Upload, Image, Button } from 'antd';
|
|
12
|
+
import { isUndefinedOrNull, toArray, openNewWindow } from '@flatbiz/utils';
|
|
13
|
+
import { B as ButtonWrapper } from './button-wrapper-l9FUsrWl.js';
|
|
13
14
|
import { fbaHooks } from './fba-hooks/index.js';
|
|
14
|
-
import {
|
|
15
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
15
16
|
|
|
16
|
-
var
|
|
17
|
+
var getBase64 = function getBase64(file) {
|
|
18
|
+
return new Promise(function (resolve, reject) {
|
|
19
|
+
var reader = new FileReader();
|
|
20
|
+
reader.readAsDataURL(file);
|
|
21
|
+
reader.onload = function () {
|
|
22
|
+
return resolve(reader.result);
|
|
23
|
+
};
|
|
24
|
+
reader.onerror = function (error) {
|
|
25
|
+
return reject(error);
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var _excluded = ["onChange", "onUploadError", "value", "triggerText", "limitHidden", "autoSubmit", "imagePreviewSwitch", "imagePreviewAccept", "extraOperate"];
|
|
17
31
|
/**
|
|
18
32
|
* 文件上传
|
|
19
33
|
* ```
|
|
@@ -61,11 +75,19 @@ var UploadWrapper = function UploadWrapper(props) {
|
|
|
61
75
|
triggerText = props.triggerText,
|
|
62
76
|
limitHidden = props.limitHidden,
|
|
63
77
|
autoSubmit = props.autoSubmit,
|
|
78
|
+
imagePreviewSwitch = props.imagePreviewSwitch,
|
|
79
|
+
imagePreviewAccept = props.imagePreviewAccept,
|
|
80
|
+
extraOperate = props.extraOperate,
|
|
64
81
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
82
|
+
var imagePreviewAcceptFt = isUndefinedOrNull(imagePreviewAccept) ? ['png', 'jpg', 'jpeg', 'gif'] : imagePreviewAccept;
|
|
65
83
|
var _useState = useState(),
|
|
66
84
|
_useState2 = _slicedToArray(_useState, 2),
|
|
67
|
-
|
|
68
|
-
|
|
85
|
+
previewImage = _useState2[0],
|
|
86
|
+
setPreviewImage = _useState2[1];
|
|
87
|
+
var _useState3 = useState(),
|
|
88
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
89
|
+
uploadList = _useState4[0],
|
|
90
|
+
setUploadList = _useState4[1];
|
|
69
91
|
var fieldNames = extend({
|
|
70
92
|
uid: 'uid',
|
|
71
93
|
name: 'name',
|
|
@@ -217,18 +239,92 @@ var UploadWrapper = function UploadWrapper(props) {
|
|
|
217
239
|
}
|
|
218
240
|
return true;
|
|
219
241
|
};
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
242
|
+
var handlePreview = function handlePreview(file) {
|
|
243
|
+
return new Promise(function ($return, $error) {
|
|
244
|
+
var name, extension, acceptTarget;
|
|
245
|
+
name = file.name || '';
|
|
246
|
+
extension = name.slice(name.lastIndexOf('.') + 1);
|
|
247
|
+
acceptTarget = imagePreviewAcceptFt === null || imagePreviewAcceptFt === void 0 ? void 0 : imagePreviewAcceptFt.find(function (item) {
|
|
248
|
+
return item.toLocaleLowerCase() === extension.toLocaleLowerCase();
|
|
249
|
+
});
|
|
250
|
+
if (acceptTarget) {
|
|
251
|
+
if (!file.url && !file.preview) {
|
|
252
|
+
return Promise.resolve(getBase64(file.originFileObj)).then(function ($await_3) {
|
|
253
|
+
try {
|
|
254
|
+
file.preview = $await_3;
|
|
255
|
+
return $If_2.call(this);
|
|
256
|
+
} catch ($boundEx) {
|
|
257
|
+
return $error($boundEx);
|
|
258
|
+
}
|
|
259
|
+
}.bind(this), $error);
|
|
260
|
+
}
|
|
261
|
+
function $If_2() {
|
|
262
|
+
setPreviewImage(file.url || file.preview);
|
|
263
|
+
return $If_1.call(this);
|
|
264
|
+
}
|
|
265
|
+
return $If_2.call(this);
|
|
266
|
+
} else {
|
|
267
|
+
openNewWindow(file.url);
|
|
268
|
+
return $If_1.call(this);
|
|
269
|
+
}
|
|
270
|
+
function $If_1() {
|
|
271
|
+
return $return();
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
276
|
+
children: [/*#__PURE__*/jsx(Upload, _objectSpread2(_objectSpread2({
|
|
277
|
+
beforeUpload: beforeUpload,
|
|
278
|
+
onPreview: imagePreviewSwitch ? handlePreview : undefined,
|
|
279
|
+
showUploadList: true,
|
|
280
|
+
itemRender: function itemRender(originNode, file, fileList) {
|
|
281
|
+
if (!extraOperate || !extraOperate.length) return originNode;
|
|
282
|
+
var countSign = "".concat(otherProps.disabled ? 1 : 2, "-").concat(extraOperate.length);
|
|
283
|
+
return /*#__PURE__*/jsx("div", {
|
|
284
|
+
className: classNames('v-upload-list-item-actions-wrapper', "v-upload-list-item-extra-actions-".concat(countSign)),
|
|
285
|
+
style: {
|
|
286
|
+
height: '100%'
|
|
287
|
+
},
|
|
288
|
+
children: /*#__PURE__*/cloneElement(originNode, {
|
|
289
|
+
children: [originNode.props.children, /*#__PURE__*/jsx("div", {
|
|
290
|
+
className: "v-upload-list-item-extra-actions",
|
|
291
|
+
children: extraOperate.map(function (item, index) {
|
|
292
|
+
return /*#__PURE__*/jsx(ButtonWrapper, {
|
|
293
|
+
size: "small",
|
|
294
|
+
type: "text",
|
|
295
|
+
icon: item.icon,
|
|
296
|
+
onClick: item.onClick.bind(null, file, fileList)
|
|
297
|
+
}, index);
|
|
298
|
+
})
|
|
299
|
+
}, "extra-actions")].filter(Boolean)
|
|
300
|
+
})
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}, otherProps), {}, {
|
|
304
|
+
onChange: onUploadChange,
|
|
305
|
+
fileList: uploadList,
|
|
306
|
+
className: classNames('v-upload-wrapper', otherProps.className),
|
|
307
|
+
children: otherProps.disabled || hiddenEmtry ? null : /*#__PURE__*/jsx(UploadTrigger, {
|
|
308
|
+
triggerText: triggerText,
|
|
309
|
+
listType: otherProps.listType,
|
|
310
|
+
children: props.children
|
|
311
|
+
})
|
|
312
|
+
})), previewImage ? /*#__PURE__*/jsx(Image, {
|
|
313
|
+
wrapperStyle: {
|
|
314
|
+
display: 'none'
|
|
315
|
+
},
|
|
316
|
+
preview: {
|
|
317
|
+
visible: !!previewImage,
|
|
318
|
+
onVisibleChange: function onVisibleChange() {
|
|
319
|
+
return setPreviewImage(undefined);
|
|
320
|
+
},
|
|
321
|
+
afterOpenChange: function afterOpenChange(visible) {
|
|
322
|
+
return !visible && setPreviewImage('');
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
src: previewImage
|
|
326
|
+
}) : null]
|
|
327
|
+
});
|
|
232
328
|
};
|
|
233
329
|
var UploadTrigger = function UploadTrigger(props) {
|
|
234
330
|
if (props.children) return /*#__PURE__*/jsx(Fragment, {
|
|
@@ -259,4 +355,4 @@ var UploadTrigger = function UploadTrigger(props) {
|
|
|
259
355
|
};
|
|
260
356
|
|
|
261
357
|
export { UploadWrapper as U };
|
|
262
|
-
//# sourceMappingURL=upload-wrapper-
|
|
358
|
+
//# sourceMappingURL=upload-wrapper-CwKeqggJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-wrapper-CwKeqggJ.js","sources":["@flatbiz/antd/src/upload-wrapper/utils.ts","@flatbiz/antd/src/upload-wrapper/upload-wrapper.tsx"],"sourcesContent":["export const getBase64 = (file): Promise<string> =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n","import type { ReactElement, ReactNode } from 'react';\nimport { cloneElement, Fragment, useMemo, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport type { UploadProps } from 'antd';\nimport { Button, Image, message, Upload } from 'antd';\nimport type { UploadChangeParam } from 'antd/lib/upload';\nimport type { UploadFile, UploadListType } from 'antd/lib/upload/interface.js';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { isPlainObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { isUndefinedOrNull, openNewWindow, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/index.js';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { getBase64 } from './utils.js';\nimport './style.less';\n\nexport type UploadWrapperFileItem = {\n uid: string;\n name: string;\n url?: string;\n};\n\nexport type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {\n value?: T[] | T;\n onChange?: (value?: T[]) => void;\n onUploadError?: (message?: string) => void;\n onUploadChange?: (info: UploadChangeParam<UploadFile>) => void;\n /**\n * 属性取值映射\n */\n fieldNames?: {\n uid: string;\n name?: string;\n url?: string;\n /** 文件大小 */\n size?: string | number;\n };\n /**\n * 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject;\n /** 操作触发显示文本 */\n triggerText?: string;\n /** 超过maxCount 隐藏上传入口 */\n limitHidden?: boolean;\n /**\n * 自动提交,默认:true\n * ```\n * 1. 自定义beforeUpload配置后 autoSubmit 失效\n * ```\n */\n autoSubmit?: boolean;\n /** 图片预览开关, 重写 onPreview 方法后失效 */\n imagePreviewSwitch?: boolean;\n /** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */\n imagePreviewAccept?: string[];\n /**\n * 配置文件额外操作\n * ```\n * 额外操作超过两项后,listType为 picture-card、picture-circle 时会出现显示异常,需要自行修改覆盖样式\n * ```\n */\n extraOperate?: {\n icon: ReactElement;\n onClick: (file: UploadFile, fileList: UploadFile[], e) => void;\n }[];\n} & Omit<UploadProps, 'onChange' | 'fileList'>;\n\n/**\n * 文件上传\n * ```\n * demo: https://fex.qa.tcshuke.com/docs/admin/main/file/upload\n * 1. 可通过配置children替换默认上传触发布局\n * 2. 接口返回结构:\n * formData上传接口返回值\n * {\n * code: '0000',\n * data: {\n * uid: '唯一值,可使用fileKey值'\n * name: '文件名称'\n * url: '预览地址'\n * }\n * }\n * 3. 如果接口返回的不是上面的字段名称,可通过fieldNames配置接口返回字段名称映射\n *\n * 4. 最佳使用方式,与Form结合使用\n * <Form.Item name=\"attachmentList\" label=\"附件\">\n * <UploadWrapper action={uploadUrl} />\n * </Form.Item>\n *\n * 5. 回填数据结构\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * }]\n * 1. 其中 uid、name、url 可为其他命名,通过 fieldNames 进行映射即可,\n * 2. 其他需要的字段可在对象中添加 responseData 对象\n * 例如:\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * responseData: { 'xx':'xxx' }\n * }]\n * ```\n *\n */\nexport const UploadWrapper = (props: UploadWrapperProps) => {\n const {\n onChange,\n onUploadError,\n value,\n triggerText,\n limitHidden,\n autoSubmit,\n imagePreviewSwitch,\n imagePreviewAccept,\n extraOperate,\n ...otherProps\n } = props;\n const imagePreviewAcceptFt = isUndefinedOrNull(imagePreviewAccept)\n ? ['png', 'jpg', 'jpeg', 'gif']\n : imagePreviewAccept;\n const [previewImage, setPreviewImage] = useState<string>();\n const [uploadList, setUploadList] = useState<UploadWrapperFileItem[]>();\n const fieldNames = extend(\n {\n uid: 'uid',\n name: 'name',\n url: 'url',\n size: 'size',\n },\n props.fieldNames\n );\n\n const valueList = useMemo(\n () => (isUndefinedOrNull(value) ? undefined : toArray<TPlainObject>(value)),\n [value]\n );\n\n fbaHooks.useEffectCustom(() => {\n const errorList =\n uploadList?.filter((item) => item['status'] === 'error') || [];\n let newList = [] as TAny[];\n valueList?.forEach((item) => {\n // 判断item 为 File类型\n if (item['lastModified']) {\n newList.push(item);\n } else {\n newList.push({\n uid: item[fieldNames.uid],\n name: item[fieldNames.name],\n url: item[fieldNames.url],\n size: item[fieldNames.size],\n responseData: item['responseData'],\n status: 'done',\n isOriginal: true,\n });\n }\n });\n if (errorList.length > 0) {\n const newErrorList = errorList.map((item) => {\n return {\n uid: item.uid,\n name: item.name,\n status: 'error',\n isOriginal: true,\n response: item['response'],\n };\n }) as TAny[];\n newList = newList.concat(newErrorList);\n }\n setUploadList(newList);\n }, [fieldNames.name, fieldNames.uid, fieldNames.url, valueList]);\n\n const handleResponse = (fileList: UploadFile<TAny>[]) => {\n const newFileList: TAny[] = [];\n let hasError = false;\n fileList.forEach((item) => {\n if (item['isOriginal']) {\n if (item['status'] !== 'error') {\n const target: TPlainObject = {\n [fieldNames.uid]: item.uid,\n [fieldNames.name]: item.name,\n [fieldNames.url]: item.url,\n };\n if (!isUndefinedOrNull(item.size)) {\n target[fieldNames.size] = item.size;\n }\n if (item['responseData']) {\n target.responseData = item['responseData'];\n }\n newFileList.push(target);\n }\n } else if (isPlainObject(item.response)) {\n if (item.response.code === '0000') {\n const respData = item.response.data;\n const result = (props.onRequestResultAdapter?.(respData) ||\n respData) as TPlainObject;\n const target: TPlainObject = {\n [fieldNames.uid]: result[fieldNames.uid] || item.uid,\n [fieldNames.name]: result[fieldNames.name] || item.name,\n [fieldNames.url]: result[fieldNames.url],\n };\n if (!isUndefinedOrNull(result[fieldNames.size])) {\n target[fieldNames.size] = result[fieldNames.size];\n }\n newFileList.push({\n ...target,\n responseData: respData,\n });\n } else {\n const errorMsg = item.response.message || '上传失败';\n hasError = true;\n item.status = 'error';\n item.response = item.response.message || '上传失败';\n if (onUploadError) {\n onUploadError?.(errorMsg);\n } else {\n void message.error('上传操作失败...');\n }\n }\n }\n });\n if (hasError) {\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n }\n onChange?.(newFileList);\n };\n\n const onUploadChange = hooks.useCallbackRef((info) => {\n const fileList = info.fileList as TPlainObject[];\n if (info.file.status === 'done') {\n const newFileList = [...info.fileList];\n const donwList = newFileList.filter(\n (item) => item.status === 'done' || item['isOriginal']\n );\n\n const allDone = donwList.length === newFileList.length;\n if (allDone) {\n handleResponse(newFileList);\n }\n flushSync(() => setUploadList(newFileList));\n return;\n } else if (info.file.status === 'removed') {\n const uid = info.file.uid;\n const targetList = valueList !== undefined ? [...valueList] : [];\n const targetIndex = targetList.findIndex((item) => {\n const tempUid = item[fieldNames.uid] || item.uid;\n return tempUid === uid;\n });\n if (targetIndex >= 0) {\n targetList.splice(targetIndex, 1);\n }\n onChange?.(targetList);\n } else if (info.file.status === 'error') {\n if (onUploadError) {\n onUploadError();\n } else {\n void message.error('上传操作失败...');\n }\n }\n // https://github.com/ant-design/ant-design/issues/2423\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n props.onUploadChange?.(info);\n });\n\n const hiddenEmtry = useMemo(() => {\n if (otherProps.maxCount === undefined || !limitHidden) return false;\n if (otherProps.maxCount === 0) return true;\n if (uploadList && uploadList.length >= otherProps.maxCount) return true;\n return false;\n }, [limitHidden, otherProps.maxCount, uploadList]);\n\n const beforeUpload = (_file, fileList) => {\n if (autoSubmit === false) {\n const maxCount = otherProps.maxCount;\n let mergeList = [...(valueList || []), ...fileList];\n let uploadListMerge = [...(uploadList || []), ...fileList];\n if (maxCount !== undefined && maxCount !== null) {\n if (mergeList.length > maxCount) {\n mergeList = mergeList.slice(mergeList.length - maxCount);\n uploadListMerge = uploadListMerge.slice(\n uploadListMerge.length - maxCount\n );\n }\n }\n setUploadList(uploadListMerge);\n props.onChange?.(mergeList);\n return false;\n }\n return true;\n };\n\n const handlePreview = async (file: UploadFile) => {\n const name = (file.name || '') as string;\n const extension = name.slice(name.lastIndexOf('.') + 1);\n const acceptTarget = imagePreviewAcceptFt?.find((item) => {\n return item.toLocaleLowerCase() === extension.toLocaleLowerCase();\n });\n if (acceptTarget) {\n if (!file.url && !file.preview) {\n file.preview = await getBase64(file.originFileObj);\n }\n setPreviewImage(file.url || (file.preview as string));\n } else {\n openNewWindow(file.url as string);\n }\n };\n\n return (\n <Fragment>\n <Upload\n beforeUpload={beforeUpload}\n onPreview={imagePreviewSwitch ? handlePreview : undefined}\n showUploadList\n itemRender={(originNode, file, fileList) => {\n if (!extraOperate || !extraOperate.length) return originNode;\n const countSign = `${otherProps.disabled ? 1 : 2}-${extraOperate.length}`;\n return (\n <div\n className={classNames(\n 'v-upload-list-item-actions-wrapper',\n `v-upload-list-item-extra-actions-${countSign}`\n )}\n style={{ height: '100%' }}\n >\n {cloneElement(originNode, {\n children: [\n originNode.props.children,\n <div\n key=\"extra-actions\"\n className=\"v-upload-list-item-extra-actions\"\n >\n {extraOperate.map((item, index) => {\n return (\n <ButtonWrapper\n key={index}\n size=\"small\"\n type=\"text\"\n icon={item.icon}\n onClick={item.onClick.bind(null, file, fileList)}\n />\n );\n })}\n </div>,\n ].filter(Boolean),\n })}\n </div>\n );\n }}\n {...otherProps}\n onChange={onUploadChange}\n fileList={uploadList}\n className={classNames('v-upload-wrapper', otherProps.className)}\n >\n {otherProps.disabled || hiddenEmtry ? null : (\n <UploadTrigger\n triggerText={triggerText}\n listType={otherProps.listType}\n >\n {props.children}\n </UploadTrigger>\n )}\n </Upload>\n {previewImage ? (\n <Image\n wrapperStyle={{ display: 'none' }}\n preview={{\n visible: !!previewImage,\n onVisibleChange: () => setPreviewImage(undefined),\n afterOpenChange: (visible) => !visible && setPreviewImage(''),\n }}\n src={previewImage}\n />\n ) : null}\n </Fragment>\n );\n};\n\nconst UploadTrigger = (props: {\n listType?: UploadListType;\n children?: ReactNode | ReactNode[];\n triggerText?: string;\n}) => {\n if (props.children) return <Fragment>{props.children}</Fragment>;\n if (props.listType === 'picture-card') {\n return (\n <div>\n <PlusOutlined />\n <div style={{ marginTop: 8 }}>{props.triggerText || '上传图片'}</div>\n </div>\n );\n }\n if (props.listType === 'picture') {\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择图片上传'}\n </Button>\n );\n }\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择文件上传'}\n </Button>\n );\n};\n"],"names":["getBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","onerror","error","UploadWrapper","props","onChange","onUploadError","value","triggerText","limitHidden","autoSubmit","imagePreviewSwitch","imagePreviewAccept","extraOperate","otherProps","_objectWithoutProperties","_excluded","imagePreviewAcceptFt","isUndefinedOrNull","_useState","useState","_useState2","_slicedToArray","previewImage","setPreviewImage","_useState3","_useState4","uploadList","setUploadList","fieldNames","_extend","uid","name","url","size","valueList","useMemo","undefined","toArray","fbaHooks","useEffectCustom","errorList","filter","item","newList","forEach","push","responseData","status","isOriginal","length","newErrorList","map","response","concat","handleResponse","fileList","newFileList","hasError","target","_defineProperty","_isPlainObject","code","_props$onRequestResul","respData","data","onRequestResultAdapter","call","_objectSpread","errorMsg","message","_toConsumableArray","onUploadChange","_hooks","useCallbackRef","info","_props$onUploadChange","donwList","allDone","flushSync","targetList","targetIndex","findIndex","tempUid","splice","hiddenEmtry","maxCount","beforeUpload","_file","_props$onChange","mergeList","uploadListMerge","slice","handlePreview","$return","$error","extension","acceptTarget","lastIndexOf","find","toLocaleLowerCase","preview","originFileObj","then","$await_3","$If_2","$boundEx","bind","$If_1","openNewWindow","_jsxs","Fragment","children","_jsx","Upload","onPreview","showUploadList","itemRender","originNode","countSign","disabled","className","_classNames","style","height","cloneElement","index","ButtonWrapper","type","icon","onClick","Boolean","UploadTrigger","listType","Image","wrapperStyle","display","visible","onVisibleChange","afterOpenChange","src","_PlusOutlined","marginTop","Button","ghost"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flatbiz/antd",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.18",
|
|
4
4
|
"homepage": "https://gitlab.itcjf.com/flatjs-next/node-template-mono",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -146,6 +146,10 @@
|
|
|
146
146
|
"types": "./dist/dialog-modal/index.d.ts",
|
|
147
147
|
"import": "./dist/dialog-modal/index.js"
|
|
148
148
|
},
|
|
149
|
+
"./dialog-preview-image": {
|
|
150
|
+
"types": "./dist/dialog-preview-image/index.d.ts",
|
|
151
|
+
"import": "./dist/dialog-preview-image/index.js"
|
|
152
|
+
},
|
|
149
153
|
"./drag-collapse": {
|
|
150
154
|
"types": "./dist/drag-collapse/index.d.ts",
|
|
151
155
|
"import": "./dist/drag-collapse/index.js"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-operate-C7NGikli.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import type { CSSProperties, FC, ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useMemo, useState } from 'react';\nimport type { PopconfirmProps, SpaceProps } from 'antd';\nimport { Button, Divider, Popconfirm, Popover, Space, Tooltip } from 'antd';\nimport { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { DialogModalProps } from '../dialog-modal/dialog-modal.jsx';\nimport type { DropdownMenuWrapperProps } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { fbaUtils } from '../fba-utils/index.js';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n /** 按钮文案 */\n text?: string | ReactElement;\n /** 自定义按钮颜色 */\n color?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: ReactNode;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<\n PopconfirmProps,\n 'placement' | 'okText' | 'cancelText' | 'trigger'\n >;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n className?: string;\n style?: CSSProperties;\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n /** 是否换行,默认true */\n wrap?: boolean;\n /** 隐藏图标Icon */\n foldIcon?: ReactElement;\n /** 按钮之间是否添加分隔符 */\n split?: boolean;\n /** 多个按钮的包装组件Space属性 */\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & {\n content: ReactNode;\n }\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div\n className={classNames('table-operate', props.className)}\n style={props.style}\n >\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const {\n text,\n onClick,\n needConfirm,\n confirmMessage,\n popconfirmProps,\n hoverTips,\n color,\n tipsType,\n type,\n isFold: _isFold,\n ...otherProps\n } = item;\n const typeFt = type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={typeFt}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={typeFt}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={item.tipsType}\n />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper\n menuList={foldList}\n placement=\"bottom\"\n {...props.dropdownMenuProps}\n >\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","_useState2","_slicedToArray","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","_item$onClick","result","onClick","call","_isPromise","finally","operateList","filter","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_objectSpread","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","color","otherProps","_objectWithoutProperties","_excluded","typeFt","disabled","danger","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selector-wrapper-simple-CRqPexg2.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport type { SelectProps } from 'antd';\nimport { Button, Select } from 'antd';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport type { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport type {\n TRequestStatus,\n TRequestStatusProps,\n} from '../request-status/index.js';\nimport { RequestStatus } from '../request-status/index.js';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: {\n label: string;\n value: string;\n disabled?: string;\n list?: string;\n };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] =\n useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error: TAny) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","requestStatus","setRequestStatus","_useState3","_useState4","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","Promise","$return","$error","_serviceConfig$onRequ","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","call","then","$await_2","map","item","_objectSpread","unshift","fbaHooks","useEffectCustom","loading","_jsx","Select","style","width","options","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-D2IfpmxW.js","sources":["@flatbiz/antd/src/tabs-sticky/tabs.tsx"],"sourcesContent":["import { type ReactElement, useEffect, useMemo, useRef, useState } from 'react';\nimport { useSize } from 'ahooks';\nimport { Affix, type GetProps, Tabs } from 'antd';\nimport './style.less';\n\ntype TabsType = GetProps<typeof Tabs>;\n\nexport type TabsStickyProps = {\n tabsProps: Omit<TabsType, 'tabPosition'>;\n /** tabs头部布局 */\n headerRender?: ReactElement;\n /** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */\n clickTabToTop?: boolean;\n};\n\n/**\n * Tabs吸顶组件\n * ```\n * 1. 组件根节点设置了 height: 100%、overflow: auto;所以外部包裹元素必须要有高度\n * ```\n */\nexport const TabsSticky = (props: TabsStickyProps) => {\n const tabsProps = props.tabsProps;\n\n const [activeKey, setActiveKey] = useState(tabsProps.defaultActiveKey);\n const headerRef = useRef<HTMLDivElement>(null);\n const affixRef = useRef<any>(null);\n const affixedFlagRef = useRef<boolean>();\n\n const headerSize = useSize(headerRef);\n\n const scollNodeRef = useRef<any>(null);\n\n const scollNodeSize = useSize(scollNodeRef);\n const affixRefSize = useSize(affixRef);\n\n useEffect(() => {\n if (tabsProps.activeKey) {\n setActiveKey(tabsProps.activeKey);\n }\n }, [tabsProps.activeKey]);\n\n const onChange = (activeKey) => {\n if (!tabsProps.activeKey) {\n setActiveKey(activeKey);\n }\n tabsProps.onChange?.(activeKey);\n const top = headerSize?.height || 0;\n if (affixedFlagRef.current) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n } else {\n if (props.clickTabToTop !== false) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n }\n }\n };\n\n const minHeight = (scollNodeSize?.height || 0) - (affixRefSize?.height || 0);\n\n const stickyTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: null,\n };\n });\n }, [tabsProps.items]);\n\n const contentTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: <div style={{ minHeight }}>{item.children}</div>,\n };\n });\n }, [tabsProps.items, minHeight]);\n\n return (\n <div ref={scollNodeRef} style={{ height: '100%', overflowY: 'auto' }}>\n <div ref={headerRef}>{props.headerRender}</div>\n <Affix\n offsetTop={0}\n target={() => scollNodeRef.current as HTMLElement}\n onChange={(affixed) => {\n affixedFlagRef.current = affixed;\n }}\n >\n <div ref={affixRef}>\n <Tabs\n {...tabsProps}\n activeKey={activeKey}\n items={stickyTabItems}\n tabBarStyle={{ ...tabsProps.tabBarStyle, margin: 0 }}\n style={{\n backgroundColor: 'var(--block-bg-color)',\n ...tabsProps.style,\n }}\n onChange={onChange}\n />\n </div>\n </Affix>\n <Tabs\n activeKey={activeKey}\n className=\"tabs-sticky-contents\"\n items={contentTabItems}\n />\n </div>\n );\n};\n"],"names":["TabsSticky","props","tabsProps","_useState","useState","defaultActiveKey","_useState2","_slicedToArray","activeKey","setActiveKey","headerRef","useRef","affixRef","affixedFlagRef","headerSize","useSize","scollNodeRef","scollNodeSize","affixRefSize","useEffect","onChange","_tabsProps$onChange","call","top","height","current","_scollNodeRef$current","scrollTo","clickTabToTop","_scollNodeRef$current2","minHeight","stickyTabItems","useMemo","_tabsProps$items","items","map","item","_objectSpread","children","contentTabItems","_tabsProps$items2","_jsx","style","_jsxs","ref","overflowY","headerRender","Affix","offsetTop","target","affixed","Tabs","tabBarStyle","margin","backgroundColor","className"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload-wrapper-BUfwwddm.js","sources":["@flatbiz/antd/src/upload-wrapper/upload-wrapper.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Fragment, useMemo, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport type { UploadProps } from 'antd';\nimport { Button, message, Upload } from 'antd';\nimport type { UploadChangeParam } from 'antd/lib/upload';\nimport type { UploadFile, UploadListType } from 'antd/lib/upload/interface.js';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { isPlainObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport './style.less';\n\nexport type UploadWrapperFileItem = {\n uid: string;\n name: string;\n url?: string;\n};\n\nexport type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {\n value?: T[] | T;\n onChange?: (value?: T[]) => void;\n onUploadError?: (message?: string) => void;\n onUploadChange?: (info: UploadChangeParam<UploadFile>) => void;\n /**\n * 属性取值映射\n */\n fieldNames?: {\n uid: string;\n name?: string;\n url?: string;\n /** 文件大小 */\n size?: string | number;\n };\n /**\n * 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject;\n /** 操作触发显示文本 */\n triggerText?: string;\n /** 超过maxCount 隐藏上传入口 */\n limitHidden?: boolean;\n /**\n * 自动提交,默认:true\n * ```\n * 1. 自定义beforeUpload配置后 autoSubmit 失效\n * ```\n */\n autoSubmit?: boolean;\n} & Omit<UploadProps, 'onChange' | 'fileList'>;\n\n/**\n * 文件上传\n * ```\n * demo: https://fex.qa.tcshuke.com/docs/admin/main/file/upload\n * 1. 可通过配置children替换默认上传触发布局\n * 2. 接口返回结构:\n * formData上传接口返回值\n * {\n * code: '0000',\n * data: {\n * uid: '唯一值,可使用fileKey值'\n * name: '文件名称'\n * url: '预览地址'\n * }\n * }\n * 3. 如果接口返回的不是上面的字段名称,可通过fieldNames配置接口返回字段名称映射\n *\n * 4. 最佳使用方式,与Form结合使用\n * <Form.Item name=\"attachmentList\" label=\"附件\">\n * <UploadWrapper action={uploadUrl} />\n * </Form.Item>\n *\n * 5. 回填数据结构\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * }]\n * 1. 其中 uid、name、url 可为其他命名,通过 fieldNames 进行映射即可,\n * 2. 其他需要的字段可在对象中添加 responseData 对象\n * 例如:\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * responseData: { 'xx':'xxx' }\n * }]\n * ```\n *\n */\nexport const UploadWrapper = (props: UploadWrapperProps) => {\n const {\n onChange,\n onUploadError,\n value,\n triggerText,\n limitHidden,\n autoSubmit,\n ...otherProps\n } = props;\n const [uploadList, setUploadList] = useState<UploadWrapperFileItem[]>();\n const fieldNames = extend(\n {\n uid: 'uid',\n name: 'name',\n url: 'url',\n size: 'size',\n },\n props.fieldNames\n );\n\n const valueList = useMemo(\n () => (isUndefinedOrNull(value) ? undefined : toArray<TPlainObject>(value)),\n [value]\n );\n\n fbaHooks.useEffectCustom(() => {\n const errorList =\n uploadList?.filter((item) => item['status'] === 'error') || [];\n let newList = [] as TAny[];\n valueList?.forEach((item) => {\n // 判断item 为 File类型\n if (item['lastModified']) {\n newList.push(item);\n } else {\n newList.push({\n uid: item[fieldNames.uid],\n name: item[fieldNames.name],\n url: item[fieldNames.url],\n size: item[fieldNames.size],\n responseData: item['responseData'],\n status: 'done',\n isOriginal: true,\n });\n }\n });\n if (errorList.length > 0) {\n const newErrorList = errorList.map((item) => {\n return {\n uid: item.uid,\n name: item.name,\n status: 'error',\n isOriginal: true,\n response: item['response'],\n };\n }) as TAny[];\n newList = newList.concat(newErrorList);\n }\n setUploadList(newList);\n }, [fieldNames.name, fieldNames.uid, fieldNames.url, valueList]);\n\n const handleResponse = (fileList: UploadFile<TAny>[]) => {\n const newFileList: TAny[] = [];\n let hasError = false;\n fileList.forEach((item) => {\n if (item['isOriginal']) {\n if (item['status'] !== 'error') {\n const target: TPlainObject = {\n [fieldNames.uid]: item.uid,\n [fieldNames.name]: item.name,\n [fieldNames.url]: item.url,\n };\n if (!isUndefinedOrNull(item.size)) {\n target[fieldNames.size] = item.size;\n }\n if (item['responseData']) {\n target.responseData = item['responseData'];\n }\n newFileList.push(target);\n }\n } else if (isPlainObject(item.response)) {\n if (item.response.code === '0000') {\n const respData = item.response.data;\n const result = (props.onRequestResultAdapter?.(respData) ||\n respData) as TPlainObject;\n const target: TPlainObject = {\n [fieldNames.uid]: result[fieldNames.uid] || item.uid,\n [fieldNames.name]: result[fieldNames.name] || item.name,\n [fieldNames.url]: result[fieldNames.url],\n };\n if (!isUndefinedOrNull(result[fieldNames.size])) {\n target[fieldNames.size] = result[fieldNames.size];\n }\n newFileList.push({\n ...target,\n responseData: respData,\n });\n } else {\n const errorMsg = item.response.message || '上传失败';\n hasError = true;\n item.status = 'error';\n item.response = item.response.message || '上传失败';\n if (onUploadError) {\n onUploadError?.(errorMsg);\n } else {\n void message.error('上传操作失败...');\n }\n }\n }\n });\n if (hasError) {\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n }\n onChange?.(newFileList);\n };\n\n const onUploadChange = hooks.useCallbackRef((info) => {\n const fileList = info.fileList as TPlainObject[];\n if (info.file.status === 'done') {\n const newFileList = [...info.fileList];\n const donwList = newFileList.filter(\n (item) => item.status === 'done' || item['isOriginal']\n );\n\n const allDone = donwList.length === newFileList.length;\n if (allDone) {\n handleResponse(newFileList);\n }\n flushSync(() => setUploadList(newFileList));\n return;\n } else if (info.file.status === 'removed') {\n const uid = info.file.uid;\n const targetList = valueList !== undefined ? [...valueList] : [];\n const targetIndex = targetList.findIndex((item) => {\n const tempUid = item[fieldNames.uid] || item.uid;\n return tempUid === uid;\n });\n if (targetIndex >= 0) {\n targetList.splice(targetIndex, 1);\n }\n onChange?.(targetList);\n } else if (info.file.status === 'error') {\n if (onUploadError) {\n onUploadError();\n } else {\n void message.error('上传操作失败...');\n }\n }\n // https://github.com/ant-design/ant-design/issues/2423\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n props.onUploadChange?.(info);\n });\n\n const hiddenEmtry = useMemo(() => {\n if (otherProps.maxCount === undefined || !limitHidden) return false;\n if (otherProps.maxCount === 0) return true;\n if (uploadList && uploadList.length >= otherProps.maxCount) return true;\n return false;\n }, [limitHidden, otherProps.maxCount, uploadList]);\n\n const beforeUpload = (_file, fileList) => {\n if (autoSubmit === false) {\n const maxCount = otherProps.maxCount;\n let mergeList = [...(valueList || []), ...fileList];\n let uploadListMerge = [...(uploadList || []), ...fileList];\n if (maxCount !== undefined && maxCount !== null) {\n if (mergeList.length > maxCount) {\n mergeList = mergeList.slice(mergeList.length - maxCount);\n uploadListMerge = uploadListMerge.slice(\n uploadListMerge.length - maxCount\n );\n }\n }\n setUploadList(uploadListMerge);\n props.onChange?.(mergeList);\n return false;\n }\n return true;\n };\n\n return (\n <Upload\n beforeUpload={beforeUpload}\n {...otherProps}\n onChange={onUploadChange}\n fileList={uploadList}\n className={classNames('v-upload-wrapper', otherProps.className)}\n >\n {otherProps.disabled || hiddenEmtry ? null : (\n <UploadTrigger triggerText={triggerText} listType={otherProps.listType}>\n {props.children}\n </UploadTrigger>\n )}\n </Upload>\n );\n};\n\nconst UploadTrigger = (props: {\n listType?: UploadListType;\n children?: ReactNode | ReactNode[];\n triggerText?: string;\n}) => {\n if (props.children) return <Fragment>{props.children}</Fragment>;\n if (props.listType === 'picture-card') {\n return (\n <div>\n <PlusOutlined />\n <div style={{ marginTop: 8 }}>{props.triggerText || '上传图片'}</div>\n </div>\n );\n }\n if (props.listType === 'picture') {\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择图片上传'}\n </Button>\n );\n }\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择文件上传'}\n </Button>\n );\n};\n"],"names":["UploadWrapper","props","onChange","onUploadError","value","triggerText","limitHidden","autoSubmit","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","uploadList","setUploadList","fieldNames","_extend","uid","name","url","size","valueList","useMemo","isUndefinedOrNull","undefined","toArray","fbaHooks","useEffectCustom","errorList","filter","item","newList","forEach","push","responseData","status","isOriginal","length","newErrorList","map","response","concat","handleResponse","fileList","newFileList","hasError","target","_defineProperty","_isPlainObject","code","_props$onRequestResul","respData","data","result","onRequestResultAdapter","call","_objectSpread","errorMsg","message","error","_toConsumableArray","onUploadChange","_hooks","useCallbackRef","info","_props$onUploadChange","file","donwList","allDone","flushSync","targetList","targetIndex","findIndex","tempUid","splice","hiddenEmtry","maxCount","beforeUpload","_file","_props$onChange","mergeList","uploadListMerge","slice","_jsx","Upload","className","_classNames","children","disabled","UploadTrigger","listType","Fragment","_jsxs","_PlusOutlined","style","marginTop","Button","type","ghost"],"mappings":"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"}
|