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
@@ -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,9 +1,11 @@
1
1
  .adm-progress-bar {
2
2
  --track-width: var(--adm-progress-bar-track-width, 3px);
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
  .adm-progress-bar-trail {
6
- background: #e5e5e5;
7
+ background: var(--track-color);
8
+ overflow: hidden;
7
9
  height: var(--track-width);
8
10
  border-radius: var(--track-width);
9
11
  }
@@ -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
@@ -50,7 +50,7 @@
50
50
  font-size: var(--icon-size);
51
51
  }
52
52
  .adm-radio-content {
53
- flex: none;
53
+ flex: 0 1 auto;
54
54
  font-size: var(--font-size);
55
55
  padding-left: var(--gap);
56
56
  }
@@ -14,6 +14,7 @@
14
14
  text-align: center;
15
15
  overflow: hidden;
16
16
  cursor: pointer;
17
+ box-sizing: border-box;
17
18
  }
18
19
  .adm-rate-star-half {
19
20
  padding-right: 0;
@@ -26,6 +26,7 @@
26
26
  flex: auto;
27
27
  padding: 4px 8px 4px 4px;
28
28
  height: 28px;
29
+ box-sizing: border-box;
29
30
  }
30
31
  .adm-search-bar .adm-search-bar-input-box .adm-search-bar-input.adm-input-wrapper {
31
32
  --placeholder-color: var(---placeholder-color);
@@ -34,6 +35,9 @@
34
35
  font-size: 13px;
35
36
  line-height: 19px;
36
37
  }
38
+ .adm-search-bar .adm-search-bar-input-box .adm-search-bar-input.adm-search-bar-input-without-icon {
39
+ padding-left: 8px;
40
+ }
37
41
  .adm-search-bar .adm-search-bar-suffix {
38
42
  flex: none;
39
43
  margin-left: 16px;
@@ -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;
@@ -32,10 +32,11 @@ var defaultProps = {
32
32
  clearable: true,
33
33
  showCancelButton: false,
34
34
  defaultValue: '',
35
- clearOnCancel: true
35
+ clearOnCancel: true,
36
+ icon: /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.SearchOutline, null)
36
37
  };
37
38
  var SearchBar = /*#__PURE__*/(0, _react.forwardRef)(function (p, ref) {
38
- var _classNames;
39
+ var _classNames, _classNames2;
39
40
 
40
41
  var _useConfig = (0, _configProvider.useConfig)(),
41
42
  locale = _useConfig.locale;
@@ -108,11 +109,11 @@ var SearchBar = /*#__PURE__*/(0, _react.forwardRef)(function (p, ref) {
108
109
  className: (0, _classnames["default"])(classPrefix, (_classNames = {}, _classNames[classPrefix + "-active"] = hasFocus, _classNames))
109
110
  }, /*#__PURE__*/_react["default"].createElement("div", {
110
111
  className: classPrefix + "-input-box"
111
- }, /*#__PURE__*/_react["default"].createElement("div", {
112
+ }, props.icon && /*#__PURE__*/_react["default"].createElement("div", {
112
113
  className: classPrefix + "-input-box-icon"
113
- }, /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.SearchOutline, null)), /*#__PURE__*/_react["default"].createElement(_input["default"], {
114
+ }, props.icon), /*#__PURE__*/_react["default"].createElement(_input["default"], {
114
115
  ref: inputRef,
115
- className: classPrefix + "-input",
116
+ className: (0, _classnames["default"])(classPrefix + "-input", (_classNames2 = {}, _classNames2[classPrefix + "-input-without-icon"] = !props.icon, _classNames2)),
116
117
  value: value,
117
118
  onChange: setValue,
118
119
  maxLength: props.maxLength,
@@ -4,6 +4,7 @@
4
4
  --item-border-radius: 8px;
5
5
  width: var(--width);
6
6
  height: var(--height);
7
+ box-sizing: border-box;
7
8
  font-size: 15px;
8
9
  overflow-y: auto;
9
10
  transform: translateZ(0);
@@ -13,6 +14,7 @@
13
14
  display: flex;
14
15
  align-items: center;
15
16
  min-height: 50px;
17
+ box-sizing: border-box;
16
18
  padding: 6px 22px;
17
19
  position: relative;
18
20
  cursor: pointer;
@@ -1,7 +1,7 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  export declare type SideBarItemProps = {
4
- title?: string;
4
+ title?: ReactNode;
5
5
  disabled?: boolean;
6
6
  badge?: ReactNode;
7
7
  } & NativeProps;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import './skeleton.less';
3
+ export type { SkeletonProps, SkeletonTitleProps } from './skeleton';
4
+ declare const _default: import("react").FC<import("./skeleton").SkeletonProps> & {
5
+ Title: import("react").FC<import("./skeleton").SkeletonTitleProps>;
6
+ Paragraph: import("react").FC<import("./skeleton").SkeletonParagraphProps>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ require("./skeleton.css");
9
+
10
+ var _skeleton2 = require("./skeleton");
11
+
12
+ var _attachPropertiesToComponent = require("../../utils/attach-properties-to-component");
13
+
14
+ var _default = (0, _attachPropertiesToComponent.attachPropertiesToComponent)(_skeleton2.Skeleton, {
15
+ Title: _skeleton2.SkeletonTitle,
16
+ Paragraph: _skeleton2.SkeletonParagraph
17
+ });
18
+
19
+ exports["default"] = _default;
@@ -0,0 +1,39 @@
1
+ .adm-skeleton {
2
+ --width: 100%;
3
+ --height: 0;
4
+ --border-radius: 0;
5
+ background-color: rgba(190, 190, 190, 0.2);
6
+ border-radius: var(--border-radius);
7
+ width: var(--width);
8
+ height: var(--height);
9
+ display: block;
10
+ }
11
+ .adm-skeleton.adm-skeleton-animated {
12
+ background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);
13
+ background-size: 400% 100%;
14
+ animation: adm-skeleton-loading 1.4s ease infinite;
15
+ }
16
+ .adm-skeleton.adm-skeleton-title {
17
+ --width: 45%;
18
+ --height: 32px;
19
+ --border-radius: 2px;
20
+ margin-bottom: 16px;
21
+ margin-top: 16px;
22
+ }
23
+ .adm-skeleton.adm-skeleton-paragraph-line {
24
+ --height: 18px;
25
+ --border-radius: 2px;
26
+ margin-top: 12px;
27
+ margin-bottom: 12px;
28
+ }
29
+ .adm-skeleton.adm-skeleton-paragraph-line:last-child {
30
+ --width: 65%;
31
+ }
32
+ @keyframes adm-skeleton-loading {
33
+ 0% {
34
+ background-position: 100% 50%;
35
+ }
36
+ 100% {
37
+ background-position: 0 50%;
38
+ }
39
+ }
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ import { NativeProps } from '../../utils/native-props';
3
+ export declare type SkeletonProps = {
4
+ animated?: boolean;
5
+ } & NativeProps<'--width' | '--height' | '--border-radius'>;
6
+ export declare const Skeleton: FC<SkeletonProps>;
7
+ export declare type SkeletonTitleProps = {
8
+ animated?: boolean;
9
+ } & NativeProps;
10
+ export declare const SkeletonTitle: FC<SkeletonTitleProps>;
11
+ export declare type SkeletonParagraphProps = {
12
+ animated?: boolean;
13
+ lineCount?: number;
14
+ } & NativeProps;
15
+ export declare const SkeletonParagraph: FC<SkeletonParagraphProps>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SkeletonTitle = exports.SkeletonParagraph = exports.Skeleton = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _nativeProps = require("../../utils/native-props");
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _generateIntArray = require("../../utils/generate-int-array");
15
+
16
+ var _withDefaultProps = require("../../utils/with-default-props");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ var classPrefix = 'adm-skeleton';
21
+
22
+ var Skeleton = function Skeleton(props) {
23
+ var _classNames;
24
+
25
+ return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
26
+ className: (0, _classnames["default"])(classPrefix, (_classNames = {}, _classNames[classPrefix + "-animated"] = props.animated, _classNames))
27
+ }));
28
+ };
29
+
30
+ exports.Skeleton = Skeleton;
31
+
32
+ var SkeletonTitle = function SkeletonTitle(props) {
33
+ return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement(Skeleton, {
34
+ animated: props.animated,
35
+ className: classPrefix + "-title"
36
+ }));
37
+ };
38
+
39
+ exports.SkeletonTitle = SkeletonTitle;
40
+ var defaultSkeletonParagraphProps = {
41
+ lineCount: 3
42
+ };
43
+
44
+ var SkeletonParagraph = function SkeletonParagraph(p) {
45
+ var props = (0, _withDefaultProps.mergeProps)(defaultSkeletonParagraphProps, p);
46
+ var keys = (0, _generateIntArray.generateIntArray)(1, props.lineCount);
47
+
48
+ var node = /*#__PURE__*/_react["default"].createElement("div", {
49
+ className: classPrefix + "-paragraph"
50
+ }, keys.map(function (key) {
51
+ return /*#__PURE__*/_react["default"].createElement(Skeleton, {
52
+ key: key,
53
+ animated: props.animated,
54
+ className: classPrefix + "-paragraph-line"
55
+ });
56
+ }));
57
+
58
+ return (0, _nativeProps.withNativeProps)(props, node);
59
+ };
60
+
61
+ exports.SkeletonParagraph = SkeletonParagraph;
@@ -9,6 +9,7 @@ export declare type StepperProps = Pick<InputProps, 'onFocus' | 'onBlur'> & {
9
9
  step?: number;
10
10
  digits?: number;
11
11
  disabled?: boolean;
12
+ inputReadOnly?: boolean;
12
13
  onChange?: (value: number) => void;
13
14
  } & NativeProps<'--height' | '--input-width' | '--input-font-size' | '--border-radius' | '--border' | '--border-inner' | '--active-border' | '--button-font-size' | '--button-background-color' | '--button-width' | '--input-font-color' | '--button-text-color'>;
14
15
  export declare const Stepper: FC<StepperProps>;
@@ -43,7 +43,8 @@ var Stepper = function Stepper(p) {
43
43
  var disabled = props.disabled,
44
44
  step = props.step,
45
45
  max = props.max,
46
- min = props.min;
46
+ min = props.min,
47
+ inputReadOnly = props.inputReadOnly;
47
48
 
48
49
  var _usePropsValue = (0, _usePropsValue2.usePropsValue)(props),
49
50
  value = _usePropsValue[0],
@@ -136,7 +137,8 @@ var Stepper = function Stepper(p) {
136
137
 
137
138
  setHasFocus(false);
138
139
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
139
- }
140
+ },
141
+ readOnly: inputReadOnly
140
142
  }), /*#__PURE__*/_react["default"].createElement(_button["default"], {
141
143
  className: classPrefix + "-plus",
142
144
  onClick: handlePlus,
@@ -1,4 +1,4 @@
1
- .adm-tab-bar {
1
+ .adm-tab-bar-wrap {
2
2
  display: flex;
3
3
  flex-wrap: nowrap;
4
4
  justify-content: flex-start;
@@ -11,5 +11,6 @@ export declare type TabBarProps = {
11
11
  activeKey?: string | null;
12
12
  defaultActiveKey?: string | null;
13
13
  onChange?: (key: string) => void;
14
+ safeArea?: boolean;
14
15
  } & NativeProps;
15
16
  export declare const TabBar: FC<TabBarProps>;
@@ -11,8 +11,12 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
11
 
12
12
  var _nativeProps = require("../../utils/native-props");
13
13
 
14
+ var _withDefaultProps = require("../../utils/with-default-props");
15
+
14
16
  var _badge = _interopRequireDefault(require("../badge"));
15
17
 
18
+ var _safeArea = _interopRequireDefault(require("../safe-area"));
19
+
16
20
  var _usePropsValue2 = require("../../utils/use-props-value");
17
21
 
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -22,10 +26,15 @@ var TabBarItem = function TabBarItem() {
22
26
  };
23
27
 
24
28
  exports.TabBarItem = TabBarItem;
29
+ var classPrefix = "adm-tab-bar";
30
+ var defaultProps = {
31
+ safeArea: false
32
+ };
25
33
 
26
- var TabBar = function TabBar(props) {
34
+ var TabBar = function TabBar(p) {
27
35
  var _a;
28
36
 
37
+ var props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
29
38
  var firstActiveKey = null;
30
39
  var items = [];
31
40
 
@@ -50,29 +59,33 @@ var TabBar = function TabBar(props) {
50
59
  setActiveKey = _usePropsValue[1];
51
60
 
52
61
  return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
53
- className: 'adm-tab-bar'
62
+ className: classPrefix
63
+ }, /*#__PURE__*/_react["default"].createElement("div", {
64
+ className: classPrefix + "-wrap"
54
65
  }, items.map(function (item) {
66
+ var _classNames;
67
+
55
68
  var active = item.key === activeKey;
56
69
 
57
70
  function renderContent() {
58
71
  var iconElement = item.props.icon && /*#__PURE__*/_react["default"].createElement("div", {
59
- className: 'adm-tab-bar-item-icon'
72
+ className: classPrefix + "-item-icon"
60
73
  }, typeof item.props.icon === 'function' ? item.props.icon(active) : item.props.icon);
61
74
 
62
75
  var titleElement = item.props.title && /*#__PURE__*/_react["default"].createElement("div", {
63
- className: 'adm-tab-bar-item-title'
76
+ className: classPrefix + "-item-title"
64
77
  }, item.props.title);
65
78
 
66
79
  if (iconElement) {
67
80
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_badge["default"], {
68
81
  content: item.props.badge,
69
- className: 'adm-tab-bar-icon-badge'
82
+ className: classPrefix + "-icon-badge"
70
83
  }, iconElement), titleElement);
71
84
  } else if (titleElement) {
72
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_badge["default"], {
85
+ return /*#__PURE__*/_react["default"].createElement(_badge["default"], {
73
86
  content: item.props.badge,
74
- className: 'adm-tab-bar-title-badge'
75
- }, titleElement));
87
+ className: classPrefix + "-title-badge"
88
+ }, titleElement);
76
89
  }
77
90
 
78
91
  return null;
@@ -85,10 +98,10 @@ var TabBar = function TabBar(props) {
85
98
  if (key === undefined || key === null) return;
86
99
  setActiveKey(key.toString());
87
100
  },
88
- className: (0, _classnames["default"])('adm-tab-bar-item', {
89
- 'adm-tab-bar-item-active': active
90
- })
101
+ className: (0, _classnames["default"])(classPrefix + "-item", (_classNames = {}, _classNames[classPrefix + "-item-active"] = active, _classNames))
91
102
  }, renderContent()));
103
+ })), props.safeArea && /*#__PURE__*/_react["default"].createElement(_safeArea["default"], {
104
+ position: 'bottom'
92
105
  })));
93
106
  };
94
107
 
@@ -1,6 +1,8 @@
1
1
  .adm-tabs {
2
2
  --title-font-size: 17px;
3
3
  --content-padding: 12px;
4
+ --active-line-height: 2px;
5
+ --active-line-border-radius: 0;
4
6
  position: relative;
5
7
  }
6
8
  .adm-tabs-header {
@@ -44,9 +46,10 @@
44
46
  .adm-tabs-tab-line {
45
47
  position: absolute;
46
48
  bottom: 0;
47
- height: 2px;
49
+ height: var(--active-line-height);
48
50
  color: var(--adm-color-primary);
49
51
  background: var(--adm-color-primary);
52
+ border-radius: var(--active-line-border-radius);
50
53
  }
51
54
  .adm-tabs-content {
52
55
  padding: var(--content-padding);