antd-mobile 5.0.0-rc.24 → 5.0.0-rc.28

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 (243) hide show
  1. package/2x/README.md +1 -1
  2. package/2x/cjs/components/button/button.css +2 -2
  3. package/2x/cjs/components/calendar/calendar.d.ts +1 -0
  4. package/2x/cjs/components/calendar/calendar.js +8 -1
  5. package/2x/cjs/components/checkbox/checkbox.js +12 -12
  6. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  7. package/2x/cjs/components/dialog/dialog.css +4 -0
  8. package/2x/cjs/components/dropdown/dropdown.css +0 -4
  9. package/2x/cjs/components/dropdown/item.js +3 -1
  10. package/2x/cjs/components/ellipsis/ellipsis.js +3 -1
  11. package/2x/cjs/components/empty/empty.css +1 -1
  12. package/2x/cjs/components/floating-bubble/floating-bubble.css +1 -0
  13. package/2x/cjs/components/floating-panel/floating-panel.d.ts +7 -5
  14. package/2x/cjs/components/floating-panel/floating-panel.js +11 -1
  15. package/2x/cjs/components/form/form-item.css +17 -10
  16. package/2x/cjs/components/form/form-item.d.ts +1 -1
  17. package/2x/cjs/components/form/form-item.js +17 -8
  18. package/2x/cjs/components/form/form.css +0 -9
  19. package/2x/cjs/components/form/form.js +1 -1
  20. package/2x/cjs/components/form/index.css +17 -19
  21. package/2x/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  22. package/2x/cjs/components/image-uploader/image-uploader.js +2 -2
  23. package/2x/cjs/components/image-viewer/image-viewer.css +2 -0
  24. package/2x/cjs/components/image-viewer/image-viewer.js +12 -2
  25. package/2x/cjs/components/image-viewer/slide.js +11 -7
  26. package/2x/cjs/components/image-viewer/slides.d.ts +1 -1
  27. package/2x/cjs/components/index-bar/index-bar.css +2 -1
  28. package/2x/cjs/components/input/input.css +1 -0
  29. package/2x/cjs/components/input/input.d.ts +6 -2
  30. package/2x/cjs/components/input/input.js +20 -2
  31. package/2x/cjs/components/list/list.css +6 -4
  32. package/2x/cjs/components/picker/picker.d.ts +1 -0
  33. package/2x/cjs/components/picker/picker.js +3 -1
  34. package/2x/cjs/components/picker-view/wheel.js +4 -2
  35. package/2x/cjs/components/popover/index.d.ts +4 -6
  36. package/2x/cjs/components/popover/popover-menu.d.ts +9 -12
  37. package/2x/cjs/components/progress-bar/progress-bar.css +1 -1
  38. package/2x/cjs/components/progress-circle/progress-circle.css +4 -4
  39. package/2x/cjs/components/progress-circle/progress-circle.js +1 -2
  40. package/2x/cjs/components/pull-to-refresh/pull-to-refresh.js +7 -1
  41. package/2x/cjs/components/radio/radio.js +16 -3
  42. package/2x/cjs/components/rate/rate.css +2 -1
  43. package/2x/cjs/components/rate/rate.d.ts +1 -1
  44. package/2x/cjs/components/selector/selector.css +14 -6
  45. package/2x/cjs/components/selector/selector.d.ts +2 -1
  46. package/2x/cjs/components/selector/selector.js +3 -2
  47. package/2x/cjs/components/slider/slider.css +12 -7
  48. package/2x/cjs/components/slider/thumb-icon.d.ts +3 -0
  49. package/2x/cjs/components/slider/thumb-icon.js +38 -0
  50. package/2x/cjs/components/slider/thumb.js +5 -1
  51. package/2x/cjs/components/swiper/swiper.js +1 -1
  52. package/2x/cjs/components/tabs/tabs.js +5 -5
  53. package/2x/cjs/components/text-area/text-area.js +11 -1
  54. package/2x/cjs/components/virtual-input/virtual-input.js +3 -1
  55. package/2x/cjs/utils/get-scroll-parent.js +1 -1
  56. package/2x/cjs/utils/is-dev.js +1 -1
  57. package/2x/cjs/utils/use-ref-state.js +1 -1
  58. package/2x/cjs/utils/use-resize-effect.js +1 -3
  59. package/2x/cjs/utils/use-tab-list-scroll.js +1 -3
  60. package/2x/es/components/button/button.css +2 -2
  61. package/2x/es/components/calendar/calendar.d.ts +1 -0
  62. package/2x/es/components/calendar/calendar.js +8 -2
  63. package/2x/es/components/checkbox/checkbox.js +11 -12
  64. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  65. package/2x/es/components/dialog/dialog.css +4 -0
  66. package/2x/es/components/dropdown/dropdown.css +0 -4
  67. package/2x/es/components/dropdown/item.js +3 -1
  68. package/2x/es/components/ellipsis/ellipsis.js +3 -2
  69. package/2x/es/components/empty/empty.css +1 -1
  70. package/2x/es/components/floating-bubble/floating-bubble.css +1 -0
  71. package/2x/es/components/floating-panel/floating-panel.d.ts +7 -5
  72. package/2x/es/components/floating-panel/floating-panel.js +9 -1
  73. package/2x/es/components/form/form-item.css +17 -10
  74. package/2x/es/components/form/form-item.d.ts +1 -1
  75. package/2x/es/components/form/form-item.js +15 -6
  76. package/2x/es/components/form/form.css +0 -9
  77. package/2x/es/components/form/form.js +1 -1
  78. package/2x/es/components/form/index.css +17 -19
  79. package/2x/es/components/image-uploader/image-uploader.d.ts +1 -1
  80. package/2x/es/components/image-uploader/image-uploader.js +4 -4
  81. package/2x/es/components/image-viewer/image-viewer.css +2 -0
  82. package/2x/es/components/image-viewer/image-viewer.js +13 -3
  83. package/2x/es/components/image-viewer/slide.js +11 -7
  84. package/2x/es/components/image-viewer/slides.d.ts +1 -1
  85. package/2x/es/components/index-bar/index-bar.css +2 -1
  86. package/2x/es/components/input/input.css +1 -0
  87. package/2x/es/components/input/input.d.ts +6 -2
  88. package/2x/es/components/input/input.js +19 -3
  89. package/2x/es/components/list/list.css +6 -4
  90. package/2x/es/components/picker/picker.d.ts +1 -0
  91. package/2x/es/components/picker/picker.js +3 -1
  92. package/2x/es/components/picker-view/wheel.js +4 -3
  93. package/2x/es/components/popover/index.d.ts +4 -6
  94. package/2x/es/components/popover/popover-menu.d.ts +9 -12
  95. package/2x/es/components/progress-bar/progress-bar.css +1 -1
  96. package/2x/es/components/progress-circle/progress-circle.css +4 -4
  97. package/2x/es/components/progress-circle/progress-circle.js +1 -2
  98. package/2x/es/components/pull-to-refresh/pull-to-refresh.js +8 -2
  99. package/2x/es/components/radio/radio.js +14 -3
  100. package/2x/es/components/rate/rate.css +2 -1
  101. package/2x/es/components/rate/rate.d.ts +1 -1
  102. package/2x/es/components/selector/selector.css +14 -6
  103. package/2x/es/components/selector/selector.d.ts +2 -1
  104. package/2x/es/components/selector/selector.js +3 -2
  105. package/2x/es/components/slider/slider.css +12 -7
  106. package/2x/es/components/slider/thumb-icon.d.ts +3 -0
  107. package/2x/es/components/slider/thumb-icon.js +25 -0
  108. package/2x/es/components/slider/thumb.js +4 -1
  109. package/2x/es/components/swiper/swiper.js +3 -3
  110. package/2x/es/components/tabs/tabs.js +7 -7
  111. package/2x/es/components/text-area/text-area.js +10 -1
  112. package/2x/es/components/virtual-input/virtual-input.js +3 -2
  113. package/2x/es/utils/get-scroll-parent.js +1 -1
  114. package/2x/es/utils/is-dev.js +1 -1
  115. package/2x/es/utils/use-ref-state.js +2 -2
  116. package/2x/es/utils/use-resize-effect.js +2 -3
  117. package/2x/es/utils/use-tab-list-scroll.js +2 -3
  118. package/2x/package.json +7 -6
  119. package/README.md +1 -1
  120. package/cjs/components/button/button.css +2 -2
  121. package/cjs/components/calendar/calendar.d.ts +1 -0
  122. package/cjs/components/calendar/calendar.js +8 -1
  123. package/cjs/components/checkbox/checkbox.js +12 -12
  124. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  125. package/cjs/components/dialog/dialog.css +3 -0
  126. package/cjs/components/dropdown/dropdown.css +0 -3
  127. package/cjs/components/dropdown/item.js +3 -1
  128. package/cjs/components/ellipsis/ellipsis.js +3 -1
  129. package/cjs/components/empty/empty.css +1 -1
  130. package/cjs/components/floating-bubble/floating-bubble.css +1 -0
  131. package/cjs/components/floating-panel/floating-panel.d.ts +7 -5
  132. package/cjs/components/floating-panel/floating-panel.js +11 -1
  133. package/cjs/components/form/form-item.css +15 -9
  134. package/cjs/components/form/form-item.d.ts +1 -1
  135. package/cjs/components/form/form-item.js +17 -8
  136. package/cjs/components/form/form.css +0 -7
  137. package/cjs/components/form/form.js +1 -1
  138. package/cjs/components/form/index.css +15 -16
  139. package/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  140. package/cjs/components/image-uploader/image-uploader.js +2 -2
  141. package/cjs/components/image-viewer/image-viewer.css +2 -0
  142. package/cjs/components/image-viewer/image-viewer.js +12 -2
  143. package/cjs/components/image-viewer/slide.js +11 -7
  144. package/cjs/components/image-viewer/slides.d.ts +1 -1
  145. package/cjs/components/index-bar/index-bar.css +2 -1
  146. package/cjs/components/input/input.css +1 -0
  147. package/cjs/components/input/input.d.ts +6 -2
  148. package/cjs/components/input/input.js +20 -2
  149. package/cjs/components/list/list.css +5 -4
  150. package/cjs/components/picker/picker.d.ts +1 -0
  151. package/cjs/components/picker/picker.js +3 -1
  152. package/cjs/components/picker-view/wheel.js +4 -2
  153. package/cjs/components/popover/index.d.ts +4 -6
  154. package/cjs/components/popover/popover-menu.d.ts +9 -12
  155. package/cjs/components/progress-bar/progress-bar.css +1 -1
  156. package/cjs/components/progress-circle/progress-circle.css +4 -4
  157. package/cjs/components/progress-circle/progress-circle.js +1 -2
  158. package/cjs/components/pull-to-refresh/pull-to-refresh.js +7 -1
  159. package/cjs/components/radio/radio.js +16 -3
  160. package/cjs/components/rate/rate.css +2 -1
  161. package/cjs/components/rate/rate.d.ts +1 -1
  162. package/cjs/components/selector/selector.css +14 -6
  163. package/cjs/components/selector/selector.d.ts +2 -1
  164. package/cjs/components/selector/selector.js +3 -2
  165. package/cjs/components/slider/slider.css +11 -7
  166. package/cjs/components/slider/thumb-icon.d.ts +3 -0
  167. package/cjs/components/slider/thumb-icon.js +38 -0
  168. package/cjs/components/slider/thumb.js +5 -1
  169. package/cjs/components/swiper/swiper.js +1 -1
  170. package/cjs/components/tabs/tabs.js +5 -5
  171. package/cjs/components/text-area/text-area.js +11 -1
  172. package/cjs/components/virtual-input/virtual-input.js +3 -1
  173. package/cjs/utils/get-scroll-parent.js +1 -1
  174. package/cjs/utils/is-dev.js +1 -1
  175. package/cjs/utils/use-ref-state.js +1 -1
  176. package/cjs/utils/use-resize-effect.js +1 -3
  177. package/cjs/utils/use-tab-list-scroll.js +1 -3
  178. package/es/components/button/button.css +2 -2
  179. package/es/components/calendar/calendar.d.ts +1 -0
  180. package/es/components/calendar/calendar.js +8 -2
  181. package/es/components/checkbox/checkbox.js +11 -12
  182. package/es/components/date-picker/date-picker.d.ts +1 -1
  183. package/es/components/dialog/dialog.css +3 -0
  184. package/es/components/dropdown/dropdown.css +0 -3
  185. package/es/components/dropdown/item.js +3 -1
  186. package/es/components/ellipsis/ellipsis.js +3 -2
  187. package/es/components/empty/empty.css +1 -1
  188. package/es/components/floating-bubble/floating-bubble.css +1 -0
  189. package/es/components/floating-panel/floating-panel.d.ts +7 -5
  190. package/es/components/floating-panel/floating-panel.js +9 -1
  191. package/es/components/form/form-item.css +15 -9
  192. package/es/components/form/form-item.d.ts +1 -1
  193. package/es/components/form/form-item.js +15 -6
  194. package/es/components/form/form.css +0 -7
  195. package/es/components/form/form.js +1 -1
  196. package/es/components/form/index.css +15 -16
  197. package/es/components/image-uploader/image-uploader.d.ts +1 -1
  198. package/es/components/image-uploader/image-uploader.js +4 -4
  199. package/es/components/image-viewer/image-viewer.css +2 -0
  200. package/es/components/image-viewer/image-viewer.js +13 -3
  201. package/es/components/image-viewer/slide.js +11 -7
  202. package/es/components/image-viewer/slides.d.ts +1 -1
  203. package/es/components/index-bar/index-bar.css +2 -1
  204. package/es/components/input/input.css +1 -0
  205. package/es/components/input/input.d.ts +6 -2
  206. package/es/components/input/input.js +19 -3
  207. package/es/components/list/list.css +5 -4
  208. package/es/components/picker/picker.d.ts +1 -0
  209. package/es/components/picker/picker.js +3 -1
  210. package/es/components/picker-view/wheel.js +4 -3
  211. package/es/components/popover/index.d.ts +4 -6
  212. package/es/components/popover/popover-menu.d.ts +9 -12
  213. package/es/components/progress-bar/progress-bar.css +1 -1
  214. package/es/components/progress-circle/progress-circle.css +4 -4
  215. package/es/components/progress-circle/progress-circle.js +1 -2
  216. package/es/components/pull-to-refresh/pull-to-refresh.js +8 -2
  217. package/es/components/radio/radio.js +14 -3
  218. package/es/components/rate/rate.css +2 -1
  219. package/es/components/rate/rate.d.ts +1 -1
  220. package/es/components/selector/selector.css +14 -6
  221. package/es/components/selector/selector.d.ts +2 -1
  222. package/es/components/selector/selector.js +3 -2
  223. package/es/components/slider/slider.css +11 -7
  224. package/es/components/slider/thumb-icon.d.ts +3 -0
  225. package/es/components/slider/thumb-icon.js +25 -0
  226. package/es/components/slider/thumb.js +4 -1
  227. package/es/components/swiper/swiper.js +3 -3
  228. package/es/components/tabs/tabs.js +7 -7
  229. package/es/components/text-area/text-area.js +10 -1
  230. package/es/components/virtual-input/virtual-input.js +3 -2
  231. package/es/utils/get-scroll-parent.js +1 -1
  232. package/es/utils/is-dev.js +1 -1
  233. package/es/utils/use-ref-state.js +2 -2
  234. package/es/utils/use-resize-effect.js +2 -3
  235. package/es/utils/use-tab-list-scroll.js +2 -3
  236. package/package.json +7 -6
  237. package/umd/antd-mobile.js +1 -1
  238. package/2x/assets/slider-thumb.svg +0 -14
  239. package/2x/cjs/assets/slider-thumb.svg +0 -14
  240. package/2x/es/assets/slider-thumb.svg +0 -14
  241. package/assets/slider-thumb.svg +0 -14
  242. package/cjs/assets/slider-thumb.svg +0 -14
  243. package/es/assets/slider-thumb.svg +0 -14
@@ -10,7 +10,7 @@ var _react = require("react");
10
10
  function useRefState(initialState) {
11
11
  const [state, setState] = (0, _react.useState)(initialState);
12
12
  const ref = (0, _react.useRef)(state);
13
- (0, _react.useLayoutEffect)(() => {
13
+ (0, _react.useEffect)(() => {
14
14
  ref.current = state;
15
15
  }, [state]);
16
16
  return [state, setState, ref];
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useResizeEffect = useResizeEffect;
7
7
 
8
- var _react = require("react");
9
-
10
8
  var _ahooks = require("ahooks");
11
9
 
12
10
  function useResizeEffect(effect, targetRef) {
13
11
  const fn = (0, _ahooks.useMemoizedFn)(effect);
14
- (0, _react.useLayoutEffect)(() => {
12
+ (0, _ahooks.useIsomorphicLayoutEffect)(() => {
15
13
  const target = targetRef.current;
16
14
  if (!target) return;
17
15
 
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useTabListScroll = void 0;
7
7
 
8
- var _react = require("react");
9
-
10
8
  var _web = require("@react-spring/web");
11
9
 
12
10
  var _useMutationEffect = require("./use-mutation-effect");
@@ -49,7 +47,7 @@ const useTabListScroll = (targetRef, activeIndex) => {
49
47
  });
50
48
  }
51
49
 
52
- (0, _react.useLayoutEffect)(() => {
50
+ (0, _ahooks.useIsomorphicLayoutEffect)(() => {
53
51
  animate(true);
54
52
  }, []);
55
53
  (0, _ahooks.useUpdateLayoutEffect)(() => {
@@ -12,9 +12,9 @@
12
12
  display: inline-block;
13
13
  box-sizing: border-box;
14
14
  height: auto;
15
- padding: 16px 24px;
15
+ padding: 14px 24px;
16
16
  margin: 0;
17
- font-size: 30px;
17
+ font-size: 34px;
18
18
  line-height: 1.4;
19
19
  text-align: center;
20
20
  border: var(--border-width) var(--border-style) var(--border-color);
@@ -3,6 +3,7 @@ import { NativeProps } from '../../utils/native-props';
3
3
  export declare type CalendarProps = {
4
4
  weekStartsOn?: 'Monday' | 'Sunday';
5
5
  renderLabel?: (date: Date) => string | null | undefined;
6
+ onPageChange?: (year: number, month: number) => void;
6
7
  } & ({
7
8
  selectionMode?: undefined;
8
9
  value?: undefined;
@@ -1,4 +1,4 @@
1
- import React, { useLayoutEffect, useMemo, useState } from 'react';
1
+ import React, { useMemo, useState } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import dayjs from 'dayjs';
4
4
  import classNames from 'classnames';
@@ -7,6 +7,7 @@ import { ArrowLeft } from './arrow-left';
7
7
  import { ArrowLeftDouble } from './arrow-left-double';
8
8
  import { useConfig } from '../config-provider';
9
9
  import isoWeek from 'dayjs/plugin/isoWeek';
10
+ import { useIsomorphicLayoutEffect, useUpdateEffect } from 'ahooks';
10
11
  dayjs.extend(isoWeek);
11
12
  const classPrefix = 'adm-calendar';
12
13
  const defaultProps = {
@@ -26,6 +27,11 @@ export const Calendar = p => {
26
27
  }
27
28
 
28
29
  const [current, setCurrent] = useState(() => dayjs().date(1));
30
+ useUpdateEffect(() => {
31
+ var _a;
32
+
33
+ (_a = props.onPageChange) === null || _a === void 0 ? void 0 : _a.call(props, current.year(), current.month() + 1);
34
+ }, [current]);
29
35
  const header = React.createElement("div", {
30
36
  className: `${classPrefix}-header`
31
37
  }, React.createElement("a", {
@@ -65,7 +71,7 @@ export const Calendar = p => {
65
71
  }, [props.selectionMode, props.value, props.defaultValue]);
66
72
  const [begin, setBegin] = useState(null);
67
73
  const [end, setEnd] = useState(null);
68
- useLayoutEffect(() => {
74
+ useIsomorphicLayoutEffect(() => {
69
75
  setBegin(dateRange[0] ? dayjs(dateRange[0]) : null);
70
76
  setEnd(dateRange[1] ? dayjs(dateRange[1]) : null);
71
77
  }, [dateRange[0], dateRange[1]]);
@@ -7,6 +7,7 @@ import { mergeProps } from '../../utils/with-default-props';
7
7
  import { devWarning } from '../../utils/dev-log';
8
8
  import { CheckIcon } from './check-icon';
9
9
  import { IndeterminateIcon } from './indeterminate-icon';
10
+ import { isDev } from '../../utils/is-dev';
10
11
  const classPrefix = `adm-checkbox`;
11
12
  const defaultProps = {
12
13
  defaultChecked: false,
@@ -21,23 +22,21 @@ export const Checkbox = p => {
21
22
  onChange: props.onChange
22
23
  });
23
24
  let disabled = props.disabled;
24
-
25
- const usageWarning = () => {
26
- if (p.checked !== undefined) {
27
- devWarning('Checkbox', 'When used with `Checkbox.Group`, the `checked` prop of `Checkbox` will not work if `value` prop of `Checkbox` is not undefined.');
28
- }
29
-
30
- if (p.defaultChecked !== undefined) {
31
- devWarning('Checkbox', 'When used with `Checkbox.Group`, the `defaultChecked` prop of `Checkbox` will not work if `value` prop of `Checkbox` is not undefined.');
32
- }
33
- };
34
-
35
25
  const {
36
26
  value
37
27
  } = props;
38
28
 
39
29
  if (groupContext && value !== undefined) {
40
- usageWarning();
30
+ if (isDev) {
31
+ if (p.checked !== undefined) {
32
+ devWarning('Checkbox', 'When used within `Checkbox.Group`, the `checked` prop of `Checkbox` will not work.');
33
+ }
34
+
35
+ if (p.defaultChecked !== undefined) {
36
+ devWarning('Checkbox', 'When used within `Checkbox.Group`, the `defaultChecked` prop of `Checkbox` will not work.');
37
+ }
38
+ }
39
+
41
40
  checked = groupContext.value.includes(value);
42
41
 
43
42
  setChecked = checked => {
@@ -2,7 +2,7 @@ import { FC, ReactNode } from 'react';
2
2
  import type { PickerProps } from '../picker';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import type { Precision, DatePickerFilter } from './date-picker-utils';
5
- export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation' | 'style'> & {
5
+ export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'closeOnMaskClick' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation' | 'style'> & {
6
6
  value?: Date | null;
7
7
  defaultValue?: Date | null;
8
8
  onSelect?: (value: Date) => void;
@@ -37,6 +37,10 @@
37
37
  flex: auto;
38
38
  }
39
39
 
40
+ .adm-dialog-main > .adm-dialog-image-container + .adm-dialog-body {
41
+ padding-top: 24px;
42
+ }
43
+
40
44
  .adm-dialog-main .adm-dialog-body {
41
45
  padding: 40px 24px;
42
46
  }
@@ -53,10 +53,6 @@
53
53
  color: var(--adm-color-primary);
54
54
  }
55
55
 
56
- .adm-dropdown-item-active {
57
- color: var(--adm-color-primary);
58
- }
59
-
60
56
  .adm-dropdown-item-active .adm-dropdown-item-title:after {
61
57
  margin-top: -2px;
62
58
  transform: rotate(135deg);
@@ -6,9 +6,11 @@ import { DownFill } from 'antd-mobile-icons';
6
6
  const classPrefix = `adm-dropdown-item`;
7
7
 
8
8
  const Item = props => {
9
+ var _a;
10
+
9
11
  const cls = classNames(classPrefix, {
10
12
  [`${classPrefix}-active`]: props.active,
11
- [`${classPrefix}-highlight`]: props.highlight
13
+ [`${classPrefix}-highlight`]: (_a = props.highlight) !== null && _a !== void 0 ? _a : props.active
12
14
  });
13
15
  return withNativeProps(props, React.createElement("div", {
14
16
  className: cls,
@@ -1,7 +1,8 @@
1
- import React, { useLayoutEffect, useRef, useState } from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
  import { mergeProps } from '../../utils/with-default-props';
3
3
  import { withNativeProps } from '../../utils/native-props';
4
4
  import { useResizeEffect } from '../../utils/use-resize-effect';
5
+ import { useIsomorphicLayoutEffect } from 'ahooks';
5
6
  const classPrefix = `adm-ellipsis`;
6
7
  const defaultProps = {
7
8
  direction: 'end',
@@ -113,7 +114,7 @@ export const Ellipsis = p => {
113
114
  }
114
115
 
115
116
  useResizeEffect(calcEllipsised, rootRef);
116
- useLayoutEffect(() => {
117
+ useIsomorphicLayoutEffect(() => {
117
118
  calcEllipsised();
118
119
  }, [props.content, props.direction, props.rows, props.expandText, props.collapseText]);
119
120
  const expandActionElement = exceeded && props.expandText ? React.createElement("a", {
@@ -11,7 +11,7 @@
11
11
  justify-content: center;
12
12
  }
13
13
 
14
- .adm-empty-image-container-image {
14
+ .adm-empty-image-container .adm-empty-image {
15
15
  width: 128px;
16
16
  }
17
17
 
@@ -16,6 +16,7 @@
16
16
  width: 100vw;
17
17
  height: 100vh;
18
18
  padding: var(--edge-distance);
19
+ box-sizing: border-box;
19
20
  pointer-events: none;
20
21
  }
21
22
 
@@ -1,17 +1,19 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
- export declare type FloatingPanelProps = {
4
- anchors: number[];
5
- children: ReactNode;
6
- onHeightChange?: (height: number, animating: boolean) => void;
7
- } & NativeProps<'--border-radius' | '--z-index'>;
8
3
  export declare type FloatingPanelRef = {
9
4
  setHeight: (height: number, options?: {
10
5
  immediate?: boolean;
11
6
  }) => void;
12
7
  };
8
+ export declare type FloatingPanelProps = {
9
+ anchors: number[];
10
+ children: ReactNode;
11
+ onHeightChange?: (height: number, animating: boolean) => void;
12
+ handleDraggingOfContent?: boolean;
13
+ } & NativeProps<'--border-radius' | '--z-index'>;
13
14
  export declare const FloatingPanel: React.ForwardRefExoticComponent<{
14
15
  anchors: number[];
15
16
  children: ReactNode;
16
17
  onHeightChange?: ((height: number, animating: boolean) => void) | undefined;
18
+ handleDraggingOfContent?: boolean | undefined;
17
19
  } & NativeProps<"--z-index" | "--border-radius"> & React.RefAttributes<FloatingPanelRef>>;
@@ -4,9 +4,15 @@ import { useDrag } from '@use-gesture/react';
4
4
  import { useSpring, animated } from '@react-spring/web';
5
5
  import { supportsPassive } from '../../utils/supports-passive';
6
6
  import { nearest } from '../../utils/nearest';
7
- export const FloatingPanel = forwardRef((props, ref) => {
7
+ import { mergeProps } from '../../utils/with-default-props';
8
+ import { useLockScroll } from '../../utils/use-lock-scroll';
9
+ const defaultProps = {
10
+ handleDraggingOfContent: true
11
+ };
12
+ export const FloatingPanel = forwardRef((p, ref) => {
8
13
  var _a;
9
14
 
15
+ const props = mergeProps(defaultProps, p);
10
16
  const {
11
17
  anchors
12
18
  } = props;
@@ -44,6 +50,7 @@ export const FloatingPanel = forwardRef((props, ref) => {
44
50
  if (header === target || (header === null || header === void 0 ? void 0 : header.contains(target))) {
45
51
  pullingRef.current = true;
46
52
  } else {
53
+ if (!props.handleDraggingOfContent) return;
47
54
  const reachedTop = y.goal <= bounds.top;
48
55
  const content = contentRef.current;
49
56
  if (!content) return;
@@ -101,6 +108,7 @@ export const FloatingPanel = forwardRef((props, ref) => {
101
108
  });
102
109
  }
103
110
  }), [api]);
111
+ useLockScroll(elementRef, true);
104
112
  return withNativeProps(props, React.createElement(animated.div, {
105
113
  ref: elementRef,
106
114
  className: 'adm-floating-panel',
@@ -8,6 +8,7 @@
8
8
  line-height: 1.5;
9
9
  box-sizing: border-box;
10
10
  position: relative;
11
+ color: #666666;
11
12
  }
12
13
 
13
14
  .adm-form-item-label-required {
@@ -19,28 +20,34 @@
19
20
  user-select: none;
20
21
  }
21
22
 
23
+ .adm-form-item-label-help {
24
+ margin-left: 8px;
25
+ }
26
+
22
27
  .adm-form-item-footer {
23
28
  color: var(--adm-color-danger);
29
+ margin-top: 8px;
24
30
  }
25
31
 
26
32
  .adm-form-item.adm-form-item-hidden {
27
33
  display: none;
28
34
  }
29
35
 
30
- .adm-form-vertical .adm-form-item-label {
31
- font-size: 30px;
32
- margin-bottom: 8px;
36
+ .adm-form-item.adm-form-item-horizontal.adm-list-item {
37
+ --align-items: stretch;
38
+ --prefix-width: 6em;
33
39
  }
34
40
 
35
- .adm-form-vertical .adm-form-item-footer {
36
- margin-top: 8px;
37
- }
38
-
39
- .adm-form-horizontal .adm-list-item-content-prefix {
41
+ .adm-form-item.adm-form-item-horizontal .adm-list-item-content-prefix {
40
42
  padding-top: 24px;
41
43
  padding-bottom: 24px;
42
44
  }
43
45
 
44
- .adm-form-item-label {
45
- color: #666666;
46
+ .adm-form-item.adm-form-item-horizontal .adm-list-item-content-extra {
47
+ align-self: center;
48
+ }
49
+
50
+ .adm-form-item.adm-form-item-vertical .adm-form-item-label {
51
+ font-size: 30px;
52
+ margin-bottom: 8px;
46
53
  }
@@ -7,7 +7,7 @@ import type { FormLayout } from './index';
7
7
  declare type RenderChildren<Values = any> = (form: FormInstance<Values>) => React.ReactNode;
8
8
  declare type ChildrenType<Values = any> = RenderChildren<Values> | React.ReactNode;
9
9
  declare type RcFieldProps = Omit<FieldProps, 'children'>;
10
- export declare type FormItemProps = Pick<RcFieldProps, 'dependencies' | 'valuePropName' | 'name' | 'rules' | 'messageVariables' | 'trigger' | 'validateTrigger' | 'shouldUpdate'> & Pick<ListItemProps, 'style' | 'onClick' | 'extra' | 'arrow'> & {
10
+ export declare type FormItemProps = Pick<RcFieldProps, 'dependencies' | 'valuePropName' | 'name' | 'rules' | 'messageVariables' | 'trigger' | 'validateTrigger' | 'shouldUpdate' | 'initialValue'> & Pick<ListItemProps, 'style' | 'onClick' | 'extra' | 'arrow' | 'description'> & {
11
11
  label?: React.ReactNode;
12
12
  help?: React.ReactNode;
13
13
  hasFeedback?: boolean;
@@ -7,6 +7,8 @@ import { devWarning } from '../../utils/dev-log';
7
7
  import { FormContext, NoStyleItemContext } from './context';
8
8
  import { toArray } from './utils';
9
9
  import List from '../list';
10
+ import Popover from '../popover';
11
+ import { QuestionCircleOutline } from 'antd-mobile-icons';
10
12
  const NAME_SPLIT = '__SPLIT__';
11
13
  const classPrefix = `adm-form-item`;
12
14
  const MemoInput = React.memo(({
@@ -26,7 +28,8 @@ const FormItemLayout = props => {
26
28
  htmlFor,
27
29
  hidden,
28
30
  errors,
29
- arrow
31
+ arrow,
32
+ description
30
33
  } = props;
31
34
  const context = useContext(FormContext);
32
35
  const hasFeedback = props.hasFeedback !== undefined ? props.hasFeedback : context.hasFeedback;
@@ -39,17 +42,21 @@ const FormItemLayout = props => {
39
42
  className: `${classPrefix}-label-required`
40
43
  }, "*"), help && React.createElement("span", {
41
44
  className: `${classPrefix}-label-help`
42
- }, help)) : null;
43
- const descriptionElement = feedback && React.createElement("div", {
45
+ }, React.createElement(Popover, {
46
+ content: help,
47
+ mode: 'dark',
48
+ trigger: 'click'
49
+ }, React.createElement(QuestionCircleOutline, null)))) : null;
50
+ const descriptionElement = feedback || description ? React.createElement(React.Fragment, null, description, React.createElement("div", {
44
51
  className: `${classPrefix}-footer`
45
- }, feedback);
52
+ }, feedback)) : null;
46
53
  return React.createElement(List.Item, {
47
54
  style: style,
48
55
  title: layout === 'vertical' && labelElement,
49
56
  prefix: layout === 'horizontal' && labelElement,
50
57
  extra: extra,
51
58
  description: descriptionElement,
52
- className: classNames(classPrefix, className, {
59
+ className: classNames(classPrefix, className, `${classPrefix}-${layout}`, {
53
60
  [`${classPrefix}-hidden`]: hidden
54
61
  }),
55
62
  disabled: disabled,
@@ -73,6 +80,7 @@ export const FormItem = props => {
73
80
  noStyle,
74
81
  hidden,
75
82
  layout,
83
+ description,
76
84
  // Field 相关
77
85
  disabled,
78
86
  rules,
@@ -85,7 +93,7 @@ export const FormItem = props => {
85
93
  dependencies,
86
94
  arrow
87
95
  } = props,
88
- fieldProps = __rest(props, ["className", "style", "label", "help", "extra", "hasFeedback", "name", "required", "noStyle", "hidden", "layout", "disabled", "rules", "children", "messageVariables", "trigger", "validateTrigger", "onClick", "shouldUpdate", "dependencies", "arrow"]);
96
+ fieldProps = __rest(props, ["className", "style", "label", "help", "extra", "hasFeedback", "name", "required", "noStyle", "hidden", "layout", "description", "disabled", "rules", "children", "messageVariables", "trigger", "validateTrigger", "onClick", "shouldUpdate", "dependencies", "arrow"]);
89
97
 
90
98
  const {
91
99
  validateTrigger: contextValidateTrigger
@@ -134,6 +142,7 @@ export const FormItem = props => {
134
142
  label: label,
135
143
  extra: extra,
136
144
  help: help,
145
+ description: description,
137
146
  required: isRequired,
138
147
  disabled: disabled,
139
148
  hasFeedback: hasFeedback,
@@ -3,15 +3,6 @@
3
3
  --padding-right: 24px;
4
4
  }
5
5
 
6
- .adm-form-horizontal .adm-list.adm-list {
7
- --prefix-width: 6em;
8
- --align-items: stretch;
9
- }
10
-
11
- .adm-form-horizontal .adm-list.adm-list .adm-list-item-content-extra {
12
- align-self: center;
13
- }
14
-
15
6
  .adm-form .adm-form-footer {
16
7
  padding: 40px 24px;
17
8
  }
@@ -51,7 +51,7 @@ export const Form = forwardRef((p, ref) => {
51
51
  });
52
52
  collect();
53
53
  return React.createElement(RcForm, Object.assign({
54
- className: classNames(classPrefix, `${classPrefix}-${layout}`, className),
54
+ className: classNames(classPrefix, className),
55
55
  style: style,
56
56
  ref: ref
57
57
  }, formProps), React.createElement(FormContext.Provider, {
@@ -3,15 +3,6 @@
3
3
  --padding-right: 24px;
4
4
  }
5
5
 
6
- .adm-form-horizontal .adm-list.adm-list {
7
- --prefix-width: 6em;
8
- --align-items: stretch;
9
- }
10
-
11
- .adm-form-horizontal .adm-list.adm-list .adm-list-item-content-extra {
12
- align-self: center;
13
- }
14
-
15
6
  .adm-form .adm-form-footer {
16
7
  padding: 40px 24px;
17
8
  }
@@ -26,6 +17,7 @@
26
17
  line-height: 1.5;
27
18
  box-sizing: border-box;
28
19
  position: relative;
20
+ color: #666666;
29
21
  }
30
22
 
31
23
  .adm-form-item-label-required {
@@ -37,28 +29,34 @@
37
29
  user-select: none;
38
30
  }
39
31
 
32
+ .adm-form-item-label-help {
33
+ margin-left: 8px;
34
+ }
35
+
40
36
  .adm-form-item-footer {
41
37
  color: var(--adm-color-danger);
38
+ margin-top: 8px;
42
39
  }
43
40
 
44
41
  .adm-form-item.adm-form-item-hidden {
45
42
  display: none;
46
43
  }
47
44
 
48
- .adm-form-vertical .adm-form-item-label {
49
- font-size: 30px;
50
- margin-bottom: 8px;
51
- }
52
-
53
- .adm-form-vertical .adm-form-item-footer {
54
- margin-top: 8px;
45
+ .adm-form-item.adm-form-item-horizontal.adm-list-item {
46
+ --align-items: stretch;
47
+ --prefix-width: 6em;
55
48
  }
56
49
 
57
- .adm-form-horizontal .adm-list-item-content-prefix {
50
+ .adm-form-item.adm-form-item-horizontal .adm-list-item-content-prefix {
58
51
  padding-top: 24px;
59
52
  padding-bottom: 24px;
60
53
  }
61
54
 
62
- .adm-form-item-label {
63
- color: #666666;
55
+ .adm-form-item.adm-form-item-horizontal .adm-list-item-content-extra {
56
+ align-self: center;
57
+ }
58
+
59
+ .adm-form-item.adm-form-item-vertical .adm-form-item-label {
60
+ font-size: 30px;
61
+ margin-bottom: 8px;
64
62
  }
@@ -19,7 +19,7 @@ export declare type ImageUploaderProps = {
19
19
  showUpload?: boolean;
20
20
  deletable?: boolean;
21
21
  capture?: InputHTMLAttributes<unknown>['capture'];
22
- onPreview?: (index: number) => void;
22
+ onPreview?: (index: number, item: ImageUploadItem) => void;
23
23
  beforeUpload?: (file: File[]) => Promise<File[]> | File[];
24
24
  upload: (file: File) => Promise<ImageUploadItem>;
25
25
  onDelete?: (item: ImageUploadItem) => boolean | Promise<boolean> | void;
@@ -1,11 +1,11 @@
1
1
  import { __awaiter } from "tslib";
2
- import React, { useLayoutEffect, useRef, useState } from 'react';
2
+ import React, { useRef, useState } from 'react';
3
3
  import { AddOutline } from 'antd-mobile-icons';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import ImageViewer from '../image-viewer';
6
6
  import PreviewItem from './preview-item';
7
7
  import { usePropsValue } from '../../utils/use-props-value';
8
- import { useMemoizedFn, useUnmount } from 'ahooks';
8
+ import { useIsomorphicLayoutEffect, useMemoizedFn, useUnmount } from 'ahooks';
9
9
  import Space from '../space';
10
10
  import { withNativeProps } from '../../utils/native-props';
11
11
  const classPrefix = `adm-image-uploader`;
@@ -26,7 +26,7 @@ export const ImageUploader = p => {
26
26
  setValue(updater(value));
27
27
  });
28
28
  const [tasks, setTasks] = useState([]);
29
- useLayoutEffect(() => {
29
+ useIsomorphicLayoutEffect(() => {
30
30
  setTasks(prev => prev.filter(task => {
31
31
  if (task.url === undefined) return true;
32
32
  return !value.some(fileItem => fileItem.url === task.url);
@@ -144,7 +144,7 @@ export const ImageUploader = p => {
144
144
  previewImage(index);
145
145
  }
146
146
 
147
- onPreview && onPreview(index);
147
+ onPreview && onPreview(index, fileItem);
148
148
  },
149
149
  onDelete: () => __awaiter(void 0, void 0, void 0, function* () {
150
150
  var _c;
@@ -11,6 +11,7 @@
11
11
  position: relative;
12
12
  z-index: 1;
13
13
  cursor: grab;
14
+ touch-action: none;
14
15
  }
15
16
 
16
17
  .adm-image-viewer-slides-inner {
@@ -37,6 +38,7 @@
37
38
  width: 100%;
38
39
  height: 100%;
39
40
  cursor: grab;
41
+ touch-action: none;
40
42
  }
41
43
 
42
44
  .adm-image-viewer-image-wrapper {
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
2
2
  import { mergeProps } from '../../utils/with-default-props';
3
3
  import { renderToContainer } from '../../utils/render-to-container';
4
4
  import Mask from '../mask';
@@ -35,6 +35,16 @@ const multiDefaultProps = Object.assign(Object.assign({}, defaultProps), {
35
35
  });
36
36
  export const MultiImageViewer = forwardRef((p, ref) => {
37
37
  const props = mergeProps(multiDefaultProps, p);
38
+ const [defaultIndex, setDefaultIndex] = useState(props.defaultIndex);
39
+ const slidesRef = useRef(null);
40
+ useImperativeHandle(ref, () => ({
41
+ swipeTo: (index, immediate) => {
42
+ var _a;
43
+
44
+ setDefaultIndex(index);
45
+ (_a = slidesRef.current) === null || _a === void 0 ? void 0 : _a.swipeTo(index, immediate);
46
+ }
47
+ }));
38
48
  const node = React.createElement(Mask, {
39
49
  visible: props.visible,
40
50
  disableBodyScroll: false,
@@ -43,8 +53,8 @@ export const MultiImageViewer = forwardRef((p, ref) => {
43
53
  }, React.createElement("div", {
44
54
  className: `${classPrefix}-content`
45
55
  }, props.images && React.createElement(Slides, {
46
- ref: ref,
47
- defaultIndex: props.defaultIndex,
56
+ ref: slidesRef,
57
+ defaultIndex: defaultIndex,
48
58
  onIndexChange: props.onIndexChange,
49
59
  images: props.images,
50
60
  onTap: () => {
@@ -22,7 +22,7 @@ export const Slide = props => {
22
22
  const pinchLockRef = useRef(false);
23
23
  useGesture({
24
24
  onDrag: state => {
25
- if (state.tap && state.elapsedTime > 0) {
25
+ if (state.tap && state.elapsedTime > 0 && state.elapsedTime < 1000) {
26
26
  // 判断点击时间>0是为了过滤掉非正常操作,例如用户长按选择图片之后的取消操作(也是一次点击)
27
27
  props.onTap();
28
28
  return;
@@ -81,13 +81,16 @@ export const Slide = props => {
81
81
  target: controlRef,
82
82
  drag: {
83
83
  // filterTaps: true,
84
- from: () => [x.get(), y.get()]
84
+ from: () => [x.get(), y.get()],
85
+ pointer: {
86
+ touch: true
87
+ }
85
88
  },
86
89
  pinch: {
87
- from: () => [zoom.get(), 0]
88
- },
89
- pointer: {
90
- touch: true
90
+ from: () => [zoom.get(), 0],
91
+ pointer: {
92
+ touch: true
93
+ }
91
94
  }
92
95
  });
93
96
  return React.createElement("div", {
@@ -109,6 +112,7 @@ export const Slide = props => {
109
112
  }
110
113
  }, React.createElement("img", {
111
114
  src: props.image,
112
- draggable: false
115
+ draggable: false,
116
+ alt: props.image
113
117
  }))));
114
118
  };
@@ -7,6 +7,6 @@ export declare type SlidesType = {
7
7
  onIndexChange?: (index: number) => void;
8
8
  };
9
9
  export declare type SlidesRef = {
10
- swipeTo: (index: number, immediate: boolean) => void;
10
+ swipeTo: (index: number, immediate?: boolean) => void;
11
11
  };
12
12
  export declare const Slides: React.ForwardRefExoticComponent<SlidesType & React.RefAttributes<SlidesRef>>;