antd-mobile 5.36.1 → 5.37.1

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 (224) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +1260 -1138
  2. package/2x/bundle/antd-mobile.cjs.js +7 -7
  3. package/2x/bundle/antd-mobile.es.development.js +1260 -1138
  4. package/2x/bundle/antd-mobile.es.js +6853 -6777
  5. package/2x/bundle/antd-mobile.umd.development.js +1260 -1138
  6. package/2x/bundle/antd-mobile.umd.js +7 -7
  7. package/2x/bundle/style.css +50 -53
  8. package/2x/cjs/components/calendar-picker/calendar-picker.js +12 -6
  9. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +3 -0
  10. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.js +41 -19
  11. package/2x/cjs/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  12. package/2x/cjs/components/calendar-picker-view/useSyncScroll.js +39 -0
  13. package/2x/cjs/components/card/card.css +5 -5
  14. package/2x/cjs/components/card/card.patch.css +21 -0
  15. package/2x/cjs/components/center-popup/center-popup.js +46 -43
  16. package/2x/cjs/components/check-list/check-list.js +15 -11
  17. package/2x/cjs/components/collapse/collapse.d.ts +9 -1
  18. package/2x/cjs/components/collapse/collapse.js +26 -28
  19. package/2x/cjs/components/config-provider/config-provider.d.ts +40 -2
  20. package/2x/cjs/components/dropdown/context.d.ts +2 -0
  21. package/2x/cjs/components/dropdown/context.js +10 -0
  22. package/2x/cjs/components/dropdown/dropdown.d.ts +11 -3
  23. package/2x/cjs/components/dropdown/dropdown.js +23 -16
  24. package/2x/cjs/components/dropdown/index.d.ts +1 -0
  25. package/2x/cjs/components/dropdown/item.d.ts +5 -1
  26. package/2x/cjs/components/dropdown/item.js +22 -8
  27. package/2x/cjs/components/form/form-item.d.ts +6 -5
  28. package/2x/cjs/components/form/form-item.js +25 -17
  29. package/2x/cjs/components/form/form.d.ts +1 -1
  30. package/2x/cjs/components/form/index.d.ts +1 -1
  31. package/2x/cjs/components/input/input.d.ts +3 -1
  32. package/2x/cjs/components/input/input.js +53 -51
  33. package/2x/cjs/components/list/list-item.d.ts +6 -2
  34. package/2x/cjs/components/list/list-item.js +16 -6
  35. package/2x/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  36. package/2x/cjs/components/nav-bar/nav-bar.js +20 -15
  37. package/2x/cjs/components/notice-bar/notice-bar.css +0 -3
  38. package/2x/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  39. package/2x/cjs/components/notice-bar/notice-bar.js +30 -25
  40. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  41. package/2x/cjs/components/number-keyboard/number-keyboard.js +14 -13
  42. package/2x/cjs/components/popup/popup-base-props.d.ts +3 -2
  43. package/2x/cjs/components/popup/popup-base-props.js +4 -0
  44. package/2x/cjs/components/popup/popup.js +5 -5
  45. package/2x/cjs/components/result/result.js +3 -10
  46. package/2x/cjs/components/result/use-result-icon.d.ts +3 -0
  47. package/2x/cjs/components/result/use-result-icon.js +37 -0
  48. package/2x/cjs/components/result-page/result-page.js +3 -10
  49. package/2x/cjs/components/search-bar/search-bar.d.ts +10 -2
  50. package/2x/cjs/components/search-bar/search-bar.js +34 -33
  51. package/2x/cjs/components/toast/toast.d.ts +2 -2
  52. package/2x/cjs/components/toast/toast.js +4 -4
  53. package/2x/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  54. package/2x/cjs/components/virtual-input/virtual-input.js +26 -24
  55. package/2x/cjs/utils/is-node-with-content.d.ts +3 -0
  56. package/2x/cjs/utils/is-node-with-content.js +3 -0
  57. package/2x/cjs/utils/with-default-props.d.ts +7 -0
  58. package/2x/cjs/utils/with-default-props.js +21 -5
  59. package/2x/es/components/calendar-picker/calendar-picker.js +11 -5
  60. package/2x/es/components/calendar-picker-view/calendar-picker-view.d.ts +3 -0
  61. package/2x/es/components/calendar-picker-view/calendar-picker-view.js +40 -19
  62. package/2x/es/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  63. package/2x/es/components/calendar-picker-view/useSyncScroll.js +33 -0
  64. package/2x/es/components/card/card.css +5 -5
  65. package/2x/es/components/card/card.patch.css +21 -0
  66. package/2x/es/components/center-popup/center-popup.js +45 -42
  67. package/2x/es/components/check-list/check-list.js +15 -11
  68. package/2x/es/components/collapse/collapse.d.ts +9 -1
  69. package/2x/es/components/collapse/collapse.js +26 -28
  70. package/2x/es/components/config-provider/config-provider.d.ts +40 -2
  71. package/2x/es/components/dropdown/context.d.ts +2 -0
  72. package/2x/es/components/dropdown/context.js +2 -0
  73. package/2x/es/components/dropdown/dropdown.d.ts +11 -3
  74. package/2x/es/components/dropdown/dropdown.js +24 -17
  75. package/2x/es/components/dropdown/index.d.ts +1 -0
  76. package/2x/es/components/dropdown/item.d.ts +5 -1
  77. package/2x/es/components/dropdown/item.js +22 -8
  78. package/2x/es/components/form/form-item.d.ts +6 -5
  79. package/2x/es/components/form/form-item.js +24 -16
  80. package/2x/es/components/form/form.d.ts +1 -1
  81. package/2x/es/components/form/index.d.ts +1 -1
  82. package/2x/es/components/input/input.d.ts +3 -1
  83. package/2x/es/components/input/input.js +52 -50
  84. package/2x/es/components/list/list-item.d.ts +6 -2
  85. package/2x/es/components/list/list-item.js +16 -6
  86. package/2x/es/components/nav-bar/nav-bar.d.ts +4 -0
  87. package/2x/es/components/nav-bar/nav-bar.js +21 -16
  88. package/2x/es/components/notice-bar/notice-bar.css +0 -3
  89. package/2x/es/components/notice-bar/notice-bar.d.ts +3 -1
  90. package/2x/es/components/notice-bar/notice-bar.js +29 -24
  91. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  92. package/2x/es/components/number-keyboard/number-keyboard.js +13 -12
  93. package/2x/es/components/popup/popup-base-props.d.ts +3 -2
  94. package/2x/es/components/popup/popup-base-props.js +3 -0
  95. package/2x/es/components/popup/popup.js +5 -5
  96. package/2x/es/components/result/result.js +3 -10
  97. package/2x/es/components/result/use-result-icon.d.ts +3 -0
  98. package/2x/es/components/result/use-result-icon.js +29 -0
  99. package/2x/es/components/result-page/result-page.js +3 -10
  100. package/2x/es/components/search-bar/search-bar.d.ts +10 -2
  101. package/2x/es/components/search-bar/search-bar.js +33 -32
  102. package/2x/es/components/toast/toast.d.ts +2 -2
  103. package/2x/es/components/toast/toast.js +3 -3
  104. package/2x/es/components/virtual-input/virtual-input.d.ts +5 -5
  105. package/2x/es/components/virtual-input/virtual-input.js +25 -23
  106. package/2x/es/utils/is-node-with-content.d.ts +3 -0
  107. package/2x/es/utils/is-node-with-content.js +3 -0
  108. package/2x/es/utils/with-default-props.d.ts +7 -0
  109. package/2x/es/utils/with-default-props.js +20 -5
  110. package/2x/package.json +1 -1
  111. package/bundle/antd-mobile.cjs.development.js +1260 -1138
  112. package/bundle/antd-mobile.cjs.js +7 -7
  113. package/bundle/antd-mobile.compatible.umd.js +1 -1
  114. package/bundle/antd-mobile.es.development.js +1260 -1138
  115. package/bundle/antd-mobile.es.js +6853 -6777
  116. package/bundle/antd-mobile.umd.development.js +1260 -1138
  117. package/bundle/antd-mobile.umd.js +7 -7
  118. package/bundle/style.css +1 -1
  119. package/cjs/components/calendar-picker/calendar-picker.js +12 -6
  120. package/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +3 -0
  121. package/cjs/components/calendar-picker-view/calendar-picker-view.js +41 -19
  122. package/cjs/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  123. package/cjs/components/calendar-picker-view/useSyncScroll.js +39 -0
  124. package/cjs/components/card/card.css +5 -5
  125. package/cjs/components/card/card.patch.css +17 -0
  126. package/cjs/components/center-popup/center-popup.js +46 -43
  127. package/cjs/components/check-list/check-list.js +15 -11
  128. package/cjs/components/collapse/collapse.d.ts +9 -1
  129. package/cjs/components/collapse/collapse.js +26 -28
  130. package/cjs/components/config-provider/config-provider.d.ts +40 -2
  131. package/cjs/components/dropdown/context.d.ts +2 -0
  132. package/cjs/components/dropdown/context.js +10 -0
  133. package/cjs/components/dropdown/dropdown.d.ts +11 -3
  134. package/cjs/components/dropdown/dropdown.js +23 -16
  135. package/cjs/components/dropdown/index.d.ts +1 -0
  136. package/cjs/components/dropdown/item.d.ts +5 -1
  137. package/cjs/components/dropdown/item.js +22 -8
  138. package/cjs/components/form/form-item.d.ts +6 -5
  139. package/cjs/components/form/form-item.js +25 -17
  140. package/cjs/components/form/form.d.ts +1 -1
  141. package/cjs/components/form/index.d.ts +1 -1
  142. package/cjs/components/input/input.d.ts +3 -1
  143. package/cjs/components/input/input.js +53 -51
  144. package/cjs/components/list/list-item.d.ts +6 -2
  145. package/cjs/components/list/list-item.js +16 -6
  146. package/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  147. package/cjs/components/nav-bar/nav-bar.js +20 -15
  148. package/cjs/components/notice-bar/notice-bar.css +0 -2
  149. package/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  150. package/cjs/components/notice-bar/notice-bar.js +30 -25
  151. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  152. package/cjs/components/number-keyboard/number-keyboard.js +14 -13
  153. package/cjs/components/popup/popup-base-props.d.ts +3 -2
  154. package/cjs/components/popup/popup-base-props.js +4 -0
  155. package/cjs/components/popup/popup.js +5 -5
  156. package/cjs/components/result/result.js +3 -10
  157. package/cjs/components/result/use-result-icon.d.ts +3 -0
  158. package/cjs/components/result/use-result-icon.js +37 -0
  159. package/cjs/components/result-page/result-page.js +3 -10
  160. package/cjs/components/search-bar/search-bar.d.ts +10 -2
  161. package/cjs/components/search-bar/search-bar.js +34 -33
  162. package/cjs/components/toast/toast.css +1 -1
  163. package/cjs/components/toast/toast.d.ts +2 -2
  164. package/cjs/components/toast/toast.js +4 -4
  165. package/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  166. package/cjs/components/virtual-input/virtual-input.js +26 -24
  167. package/cjs/utils/is-node-with-content.d.ts +3 -0
  168. package/cjs/utils/is-node-with-content.js +3 -0
  169. package/cjs/utils/with-default-props.d.ts +7 -0
  170. package/cjs/utils/with-default-props.js +21 -5
  171. package/es/components/calendar-picker/calendar-picker.js +11 -5
  172. package/es/components/calendar-picker-view/calendar-picker-view.d.ts +3 -0
  173. package/es/components/calendar-picker-view/calendar-picker-view.js +40 -19
  174. package/es/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  175. package/es/components/calendar-picker-view/useSyncScroll.js +33 -0
  176. package/es/components/card/card.css +5 -5
  177. package/es/components/card/card.patch.css +17 -0
  178. package/es/components/center-popup/center-popup.js +45 -42
  179. package/es/components/check-list/check-list.js +15 -11
  180. package/es/components/collapse/collapse.d.ts +9 -1
  181. package/es/components/collapse/collapse.js +26 -28
  182. package/es/components/config-provider/config-provider.d.ts +40 -2
  183. package/es/components/dropdown/context.d.ts +2 -0
  184. package/es/components/dropdown/context.js +2 -0
  185. package/es/components/dropdown/dropdown.d.ts +11 -3
  186. package/es/components/dropdown/dropdown.js +24 -17
  187. package/es/components/dropdown/index.d.ts +1 -0
  188. package/es/components/dropdown/item.d.ts +5 -1
  189. package/es/components/dropdown/item.js +22 -8
  190. package/es/components/form/form-item.d.ts +6 -5
  191. package/es/components/form/form-item.js +24 -16
  192. package/es/components/form/form.d.ts +1 -1
  193. package/es/components/form/index.d.ts +1 -1
  194. package/es/components/input/input.d.ts +3 -1
  195. package/es/components/input/input.js +52 -50
  196. package/es/components/list/list-item.d.ts +6 -2
  197. package/es/components/list/list-item.js +16 -6
  198. package/es/components/nav-bar/nav-bar.d.ts +4 -0
  199. package/es/components/nav-bar/nav-bar.js +21 -16
  200. package/es/components/notice-bar/notice-bar.css +0 -2
  201. package/es/components/notice-bar/notice-bar.d.ts +3 -1
  202. package/es/components/notice-bar/notice-bar.js +29 -24
  203. package/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  204. package/es/components/number-keyboard/number-keyboard.js +13 -12
  205. package/es/components/popup/popup-base-props.d.ts +3 -2
  206. package/es/components/popup/popup-base-props.js +3 -0
  207. package/es/components/popup/popup.js +5 -5
  208. package/es/components/result/result.js +3 -10
  209. package/es/components/result/use-result-icon.d.ts +3 -0
  210. package/es/components/result/use-result-icon.js +29 -0
  211. package/es/components/result-page/result-page.js +3 -10
  212. package/es/components/search-bar/search-bar.d.ts +10 -2
  213. package/es/components/search-bar/search-bar.js +33 -32
  214. package/es/components/toast/toast.css +1 -1
  215. package/es/components/toast/toast.d.ts +2 -2
  216. package/es/components/toast/toast.js +3 -3
  217. package/es/components/virtual-input/virtual-input.d.ts +5 -5
  218. package/es/components/virtual-input/virtual-input.js +25 -23
  219. package/es/utils/is-node-with-content.d.ts +3 -0
  220. package/es/utils/is-node-with-content.js +3 -0
  221. package/es/utils/with-default-props.d.ts +7 -0
  222. package/es/utils/with-default-props.js +20 -5
  223. package/package.json +1 -1
  224. package/umd/antd-mobile.js +1 -1
@@ -1,7 +1,7 @@
1
- import React from 'react';
2
1
  import type { ReactElement } from 'react';
3
- import type { InputProps } from '../input';
2
+ import React from 'react';
4
3
  import { NativeProps } from '../../utils/native-props';
4
+ import type { InputProps } from '../input';
5
5
  import { NumberKeyboardProps } from '../number-keyboard';
6
6
  export declare type VirtualInputProps = {
7
7
  onFocus?: () => void;
@@ -10,7 +10,7 @@ export declare type VirtualInputProps = {
10
10
  keyboard?: ReactElement<NumberKeyboardProps>;
11
11
  clearable?: boolean;
12
12
  onClear?: () => void;
13
- } & Pick<InputProps, 'value' | 'onChange' | 'placeholder' | 'disabled'> & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--caret-width' | '--caret-color'>;
13
+ } & Pick<InputProps, 'value' | 'onChange' | 'placeholder' | 'disabled' | 'clearIcon'> & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--caret-width' | '--caret-color'>;
14
14
  export declare type VirtualInputRef = {
15
15
  focus: () => void;
16
16
  blur: () => void;
@@ -19,10 +19,10 @@ export declare const VirtualInput: React.ForwardRefExoticComponent<{
19
19
  onFocus?: (() => void) | undefined;
20
20
  onBlur?: (() => void) | undefined;
21
21
  onClick?: ((e: React.MouseEvent<HTMLDivElement>) => void) | undefined;
22
- keyboard?: React.ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
22
+ keyboard?: ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
23
23
  clearable?: boolean | undefined;
24
24
  onClear?: (() => void) | undefined;
25
- } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder"> & {
25
+ } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder" | "clearIcon"> & {
26
26
  className?: string | undefined;
27
27
  style?: (React.CSSProperties & Partial<Record<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--caret-width" | "--caret-color", string>>) | undefined;
28
28
  tabIndex?: number | undefined;
@@ -1,24 +1,26 @@
1
+ import { useIsomorphicLayoutEffect } from 'ahooks';
2
+ import { CloseCircleFill } from 'antd-mobile-icons';
3
+ import classNames from 'classnames';
1
4
  import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
2
5
  import { withNativeProps } from '../../utils/native-props';
3
- import { mergeProps } from '../../utils/with-default-props';
4
6
  import { usePropsValue } from '../../utils/use-props-value';
5
- import classNames from 'classnames';
6
- import { CloseCircleFill } from 'antd-mobile-icons';
7
- import { useIsomorphicLayoutEffect } from 'ahooks';
7
+ import { mergeProp, mergeProps } from '../../utils/with-default-props';
8
8
  import { useConfig } from '../config-provider';
9
9
  const classPrefix = 'adm-virtual-input';
10
10
  const defaultProps = {
11
11
  defaultValue: ''
12
12
  };
13
- export const VirtualInput = forwardRef((p, ref) => {
14
- const props = mergeProps(defaultProps, p);
15
- const [value, setValue] = usePropsValue(props);
13
+ export const VirtualInput = forwardRef((props, ref) => {
14
+ const {
15
+ locale,
16
+ input: componentConfig = {}
17
+ } = useConfig();
18
+ const mergedProps = mergeProps(defaultProps, componentConfig, props);
19
+ const [value, setValue] = usePropsValue(mergedProps);
16
20
  const rootRef = useRef(null);
17
21
  const contentRef = useRef(null);
18
22
  const [hasFocus, setHasFocus] = useState(false);
19
- const {
20
- locale
21
- } = useConfig();
23
+ const clearIcon = mergeProp(React.createElement(CloseCircleFill, null), componentConfig.clearIcon, props.clearIcon);
22
24
  function scrollToEnd() {
23
25
  const root = rootRef.current;
24
26
  if (!root) return;
@@ -50,14 +52,14 @@ export const VirtualInput = forwardRef((p, ref) => {
50
52
  function onFocus() {
51
53
  var _a;
52
54
  setHasFocus(true);
53
- (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
55
+ (_a = mergedProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
54
56
  }
55
57
  function onBlur() {
56
58
  var _a;
57
59
  setHasFocus(false);
58
- (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props);
60
+ (_a = mergedProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
59
61
  }
60
- const keyboard = props.keyboard;
62
+ const keyboard = mergedProps.keyboard;
61
63
  const keyboardElement = keyboard && React.cloneElement(keyboard, {
62
64
  onInput: v => {
63
65
  var _a, _b;
@@ -84,36 +86,36 @@ export const VirtualInput = forwardRef((p, ref) => {
84
86
  },
85
87
  getContainer: null
86
88
  });
87
- return withNativeProps(props, React.createElement("div", {
89
+ return withNativeProps(mergedProps, React.createElement("div", {
88
90
  ref: rootRef,
89
91
  className: classNames(classPrefix, {
90
- [`${classPrefix}-disabled`]: props.disabled
92
+ [`${classPrefix}-disabled`]: mergedProps.disabled
91
93
  }),
92
- tabIndex: props.disabled ? undefined : 0,
94
+ tabIndex: mergedProps.disabled ? undefined : 0,
93
95
  role: 'textbox',
94
96
  onFocus: onFocus,
95
97
  onBlur: onBlur,
96
- onClick: props.onClick
98
+ onClick: mergedProps.onClick
97
99
  }, React.createElement("div", {
98
100
  className: `${classPrefix}-content`,
99
101
  ref: contentRef,
100
- "aria-disabled": props.disabled,
101
- "aria-label": props.placeholder
102
+ "aria-disabled": mergedProps.disabled,
103
+ "aria-label": mergedProps.placeholder
102
104
  }, value, React.createElement("div", {
103
105
  className: `${classPrefix}-caret-container`
104
106
  }, hasFocus && React.createElement("div", {
105
107
  className: `${classPrefix}-caret`
106
- }))), props.clearable && !!value && hasFocus && React.createElement("div", {
108
+ }))), mergedProps.clearable && !!value && hasFocus && React.createElement("div", {
107
109
  className: `${classPrefix}-clear`,
108
110
  onClick: e => {
109
111
  var _a;
110
112
  e.stopPropagation();
111
113
  setValue('');
112
- (_a = props.onClear) === null || _a === void 0 ? void 0 : _a.call(props);
114
+ (_a = mergedProps.onClear) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
113
115
  },
114
116
  role: 'button',
115
117
  "aria-label": locale.Input.clear
116
- }, React.createElement(CloseCircleFill, null)), [undefined, null, ''].includes(value) && React.createElement("div", {
118
+ }, clearIcon), [undefined, null, ''].includes(value) && React.createElement("div", {
117
119
  className: `${classPrefix}-placeholder`
118
- }, props.placeholder), keyboardElement));
120
+ }, mergedProps.placeholder), keyboardElement));
119
121
  });
@@ -1,4 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ /**
4
+ * Check if the `node` is visible Node (not null, undefined, or false)
5
+ */
3
6
  export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
7
  export {};
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Check if the `node` is visible Node (not null, undefined, or false)
3
+ */
1
4
  export function isNodeWithContent(node) {
2
5
  return node !== undefined && node !== null && node !== false;
3
6
  }
@@ -1,2 +1,9 @@
1
1
  export declare function mergeProps<A, B>(a: A, b: B): B & A;
2
2
  export declare function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
3
+ export declare function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
4
+ /**
5
+ * Merge props and return the first non-undefined value.
6
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
7
+ * This is useful with legacy props that have been deprecated.
8
+ */
9
+ export declare function mergeProp<T, DefaultT extends T = T>(defaultProp: DefaultT, ...propList: T[]): T | undefined;
@@ -1,11 +1,26 @@
1
1
  export function mergeProps(...items) {
2
2
  const ret = {};
3
3
  items.forEach(item => {
4
- Object.keys(item).forEach(key => {
5
- if (item[key] !== undefined) {
6
- ret[key] = item[key];
7
- }
8
- });
4
+ if (item) {
5
+ Object.keys(item).forEach(key => {
6
+ if (item[key] !== undefined) {
7
+ ret[key] = item[key];
8
+ }
9
+ });
10
+ }
9
11
  });
10
12
  return ret;
13
+ }
14
+ /**
15
+ * Merge props and return the first non-undefined value.
16
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
17
+ * This is useful with legacy props that have been deprecated.
18
+ */
19
+ export function mergeProp(defaultProp, ...propList) {
20
+ for (let i = propList.length - 1; i >= 0; i -= 1) {
21
+ if (propList[i] !== undefined) {
22
+ return propList[i];
23
+ }
24
+ }
25
+ return defaultProp;
11
26
  }
package/2x/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.36.1",
3
+ "version": "5.37.1",
4
4
  "homepage": "https://github.com/ant-design/ant-design-mobile#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/ant-design/ant-design-mobile/issues"