@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.
Files changed (166) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.en-US.md +70 -2
  3. package/README.md +69 -2
  4. package/cjs/carousel/index.js +3 -0
  5. package/cjs/form/form-item.d.ts +3 -0
  6. package/cjs/form/form-item.js +38 -10
  7. package/cjs/form/style/css/index.css +13 -0
  8. package/cjs/form/style/index.less +18 -0
  9. package/cjs/icon/IconCheck/index.js +1 -2
  10. package/cjs/icon/IconDownload/index.d.ts +7 -0
  11. package/cjs/icon/IconDownload/index.js +41 -0
  12. package/cjs/icon/IconFile/index.d.ts +7 -0
  13. package/cjs/icon/IconFile/index.js +41 -0
  14. package/cjs/icon/IconKeyboard/index.js +1 -0
  15. package/cjs/icon/IconQuestionCircle/index.js +1 -2
  16. package/cjs/icon/IconUpload/index.js +6 -4
  17. package/cjs/icon/IconUserFill/index.js +1 -2
  18. package/cjs/icon/index.d.ts +3 -1
  19. package/cjs/icon/index.js +17 -7
  20. package/cjs/icon/type.d.ts +3 -1
  21. package/cjs/image-picker/index.js +15 -161
  22. package/cjs/image-picker/type.d.ts +4 -73
  23. package/cjs/index.d.ts +1 -0
  24. package/cjs/index.js +6 -2
  25. package/cjs/input/hooks.js +2 -2
  26. package/cjs/input/props.d.ts +2 -2
  27. package/cjs/picker/index.js +60 -19
  28. package/cjs/picker/type.d.ts +7 -2
  29. package/cjs/picker-view/components/cascader.d.ts +1 -0
  30. package/cjs/picker-view/components/cascader.js +8 -1
  31. package/cjs/picker-view/components/picker-cell.d.ts +1 -0
  32. package/cjs/picker-view/components/picker-cell.js +6 -1
  33. package/cjs/picker-view/index.d.ts +6 -1
  34. package/cjs/picker-view/index.js +25 -13
  35. package/cjs/style.d.ts +1 -0
  36. package/cjs/style.js +3 -1
  37. package/cjs/tabs/tab-cell.js +54 -29
  38. package/cjs/tabs/type.d.ts +5 -0
  39. package/cjs/uploader/index.d.ts +16 -0
  40. package/cjs/uploader/index.js +180 -0
  41. package/cjs/uploader/style/css/index.css +650 -0
  42. package/cjs/uploader/style/css/index.d.ts +4 -0
  43. package/cjs/uploader/style/css/index.js +9 -0
  44. package/cjs/uploader/style/index.d.ts +4 -0
  45. package/cjs/uploader/style/index.js +9 -0
  46. package/cjs/uploader/style/index.less +161 -0
  47. package/cjs/uploader/type.d.ts +108 -0
  48. package/cjs/uploader/type.js +3 -0
  49. package/cjs/uploader/upload/index.d.ts +2 -0
  50. package/cjs/uploader/upload/index.js +19 -0
  51. package/cjs/uploader/upload/type.d.ts +107 -0
  52. package/cjs/uploader/upload/type.js +3 -0
  53. package/cjs/uploader/upload/upload.d.ts +20 -0
  54. package/cjs/uploader/upload/upload.js +189 -0
  55. package/dist/index.js +679 -310
  56. package/dist/index.min.js +4 -4
  57. package/dist/style.css +593 -0
  58. package/dist/style.min.css +1 -1
  59. package/esm/carousel/index.js +3 -0
  60. package/esm/form/form-item.d.ts +3 -0
  61. package/esm/form/form-item.js +36 -10
  62. package/esm/form/style/css/index.css +13 -0
  63. package/esm/form/style/index.less +18 -0
  64. package/esm/icon/IconCheck/index.js +1 -2
  65. package/esm/icon/IconDownload/index.d.ts +7 -0
  66. package/esm/icon/IconDownload/index.js +30 -0
  67. package/esm/icon/IconFile/index.d.ts +7 -0
  68. package/esm/icon/IconFile/index.js +30 -0
  69. package/esm/icon/IconKeyboard/index.js +1 -0
  70. package/esm/icon/IconQuestionCircle/index.js +1 -2
  71. package/esm/icon/IconUpload/index.js +6 -4
  72. package/esm/icon/IconUserFill/index.js +1 -2
  73. package/esm/icon/index.d.ts +3 -1
  74. package/esm/icon/index.js +3 -1
  75. package/esm/icon/type.d.ts +3 -1
  76. package/esm/image-picker/index.js +14 -160
  77. package/esm/image-picker/type.d.ts +4 -73
  78. package/esm/index.d.ts +1 -0
  79. package/esm/index.js +2 -1
  80. package/esm/input/hooks.js +2 -2
  81. package/esm/input/props.d.ts +2 -2
  82. package/esm/picker/index.js +61 -20
  83. package/esm/picker/type.d.ts +7 -2
  84. package/esm/picker-view/components/cascader.d.ts +1 -0
  85. package/esm/picker-view/components/cascader.js +8 -1
  86. package/esm/picker-view/components/picker-cell.d.ts +1 -0
  87. package/esm/picker-view/components/picker-cell.js +6 -1
  88. package/esm/picker-view/index.d.ts +6 -1
  89. package/esm/picker-view/index.js +26 -13
  90. package/esm/style.d.ts +1 -0
  91. package/esm/style.js +2 -1
  92. package/esm/tabs/tab-cell.js +56 -30
  93. package/esm/tabs/type.d.ts +5 -0
  94. package/esm/uploader/index.d.ts +16 -0
  95. package/esm/uploader/index.js +150 -0
  96. package/esm/uploader/style/css/index.css +650 -0
  97. package/esm/uploader/style/css/index.d.ts +4 -0
  98. package/esm/uploader/style/css/index.js +4 -0
  99. package/esm/uploader/style/index.d.ts +4 -0
  100. package/esm/uploader/style/index.js +4 -0
  101. package/esm/uploader/style/index.less +161 -0
  102. package/esm/uploader/type.d.ts +108 -0
  103. package/esm/uploader/type.js +1 -0
  104. package/esm/uploader/upload/index.d.ts +2 -0
  105. package/esm/uploader/upload/index.js +2 -0
  106. package/esm/uploader/upload/type.d.ts +107 -0
  107. package/esm/uploader/upload/type.js +1 -0
  108. package/esm/uploader/upload/upload.d.ts +20 -0
  109. package/esm/uploader/upload/upload.js +175 -0
  110. package/package.json +3 -3
  111. package/tokens/app/arcodesign/default/css-variables.less +27 -0
  112. package/tokens/app/arcodesign/default/index.d.ts +27 -0
  113. package/tokens/app/arcodesign/default/index.js +28 -1
  114. package/tokens/app/arcodesign/default/index.json +292 -0
  115. package/tokens/app/arcodesign/default/index.less +27 -0
  116. package/umd/carousel/index.js +3 -0
  117. package/umd/form/form-item.d.ts +3 -0
  118. package/umd/form/form-item.js +38 -10
  119. package/umd/form/style/css/index.css +13 -0
  120. package/umd/form/style/index.less +18 -0
  121. package/umd/icon/IconCheck/index.js +1 -2
  122. package/umd/icon/IconDownload/index.d.ts +7 -0
  123. package/umd/icon/IconDownload/index.js +49 -0
  124. package/umd/icon/IconFile/index.d.ts +7 -0
  125. package/umd/icon/IconFile/index.js +49 -0
  126. package/umd/icon/IconKeyboard/index.js +1 -0
  127. package/umd/icon/IconQuestionCircle/index.js +1 -2
  128. package/umd/icon/IconUpload/index.js +6 -4
  129. package/umd/icon/IconUserFill/index.js +1 -2
  130. package/umd/icon/index.d.ts +3 -1
  131. package/umd/icon/index.js +15 -9
  132. package/umd/icon/type.d.ts +3 -1
  133. package/umd/image-picker/index.js +17 -163
  134. package/umd/image-picker/type.d.ts +4 -73
  135. package/umd/index.d.ts +1 -0
  136. package/umd/index.js +7 -5
  137. package/umd/input/hooks.js +2 -2
  138. package/umd/input/props.d.ts +2 -2
  139. package/umd/picker/index.js +60 -19
  140. package/umd/picker/type.d.ts +7 -2
  141. package/umd/picker-view/components/cascader.d.ts +1 -0
  142. package/umd/picker-view/components/cascader.js +8 -1
  143. package/umd/picker-view/components/picker-cell.d.ts +1 -0
  144. package/umd/picker-view/components/picker-cell.js +6 -1
  145. package/umd/picker-view/index.d.ts +6 -1
  146. package/umd/picker-view/index.js +25 -13
  147. package/umd/style.d.ts +1 -0
  148. package/umd/style.js +4 -4
  149. package/umd/tabs/tab-cell.js +54 -29
  150. package/umd/tabs/type.d.ts +5 -0
  151. package/umd/uploader/index.d.ts +16 -0
  152. package/umd/uploader/index.js +178 -0
  153. package/umd/uploader/style/css/index.css +650 -0
  154. package/umd/uploader/style/css/index.d.ts +4 -0
  155. package/umd/uploader/style/css/index.js +15 -0
  156. package/umd/uploader/style/index.d.ts +4 -0
  157. package/umd/uploader/style/index.js +15 -0
  158. package/umd/uploader/style/index.less +161 -0
  159. package/umd/uploader/type.d.ts +108 -0
  160. package/umd/uploader/type.js +17 -0
  161. package/umd/uploader/upload/index.d.ts +2 -0
  162. package/umd/uploader/upload/index.js +27 -0
  163. package/umd/uploader/upload/type.d.ts +107 -0
  164. package/umd/uploader/upload/type.js +17 -0
  165. package/umd/uploader/upload/upload.d.ts +20 -0
  166. package/umd/uploader/upload/upload.js +200 -0
@@ -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$current2;
158
+ var _cascaderRef$current3;
148
159
 
149
- return cascade ? ((_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
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$current3;
167
+ var _cascaderRef$current4;
157
168
 
158
- (_cascaderRef$current3 = cascaderRef.current) == null ? void 0 : _cascaderRef$current3.scrollToCurrentIndex();
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
@@ -57,3 +57,4 @@ import './tag/style';
57
57
  import './textarea/style';
58
58
  import './toast/style';
59
59
  import './transition/style';
60
+ import './uploader/style';
package/cjs/style.js CHANGED
@@ -116,4 +116,6 @@ require("./textarea/style");
116
116
 
117
117
  require("./toast/style");
118
118
 
119
- require("./transition/style");
119
+ require("./transition/style");
120
+
121
+ require("./uploader/style");
@@ -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]; // 默认tab小于overflowThreshold个时不开启加载前隐藏,大于overflowThreshold个时开启
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
- var _useState4 = (0, _react.useState)(function () {
99
+
100
+ var _useState5 = (0, _react.useState)(function () {
97
101
  return hideTabBarBeforeMounted === void 0 ? tabs.length < overflowThreshold || activeIndex === 0 : !hideTabBarBeforeMounted;
98
102
  }),
99
- showTab = _useState4[0],
100
- setShowTab = _useState4[1];
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
- if (wrapSize && tabBarScrollChance !== 'none') {
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
@@ -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;