@arco-design/mobile-react 2.30.9 → 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 +32 -0
- package/README.en-US.md +70 -2
- package/README.md +69 -2
- package/cjs/carousel/index.js +3 -0
- 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 +60 -19
- package/cjs/picker/type.d.ts +7 -2
- package/cjs/picker-view/components/cascader.d.ts +1 -0
- package/cjs/picker-view/components/cascader.js +8 -1
- package/cjs/picker-view/components/picker-cell.d.ts +1 -0
- package/cjs/picker-view/components/picker-cell.js +6 -1
- package/cjs/picker-view/index.d.ts +6 -1
- package/cjs/picker-view/index.js +25 -13
- package/cjs/style.d.ts +1 -0
- package/cjs/style.js +3 -1
- package/cjs/tabs/tab-cell.js +54 -29
- package/cjs/tabs/type.d.ts +5 -0
- 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 +679 -310
- package/dist/index.min.js +4 -4
- package/dist/style.css +593 -0
- package/dist/style.min.css +1 -1
- package/esm/carousel/index.js +3 -0
- 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 +61 -20
- package/esm/picker/type.d.ts +7 -2
- package/esm/picker-view/components/cascader.d.ts +1 -0
- package/esm/picker-view/components/cascader.js +8 -1
- package/esm/picker-view/components/picker-cell.d.ts +1 -0
- package/esm/picker-view/components/picker-cell.js +6 -1
- package/esm/picker-view/index.d.ts +6 -1
- package/esm/picker-view/index.js +26 -13
- package/esm/style.d.ts +1 -0
- package/esm/style.js +2 -1
- package/esm/tabs/tab-cell.js +56 -30
- package/esm/tabs/type.d.ts +5 -0
- 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/carousel/index.js +3 -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 +60 -19
- package/umd/picker/type.d.ts +7 -2
- package/umd/picker-view/components/cascader.d.ts +1 -0
- package/umd/picker-view/components/cascader.js +8 -1
- package/umd/picker-view/components/picker-cell.d.ts +1 -0
- package/umd/picker-view/components/picker-cell.js +6 -1
- package/umd/picker-view/index.d.ts +6 -1
- package/umd/picker-view/index.js +25 -13
- package/umd/style.d.ts +1 -0
- package/umd/style.js +4 -4
- package/umd/tabs/tab-cell.js +54 -29
- package/umd/tabs/type.d.ts +5 -0
- 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/cjs/picker-view/index.js
CHANGED
@@ -45,6 +45,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
45
45
|
|
46
46
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
47
47
|
|
48
|
+
var isArray = function isArray(dt) {
|
49
|
+
return dt ? Array.isArray(dt[0]) : false;
|
50
|
+
};
|
51
|
+
|
52
|
+
var isStrOrNum = function isStrOrNum(dt) {
|
53
|
+
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
54
|
+
};
|
55
|
+
|
48
56
|
var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
49
57
|
var _props$className = props.className,
|
50
58
|
className = _props$className === void 0 ? '' : _props$className,
|
@@ -94,14 +102,6 @@ var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
94
102
|
var innerData = (0, _react.useMemo)(function () {
|
95
103
|
var newData;
|
96
104
|
|
97
|
-
var isArray = function isArray(dt) {
|
98
|
-
return dt ? Array.isArray(dt[0]) : false;
|
99
|
-
};
|
100
|
-
|
101
|
-
var isStrOrNum = function isStrOrNum(dt) {
|
102
|
-
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
103
|
-
};
|
104
|
-
|
105
105
|
if (isArray(data)) {
|
106
106
|
if (isStrOrNum(data)) {
|
107
107
|
newData = data.map(function (item) {
|
@@ -135,6 +135,17 @@ var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
135
135
|
});
|
136
136
|
};
|
137
137
|
|
138
|
+
var getAllColumnData = function getAllColumnData() {
|
139
|
+
var _cascaderRef$current2;
|
140
|
+
|
141
|
+
var curValues = cascade ? ((_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.getAllCellsData()) || [] : pickerCellsRef.current.map(function (cell) {
|
142
|
+
return cell.getCurrentCellData();
|
143
|
+
});
|
144
|
+
return curValues.filter(function (v) {
|
145
|
+
return v !== undefined;
|
146
|
+
});
|
147
|
+
};
|
148
|
+
|
138
149
|
function getColumnValue(index) {
|
139
150
|
if (index === void 0) {
|
140
151
|
index = 0;
|
@@ -144,18 +155,18 @@ var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
144
155
|
}
|
145
156
|
|
146
157
|
function getCellMovingStatus() {
|
147
|
-
var _cascaderRef$
|
158
|
+
var _cascaderRef$current3;
|
148
159
|
|
149
|
-
return cascade ? ((_cascaderRef$
|
160
|
+
return cascade ? ((_cascaderRef$current3 = cascaderRef.current) == null ? void 0 : _cascaderRef$current3.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
|
150
161
|
return cell.movingStatus;
|
151
162
|
});
|
152
163
|
}
|
153
164
|
|
154
165
|
function scrollToCurrentIndex() {
|
155
166
|
if (cascade) {
|
156
|
-
var _cascaderRef$
|
167
|
+
var _cascaderRef$current4;
|
157
168
|
|
158
|
-
(_cascaderRef$
|
169
|
+
(_cascaderRef$current4 = cascaderRef.current) == null ? void 0 : _cascaderRef$current4.scrollToCurrentIndex();
|
159
170
|
return;
|
160
171
|
}
|
161
172
|
|
@@ -172,7 +183,8 @@ var PickerView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
172
183
|
getColumnValue: getColumnValue,
|
173
184
|
updateLayout: updateLayout,
|
174
185
|
resetValue: resetValue,
|
175
|
-
scrollToCurrentIndex: scrollToCurrentIndex
|
186
|
+
scrollToCurrentIndex: scrollToCurrentIndex,
|
187
|
+
getAllColumnData: getAllColumnData
|
176
188
|
};
|
177
189
|
});
|
178
190
|
|
package/cjs/style.d.ts
CHANGED
package/cjs/style.js
CHANGED
package/cjs/tabs/tab-cell.js
CHANGED
@@ -90,14 +90,18 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
90
90
|
return tabs.length < overflowThreshold ? tabBarArrange : 'start';
|
91
91
|
}),
|
92
92
|
originArrange = _useState3[0],
|
93
|
-
setOriginArrange = _useState3[1];
|
93
|
+
setOriginArrange = _useState3[1];
|
94
94
|
|
95
|
+
var _useState4 = (0, _react.useState)(false),
|
96
|
+
forceUpdate = _useState4[0],
|
97
|
+
setForceUpdate = _useState4[1]; // 默认tab小于overflowThreshold个时不开启加载前隐藏,大于overflowThreshold个时开启
|
95
98
|
|
96
|
-
|
99
|
+
|
100
|
+
var _useState5 = (0, _react.useState)(function () {
|
97
101
|
return hideTabBarBeforeMounted === void 0 ? tabs.length < overflowThreshold || activeIndex === 0 : !hideTabBarBeforeMounted;
|
98
102
|
}),
|
99
|
-
showTab =
|
100
|
-
setShowTab =
|
103
|
+
showTab = _useState5[0],
|
104
|
+
setShowTab = _useState5[1];
|
101
105
|
|
102
106
|
var isVertical = tabDirection === 'vertical';
|
103
107
|
var isLine = (type || '').indexOf('line') !== -1;
|
@@ -112,6 +116,15 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
112
116
|
var hasDivider = tabBarHasDivider === void 0 ? isLine : tabBarHasDivider;
|
113
117
|
var wrapSize = isVertical ? wrapWidth : wrapHeight;
|
114
118
|
var system = (0, _helpers.useSystem)();
|
119
|
+
|
120
|
+
var updateScrollPosition = function updateScrollPosition() {
|
121
|
+
if (wrapSize && tabBarScrollChance !== 'none') {
|
122
|
+
setTimeout(function () {
|
123
|
+
scrollToCenter();
|
124
|
+
}, tabBarScrollChance === 'after-jump' ? Math.max(transitionDuration || 0, duration || 0) : 0);
|
125
|
+
}
|
126
|
+
};
|
127
|
+
|
115
128
|
(0, _react.useEffect)(function () {
|
116
129
|
(0, _mobileUtils.nextTick)(function () {
|
117
130
|
setCellOverflow(); // dom出来之后originArrange置空,交由tabBarArrange控制
|
@@ -131,31 +144,16 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
131
144
|
(_underlineRef$current = underlineRef.current) == null ? void 0 : _underlineRef$current.resetUnderlineStyle();
|
132
145
|
});
|
133
146
|
}, [activeIndex, tabs, getCellPadding('left'), getCellPadding('right'), tabBarGutter, tabDirection]);
|
134
|
-
(0, _react.useImperativeHandle)(ref, function () {
|
135
|
-
return {
|
136
|
-
dom: domRef.current,
|
137
|
-
scrollTo: scrollTo,
|
138
|
-
scrollToCenter: scrollToCenter,
|
139
|
-
hasOverflow: hasOverflow,
|
140
|
-
setCaterpillarAnimate: function setCaterpillarAnimate(ratio) {
|
141
|
-
var _underlineRef$current2;
|
142
|
-
|
143
|
-
return (_underlineRef$current2 = underlineRef.current) == null ? void 0 : _underlineRef$current2.setCaterpillarAnimate(ratio);
|
144
|
-
},
|
145
|
-
resetUnderlineStyle: function resetUnderlineStyle() {
|
146
|
-
var _underlineRef$current3;
|
147
|
-
|
148
|
-
return (_underlineRef$current3 = underlineRef.current) == null ? void 0 : _underlineRef$current3.resetUnderlineStyle();
|
149
|
-
}
|
150
|
-
};
|
151
|
-
}, [scrollToCenter, scrollTo, hasOverflow]);
|
152
147
|
(0, _react.useEffect)(function () {
|
153
|
-
|
154
|
-
setTimeout(function () {
|
155
|
-
scrollToCenter();
|
156
|
-
}, tabBarScrollChance === 'after-jump' ? Math.max(transitionDuration || 0, duration || 0) : 0);
|
157
|
-
}
|
148
|
+
updateScrollPosition();
|
158
149
|
}, [activeIndex, wrapSize]);
|
150
|
+
(0, _helpers.useUpdateEffect)(function () {
|
151
|
+
var _underlineRef$current2;
|
152
|
+
|
153
|
+
setCellOverflow();
|
154
|
+
(_underlineRef$current2 = underlineRef.current) == null ? void 0 : _underlineRef$current2.resetUnderlineStyle();
|
155
|
+
updateScrollPosition();
|
156
|
+
}, [forceUpdate]);
|
159
157
|
(0, _react.useEffect)(function () {
|
160
158
|
tabBarScrollChance !== 'none' && scrollToCenter(true); // TabCell左右可滚动时,防止触发父级touchmove事件导致滚不动
|
161
159
|
// @en When the TabCell can be scrolled left and right, prevent the parent touchmove event from being triggered which result in inability to scroll
|
@@ -296,7 +294,7 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
296
294
|
return typeof tab === 'string' ? tab : tab.title;
|
297
295
|
}
|
298
296
|
|
299
|
-
function renderTabUnderline() {
|
297
|
+
var renderTabUnderline = function renderTabUnderline() {
|
300
298
|
if (!showUnderline || !isLine) {
|
301
299
|
return null;
|
302
300
|
}
|
@@ -327,7 +325,7 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
327
325
|
getTabCenterLeft: getTabCenterLeft,
|
328
326
|
getTabRect: getTabRect
|
329
327
|
}, lineProps));
|
330
|
-
}
|
328
|
+
};
|
331
329
|
|
332
330
|
var cellInner = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, tabs.map(function (tab, index) {
|
333
331
|
return /*#__PURE__*/_react.default.createElement("div", {
|
@@ -370,6 +368,33 @@ var TabCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
370
368
|
}
|
371
369
|
}) : null);
|
372
370
|
|
371
|
+
var _updateLayout = function updateLayout() {
|
372
|
+
setForceUpdate(function (val) {
|
373
|
+
return !val;
|
374
|
+
});
|
375
|
+
};
|
376
|
+
|
377
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
378
|
+
return {
|
379
|
+
dom: domRef.current,
|
380
|
+
scrollTo: scrollTo,
|
381
|
+
scrollToCenter: scrollToCenter,
|
382
|
+
hasOverflow: hasOverflow,
|
383
|
+
setCaterpillarAnimate: function setCaterpillarAnimate(ratio) {
|
384
|
+
var _underlineRef$current3;
|
385
|
+
|
386
|
+
return (_underlineRef$current3 = underlineRef.current) == null ? void 0 : _underlineRef$current3.setCaterpillarAnimate(ratio);
|
387
|
+
},
|
388
|
+
resetUnderlineStyle: function resetUnderlineStyle() {
|
389
|
+
var _underlineRef$current4;
|
390
|
+
|
391
|
+
return (_underlineRef$current4 = underlineRef.current) == null ? void 0 : _underlineRef$current4.resetUnderlineStyle();
|
392
|
+
},
|
393
|
+
updateLayout: function updateLayout() {
|
394
|
+
return _updateLayout();
|
395
|
+
}
|
396
|
+
};
|
397
|
+
}, [scrollToCenter, scrollTo, hasOverflow]);
|
373
398
|
return /*#__PURE__*/_react.default.createElement("div", {
|
374
399
|
className: (0, _mobileUtils.cls)(prefix + "-container-wrap", tabDirection, "type-" + type, tabBarClass, system),
|
375
400
|
style: tabBarStyle
|
package/cjs/tabs/type.d.ts
CHANGED
@@ -565,6 +565,11 @@ export interface TabCellRef {
|
|
565
565
|
* @en Recalculate underline style
|
566
566
|
*/
|
567
567
|
resetUnderlineStyle: () => void;
|
568
|
+
/**
|
569
|
+
* 强制更新 tab-cell
|
570
|
+
* @en Force update tab-cell
|
571
|
+
*/
|
572
|
+
updateLayout: () => void;
|
568
573
|
}
|
569
574
|
export interface TabPaneProps extends Pick<TabsProps, 'duration' | 'transitionDuration' | 'lazyloadCount' | 'hideContentStyle' | 'renderHideContent' | 'mode' | 'tabPaneClass' | 'tabPaneStyle' | 'tabPaneExtra' | 'getScrollContainer' | 'scrollThrottle' | 'scrollOffset' | 'goLastWhenScrollBottom' | 'scrollVertical' | 'translateZ' | 'fullScreen' | 'autoHeight' | 'onScroll' | 'swipeEnergySaving'> {
|
570
575
|
prefixCls?: string;
|
@@ -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,180 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
var _exportNames = {};
|
7
|
+
exports.default = void 0;
|
8
|
+
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
10
|
+
|
11
|
+
var _mobileUtils = require("@arco-design/mobile-utils");
|
12
|
+
|
13
|
+
var _contextProvider = require("../context-provider");
|
14
|
+
|
15
|
+
var _button = _interopRequireDefault(require("../button"));
|
16
|
+
|
17
|
+
var _helpers = require("../_helpers");
|
18
|
+
|
19
|
+
var _icon = require("../icon");
|
20
|
+
|
21
|
+
var _loading = _interopRequireDefault(require("../loading"));
|
22
|
+
|
23
|
+
var _upload = require("./upload");
|
24
|
+
|
25
|
+
var _type = require("./type");
|
26
|
+
|
27
|
+
Object.keys(_type).forEach(function (key) {
|
28
|
+
if (key === "default" || key === "__esModule") return;
|
29
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
30
|
+
if (key in exports && exports[key] === _type[key]) return;
|
31
|
+
exports[key] = _type[key];
|
32
|
+
});
|
33
|
+
|
34
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
35
|
+
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
37
|
+
|
38
|
+
var Uploader = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
39
|
+
var _props$className = props.className,
|
40
|
+
className = _props$className === void 0 ? '' : _props$className,
|
41
|
+
style = props.style,
|
42
|
+
_props$files = props.files,
|
43
|
+
files = _props$files === void 0 ? [] : _props$files,
|
44
|
+
_props$accept = props.accept,
|
45
|
+
accept = _props$accept === void 0 ? undefined : _props$accept,
|
46
|
+
_props$multiple = props.multiple,
|
47
|
+
multiple = _props$multiple === void 0 ? false : _props$multiple,
|
48
|
+
capture = props.capture,
|
49
|
+
_props$limit = props.limit,
|
50
|
+
limit = _props$limit === void 0 ? 0 : _props$limit,
|
51
|
+
_props$hideStatus = props.hideStatus,
|
52
|
+
hideStatus = _props$hideStatus === void 0 ? false : _props$hideStatus,
|
53
|
+
_props$alwaysShowSele = props.alwaysShowSelect,
|
54
|
+
alwaysShowSelect = _props$alwaysShowSele === void 0 ? false : _props$alwaysShowSele,
|
55
|
+
disabled = props.disabled,
|
56
|
+
renderDeleteArea = props.renderDeleteArea,
|
57
|
+
renderLoadedArea = props.renderLoadedArea,
|
58
|
+
renderLoadingArea = props.renderLoadingArea,
|
59
|
+
renderErrorArea = props.renderErrorArea,
|
60
|
+
renderFileIndexArea = props.renderFileIndexArea,
|
61
|
+
renderUploadArea = props.renderUploadArea,
|
62
|
+
renderFileList = props.renderFileList;
|
63
|
+
var domRef = (0, _react.useRef)(null);
|
64
|
+
var fileRef = (0, _react.useRef)(null);
|
65
|
+
var cacheRef = (0, _helpers.useLatestRef)(files);
|
66
|
+
var uploadFunc = new _upload.Upload(props, fileRef, cacheRef);
|
67
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
68
|
+
return {
|
69
|
+
dom: domRef.current
|
70
|
+
};
|
71
|
+
});
|
72
|
+
|
73
|
+
var uploaderSelect = function uploaderSelect(prefixCls, locale) {
|
74
|
+
var showSelect = files.length < (limit || Infinity);
|
75
|
+
return (showSelect || alwaysShowSelect) && /*#__PURE__*/_react.default.createElement("div", {
|
76
|
+
className: prefixCls + "-uploader-add",
|
77
|
+
onClick: uploadFunc.handleSelect
|
78
|
+
}, /*#__PURE__*/_react.default.createElement("input", {
|
79
|
+
type: "file",
|
80
|
+
accept: accept,
|
81
|
+
capture: capture,
|
82
|
+
onChange: function onChange(e) {
|
83
|
+
return uploadFunc.handleChange(e);
|
84
|
+
},
|
85
|
+
multiple: multiple,
|
86
|
+
ref: fileRef
|
87
|
+
}), renderUploadArea && renderUploadArea() || /*#__PURE__*/_react.default.createElement(_button.default, {
|
88
|
+
className: prefixCls + "-uploader-add-button",
|
89
|
+
size: "medium",
|
90
|
+
icon: /*#__PURE__*/_react.default.createElement(_icon.IconUpload, null),
|
91
|
+
disabled: disabled
|
92
|
+
}, locale.Uploader.uploadBtn));
|
93
|
+
};
|
94
|
+
|
95
|
+
var getUploadList = function getUploadList(prefixCls, locale) {
|
96
|
+
var generateItemArea = function generateItemArea(fileItem, index, render, part, defaultArea) {
|
97
|
+
if (render) {
|
98
|
+
var node = render(fileItem, index);
|
99
|
+
return node ? /*#__PURE__*/_react.default.createElement("div", {
|
100
|
+
className: prefixCls + "-uploader-list-item-" + part
|
101
|
+
}, node) : node;
|
102
|
+
}
|
103
|
+
|
104
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
105
|
+
className: prefixCls + "-uploader-list-item-" + part
|
106
|
+
}, defaultArea);
|
107
|
+
};
|
108
|
+
|
109
|
+
return renderFileList && renderFileList({
|
110
|
+
retryUpload: uploadFunc.retryUpload,
|
111
|
+
deleteFile: uploadFunc.deleteFile
|
112
|
+
}) || /*#__PURE__*/_react.default.createElement("div", {
|
113
|
+
className: prefixCls + "-uploader-list"
|
114
|
+
}, (limit && limit < files.length ? files.slice(0, limit) : files).map(function (fileItem, index) {
|
115
|
+
var _cls, _cls2;
|
116
|
+
|
117
|
+
var file = fileItem.file,
|
118
|
+
status = fileItem.status;
|
119
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
120
|
+
className: prefixCls + "-uploader-list-item",
|
121
|
+
key: index,
|
122
|
+
onClick: function onClick(e) {
|
123
|
+
return uploadFunc.handleClick(e, fileItem, index);
|
124
|
+
}
|
125
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
126
|
+
className: prefixCls + "-uploader-list-item-container"
|
127
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
128
|
+
className: prefixCls + "-uploader-list-item-wrapper"
|
129
|
+
}, generateItemArea(fileItem, index, renderFileIndexArea, 'file', /*#__PURE__*/_react.default.createElement(_icon.IconFile, {
|
130
|
+
className: prefixCls + "-uploader-list-item-file-icon"
|
131
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
132
|
+
className: (0, _mobileUtils.cls)(prefixCls + "-uploader-list-item-text", (_cls = {}, _cls[prefixCls + "-uploader-list-item-text-error"] = status === 'error', _cls))
|
133
|
+
}, file.name)), !hideStatus && /*#__PURE__*/_react.default.createElement("div", {
|
134
|
+
className: prefixCls + "-uploader-list-item-status"
|
135
|
+
}, status === 'loaded' && generateItemArea(fileItem, index, renderLoadedArea, 'loaded', /*#__PURE__*/_react.default.createElement(_icon.IconCheck, null)), status === 'loading' && generateItemArea(fileItem, index, renderLoadingArea, 'loading', /*#__PURE__*/_react.default.createElement(_loading.default, {
|
136
|
+
type: "circle",
|
137
|
+
radius: 7
|
138
|
+
})), status === 'error' && /*#__PURE__*/_react.default.createElement("div", {
|
139
|
+
onClick: function onClick() {
|
140
|
+
return uploadFunc.retryUpload(index);
|
141
|
+
}
|
142
|
+
}, generateItemArea(fileItem, index, renderErrorArea, 'error', /*#__PURE__*/_react.default.createElement("span", null, locale.Uploader.retryUpload))))), /*#__PURE__*/_react.default.createElement("div", {
|
143
|
+
className: prefixCls + "-uploader-list-item-delete",
|
144
|
+
onClick: function onClick() {
|
145
|
+
return uploadFunc.deleteFile(index);
|
146
|
+
}
|
147
|
+
}, renderDeleteArea && renderDeleteArea(fileItem, index) || /*#__PURE__*/_react.default.createElement(_icon.IconDelete, {
|
148
|
+
className: (0, _mobileUtils.cls)(prefixCls + "-uploader-list-item-delete-icon", (_cls2 = {}, _cls2[prefixCls + "-uploader-list-item-delete-icon-disabled"] = disabled, _cls2))
|
149
|
+
})));
|
150
|
+
}));
|
151
|
+
};
|
152
|
+
|
153
|
+
return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref) {
|
154
|
+
var _cls3;
|
155
|
+
|
156
|
+
var prefixCls = _ref.prefixCls,
|
157
|
+
_ref$locale = _ref.locale,
|
158
|
+
locale = _ref$locale === void 0 ? _mobileUtils.defaultLocale : _ref$locale;
|
159
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
160
|
+
className: (0, _mobileUtils.cls)(prefixCls + "-uploader", className, (_cls3 = {}, _cls3[prefixCls + "-uploader-disabled"] = disabled, _cls3)),
|
161
|
+
style: style,
|
162
|
+
ref: domRef
|
163
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
164
|
+
className: prefixCls + "-uploader-container"
|
165
|
+
}, uploaderSelect(prefixCls, locale), getUploadList(prefixCls, locale)));
|
166
|
+
});
|
167
|
+
});
|
168
|
+
/**
|
169
|
+
* 文件上传组件
|
170
|
+
* @en Uploader Component
|
171
|
+
* @type 数据录入
|
172
|
+
* @type_en Data Entry
|
173
|
+
* @name 文件上传
|
174
|
+
* @name_en Uploader
|
175
|
+
* @displayName Uploader
|
176
|
+
*/
|
177
|
+
|
178
|
+
var _default = (0, _mobileUtils.componentWrapper)(Uploader, 'Uploader');
|
179
|
+
|
180
|
+
exports.default = _default;
|