@arco-design/mobile-react 2.30.10 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/form/form-item.d.ts +3 -0
- package/cjs/form/form-item.js +38 -10
- package/cjs/form/style/css/index.css +13 -0
- package/cjs/form/style/index.less +18 -0
- package/cjs/icon/IconCheck/index.js +1 -2
- package/cjs/icon/IconDownload/index.d.ts +7 -0
- package/cjs/icon/IconDownload/index.js +41 -0
- package/cjs/icon/IconFile/index.d.ts +7 -0
- package/cjs/icon/IconFile/index.js +41 -0
- package/cjs/icon/IconKeyboard/index.js +1 -0
- package/cjs/icon/IconQuestionCircle/index.js +1 -2
- package/cjs/icon/IconUpload/index.js +6 -4
- package/cjs/icon/IconUserFill/index.js +1 -2
- package/cjs/icon/index.d.ts +3 -1
- package/cjs/icon/index.js +17 -7
- package/cjs/icon/type.d.ts +3 -1
- package/cjs/image-picker/index.js +15 -161
- package/cjs/image-picker/type.d.ts +4 -73
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +6 -2
- package/cjs/input/hooks.js +2 -2
- package/cjs/input/props.d.ts +2 -2
- package/cjs/picker/index.js +59 -19
- package/cjs/picker/type.d.ts +6 -1
- package/cjs/style.d.ts +1 -0
- package/cjs/style.js +3 -1
- package/cjs/tabs/tab-cell.js +1 -1
- package/cjs/uploader/index.d.ts +16 -0
- package/cjs/uploader/index.js +180 -0
- package/cjs/uploader/style/css/index.css +650 -0
- package/cjs/uploader/style/css/index.d.ts +4 -0
- package/cjs/uploader/style/css/index.js +9 -0
- package/cjs/uploader/style/index.d.ts +4 -0
- package/cjs/uploader/style/index.js +9 -0
- package/cjs/uploader/style/index.less +161 -0
- package/cjs/uploader/type.d.ts +108 -0
- package/cjs/uploader/type.js +3 -0
- package/cjs/uploader/upload/index.d.ts +2 -0
- package/cjs/uploader/upload/index.js +19 -0
- package/cjs/uploader/upload/type.d.ts +107 -0
- package/cjs/uploader/upload/type.js +3 -0
- package/cjs/uploader/upload/upload.d.ts +20 -0
- package/cjs/uploader/upload/upload.js +189 -0
- package/dist/index.js +580 -265
- package/dist/index.min.js +4 -4
- package/dist/style.css +593 -0
- package/dist/style.min.css +1 -1
- package/esm/form/form-item.d.ts +3 -0
- package/esm/form/form-item.js +36 -10
- package/esm/form/style/css/index.css +13 -0
- package/esm/form/style/index.less +18 -0
- package/esm/icon/IconCheck/index.js +1 -2
- package/esm/icon/IconDownload/index.d.ts +7 -0
- package/esm/icon/IconDownload/index.js +30 -0
- package/esm/icon/IconFile/index.d.ts +7 -0
- package/esm/icon/IconFile/index.js +30 -0
- package/esm/icon/IconKeyboard/index.js +1 -0
- package/esm/icon/IconQuestionCircle/index.js +1 -2
- package/esm/icon/IconUpload/index.js +6 -4
- package/esm/icon/IconUserFill/index.js +1 -2
- package/esm/icon/index.d.ts +3 -1
- package/esm/icon/index.js +3 -1
- package/esm/icon/type.d.ts +3 -1
- package/esm/image-picker/index.js +14 -160
- package/esm/image-picker/type.d.ts +4 -73
- package/esm/index.d.ts +1 -0
- package/esm/index.js +2 -1
- package/esm/input/hooks.js +2 -2
- package/esm/input/props.d.ts +2 -2
- package/esm/picker/index.js +60 -20
- package/esm/picker/type.d.ts +6 -1
- package/esm/style.d.ts +1 -0
- package/esm/style.js +2 -1
- package/esm/tabs/tab-cell.js +2 -2
- package/esm/uploader/index.d.ts +16 -0
- package/esm/uploader/index.js +150 -0
- package/esm/uploader/style/css/index.css +650 -0
- package/esm/uploader/style/css/index.d.ts +4 -0
- package/esm/uploader/style/css/index.js +4 -0
- package/esm/uploader/style/index.d.ts +4 -0
- package/esm/uploader/style/index.js +4 -0
- package/esm/uploader/style/index.less +161 -0
- package/esm/uploader/type.d.ts +108 -0
- package/esm/uploader/type.js +1 -0
- package/esm/uploader/upload/index.d.ts +2 -0
- package/esm/uploader/upload/index.js +2 -0
- package/esm/uploader/upload/type.d.ts +107 -0
- package/esm/uploader/upload/type.js +1 -0
- package/esm/uploader/upload/upload.d.ts +20 -0
- package/esm/uploader/upload/upload.js +175 -0
- package/package.json +3 -3
- package/tokens/app/arcodesign/default/css-variables.less +27 -0
- package/tokens/app/arcodesign/default/index.d.ts +27 -0
- package/tokens/app/arcodesign/default/index.js +28 -1
- package/tokens/app/arcodesign/default/index.json +292 -0
- package/tokens/app/arcodesign/default/index.less +27 -0
- package/umd/form/form-item.d.ts +3 -0
- package/umd/form/form-item.js +38 -10
- package/umd/form/style/css/index.css +13 -0
- package/umd/form/style/index.less +18 -0
- package/umd/icon/IconCheck/index.js +1 -2
- package/umd/icon/IconDownload/index.d.ts +7 -0
- package/umd/icon/IconDownload/index.js +49 -0
- package/umd/icon/IconFile/index.d.ts +7 -0
- package/umd/icon/IconFile/index.js +49 -0
- package/umd/icon/IconKeyboard/index.js +1 -0
- package/umd/icon/IconQuestionCircle/index.js +1 -2
- package/umd/icon/IconUpload/index.js +6 -4
- package/umd/icon/IconUserFill/index.js +1 -2
- package/umd/icon/index.d.ts +3 -1
- package/umd/icon/index.js +15 -9
- package/umd/icon/type.d.ts +3 -1
- package/umd/image-picker/index.js +17 -163
- package/umd/image-picker/type.d.ts +4 -73
- package/umd/index.d.ts +1 -0
- package/umd/index.js +7 -5
- package/umd/input/hooks.js +2 -2
- package/umd/input/props.d.ts +2 -2
- package/umd/picker/index.js +59 -19
- package/umd/picker/type.d.ts +6 -1
- package/umd/style.d.ts +1 -0
- package/umd/style.js +4 -4
- package/umd/tabs/tab-cell.js +1 -1
- package/umd/uploader/index.d.ts +16 -0
- package/umd/uploader/index.js +178 -0
- package/umd/uploader/style/css/index.css +650 -0
- package/umd/uploader/style/css/index.d.ts +4 -0
- package/umd/uploader/style/css/index.js +15 -0
- package/umd/uploader/style/index.d.ts +4 -0
- package/umd/uploader/style/index.js +15 -0
- package/umd/uploader/style/index.less +161 -0
- package/umd/uploader/type.d.ts +108 -0
- package/umd/uploader/type.js +17 -0
- package/umd/uploader/upload/index.d.ts +2 -0
- package/umd/uploader/upload/index.js +27 -0
- package/umd/uploader/upload/type.d.ts +107 -0
- package/umd/uploader/upload/type.js +17 -0
- package/umd/uploader/upload/upload.d.ts +20 -0
- package/umd/uploader/upload/upload.js +200 -0
package/esm/index.d.ts
CHANGED
package/esm/index.js
CHANGED
@@ -55,4 +55,5 @@ export { default as TabBar } from './tab-bar';
|
|
55
55
|
export { default as Tag } from './tag';
|
56
56
|
export { default as Textarea } from './textarea';
|
57
57
|
export { default as Toast } from './toast';
|
58
|
-
export { default as Transition } from './transition';
|
58
|
+
export { default as Transition } from './transition';
|
59
|
+
export { default as Uploader } from './uploader';
|
package/esm/input/hooks.js
CHANGED
@@ -61,8 +61,8 @@ export function useInputLogic(props, inputRef) {
|
|
61
61
|
useEffect(function () {
|
62
62
|
if (autoFocus) {
|
63
63
|
setTimeout(function () {
|
64
|
-
inputRef.current && inputRef.current.
|
65
|
-
},
|
64
|
+
inputRef.current && inputRef.current.click();
|
65
|
+
}, 100);
|
66
66
|
}
|
67
67
|
}, []);
|
68
68
|
useEffect(function () {
|
package/esm/input/props.d.ts
CHANGED
@@ -57,8 +57,8 @@ export interface BasicInputProps<T = HTMLInputElement> {
|
|
57
57
|
*/
|
58
58
|
readOnly?: boolean;
|
59
59
|
/**
|
60
|
-
*
|
61
|
-
* @en Whether to automatically get the focus
|
60
|
+
* 是否自动获取焦点,开启后会触发一次onClick事件
|
61
|
+
* @en Whether to automatically get the focus, it will trigger an onClick event once after being enabled
|
62
62
|
*/
|
63
63
|
autoFocus?: boolean;
|
64
64
|
/**
|
package/esm/picker/index.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
3
|
-
var _excluded = ["className", "itemStyle", "cascade", "cols", "rows", "data", "okText", "dismissText", "disabled", "clickable", "hideEmptyCols", "title", "visible", "value", "needBottomOffset", "onDismiss", "onOk", "onChange", "maskClosable", "onHide", "onPickerChange", "touchToStop", "gestureOutOfControl"];
|
4
|
-
import React, { useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
|
3
|
+
var _excluded = ["className", "itemStyle", "cascade", "cols", "rows", "data", "okText", "dismissText", "disabled", "clickable", "hideEmptyCols", "title", "visible", "value", "needBottomOffset", "onDismiss", "onOk", "onChange", "maskClosable", "onHide", "onPickerChange", "touchToStop", "gestureOutOfControl", "renderLinkedContainer"];
|
4
|
+
import React, { useEffect, useRef, forwardRef, useImperativeHandle, useState } from 'react';
|
5
5
|
import { cls, componentWrapper, nextTick } from '@arco-design/mobile-utils';
|
6
6
|
import { ContextLayout } from '../context-provider';
|
7
7
|
import Popup from '../popup';
|
@@ -29,8 +29,7 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
29
29
|
hideEmptyCols = _props$hideEmptyCols === void 0 ? false : _props$hideEmptyCols,
|
30
30
|
_props$title = props.title,
|
31
31
|
title = _props$title === void 0 ? '' : _props$title,
|
32
|
-
|
33
|
-
visible = _props$visible === void 0 ? false : _props$visible,
|
32
|
+
userSetVisible = props.visible,
|
34
33
|
value = props.value,
|
35
34
|
_props$needBottomOffs = props.needBottomOffset,
|
36
35
|
needBottomOffset = _props$needBottomOffs === void 0 ? false : _props$needBottomOffs,
|
@@ -44,11 +43,26 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
44
43
|
touchToStop = props.touchToStop,
|
45
44
|
_props$gestureOutOfCo = props.gestureOutOfControl,
|
46
45
|
gestureOutOfControl = _props$gestureOutOfCo === void 0 ? true : _props$gestureOutOfCo,
|
46
|
+
renderLinkedContainer = props.renderLinkedContainer,
|
47
47
|
otherProps = _objectWithoutPropertiesLoose(props, _excluded);
|
48
48
|
|
49
49
|
var scrollValueRef = useLatestRef(value);
|
50
50
|
var domRef = useRef(null);
|
51
51
|
var pickerViewRef = useRef(null);
|
52
|
+
|
53
|
+
var _useState = useState(false),
|
54
|
+
linkVisible = _useState[0],
|
55
|
+
setLinkVisible = _useState[1];
|
56
|
+
|
57
|
+
var _useState2 = useState(function () {
|
58
|
+
return getCurrentValueData();
|
59
|
+
}),
|
60
|
+
linkArgs = _useState2[0],
|
61
|
+
setLinkArgs = _useState2[1]; // 来自linkedContainer的visible变化,优先级高于受控值
|
62
|
+
// @en Visible changes from linkedContainer which have priority over controlled values
|
63
|
+
|
64
|
+
|
65
|
+
var visible = linkVisible || userSetVisible || false;
|
52
66
|
useImperativeHandle(ref, function () {
|
53
67
|
return {
|
54
68
|
dom: domRef.current,
|
@@ -79,26 +93,49 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
79
93
|
}
|
80
94
|
};
|
81
95
|
});
|
96
|
+
useEffect(function () {
|
97
|
+
nextTick(function () {
|
98
|
+
setLinkArgs(getCurrentValueData());
|
99
|
+
});
|
100
|
+
}, []);
|
101
|
+
|
102
|
+
function hidePicker(scene) {
|
103
|
+
setLinkVisible(false);
|
104
|
+
onHide == null ? void 0 : onHide(scene);
|
105
|
+
}
|
82
106
|
|
83
107
|
function handleDismiss() {
|
84
108
|
if (onDismiss) {
|
85
109
|
onDismiss();
|
86
110
|
}
|
87
111
|
|
88
|
-
|
89
|
-
onHide('dismiss');
|
90
|
-
}
|
112
|
+
hidePicker('dismiss');
|
91
113
|
}
|
92
114
|
|
93
|
-
|
94
|
-
var _pickerViewRef$curren6;
|
115
|
+
function getCurrentValueData() {
|
116
|
+
var _pickerViewRef$curren6, _pickerViewRef$curren7;
|
117
|
+
|
118
|
+
var val = ((_pickerViewRef$curren6 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren6.getAllColumnValues()) || scrollValueRef.current || [];
|
119
|
+
var selectedData = ((_pickerViewRef$curren7 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren7.getAllColumnData()) || [];
|
120
|
+
return {
|
121
|
+
value: val,
|
122
|
+
data: selectedData
|
123
|
+
};
|
124
|
+
}
|
95
125
|
|
96
|
-
|
126
|
+
function handleConfirm() {
|
127
|
+
var _pickerViewRef$curren8;
|
128
|
+
|
129
|
+
(_pickerViewRef$curren8 = pickerViewRef.current) == null ? void 0 : _pickerViewRef$curren8.scrollToCurrentIndex();
|
97
130
|
nextTick(function () {
|
98
|
-
var
|
131
|
+
var _getCurrentValueData = getCurrentValueData(),
|
132
|
+
val = _getCurrentValueData.value,
|
133
|
+
selectedData = _getCurrentValueData.data;
|
99
134
|
|
100
|
-
|
101
|
-
|
135
|
+
setLinkArgs({
|
136
|
+
value: val,
|
137
|
+
data: selectedData
|
138
|
+
});
|
102
139
|
|
103
140
|
if (onOk) {
|
104
141
|
onOk(val, selectedData);
|
@@ -108,11 +145,9 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
108
145
|
onChange(val);
|
109
146
|
}
|
110
147
|
|
111
|
-
|
112
|
-
onHide('confirm');
|
113
|
-
}
|
148
|
+
hidePicker('confirm');
|
114
149
|
});
|
115
|
-
}
|
150
|
+
}
|
116
151
|
|
117
152
|
useListenResize(updateLayoutByVisible, [visible]); // 每次visible从false变为true时需要重新设置scrollValue的值为当前value的值(初始值)
|
118
153
|
|
@@ -128,11 +163,16 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
128
163
|
return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
|
129
164
|
var prefixCls = _ref.prefixCls,
|
130
165
|
locale = _ref.locale;
|
131
|
-
return /*#__PURE__*/React.createElement(
|
166
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, renderLinkedContainer ? /*#__PURE__*/React.createElement("div", {
|
167
|
+
className: prefixCls + "-picker-linked-container",
|
168
|
+
onClick: function onClick() {
|
169
|
+
return setLinkVisible(true);
|
170
|
+
}
|
171
|
+
}, renderLinkedContainer(linkArgs.value, linkArgs.data)) : null, /*#__PURE__*/React.createElement(Popup, _extends({
|
132
172
|
visible: visible,
|
133
173
|
className: cls(className, prefixCls + "-picker all-border-box"),
|
134
174
|
close: function close() {
|
135
|
-
return
|
175
|
+
return hidePicker('mask');
|
136
176
|
},
|
137
177
|
direction: "bottom",
|
138
178
|
maskClosable: maskClosable,
|
@@ -164,7 +204,7 @@ var Picker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
164
204
|
clickable: clickable,
|
165
205
|
hideEmptyCols: hideEmptyCols,
|
166
206
|
touchToStop: touchToStop
|
167
|
-
})));
|
207
|
+
}))));
|
168
208
|
});
|
169
209
|
});
|
170
210
|
/**
|
package/esm/picker/type.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React from 'react';
|
1
|
+
import React, { ReactNode } from 'react';
|
2
2
|
import { PickerData, ValueType } from '../picker-view/type';
|
3
3
|
import { PopupProps } from '../popup';
|
4
4
|
export declare type DataType = PickerData[] | PickerData[][] | ValueType[][];
|
@@ -123,4 +123,9 @@ export interface PickerProps extends Omit<PopupProps, 'visible' | 'close' | 'chi
|
|
123
123
|
* @default true
|
124
124
|
*/
|
125
125
|
gestureOutOfControl?: boolean;
|
126
|
+
/**
|
127
|
+
* 将选择器的展现隐藏状态及选中值的展示与某个容器关联,传入后将同时渲染该容器和选择器组件,此时选择器组件的 visible 和 onHide 属性可不传,点击该容器会唤起选择器
|
128
|
+
* @en Associate the hidden state of the picker and the display of the selected value with a container. After passing it in, the container and the picker component will be rendered at the same time. At this time, the visible and onHide attributes of the picker component are optional values. Clicking the container will evoke the picker
|
129
|
+
*/
|
130
|
+
renderLinkedContainer?: (value: ValueType[], data: PickerData[]) => ReactNode;
|
126
131
|
}
|
package/esm/style.d.ts
CHANGED
package/esm/style.js
CHANGED
package/esm/tabs/tab-cell.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import React, { useRef, forwardRef, useImperativeHandle, useState, useEffect, useContext } from 'react';
|
3
3
|
import { cls, scrollWithAnimation, nextTick } from '@arco-design/mobile-utils';
|
4
|
-
import { useSystem } from '../_helpers';
|
4
|
+
import { useSystem, useUpdateEffect } from '../_helpers';
|
5
5
|
import TabCellUnderline from './tab-cell-underline';
|
6
6
|
import { GlobalContext } from '../context-provider';
|
7
7
|
var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
@@ -130,7 +130,7 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
130
130
|
useEffect(function () {
|
131
131
|
updateScrollPosition();
|
132
132
|
}, [activeIndex, wrapSize]);
|
133
|
-
|
133
|
+
useUpdateEffect(function () {
|
134
134
|
var _underlineRef$current2;
|
135
135
|
|
136
136
|
setCellOverflow();
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { UploaderRef, UploaderProps } from './type';
|
3
|
+
export * from './type';
|
4
|
+
declare const _default: React.ForwardRefExoticComponent<UploaderProps & React.RefAttributes<UploaderRef>> & {
|
5
|
+
displayName?: string | undefined;
|
6
|
+
};
|
7
|
+
/**
|
8
|
+
* 文件上传组件
|
9
|
+
* @en Uploader Component
|
10
|
+
* @type 数据录入
|
11
|
+
* @type_en Data Entry
|
12
|
+
* @name 文件上传
|
13
|
+
* @name_en Uploader
|
14
|
+
* @displayName Uploader
|
15
|
+
*/
|
16
|
+
export default _default;
|
@@ -0,0 +1,150 @@
|
|
1
|
+
import React, { useRef, forwardRef, useImperativeHandle } from 'react';
|
2
|
+
import { cls, defaultLocale, componentWrapper } from '@arco-design/mobile-utils';
|
3
|
+
import { ContextLayout } from '../context-provider';
|
4
|
+
import Button from '../button';
|
5
|
+
import { useLatestRef } from '../_helpers';
|
6
|
+
import { IconUpload, IconDelete, IconCheck, IconFile } from '../icon';
|
7
|
+
import Loading from '../loading';
|
8
|
+
import { Upload } from './upload';
|
9
|
+
export * from './type';
|
10
|
+
var Uploader = /*#__PURE__*/forwardRef(function (props, ref) {
|
11
|
+
var _props$className = props.className,
|
12
|
+
className = _props$className === void 0 ? '' : _props$className,
|
13
|
+
style = props.style,
|
14
|
+
_props$files = props.files,
|
15
|
+
files = _props$files === void 0 ? [] : _props$files,
|
16
|
+
_props$accept = props.accept,
|
17
|
+
accept = _props$accept === void 0 ? undefined : _props$accept,
|
18
|
+
_props$multiple = props.multiple,
|
19
|
+
multiple = _props$multiple === void 0 ? false : _props$multiple,
|
20
|
+
capture = props.capture,
|
21
|
+
_props$limit = props.limit,
|
22
|
+
limit = _props$limit === void 0 ? 0 : _props$limit,
|
23
|
+
_props$hideStatus = props.hideStatus,
|
24
|
+
hideStatus = _props$hideStatus === void 0 ? false : _props$hideStatus,
|
25
|
+
_props$alwaysShowSele = props.alwaysShowSelect,
|
26
|
+
alwaysShowSelect = _props$alwaysShowSele === void 0 ? false : _props$alwaysShowSele,
|
27
|
+
disabled = props.disabled,
|
28
|
+
renderDeleteArea = props.renderDeleteArea,
|
29
|
+
renderLoadedArea = props.renderLoadedArea,
|
30
|
+
renderLoadingArea = props.renderLoadingArea,
|
31
|
+
renderErrorArea = props.renderErrorArea,
|
32
|
+
renderFileIndexArea = props.renderFileIndexArea,
|
33
|
+
renderUploadArea = props.renderUploadArea,
|
34
|
+
renderFileList = props.renderFileList;
|
35
|
+
var domRef = useRef(null);
|
36
|
+
var fileRef = useRef(null);
|
37
|
+
var cacheRef = useLatestRef(files);
|
38
|
+
var uploadFunc = new Upload(props, fileRef, cacheRef);
|
39
|
+
useImperativeHandle(ref, function () {
|
40
|
+
return {
|
41
|
+
dom: domRef.current
|
42
|
+
};
|
43
|
+
});
|
44
|
+
|
45
|
+
var uploaderSelect = function uploaderSelect(prefixCls, locale) {
|
46
|
+
var showSelect = files.length < (limit || Infinity);
|
47
|
+
return (showSelect || alwaysShowSelect) && /*#__PURE__*/React.createElement("div", {
|
48
|
+
className: prefixCls + "-uploader-add",
|
49
|
+
onClick: uploadFunc.handleSelect
|
50
|
+
}, /*#__PURE__*/React.createElement("input", {
|
51
|
+
type: "file",
|
52
|
+
accept: accept,
|
53
|
+
capture: capture,
|
54
|
+
onChange: function onChange(e) {
|
55
|
+
return uploadFunc.handleChange(e);
|
56
|
+
},
|
57
|
+
multiple: multiple,
|
58
|
+
ref: fileRef
|
59
|
+
}), renderUploadArea && renderUploadArea() || /*#__PURE__*/React.createElement(Button, {
|
60
|
+
className: prefixCls + "-uploader-add-button",
|
61
|
+
size: "medium",
|
62
|
+
icon: /*#__PURE__*/React.createElement(IconUpload, null),
|
63
|
+
disabled: disabled
|
64
|
+
}, locale.Uploader.uploadBtn));
|
65
|
+
};
|
66
|
+
|
67
|
+
var getUploadList = function getUploadList(prefixCls, locale) {
|
68
|
+
var generateItemArea = function generateItemArea(fileItem, index, render, part, defaultArea) {
|
69
|
+
if (render) {
|
70
|
+
var node = render(fileItem, index);
|
71
|
+
return node ? /*#__PURE__*/React.createElement("div", {
|
72
|
+
className: prefixCls + "-uploader-list-item-" + part
|
73
|
+
}, node) : node;
|
74
|
+
}
|
75
|
+
|
76
|
+
return /*#__PURE__*/React.createElement("div", {
|
77
|
+
className: prefixCls + "-uploader-list-item-" + part
|
78
|
+
}, defaultArea);
|
79
|
+
};
|
80
|
+
|
81
|
+
return renderFileList && renderFileList({
|
82
|
+
retryUpload: uploadFunc.retryUpload,
|
83
|
+
deleteFile: uploadFunc.deleteFile
|
84
|
+
}) || /*#__PURE__*/React.createElement("div", {
|
85
|
+
className: prefixCls + "-uploader-list"
|
86
|
+
}, (limit && limit < files.length ? files.slice(0, limit) : files).map(function (fileItem, index) {
|
87
|
+
var _cls, _cls2;
|
88
|
+
|
89
|
+
var file = fileItem.file,
|
90
|
+
status = fileItem.status;
|
91
|
+
return /*#__PURE__*/React.createElement("div", {
|
92
|
+
className: prefixCls + "-uploader-list-item",
|
93
|
+
key: index,
|
94
|
+
onClick: function onClick(e) {
|
95
|
+
return uploadFunc.handleClick(e, fileItem, index);
|
96
|
+
}
|
97
|
+
}, /*#__PURE__*/React.createElement("div", {
|
98
|
+
className: prefixCls + "-uploader-list-item-container"
|
99
|
+
}, /*#__PURE__*/React.createElement("div", {
|
100
|
+
className: prefixCls + "-uploader-list-item-wrapper"
|
101
|
+
}, generateItemArea(fileItem, index, renderFileIndexArea, 'file', /*#__PURE__*/React.createElement(IconFile, {
|
102
|
+
className: prefixCls + "-uploader-list-item-file-icon"
|
103
|
+
})), /*#__PURE__*/React.createElement("div", {
|
104
|
+
className: cls(prefixCls + "-uploader-list-item-text", (_cls = {}, _cls[prefixCls + "-uploader-list-item-text-error"] = status === 'error', _cls))
|
105
|
+
}, file.name)), !hideStatus && /*#__PURE__*/React.createElement("div", {
|
106
|
+
className: prefixCls + "-uploader-list-item-status"
|
107
|
+
}, status === 'loaded' && generateItemArea(fileItem, index, renderLoadedArea, 'loaded', /*#__PURE__*/React.createElement(IconCheck, null)), status === 'loading' && generateItemArea(fileItem, index, renderLoadingArea, 'loading', /*#__PURE__*/React.createElement(Loading, {
|
108
|
+
type: "circle",
|
109
|
+
radius: 7
|
110
|
+
})), status === 'error' && /*#__PURE__*/React.createElement("div", {
|
111
|
+
onClick: function onClick() {
|
112
|
+
return uploadFunc.retryUpload(index);
|
113
|
+
}
|
114
|
+
}, generateItemArea(fileItem, index, renderErrorArea, 'error', /*#__PURE__*/React.createElement("span", null, locale.Uploader.retryUpload))))), /*#__PURE__*/React.createElement("div", {
|
115
|
+
className: prefixCls + "-uploader-list-item-delete",
|
116
|
+
onClick: function onClick() {
|
117
|
+
return uploadFunc.deleteFile(index);
|
118
|
+
}
|
119
|
+
}, renderDeleteArea && renderDeleteArea(fileItem, index) || /*#__PURE__*/React.createElement(IconDelete, {
|
120
|
+
className: cls(prefixCls + "-uploader-list-item-delete-icon", (_cls2 = {}, _cls2[prefixCls + "-uploader-list-item-delete-icon-disabled"] = disabled, _cls2))
|
121
|
+
})));
|
122
|
+
}));
|
123
|
+
};
|
124
|
+
|
125
|
+
return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
|
126
|
+
var _cls3;
|
127
|
+
|
128
|
+
var prefixCls = _ref.prefixCls,
|
129
|
+
_ref$locale = _ref.locale,
|
130
|
+
locale = _ref$locale === void 0 ? defaultLocale : _ref$locale;
|
131
|
+
return /*#__PURE__*/React.createElement("div", {
|
132
|
+
className: cls(prefixCls + "-uploader", className, (_cls3 = {}, _cls3[prefixCls + "-uploader-disabled"] = disabled, _cls3)),
|
133
|
+
style: style,
|
134
|
+
ref: domRef
|
135
|
+
}, /*#__PURE__*/React.createElement("div", {
|
136
|
+
className: prefixCls + "-uploader-container"
|
137
|
+
}, uploaderSelect(prefixCls, locale), getUploadList(prefixCls, locale)));
|
138
|
+
});
|
139
|
+
});
|
140
|
+
/**
|
141
|
+
* 文件上传组件
|
142
|
+
* @en Uploader Component
|
143
|
+
* @type 数据录入
|
144
|
+
* @type_en Data Entry
|
145
|
+
* @name 文件上传
|
146
|
+
* @name_en Uploader
|
147
|
+
* @displayName Uploader
|
148
|
+
*/
|
149
|
+
|
150
|
+
export default componentWrapper(Uploader, 'Uploader');
|