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
@@ -92,11 +92,6 @@ export var Slide = function Slide(props) {
92
92
  }
93
93
  },
94
94
  pinch: {
95
- transform: function transform(_ref) {
96
- var d = _ref[0],
97
- a = _ref[1];
98
- return [d < 0 ? d * 0.5 : d * 2, 0];
99
- },
100
95
  from: function from() {
101
96
  return [zoom.get(), 0];
102
97
  }
@@ -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;
@@ -1,6 +1,6 @@
1
1
  import { mergeProps } from '../../utils/with-default-props';
2
2
  import React, { useEffect, useRef } from 'react';
3
- import { useLockFn, usePersistFn } from 'ahooks';
3
+ import { useLockFn, useMemoizedFn } from 'ahooks';
4
4
  import { withNativeProps } from '../../utils/native-props';
5
5
  import { getScrollParent } from '../../utils/get-scroll-parent';
6
6
  import Loading from '../loading';
@@ -25,7 +25,7 @@ export var InfiniteScroll = function InfiniteScroll(p) {
25
25
  });
26
26
  var elementRef = useRef(null);
27
27
  var checkTimeoutRef = useRef();
28
- var check = usePersistFn(function () {
28
+ var check = useMemoizedFn(function () {
29
29
  window.clearTimeout(checkTimeoutRef.current);
30
30
  checkTimeoutRef.current = window.setTimeout(function () {
31
31
  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;
@@ -77,9 +77,10 @@ export var Mask = function Mask(p) {
77
77
  var node = withStopPropagation(props.stopPropagation, withNativeProps(props, /*#__PURE__*/React.createElement(animated.div, {
78
78
  className: classPrefix,
79
79
  ref: ref,
80
- style: Object.assign(Object.assign({}, props.style), {
80
+ style: Object.assign(Object.assign({
81
81
  background: background,
82
- opacity: opacity,
82
+ opacity: opacity
83
+ }, props.style), {
83
84
  display: active ? 'unset' : 'none'
84
85
  })
85
86
  }, props.onMaskClick && /*#__PURE__*/React.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;
@@ -68,13 +68,15 @@ export var Modal = function Modal(p) {
68
68
  setActive(true);
69
69
  },
70
70
  onRest: function onRest() {
71
- var _a;
71
+ var _a, _b;
72
72
 
73
73
  if (unmountedRef.current) return;
74
74
  setActive(props.visible);
75
75
 
76
- if (!props.visible) {
77
- (_a = props.afterClose) === null || _a === void 0 ? void 0 : _a.call(props);
76
+ if (props.visible) {
77
+ (_a = props.afterShow) === null || _a === void 0 ? void 0 : _a.call(props);
78
+ } else {
79
+ (_b = props.afterClose) === null || _b === void 0 ? void 0 : _b.call(props);
78
80
  }
79
81
  }
80
82
  });
@@ -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;
@@ -6,7 +6,7 @@ import { shuffle } from '../../utils/shuffle';
6
6
  import Popup from '../popup';
7
7
  import { withNativeProps } from '../../utils/native-props';
8
8
  import SafeArea from '../safe-area';
9
- import { usePersistFn } from 'ahooks';
9
+ import { useMemoizedFn } from 'ahooks';
10
10
  var classPrefix = 'adm-number-keyboard';
11
11
  var defaultProps = {
12
12
  defaultVisible: false,
@@ -43,7 +43,7 @@ export var NumberKeyboard = function NumberKeyboard(p) {
43
43
  }, [customKey, confirmText, randomOrder, randomOrder && visible]);
44
44
  var timeoutRef = useRef(-1);
45
45
  var intervalRef = useRef(-1);
46
- var onDelete = usePersistFn(function () {
46
+ var onDelete = useMemoizedFn(function () {
47
47
  var _a;
48
48
 
49
49
  (_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>;
@@ -7,7 +7,7 @@ import PickerView from '../picker-view';
7
7
  import { useColumns } from '../picker-view/use-columns';
8
8
  import { useConfig } from '../config-provider';
9
9
  import { usePickerValueExtend } from '../picker-view/use-picker-value-extend';
10
- import { usePersistFn } from 'ahooks';
10
+ import { useMemoizedFn } from 'ahooks';
11
11
  var classPrefix = "adm-picker";
12
12
  var defaultProps = {
13
13
  defaultValue: []
@@ -42,7 +42,7 @@ export var Picker = /*#__PURE__*/memo(function (p) {
42
42
  setInnerValue = _useState[1];
43
43
 
44
44
  useEffect(function () {
45
- if (!props.visible) {
45
+ if (innerValue !== value) {
46
46
  setInnerValue(value);
47
47
  }
48
48
  }, [props.visible]);
@@ -51,7 +51,7 @@ export var Picker = /*#__PURE__*/memo(function (p) {
51
51
  setInnerValue(value);
52
52
  }
53
53
  }, [value]);
54
- var onChange = usePersistFn(function (val, ext) {
54
+ var onChange = useMemoizedFn(function (val, ext) {
55
55
  var _a;
56
56
 
57
57
  setInnerValue(val);
@@ -107,4 +107,5 @@ export var Picker = /*#__PURE__*/memo(function (p) {
107
107
  stopPropagation: props.stopPropagation
108
108
  }, pickerElement);
109
109
  return /*#__PURE__*/React.createElement(React.Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, generateValueExtend(value).items));
110
- });
110
+ });
111
+ 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 {
@@ -1,6 +1,6 @@
1
- import React, { memo, useEffect, useState } from 'react';
1
+ import React, { memo, useCallback, useEffect, useState } from 'react';
2
2
  import { mergeProps } from '../../utils/with-default-props';
3
- import { Column } from './column';
3
+ import { Wheel } from './wheel';
4
4
  import { useColumns } from './use-columns';
5
5
  import { withNativeProps } from '../../utils/native-props';
6
6
  import { usePickerValueExtend } from './use-picker-value-extend';
@@ -32,31 +32,36 @@ export var PickerView = /*#__PURE__*/memo(function (p) {
32
32
 
33
33
  if (props.value === innerValue) return;
34
34
  setInnerValue(props.value);
35
- }, [props.value]); // Reset `innerValue` after 1s in case user does not update `value` when `onChange` is called
36
-
37
- useDebounceEffect(function () {
38
- if (props.value !== undefined && props.value !== innerValue) {
39
- setInnerValue(props.value);
40
- }
41
- }, [props.value, innerValue], {
42
- wait: 1000,
43
- leading: false,
44
- trailing: true
45
- });
35
+ }, [props.value]);
36
+ useEffect(function () {
37
+ if (props.value === innerValue) return;
38
+ var timeout = window.setTimeout(function () {
39
+ if (props.value !== undefined && props.value !== innerValue) {
40
+ setInnerValue(props.value);
41
+ }
42
+ }, 1000);
43
+ return function () {
44
+ window.clearTimeout(timeout);
45
+ };
46
+ }, [props.value, innerValue]);
46
47
  var columns = useColumns(props.columns, innerValue);
47
48
  var generateValueExtend = usePickerValueExtend(columns);
49
+ var handleSelect = useCallback(function (val, index) {
50
+ setInnerValue(function (prev) {
51
+ var next = [].concat(prev);
52
+ next[index] = val;
53
+ return next;
54
+ });
55
+ }, []);
48
56
  return withNativeProps(props, /*#__PURE__*/React.createElement("div", {
49
57
  className: "" + classPrefix
50
58
  }, columns.map(function (column, index) {
51
- return /*#__PURE__*/React.createElement(Column, {
59
+ return /*#__PURE__*/React.createElement(Wheel, {
52
60
  key: index,
61
+ index: index,
53
62
  column: column,
54
63
  value: innerValue[index],
55
- onSelect: function onSelect(val) {
56
- var nextInnerValue = [].concat(innerValue);
57
- nextInnerValue[index] = val;
58
- setInnerValue(nextInnerValue);
59
- }
64
+ onSelect: handleSelect
60
65
  });
61
66
  }), /*#__PURE__*/React.createElement("div", {
62
67
  className: classPrefix + "-mask"
@@ -67,4 +72,5 @@ export var PickerView = /*#__PURE__*/memo(function (p) {
67
72
  }), /*#__PURE__*/React.createElement("div", {
68
73
  className: classPrefix + "-mask-bottom"
69
74
  }))));
70
- });
75
+ });
76
+ 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 {};
@@ -1,16 +1,20 @@
1
- import React, { useLayoutEffect, useRef } from 'react';
1
+ import React, { memo, useLayoutEffect, useRef } from 'react';
2
2
  import { useSpring, animated } from '@react-spring/web';
3
3
  import { useDrag } from '@use-gesture/react';
4
4
  import { convertPx } from '../../utils/convert-px';
5
5
  import { rubberbandIfOutOfBounds } from '../../utils/rubberband';
6
6
  import { bound } from '../../utils/bound';
7
+ import isEqual from 'lodash/isEqual';
7
8
  var classPrefix = "adm-picker-view";
8
- export var Column = function Column(props) {
9
+ export var Wheel = /*#__PURE__*/memo(function (props) {
9
10
  var itemHeight = convertPx(34);
10
11
  var value = props.value,
11
- onSelect = props.onSelect,
12
12
  column = props.column;
13
13
 
14
+ function onSelect(val) {
15
+ props.onSelect(val, props.index);
16
+ }
17
+
14
18
  var _useSpring = useSpring(function () {
15
19
  return {
16
20
  from: {
@@ -36,20 +40,20 @@ export var Column = function Column(props) {
36
40
  var finalPosition = targetIndex * -itemHeight;
37
41
  api.start({
38
42
  y: finalPosition,
39
- immediate: y.idle
43
+ immediate: y.goal !== finalPosition
40
44
  });
41
45
  }, [value, column]);
42
46
  useLayoutEffect(function () {
43
47
  if (column.length === 0) {
44
48
  if (value !== null) {
45
- props.onSelect(null);
49
+ onSelect(null);
46
50
  }
47
51
  } else {
48
52
  if (!column.some(function (item) {
49
53
  return item.value === value;
50
54
  })) {
51
55
  var firstItem = column[0];
52
- props.onSelect(firstItem.value);
56
+ onSelect(firstItem.value);
53
57
  }
54
58
  }
55
59
  }, [column, value]);
@@ -59,7 +63,9 @@ export var Column = function Column(props) {
59
63
  api.start({
60
64
  y: finalPosition
61
65
  });
62
- onSelect(column[index].value);
66
+ var item = column[index];
67
+ if (!item) return;
68
+ onSelect(item.value);
63
69
  }
64
70
 
65
71
  var bind = useDrag(function (state) {
@@ -70,7 +76,7 @@ export var Column = function Column(props) {
70
76
  if (state.last) {
71
77
  draggingRef.current = false;
72
78
  var position = state.offset[1] + state.velocity[1] * state.direction[1] * 50;
73
- var targetIndex = -Math.round(bound(position, min, max) / itemHeight);
79
+ var targetIndex = min < max ? -Math.round(bound(position, min, max) / itemHeight) : 0;
74
80
  scrollSelect(targetIndex);
75
81
  } else {
76
82
  var _position = state.offset[1];
@@ -91,8 +97,6 @@ export var Column = function Column(props) {
91
97
  var selectedIndex = null;
92
98
 
93
99
  function renderAccessible() {
94
- console.log('selectedIndex', selectedIndex);
95
-
96
100
  if (selectedIndex === null) {
97
101
  return null;
98
102
  }
@@ -153,4 +157,15 @@ export var Column = function Column(props) {
153
157
  className: classPrefix + "-column-item-label"
154
158
  }, item.label));
155
159
  })), renderAccessible());
156
- };
160
+ }, function (prev, next) {
161
+ if (prev.index !== next.index) return false;
162
+ if (prev.value !== next.value) return false;
163
+ if (prev.onSelect !== next.onSelect) return false;
164
+
165
+ if (!isEqual(prev.column, next.column)) {
166
+ return false;
167
+ }
168
+
169
+ return true;
170
+ });
171
+ 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>;
@@ -46,6 +46,7 @@ export var defaultProps = {
46
46
  refreshingText: '加载中……',
47
47
  completeText: '刷新成功',
48
48
  completeDelay: 500,
49
+ disabled: false,
49
50
  onRefresh: function onRefresh() {}
50
51
  };
51
52
  export var PullToRefresh = function PullToRefresh(p) {
@@ -222,6 +223,7 @@ export var PullToRefresh = function PullToRefresh(p) {
222
223
  },
223
224
  axis: 'y',
224
225
  target: elementRef,
226
+ enabled: !props.disabled,
225
227
  eventOptions: supportsPassive ? {
226
228
  passive: false
227
229
  } : 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;
@@ -11,10 +11,11 @@ var defaultProps = {
11
11
  clearable: true,
12
12
  showCancelButton: false,
13
13
  defaultValue: '',
14
- clearOnCancel: true
14
+ clearOnCancel: true,
15
+ icon: /*#__PURE__*/React.createElement(SearchOutline, null)
15
16
  };
16
17
  export var SearchBar = /*#__PURE__*/forwardRef(function (p, ref) {
17
- var _classNames;
18
+ var _classNames, _classNames2;
18
19
 
19
20
  var _useConfig = useConfig(),
20
21
  locale = _useConfig.locale;
@@ -87,11 +88,11 @@ export var SearchBar = /*#__PURE__*/forwardRef(function (p, ref) {
87
88
  className: classNames(classPrefix, (_classNames = {}, _classNames[classPrefix + "-active"] = hasFocus, _classNames))
88
89
  }, /*#__PURE__*/React.createElement("div", {
89
90
  className: classPrefix + "-input-box"
90
- }, /*#__PURE__*/React.createElement("div", {
91
+ }, props.icon && /*#__PURE__*/React.createElement("div", {
91
92
  className: classPrefix + "-input-box-icon"
92
- }, /*#__PURE__*/React.createElement(SearchOutline, null)), /*#__PURE__*/React.createElement(Input, {
93
+ }, props.icon), /*#__PURE__*/React.createElement(Input, {
93
94
  ref: inputRef,
94
- className: classPrefix + "-input",
95
+ className: classNames(classPrefix + "-input", (_classNames2 = {}, _classNames2[classPrefix + "-input-without-icon"] = !props.icon, _classNames2)),
95
96
  value: value,
96
97
  onChange: setValue,
97
98
  maxLength: props.maxLength,
@@ -4,6 +4,7 @@
4
4
  --item-border-radius: 16px;
5
5
  width: var(--width);
6
6
  height: var(--height);
7
+ box-sizing: border-box;
7
8
  font-size: 30px;
8
9
  overflow-y: auto;
9
10
  transform: translateZ(0);
@@ -14,6 +15,7 @@
14
15
  display: flex;
15
16
  align-items: center;
16
17
  min-height: 100px;
18
+ box-sizing: border-box;
17
19
  padding: 12px 44px;
18
20
  position: relative;
19
21
  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,7 @@
1
+ import "./skeleton.css";
2
+ import { Skeleton, SkeletonParagraph, SkeletonTitle } from './skeleton';
3
+ import { attachPropertiesToComponent } from '../../utils/attach-properties-to-component';
4
+ export default attachPropertiesToComponent(Skeleton, {
5
+ Title: SkeletonTitle,
6
+ Paragraph: SkeletonParagraph
7
+ });
@@ -0,0 +1,45 @@
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
+
12
+ .adm-skeleton.adm-skeleton-animated {
13
+ 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%);
14
+ background-size: 400% 100%;
15
+ animation: adm-skeleton-loading 1.4s ease infinite;
16
+ }
17
+
18
+ .adm-skeleton.adm-skeleton-title {
19
+ --width: 45%;
20
+ --height: 64px;
21
+ --border-radius: 4px;
22
+ margin-bottom: 32px;
23
+ margin-top: 32px;
24
+ }
25
+
26
+ .adm-skeleton.adm-skeleton-paragraph-line {
27
+ --height: 36px;
28
+ --border-radius: 4px;
29
+ margin-top: 24px;
30
+ margin-bottom: 24px;
31
+ }
32
+
33
+ .adm-skeleton.adm-skeleton-paragraph-line:last-child {
34
+ --width: 65%;
35
+ }
36
+
37
+ @keyframes adm-skeleton-loading {
38
+ 0% {
39
+ background-position: 100% 50%;
40
+ }
41
+
42
+ 100% {
43
+ background-position: 0 50%;
44
+ }
45
+ }
@@ -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,36 @@
1
+ import React from 'react';
2
+ import { withNativeProps } from '../../utils/native-props';
3
+ import classNames from 'classnames';
4
+ import { generateIntArray } from '../../utils/generate-int-array';
5
+ import { mergeProps } from '../../utils/with-default-props';
6
+ var classPrefix = 'adm-skeleton';
7
+ export var Skeleton = function Skeleton(props) {
8
+ var _classNames;
9
+
10
+ return withNativeProps(props, /*#__PURE__*/React.createElement("div", {
11
+ className: classNames(classPrefix, (_classNames = {}, _classNames[classPrefix + "-animated"] = props.animated, _classNames))
12
+ }));
13
+ };
14
+ export var SkeletonTitle = function SkeletonTitle(props) {
15
+ return withNativeProps(props, /*#__PURE__*/React.createElement(Skeleton, {
16
+ animated: props.animated,
17
+ className: classPrefix + "-title"
18
+ }));
19
+ };
20
+ var defaultSkeletonParagraphProps = {
21
+ lineCount: 3
22
+ };
23
+ export var SkeletonParagraph = function SkeletonParagraph(p) {
24
+ var props = mergeProps(defaultSkeletonParagraphProps, p);
25
+ var keys = generateIntArray(1, props.lineCount);
26
+ var node = /*#__PURE__*/React.createElement("div", {
27
+ className: classPrefix + "-paragraph"
28
+ }, keys.map(function (key) {
29
+ return /*#__PURE__*/React.createElement(Skeleton, {
30
+ key: key,
31
+ animated: props.animated,
32
+ className: classPrefix + "-paragraph-line"
33
+ });
34
+ }));
35
+ return withNativeProps(props, node);
36
+ };