antd-mobile 5.0.0-rc.5 → 5.0.0-rc.9

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 (241) hide show
  1. package/2x/README.md +10 -1
  2. package/2x/cjs/components/cascader/cascader.d.ts +2 -2
  3. package/2x/cjs/components/checkbox/checkbox.css +1 -1
  4. package/2x/cjs/components/date-picker/date-picker.js +1 -1
  5. package/2x/cjs/components/dialog/dialog.d.ts +1 -0
  6. package/2x/cjs/components/dialog/dialog.js +5 -3
  7. package/2x/cjs/components/form/form-item.css +2 -1
  8. package/2x/cjs/components/form/form-item.js +1 -1
  9. package/2x/cjs/components/form/index.css +2 -1
  10. package/2x/cjs/components/image/lazy-detector.js +4 -1
  11. package/2x/cjs/components/image-uploader/image-uploader.js +3 -4
  12. package/2x/cjs/components/image-viewer/slide.js +0 -5
  13. package/2x/cjs/components/index-bar/index-bar.css +1 -1
  14. package/2x/cjs/components/infinite-scroll/infinite-scroll.js +1 -1
  15. package/2x/cjs/components/input/input.d.ts +2 -2
  16. package/2x/cjs/components/mask/mask.js +3 -2
  17. package/2x/cjs/components/modal/modal.d.ts +1 -0
  18. package/2x/cjs/components/modal/modal.js +5 -3
  19. package/2x/cjs/components/notice-bar/notice-bar.css +1 -0
  20. package/2x/cjs/components/number-keyboard/number-keyboard.js +1 -1
  21. package/2x/cjs/components/picker/picker.d.ts +2 -2
  22. package/2x/cjs/components/picker/picker.js +4 -3
  23. package/2x/cjs/components/picker-view/picker-view.css +1 -0
  24. package/2x/cjs/components/picker-view/picker-view.js +25 -19
  25. package/2x/cjs/components/picker-view/wheel.d.ts +10 -0
  26. package/2x/cjs/components/picker-view/{column.js → wheel.js} +29 -13
  27. package/2x/cjs/components/progress-bar/progress-bar.css +3 -1
  28. package/2x/cjs/components/progress-bar/progress-bar.d.ts +1 -1
  29. package/2x/cjs/components/pull-to-refresh/pull-to-refresh.d.ts +2 -0
  30. package/2x/cjs/components/pull-to-refresh/pull-to-refresh.js +2 -0
  31. package/2x/cjs/components/radio/radio.css +1 -1
  32. package/2x/cjs/components/rate/rate.css +1 -0
  33. package/2x/cjs/components/search-bar/search-bar.css +5 -0
  34. package/2x/cjs/components/search-bar/search-bar.d.ts +3 -1
  35. package/2x/cjs/components/search-bar/search-bar.js +6 -5
  36. package/2x/cjs/components/side-bar/side-bar.css +2 -0
  37. package/2x/cjs/components/side-bar/side-bar.d.ts +1 -1
  38. package/2x/cjs/components/skeleton/index.d.ts +8 -0
  39. package/2x/cjs/components/skeleton/index.js +19 -0
  40. package/2x/cjs/components/skeleton/skeleton.css +45 -0
  41. package/2x/cjs/components/skeleton/skeleton.d.ts +15 -0
  42. package/2x/cjs/components/skeleton/skeleton.js +61 -0
  43. package/2x/cjs/components/stepper/stepper.d.ts +1 -0
  44. package/2x/cjs/components/stepper/stepper.js +4 -2
  45. package/2x/cjs/components/tab-bar/tab-bar.css +1 -1
  46. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  47. package/2x/cjs/components/tab-bar/tab-bar.js +24 -11
  48. package/2x/cjs/components/tabs/tabs.css +4 -1
  49. package/2x/cjs/components/tabs/tabs.d.ts +1 -1
  50. package/2x/cjs/components/tree-select/tree-select.css +1 -0
  51. package/2x/cjs/components/virtual-input/virtual-input.js +1 -3
  52. package/2x/cjs/global/global.css +0 -4
  53. package/2x/cjs/index.d.ts +2 -1
  54. package/2x/cjs/index.js +10 -2
  55. package/2x/cjs/utils/use-mutation-effect.js +1 -1
  56. package/2x/cjs/utils/use-props-value.js +1 -1
  57. package/2x/cjs/utils/use-resize-effect.js +1 -1
  58. package/2x/es/components/cascader/cascader.d.ts +2 -2
  59. package/2x/es/components/checkbox/checkbox.css +1 -1
  60. package/2x/es/components/date-picker/date-picker.js +2 -2
  61. package/2x/es/components/dialog/dialog.d.ts +1 -0
  62. package/2x/es/components/dialog/dialog.js +5 -3
  63. package/2x/es/components/form/form-item.css +2 -1
  64. package/2x/es/components/form/form-item.js +1 -1
  65. package/2x/es/components/form/index.css +2 -1
  66. package/2x/es/components/image/lazy-detector.js +4 -1
  67. package/2x/es/components/image-uploader/image-uploader.js +4 -5
  68. package/2x/es/components/image-viewer/slide.js +0 -5
  69. package/2x/es/components/index-bar/index-bar.css +1 -1
  70. package/2x/es/components/infinite-scroll/infinite-scroll.js +2 -2
  71. package/2x/es/components/input/input.d.ts +2 -2
  72. package/2x/es/components/mask/mask.js +3 -2
  73. package/2x/es/components/modal/modal.d.ts +1 -0
  74. package/2x/es/components/modal/modal.js +5 -3
  75. package/2x/es/components/notice-bar/notice-bar.css +1 -0
  76. package/2x/es/components/number-keyboard/number-keyboard.js +2 -2
  77. package/2x/es/components/picker/picker.d.ts +2 -2
  78. package/2x/es/components/picker/picker.js +5 -4
  79. package/2x/es/components/picker-view/picker-view.css +1 -0
  80. package/2x/es/components/picker-view/picker-view.js +26 -20
  81. package/2x/es/components/picker-view/wheel.d.ts +10 -0
  82. package/2x/es/components/picker-view/{column.js → wheel.js} +26 -11
  83. package/2x/es/components/progress-bar/progress-bar.css +3 -1
  84. package/2x/es/components/progress-bar/progress-bar.d.ts +1 -1
  85. package/2x/es/components/pull-to-refresh/pull-to-refresh.d.ts +2 -0
  86. package/2x/es/components/pull-to-refresh/pull-to-refresh.js +2 -0
  87. package/2x/es/components/radio/radio.css +1 -1
  88. package/2x/es/components/rate/rate.css +1 -0
  89. package/2x/es/components/search-bar/search-bar.css +5 -0
  90. package/2x/es/components/search-bar/search-bar.d.ts +3 -1
  91. package/2x/es/components/search-bar/search-bar.js +6 -5
  92. package/2x/es/components/side-bar/side-bar.css +2 -0
  93. package/2x/es/components/side-bar/side-bar.d.ts +1 -1
  94. package/2x/es/components/skeleton/index.d.ts +8 -0
  95. package/2x/es/components/skeleton/index.js +7 -0
  96. package/2x/es/components/skeleton/skeleton.css +45 -0
  97. package/2x/es/components/skeleton/skeleton.d.ts +15 -0
  98. package/2x/es/components/skeleton/skeleton.js +36 -0
  99. package/2x/es/components/stepper/stepper.d.ts +1 -0
  100. package/2x/es/components/stepper/stepper.js +4 -2
  101. package/2x/es/components/tab-bar/tab-bar.css +1 -1
  102. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -0
  103. package/2x/es/components/tab-bar/tab-bar.js +22 -11
  104. package/2x/es/components/tabs/tabs.css +4 -1
  105. package/2x/es/components/tabs/tabs.d.ts +1 -1
  106. package/2x/es/components/tree-select/tree-select.css +1 -0
  107. package/2x/es/components/virtual-input/virtual-input.js +1 -3
  108. package/2x/es/global/global.css +0 -4
  109. package/2x/es/index.d.ts +2 -1
  110. package/2x/es/index.js +3 -2
  111. package/2x/es/utils/use-mutation-effect.js +2 -2
  112. package/2x/es/utils/use-props-value.js +2 -2
  113. package/2x/es/utils/use-resize-effect.js +2 -2
  114. package/2x/package.json +4 -4
  115. package/README.md +10 -1
  116. package/cjs/components/cascader/cascader.d.ts +2 -2
  117. package/cjs/components/checkbox/checkbox.css +1 -1
  118. package/cjs/components/date-picker/date-picker.js +1 -1
  119. package/cjs/components/dialog/dialog.d.ts +1 -0
  120. package/cjs/components/dialog/dialog.js +5 -3
  121. package/cjs/components/form/form-item.css +2 -1
  122. package/cjs/components/form/form-item.js +1 -1
  123. package/cjs/components/form/index.css +2 -1
  124. package/cjs/components/image/lazy-detector.js +4 -1
  125. package/cjs/components/image-uploader/image-uploader.js +3 -4
  126. package/cjs/components/image-viewer/slide.js +0 -5
  127. package/cjs/components/index-bar/index-bar.css +1 -1
  128. package/cjs/components/infinite-scroll/infinite-scroll.js +1 -1
  129. package/cjs/components/input/input.d.ts +2 -2
  130. package/cjs/components/mask/mask.js +3 -2
  131. package/cjs/components/modal/modal.d.ts +1 -0
  132. package/cjs/components/modal/modal.js +5 -3
  133. package/cjs/components/notice-bar/notice-bar.css +1 -0
  134. package/cjs/components/number-keyboard/number-keyboard.js +1 -1
  135. package/cjs/components/picker/picker.d.ts +2 -2
  136. package/cjs/components/picker/picker.js +4 -3
  137. package/cjs/components/picker-view/picker-view.css +1 -0
  138. package/cjs/components/picker-view/picker-view.js +25 -19
  139. package/cjs/components/picker-view/wheel.d.ts +10 -0
  140. package/cjs/components/picker-view/{column.js → wheel.js} +29 -13
  141. package/cjs/components/progress-bar/progress-bar.css +3 -1
  142. package/cjs/components/progress-bar/progress-bar.d.ts +1 -1
  143. package/cjs/components/pull-to-refresh/pull-to-refresh.d.ts +2 -0
  144. package/cjs/components/pull-to-refresh/pull-to-refresh.js +2 -0
  145. package/cjs/components/radio/radio.css +1 -1
  146. package/cjs/components/rate/rate.css +1 -0
  147. package/cjs/components/search-bar/search-bar.css +4 -0
  148. package/cjs/components/search-bar/search-bar.d.ts +3 -1
  149. package/cjs/components/search-bar/search-bar.js +6 -5
  150. package/cjs/components/side-bar/side-bar.css +2 -0
  151. package/cjs/components/side-bar/side-bar.d.ts +1 -1
  152. package/cjs/components/skeleton/index.d.ts +8 -0
  153. package/cjs/components/skeleton/index.js +19 -0
  154. package/cjs/components/skeleton/skeleton.css +39 -0
  155. package/cjs/components/skeleton/skeleton.d.ts +15 -0
  156. package/cjs/components/skeleton/skeleton.js +61 -0
  157. package/cjs/components/stepper/stepper.d.ts +1 -0
  158. package/cjs/components/stepper/stepper.js +4 -2
  159. package/cjs/components/tab-bar/tab-bar.css +1 -1
  160. package/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  161. package/cjs/components/tab-bar/tab-bar.js +24 -11
  162. package/cjs/components/tabs/tabs.css +4 -1
  163. package/cjs/components/tabs/tabs.d.ts +1 -1
  164. package/cjs/components/tree-select/tree-select.css +1 -0
  165. package/cjs/components/virtual-input/virtual-input.js +1 -3
  166. package/cjs/global/global.css +0 -3
  167. package/cjs/index.d.ts +2 -1
  168. package/cjs/index.js +10 -2
  169. package/cjs/utils/use-mutation-effect.js +1 -1
  170. package/cjs/utils/use-props-value.js +1 -1
  171. package/cjs/utils/use-resize-effect.js +1 -1
  172. package/es/components/cascader/cascader.d.ts +2 -2
  173. package/es/components/checkbox/checkbox.css +1 -1
  174. package/es/components/date-picker/date-picker.js +2 -2
  175. package/es/components/dialog/dialog.d.ts +1 -0
  176. package/es/components/dialog/dialog.js +5 -3
  177. package/es/components/form/form-item.css +2 -1
  178. package/es/components/form/form-item.js +1 -1
  179. package/es/components/form/index.css +2 -1
  180. package/es/components/image/lazy-detector.js +4 -1
  181. package/es/components/image-uploader/image-uploader.js +4 -5
  182. package/es/components/image-viewer/slide.js +0 -5
  183. package/es/components/index-bar/index-bar.css +1 -1
  184. package/es/components/infinite-scroll/infinite-scroll.js +2 -2
  185. package/es/components/input/input.d.ts +2 -2
  186. package/es/components/mask/mask.js +3 -2
  187. package/es/components/modal/modal.d.ts +1 -0
  188. package/es/components/modal/modal.js +5 -3
  189. package/es/components/notice-bar/notice-bar.css +1 -0
  190. package/es/components/number-keyboard/number-keyboard.js +2 -2
  191. package/es/components/picker/picker.d.ts +2 -2
  192. package/es/components/picker/picker.js +5 -4
  193. package/es/components/picker-view/picker-view.css +1 -0
  194. package/es/components/picker-view/picker-view.js +26 -20
  195. package/es/components/picker-view/wheel.d.ts +10 -0
  196. package/es/components/picker-view/{column.js → wheel.js} +26 -11
  197. package/es/components/progress-bar/progress-bar.css +3 -1
  198. package/es/components/progress-bar/progress-bar.d.ts +1 -1
  199. package/es/components/pull-to-refresh/pull-to-refresh.d.ts +2 -0
  200. package/es/components/pull-to-refresh/pull-to-refresh.js +2 -0
  201. package/es/components/radio/radio.css +1 -1
  202. package/es/components/rate/rate.css +1 -0
  203. package/es/components/search-bar/search-bar.css +4 -0
  204. package/es/components/search-bar/search-bar.d.ts +3 -1
  205. package/es/components/search-bar/search-bar.js +6 -5
  206. package/es/components/side-bar/side-bar.css +2 -0
  207. package/es/components/side-bar/side-bar.d.ts +1 -1
  208. package/es/components/skeleton/index.d.ts +8 -0
  209. package/es/components/skeleton/index.js +7 -0
  210. package/es/components/skeleton/skeleton.css +39 -0
  211. package/es/components/skeleton/skeleton.d.ts +15 -0
  212. package/es/components/skeleton/skeleton.js +36 -0
  213. package/es/components/stepper/stepper.d.ts +1 -0
  214. package/es/components/stepper/stepper.js +4 -2
  215. package/es/components/tab-bar/tab-bar.css +1 -1
  216. package/es/components/tab-bar/tab-bar.d.ts +1 -0
  217. package/es/components/tab-bar/tab-bar.js +22 -11
  218. package/es/components/tabs/tabs.css +4 -1
  219. package/es/components/tabs/tabs.d.ts +1 -1
  220. package/es/components/tree-select/tree-select.css +1 -0
  221. package/es/components/virtual-input/virtual-input.js +1 -3
  222. package/es/global/global.css +0 -3
  223. package/es/index.d.ts +2 -1
  224. package/es/index.js +3 -2
  225. package/es/utils/use-mutation-effect.js +2 -2
  226. package/es/utils/use-props-value.js +2 -2
  227. package/es/utils/use-resize-effect.js +2 -2
  228. package/package.json +4 -4
  229. package/umd/antd-mobile.js +1 -1
  230. package/2x/cjs/components/picker-view/column.d.ts +0 -9
  231. package/2x/cjs/utils/memo-with-event-marks.d.ts +0 -2
  232. package/2x/cjs/utils/memo-with-event-marks.js +0 -23
  233. package/2x/es/components/picker-view/column.d.ts +0 -9
  234. package/2x/es/utils/memo-with-event-marks.d.ts +0 -2
  235. package/2x/es/utils/memo-with-event-marks.js +0 -15
  236. package/cjs/components/picker-view/column.d.ts +0 -9
  237. package/cjs/utils/memo-with-event-marks.d.ts +0 -2
  238. package/cjs/utils/memo-with-event-marks.js +0 -23
  239. package/es/components/picker-view/column.d.ts +0 -9
  240. package/es/utils/memo-with-event-marks.d.ts +0 -2
  241. package/es/utils/memo-with-event-marks.js +0 -15
package/2x/README.md CHANGED
@@ -15,7 +15,12 @@ $ npm install --save antd-mobile@next
15
15
  $ yarn add antd-mobile@next
16
16
  ```
17
17
 
18
- v5(Poplar) is the next major version of antd-mobile, which is still working in progress. If you plan to use it in production, **please read the [FAQ](https://mobile.ant.design/guide/faq) chapter first**.
18
+ - **Fast**: It is carefully optimized for harsh scenes, without configuration, you can have the best package size and ultimate performance.
19
+ - **Customizable**: Based on CSS variables, you can reliably and efficiently adjust the appearance of components or create your own themes.
20
+ - **Atomic**: The function of each component, neither more nor less, is exactly what you need.
21
+ - **Fluent**: With smooth gestures and delicate animation, it helps the product create the ultimate experience.
22
+
23
+ v5(Poplar) is the next major version of antd-mobile, we recommend using it instead of v2.
19
24
 
20
25
  You can also play with antd-mobile just in browser with [Codesandbox](https://codesandbox.io/s/antd-mobile-snrxr?file=/package.json). No need to prepare development environment.
21
26
 
@@ -23,6 +28,10 @@ If you found bugs or would like to request some new features, please consider op
23
28
 
24
29
  If you have some question about how to use ant-mobile, you can start a [discussion thread](https://github.com/ant-design/ant-design-mobile/discussions).
25
30
 
31
+ Feel free to join our DingDing group:
32
+
33
+ <img src="https://gw.alipayobjects.com/mdn/rms_25513e/afts/img/A*fo-tQ5wRk5QAAAAAAAAAAAAAARQnAQ" alt="ding-group" width="360" />
34
+
26
35
  ---
27
36
 
28
37
  Thanks to all the contributors of antd-mobile:
@@ -13,8 +13,8 @@ export declare type CascaderProps = {
13
13
  onClose?: () => void;
14
14
  visible?: boolean;
15
15
  title?: ReactNode;
16
- confirmText?: string;
17
- cancelText?: string;
16
+ confirmText?: ReactNode;
17
+ cancelText?: ReactNode;
18
18
  children?: (items: (CascaderOption | null)[]) => ReactNode;
19
19
  } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps;
20
20
  export declare const Cascader: FC<CascaderProps>;
@@ -81,7 +81,7 @@
81
81
  }
82
82
 
83
83
  .adm-checkbox-content {
84
- flex: none;
84
+ flex: 0 1 auto;
85
85
  font-size: var(--font-size);
86
86
  padding-left: var(--gap);
87
87
  }
@@ -52,7 +52,7 @@ var DatePicker = function DatePicker(p) {
52
52
  var onConfirm = (0, _react.useCallback)(function (val) {
53
53
  setValue((0, _datePickerUtils.convertStringArrayToDate)(val, props.precision));
54
54
  }, [setValue, props.precision]);
55
- var onSelect = (0, _ahooks.usePersistFn)(function (val) {
55
+ var onSelect = (0, _ahooks.useMemoizedFn)(function (val) {
56
56
  var _a;
57
57
 
58
58
  var date = (0, _datePickerUtils.convertStringArrayToDate)(val, props.precision);
@@ -5,6 +5,7 @@ import { PropagationEvent } from '../../utils/with-stop-propagation';
5
5
  import { NativeProps } from '../../utils/native-props';
6
6
  export declare type DialogProps = {
7
7
  afterClose?: () => void;
8
+ afterShow?: () => void;
8
9
  image?: string;
9
10
  header?: ReactNode;
10
11
  title?: ReactNode;
@@ -95,13 +95,15 @@ var Dialog = function Dialog(p) {
95
95
  setActive(true);
96
96
  },
97
97
  onRest: function onRest() {
98
- var _a;
98
+ var _a, _b;
99
99
 
100
100
  if (unmountedRef.current) return;
101
101
  setActive(props.visible);
102
102
 
103
- if (!props.visible) {
104
- (_a = props.afterClose) === null || _a === void 0 ? void 0 : _a.call(props);
103
+ if (props.visible) {
104
+ (_a = props.afterShow) === null || _a === void 0 ? void 0 : _a.call(props);
105
+ } else {
106
+ (_b = props.afterClose) === null || _b === void 0 ? void 0 : _b.call(props);
105
107
  }
106
108
  }
107
109
  });
@@ -5,6 +5,7 @@
5
5
  .adm-form-item-label {
6
6
  display: block;
7
7
  height: 100%;
8
+ line-height: 1.5;
8
9
  box-sizing: border-box;
9
10
  color: #666;
10
11
  position: relative;
@@ -22,7 +23,7 @@
22
23
  color: var(--adm-color-danger);
23
24
  }
24
25
 
25
- .adm-form-item-hidden {
26
+ .adm-form-item.adm-form-item-hidden {
26
27
  display: none;
27
28
  }
28
29
 
@@ -65,7 +65,7 @@ var FormItemLayout = function FormItemLayout(props) {
65
65
  hidden = props.hidden,
66
66
  errors = props.errors;
67
67
  var context = (0, _react.useContext)(_context.FormContext);
68
- var hasFeedback = props.hasFeedback || context.hasFeedback;
68
+ var hasFeedback = props.hasFeedback !== undefined ? props.hasFeedback : context.hasFeedback;
69
69
  var layout = props.layout || context.layout;
70
70
  var feedback = hasFeedback && errors && errors.length > 0 ? errors[0] : null;
71
71
  var labelElement = label ? /*#__PURE__*/_react["default"].createElement("label", {
@@ -13,6 +13,7 @@
13
13
  .adm-form-item-label {
14
14
  display: block;
15
15
  height: 100%;
16
+ line-height: 1.5;
16
17
  box-sizing: border-box;
17
18
  color: #666;
18
19
  position: relative;
@@ -30,7 +31,7 @@
30
31
  color: var(--adm-color-danger);
31
32
  }
32
33
 
33
- .adm-form-item-hidden {
34
+ .adm-form-item.adm-form-item-hidden {
34
35
  display: none;
35
36
  }
36
37
 
@@ -15,7 +15,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
15
15
 
16
16
  var LazyDetector = function LazyDetector(props) {
17
17
  var ref = (0, _react.useRef)(null);
18
- var inViewport = (0, _ahooks.useInViewport)(ref);
18
+
19
+ var _useInViewport = (0, _ahooks.useInViewport)(ref),
20
+ inViewport = _useInViewport[0];
21
+
19
22
  (0, _react.useEffect)(function () {
20
23
  if (inViewport) {
21
24
  props.onActive();
@@ -79,7 +79,7 @@ var ImageUploader = function ImageUploader(p) {
79
79
  value = _usePropsValue[0],
80
80
  setValue = _usePropsValue[1];
81
81
 
82
- var updateValue = (0, _ahooks.usePersistFn)(function (updater) {
82
+ var updateValue = (0, _ahooks.useMemoizedFn)(function (updater) {
83
83
  setValue(updater(value));
84
84
  });
85
85
 
@@ -190,9 +190,8 @@ var ImageUploader = function ImageUploader(p) {
190
190
  });
191
191
  });
192
192
  updateValue(function (prev) {
193
- return [].concat(prev, [{
194
- url: result.url
195
- }]);
193
+ var newVal = Object.assign({}, result);
194
+ return [].concat(prev, [newVal]);
196
195
  });
197
196
  _context.next = 12;
198
197
  break;
@@ -107,11 +107,6 @@ var Slide = function Slide(props) {
107
107
  }
108
108
  },
109
109
  pinch: {
110
- transform: function transform(_ref) {
111
- var d = _ref[0],
112
- a = _ref[1];
113
- return [d < 0 ? d * 0.5 : d * 2, 0];
114
- },
115
110
  from: function from() {
116
111
  return [zoom.get(), 0];
117
112
  }
@@ -58,7 +58,7 @@
58
58
 
59
59
  .adm-index-bar-sidebar-row {
60
60
  cursor: pointer;
61
- width: 100%;
61
+ width: auto;
62
62
  text-align: right;
63
63
  position: relative;
64
64
  padding: 0 24px;
@@ -43,7 +43,7 @@ var InfiniteScroll = function InfiniteScroll(p) {
43
43
  });
44
44
  var elementRef = (0, _react.useRef)(null);
45
45
  var checkTimeoutRef = (0, _react.useRef)();
46
- var check = (0, _ahooks.usePersistFn)(function () {
46
+ var check = (0, _ahooks.useMemoizedFn)(function () {
47
47
  window.clearTimeout(checkTimeoutRef.current);
48
48
  checkTimeoutRef.current = window.setTimeout(function () {
49
49
  if (!props.hasMore) return;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  declare type NativeInputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
4
- export declare type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength' | 'max' | 'min' | 'autoComplete' | 'pattern' | 'type' | 'onFocus' | 'onBlur' | 'autoCapitalize' | 'autoCorrect' | 'onKeyDown' | 'onKeyUp'> & {
4
+ export declare type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength' | 'max' | 'min' | 'autoComplete' | 'pattern' | 'inputMode' | 'type' | 'onFocus' | 'onBlur' | 'autoCapitalize' | 'autoCorrect' | 'onKeyDown' | 'onKeyUp'> & {
5
5
  value?: string;
6
6
  defaultValue?: string;
7
7
  onChange?: (val: string) => void;
@@ -19,7 +19,7 @@ export declare type InputRef = {
19
19
  focus: () => void;
20
20
  blur: () => void;
21
21
  };
22
- export declare const Input: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "pattern" | "max" | "min" | "type" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "autoCapitalize" | "autoCorrect" | "autoComplete" | "maxLength" | "minLength"> & {
22
+ export declare const Input: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "pattern" | "max" | "min" | "type" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "autoCapitalize" | "autoCorrect" | "inputMode" | "autoComplete" | "maxLength" | "minLength"> & {
23
23
  value?: string | undefined;
24
24
  defaultValue?: string | undefined;
25
25
  onChange?: ((val: string) => void) | undefined;
@@ -99,9 +99,10 @@ var Mask = function Mask(p) {
99
99
  var node = (0, _withStopPropagation.withStopPropagation)(props.stopPropagation, (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement(_web.animated.div, {
100
100
  className: classPrefix,
101
101
  ref: ref,
102
- style: Object.assign(Object.assign({}, props.style), {
102
+ style: Object.assign(Object.assign({
103
103
  background: background,
104
- opacity: opacity,
104
+ opacity: opacity
105
+ }, props.style), {
105
106
  display: active ? 'unset' : 'none'
106
107
  })
107
108
  }, props.onMaskClick && /*#__PURE__*/_react["default"].createElement("div", {
@@ -5,6 +5,7 @@ import { PropagationEvent } from '../../utils/with-stop-propagation';
5
5
  import { NativeProps } from '../../utils/native-props';
6
6
  export declare type ModalProps = {
7
7
  afterClose?: () => void;
8
+ afterShow?: () => void;
8
9
  image?: string;
9
10
  header?: ReactNode;
10
11
  title?: ReactNode;
@@ -95,13 +95,15 @@ var Modal = function Modal(p) {
95
95
  setActive(true);
96
96
  },
97
97
  onRest: function onRest() {
98
- var _a;
98
+ var _a, _b;
99
99
 
100
100
  if (unmountedRef.current) return;
101
101
  setActive(props.visible);
102
102
 
103
- if (!props.visible) {
104
- (_a = props.afterClose) === null || _a === void 0 ? void 0 : _a.call(props);
103
+ if (props.visible) {
104
+ (_a = props.afterShow) === null || _a === void 0 ? void 0 : _a.call(props);
105
+ } else {
106
+ (_b = props.afterClose) === null || _b === void 0 ? void 0 : _b.call(props);
105
107
  }
106
108
  }
107
109
  });
@@ -1,5 +1,6 @@
1
1
  .adm-notice-bar {
2
2
  height: 60px;
3
+ box-sizing: border-box;
3
4
  font-size: 28px;
4
5
  line-height: 60px;
5
6
  padding: 0 24px;
@@ -66,7 +66,7 @@ var NumberKeyboard = function NumberKeyboard(p) {
66
66
  }, [customKey, confirmText, randomOrder, randomOrder && visible]);
67
67
  var timeoutRef = (0, _react.useRef)(-1);
68
68
  var intervalRef = (0, _react.useRef)(-1);
69
- var onDelete = (0, _ahooks.usePersistFn)(function () {
69
+ var onDelete = (0, _ahooks.useMemoizedFn)(function () {
70
70
  var _a;
71
71
 
72
72
  (_a = props.onDelete) === null || _a === void 0 ? void 0 : _a.call(props);
@@ -12,8 +12,8 @@ export declare type PickerProps = {
12
12
  onClose?: () => void;
13
13
  visible?: boolean;
14
14
  title?: ReactNode;
15
- confirmText?: string;
16
- cancelText?: string;
15
+ confirmText?: ReactNode;
16
+ cancelText?: ReactNode;
17
17
  children?: (items: (PickerColumnItem | null)[]) => ReactNode;
18
18
  } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps;
19
19
  export declare const Picker: React.NamedExoticComponent<PickerProps>;
@@ -65,7 +65,7 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
65
65
  setInnerValue = _useState[1];
66
66
 
67
67
  (0, _react.useEffect)(function () {
68
- if (!props.visible) {
68
+ if (innerValue !== value) {
69
69
  setInnerValue(value);
70
70
  }
71
71
  }, [props.visible]);
@@ -74,7 +74,7 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
74
74
  setInnerValue(value);
75
75
  }
76
76
  }, [value]);
77
- var onChange = (0, _ahooks.usePersistFn)(function (val, ext) {
77
+ var onChange = (0, _ahooks.useMemoizedFn)(function (val, ext) {
78
78
  var _a;
79
79
 
80
80
  setInnerValue(val);
@@ -133,4 +133,5 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
133
133
 
134
134
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, generateValueExtend(value).items));
135
135
  });
136
- exports.Picker = Picker;
136
+ exports.Picker = Picker;
137
+ Picker.displayName = 'Picker';
@@ -5,6 +5,7 @@
5
5
  display: flex;
6
6
  position: relative;
7
7
  overflow: hidden;
8
+ background: var(--adm-color-white);
8
9
  }
9
10
 
10
11
  .adm-picker-view-column {
@@ -9,7 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _withDefaultProps = require("../../utils/with-default-props");
11
11
 
12
- var _column = require("./column");
12
+ var _wheel = require("./wheel");
13
13
 
14
14
  var _useColumns = require("./use-columns");
15
15
 
@@ -50,31 +50,36 @@ var PickerView = /*#__PURE__*/(0, _react.memo)(function (p) {
50
50
 
51
51
  if (props.value === innerValue) return;
52
52
  setInnerValue(props.value);
53
- }, [props.value]); // Reset `innerValue` after 1s in case user does not update `value` when `onChange` is called
54
-
55
- (0, _ahooks.useDebounceEffect)(function () {
56
- if (props.value !== undefined && props.value !== innerValue) {
57
- setInnerValue(props.value);
58
- }
59
- }, [props.value, innerValue], {
60
- wait: 1000,
61
- leading: false,
62
- trailing: true
63
- });
53
+ }, [props.value]);
54
+ (0, _react.useEffect)(function () {
55
+ if (props.value === innerValue) return;
56
+ var timeout = window.setTimeout(function () {
57
+ if (props.value !== undefined && props.value !== innerValue) {
58
+ setInnerValue(props.value);
59
+ }
60
+ }, 1000);
61
+ return function () {
62
+ window.clearTimeout(timeout);
63
+ };
64
+ }, [props.value, innerValue]);
64
65
  var columns = (0, _useColumns.useColumns)(props.columns, innerValue);
65
66
  var generateValueExtend = (0, _usePickerValueExtend.usePickerValueExtend)(columns);
67
+ var handleSelect = (0, _react.useCallback)(function (val, index) {
68
+ setInnerValue(function (prev) {
69
+ var next = [].concat(prev);
70
+ next[index] = val;
71
+ return next;
72
+ });
73
+ }, []);
66
74
  return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
67
75
  className: "" + classPrefix
68
76
  }, columns.map(function (column, index) {
69
- return /*#__PURE__*/_react["default"].createElement(_column.Column, {
77
+ return /*#__PURE__*/_react["default"].createElement(_wheel.Wheel, {
70
78
  key: index,
79
+ index: index,
71
80
  column: column,
72
81
  value: innerValue[index],
73
- onSelect: function onSelect(val) {
74
- var nextInnerValue = [].concat(innerValue);
75
- nextInnerValue[index] = val;
76
- setInnerValue(nextInnerValue);
77
- }
82
+ onSelect: handleSelect
78
83
  });
79
84
  }), /*#__PURE__*/_react["default"].createElement("div", {
80
85
  className: classPrefix + "-mask"
@@ -86,4 +91,5 @@ var PickerView = /*#__PURE__*/(0, _react.memo)(function (p) {
86
91
  className: classPrefix + "-mask-bottom"
87
92
  }))));
88
93
  });
89
- exports.PickerView = PickerView;
94
+ exports.PickerView = PickerView;
95
+ PickerView.displayName = 'PickerView';
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { PickerColumnItem, PickerValue } from './index';
3
+ interface Props {
4
+ index: number;
5
+ column: PickerColumnItem[];
6
+ value: PickerValue;
7
+ onSelect: (value: PickerValue, index: number) => void;
8
+ }
9
+ export declare const Wheel: React.NamedExoticComponent<Props>;
10
+ export {};
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Column = void 0;
6
+ exports.Wheel = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
@@ -17,18 +17,24 @@ var _rubberband = require("../../utils/rubberband");
17
17
 
18
18
  var _bound = require("../../utils/bound");
19
19
 
20
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+
20
24
  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); }
21
25
 
22
26
  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; }
23
27
 
24
28
  var classPrefix = "adm-picker-view";
25
-
26
- var Column = function Column(props) {
29
+ var Wheel = /*#__PURE__*/(0, _react.memo)(function (props) {
27
30
  var itemHeight = (0, _convertPx.convertPx)(34);
28
31
  var value = props.value,
29
- onSelect = props.onSelect,
30
32
  column = props.column;
31
33
 
34
+ function onSelect(val) {
35
+ props.onSelect(val, props.index);
36
+ }
37
+
32
38
  var _useSpring = (0, _web.useSpring)(function () {
33
39
  return {
34
40
  from: {
@@ -54,20 +60,20 @@ var Column = function Column(props) {
54
60
  var finalPosition = targetIndex * -itemHeight;
55
61
  api.start({
56
62
  y: finalPosition,
57
- immediate: y.idle
63
+ immediate: y.goal !== finalPosition
58
64
  });
59
65
  }, [value, column]);
60
66
  (0, _react.useLayoutEffect)(function () {
61
67
  if (column.length === 0) {
62
68
  if (value !== null) {
63
- props.onSelect(null);
69
+ onSelect(null);
64
70
  }
65
71
  } else {
66
72
  if (!column.some(function (item) {
67
73
  return item.value === value;
68
74
  })) {
69
75
  var firstItem = column[0];
70
- props.onSelect(firstItem.value);
76
+ onSelect(firstItem.value);
71
77
  }
72
78
  }
73
79
  }, [column, value]);
@@ -77,7 +83,9 @@ var Column = function Column(props) {
77
83
  api.start({
78
84
  y: finalPosition
79
85
  });
80
- onSelect(column[index].value);
86
+ var item = column[index];
87
+ if (!item) return;
88
+ onSelect(item.value);
81
89
  }
82
90
 
83
91
  var bind = (0, _react2.useDrag)(function (state) {
@@ -88,7 +96,7 @@ var Column = function Column(props) {
88
96
  if (state.last) {
89
97
  draggingRef.current = false;
90
98
  var position = state.offset[1] + state.velocity[1] * state.direction[1] * 50;
91
- var targetIndex = -Math.round((0, _bound.bound)(position, min, max) / itemHeight);
99
+ var targetIndex = min < max ? -Math.round((0, _bound.bound)(position, min, max) / itemHeight) : 0;
92
100
  scrollSelect(targetIndex);
93
101
  } else {
94
102
  var _position = state.offset[1];
@@ -109,8 +117,6 @@ var Column = function Column(props) {
109
117
  var selectedIndex = null;
110
118
 
111
119
  function renderAccessible() {
112
- console.log('selectedIndex', selectedIndex);
113
-
114
120
  if (selectedIndex === null) {
115
121
  return null;
116
122
  }
@@ -171,6 +177,16 @@ var Column = function Column(props) {
171
177
  className: classPrefix + "-column-item-label"
172
178
  }, item.label));
173
179
  })), renderAccessible());
174
- };
180
+ }, function (prev, next) {
181
+ if (prev.index !== next.index) return false;
182
+ if (prev.value !== next.value) return false;
183
+ if (prev.onSelect !== next.onSelect) return false;
184
+
185
+ if (!(0, _isEqual["default"])(prev.column, next.column)) {
186
+ return false;
187
+ }
175
188
 
176
- exports.Column = Column;
189
+ return true;
190
+ });
191
+ exports.Wheel = Wheel;
192
+ Wheel.displayName = 'Wheel';
@@ -1,10 +1,12 @@
1
1
  .adm-progress-bar {
2
2
  --track-width: var(--adm-progress-bar-track-width, 6px);
3
+ --track-color: var(--adm-progress-bar-track-color, #e5e5e5);
3
4
  --fill-color: var(--adm-progress-bar-fill-color, #1677ff);
4
5
  }
5
6
 
6
7
  .adm-progress-bar-trail {
7
- background: #e5e5e5;
8
+ background: var(--track-color);
9
+ overflow: hidden;
8
10
  height: var(--track-width);
9
11
  border-radius: var(--track-width);
10
12
  }
@@ -2,5 +2,5 @@ import { FC } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  export declare type ProgressBarProps = {
4
4
  percent?: number;
5
- } & NativeProps<'--track-width' | '--fill-color'>;
5
+ } & NativeProps<'--track-width' | '--track-color' | '--fill-color'>;
6
6
  export declare const ProgressBar: FC<ProgressBarProps>;
@@ -9,6 +9,7 @@ export declare type PullToRefreshProps = {
9
9
  completeDelay?: number;
10
10
  headHeight?: number;
11
11
  threshold?: number;
12
+ disabled?: boolean;
12
13
  renderText?: (status: PullStatus) => ReactNode;
13
14
  };
14
15
  export declare const defaultProps: {
@@ -17,6 +18,7 @@ export declare const defaultProps: {
17
18
  refreshingText: string;
18
19
  completeText: string;
19
20
  completeDelay: number;
21
+ disabled: boolean;
20
22
  onRefresh: () => void;
21
23
  };
22
24
  export declare const PullToRefresh: FC<PullToRefreshProps>;
@@ -66,6 +66,7 @@ var defaultProps = {
66
66
  refreshingText: '加载中……',
67
67
  completeText: '刷新成功',
68
68
  completeDelay: 500,
69
+ disabled: false,
69
70
  onRefresh: function onRefresh() {}
70
71
  };
71
72
  exports.defaultProps = defaultProps;
@@ -244,6 +245,7 @@ var PullToRefresh = function PullToRefresh(p) {
244
245
  },
245
246
  axis: 'y',
246
247
  target: elementRef,
248
+ enabled: !props.disabled,
247
249
  eventOptions: _supportsPassive.supportsPassive ? {
248
250
  passive: false
249
251
  } : false
@@ -60,7 +60,7 @@
60
60
  }
61
61
 
62
62
  .adm-radio-content {
63
- flex: none;
63
+ flex: 0 1 auto;
64
64
  font-size: var(--font-size);
65
65
  padding-left: var(--gap);
66
66
  }
@@ -16,6 +16,7 @@
16
16
  text-align: center;
17
17
  overflow: hidden;
18
18
  cursor: pointer;
19
+ box-sizing: border-box;
19
20
  }
20
21
 
21
22
  .adm-rate-star-half {
@@ -29,6 +29,7 @@
29
29
  flex: auto;
30
30
  padding: 8px 16px 8px 8px;
31
31
  height: 56px;
32
+ box-sizing: border-box;
32
33
  }
33
34
 
34
35
  .adm-search-bar .adm-search-bar-input-box .adm-search-bar-input.adm-input-wrapper {
@@ -40,6 +41,10 @@
40
41
  line-height: 38px;
41
42
  }
42
43
 
44
+ .adm-search-bar .adm-search-bar-input-box .adm-search-bar-input.adm-search-bar-input-without-icon {
45
+ padding-left: 16px;
46
+ }
47
+
43
48
  .adm-search-bar .adm-search-bar-suffix {
44
49
  flex: none;
45
50
  margin-left: 32px;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { InputRef, InputProps } from '../input';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  export declare type SearchBarRef = InputRef;
@@ -10,6 +10,7 @@ export declare type SearchBarProps = Pick<InputProps, 'onFocus' | 'onBlur' | 'on
10
10
  clearable?: boolean;
11
11
  showCancelButton?: boolean | ((focus: boolean, value: string) => boolean);
12
12
  cancelText?: string;
13
+ icon?: ReactNode;
13
14
  clearOnCancel?: boolean;
14
15
  onSearch?: (val: string) => void;
15
16
  onChange?: (val: string) => void;
@@ -23,6 +24,7 @@ export declare const SearchBar: React.ForwardRefExoticComponent<Pick<InputProps,
23
24
  clearable?: boolean | undefined;
24
25
  showCancelButton?: boolean | ((focus: boolean, value: string) => boolean) | undefined;
25
26
  cancelText?: string | undefined;
27
+ icon?: ReactNode;
26
28
  clearOnCancel?: boolean | undefined;
27
29
  onSearch?: ((val: string) => void) | undefined;
28
30
  onChange?: ((val: string) => void) | undefined;