antd-mobile 5.11.0 → 5.12.0

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 (230) hide show
  1. package/2x/cjs/components/calendar/calendar.d.ts +4 -0
  2. package/2x/cjs/components/calendar/calendar.js +13 -9
  3. package/2x/cjs/components/capsule-tabs/capsule-tabs.css +1 -0
  4. package/2x/cjs/components/cascade-picker/cascade-picker-utils.d.ts +2 -2
  5. package/2x/cjs/components/cascade-picker/cascade-picker-utils.js +37 -16
  6. package/2x/cjs/components/cascade-picker/cascade-picker.d.ts +6 -3
  7. package/2x/cjs/components/cascade-picker/cascade-picker.js +10 -11
  8. package/2x/cjs/components/cascade-picker/index.d.ts +4 -2
  9. package/2x/cjs/components/cascade-picker-view/cascade-picker-view.js +2 -7
  10. package/2x/cjs/components/date-picker/date-picker.d.ts +18 -4
  11. package/2x/cjs/components/date-picker/date-picker.js +5 -6
  12. package/2x/cjs/components/date-picker/index.d.ts +15 -2
  13. package/2x/cjs/components/dialog/dialog.js +2 -2
  14. package/2x/cjs/components/form/form-item.d.ts +2 -1
  15. package/2x/cjs/components/form/form-item.js +21 -4
  16. package/2x/cjs/components/form/utils.d.ts +1 -0
  17. package/2x/cjs/components/form/utils.js +20 -0
  18. package/2x/cjs/components/image-uploader/image-uploader.js +10 -4
  19. package/2x/cjs/components/input/input.d.ts +2 -2
  20. package/2x/cjs/components/input/input.js +1 -0
  21. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.css +1 -0
  22. package/2x/cjs/components/list/list-item.js +7 -5
  23. package/2x/cjs/components/list/list.css +1 -0
  24. package/2x/cjs/components/mask/mask.js +1 -1
  25. package/2x/cjs/components/modal/modal.js +2 -2
  26. package/2x/cjs/components/picker/index.d.ts +44 -3
  27. package/2x/cjs/components/picker/picker.d.ts +32 -2
  28. package/2x/cjs/components/picker/picker.js +43 -16
  29. package/2x/cjs/components/popup/popup.js +1 -1
  30. package/2x/cjs/components/swipe-action/swipe-action.js +1 -1
  31. package/2x/cjs/components/swiper/index.d.ts +16 -1
  32. package/2x/cjs/components/swiper/swiper.d.ts +16 -1
  33. package/2x/cjs/components/tabs/tabs.css +1 -0
  34. package/2x/cjs/components/text-area/text-area.d.ts +2 -2
  35. package/2x/cjs/components/text-area/text-area.js +4 -1
  36. package/2x/cjs/components/toast/methods.js +3 -7
  37. package/2x/cjs/components/virtual-input/virtual-input.js +2 -1
  38. package/2x/cjs/locales/base.d.ts +1 -0
  39. package/2x/cjs/locales/base.js +2 -1
  40. package/2x/cjs/locales/en-US.d.ts +1 -0
  41. package/2x/cjs/locales/es-ES.d.ts +1 -0
  42. package/2x/cjs/locales/fa-IR.d.ts +1 -0
  43. package/2x/cjs/locales/ko-KR.d.ts +1 -0
  44. package/2x/cjs/locales/zh-CN.d.ts +1 -0
  45. package/2x/cjs/locales/zh-CN.js +2 -1
  46. package/2x/cjs/locales/zh-HK.d.ts +1 -0
  47. package/2x/cjs/locales/zh-TW.d.ts +1 -0
  48. package/2x/cjs/utils/is-node-with-content.d.ts +4 -0
  49. package/2x/cjs/utils/is-node-with-content.js +10 -0
  50. package/2x/cjs/utils/render-to-body.js +3 -6
  51. package/2x/cjs/utils/render.d.ts +9 -0
  52. package/2x/cjs/utils/render.js +80 -0
  53. package/2x/cjs/utils/use-drag-and-pinch.d.ts +1 -1
  54. package/2x/cjs/utils/use-props-value.d.ts +1 -1
  55. package/2x/es/components/calendar/calendar.d.ts +4 -0
  56. package/2x/es/components/calendar/calendar.js +13 -9
  57. package/2x/es/components/capsule-tabs/capsule-tabs.css +1 -0
  58. package/2x/es/components/cascade-picker/cascade-picker-utils.d.ts +2 -2
  59. package/2x/es/components/cascade-picker/cascade-picker-utils.js +35 -15
  60. package/2x/es/components/cascade-picker/cascade-picker.d.ts +6 -3
  61. package/2x/es/components/cascade-picker/cascade-picker.js +7 -10
  62. package/2x/es/components/cascade-picker/index.d.ts +4 -2
  63. package/2x/es/components/cascade-picker-view/cascade-picker-view.js +3 -7
  64. package/2x/es/components/date-picker/date-picker.d.ts +18 -4
  65. package/2x/es/components/date-picker/date-picker.js +6 -5
  66. package/2x/es/components/date-picker/index.d.ts +15 -2
  67. package/2x/es/components/dialog/dialog.js +2 -2
  68. package/2x/es/components/form/form-item.d.ts +2 -1
  69. package/2x/es/components/form/form-item.js +23 -4
  70. package/2x/es/components/form/utils.d.ts +1 -0
  71. package/2x/es/components/form/utils.js +17 -0
  72. package/2x/es/components/image-uploader/image-uploader.js +9 -4
  73. package/2x/es/components/input/input.d.ts +2 -2
  74. package/2x/es/components/input/input.js +1 -0
  75. package/2x/es/components/jumbo-tabs/jumbo-tabs.css +1 -0
  76. package/2x/es/components/list/list-item.js +6 -5
  77. package/2x/es/components/list/list.css +1 -0
  78. package/2x/es/components/mask/mask.js +1 -1
  79. package/2x/es/components/modal/modal.js +2 -2
  80. package/2x/es/components/picker/index.d.ts +44 -3
  81. package/2x/es/components/picker/picker.d.ts +32 -2
  82. package/2x/es/components/picker/picker.js +42 -17
  83. package/2x/es/components/popup/popup.js +1 -1
  84. package/2x/es/components/swipe-action/swipe-action.js +1 -1
  85. package/2x/es/components/swiper/index.d.ts +16 -1
  86. package/2x/es/components/swiper/swiper.d.ts +16 -1
  87. package/2x/es/components/tabs/tabs.css +1 -0
  88. package/2x/es/components/text-area/text-area.d.ts +2 -2
  89. package/2x/es/components/text-area/text-area.js +4 -2
  90. package/2x/es/components/toast/methods.js +3 -3
  91. package/2x/es/components/virtual-input/virtual-input.js +2 -1
  92. package/2x/es/locales/base.d.ts +1 -0
  93. package/2x/es/locales/base.js +2 -1
  94. package/2x/es/locales/en-US.d.ts +1 -0
  95. package/2x/es/locales/es-ES.d.ts +1 -0
  96. package/2x/es/locales/fa-IR.d.ts +1 -0
  97. package/2x/es/locales/ko-KR.d.ts +1 -0
  98. package/2x/es/locales/zh-CN.d.ts +1 -0
  99. package/2x/es/locales/zh-CN.js +2 -1
  100. package/2x/es/locales/zh-HK.d.ts +1 -0
  101. package/2x/es/locales/zh-TW.d.ts +1 -0
  102. package/2x/es/utils/is-node-with-content.d.ts +4 -0
  103. package/2x/es/utils/is-node-with-content.js +3 -0
  104. package/2x/es/utils/render-to-body.js +3 -3
  105. package/2x/es/utils/render.d.ts +9 -0
  106. package/2x/es/utils/render.js +65 -0
  107. package/2x/es/utils/use-drag-and-pinch.d.ts +1 -1
  108. package/2x/es/utils/use-props-value.d.ts +1 -1
  109. package/2x/package.json +8 -8
  110. package/bundle/antd-mobile.cjs.js +5093 -4356
  111. package/bundle/antd-mobile.es.js +5094 -4357
  112. package/bundle/style.css +4 -0
  113. package/cjs/components/calendar/calendar.d.ts +4 -0
  114. package/cjs/components/calendar/calendar.js +13 -9
  115. package/cjs/components/capsule-tabs/capsule-tabs.css +1 -0
  116. package/cjs/components/cascade-picker/cascade-picker-utils.d.ts +2 -2
  117. package/cjs/components/cascade-picker/cascade-picker-utils.js +37 -16
  118. package/cjs/components/cascade-picker/cascade-picker.d.ts +6 -3
  119. package/cjs/components/cascade-picker/cascade-picker.js +10 -11
  120. package/cjs/components/cascade-picker/index.d.ts +4 -2
  121. package/cjs/components/cascade-picker-view/cascade-picker-view.js +2 -7
  122. package/cjs/components/date-picker/date-picker.d.ts +18 -4
  123. package/cjs/components/date-picker/date-picker.js +5 -6
  124. package/cjs/components/date-picker/index.d.ts +15 -2
  125. package/cjs/components/dialog/dialog.js +2 -2
  126. package/cjs/components/form/form-item.d.ts +2 -1
  127. package/cjs/components/form/form-item.js +21 -4
  128. package/cjs/components/form/utils.d.ts +1 -0
  129. package/cjs/components/form/utils.js +20 -0
  130. package/cjs/components/image-uploader/image-uploader.js +10 -4
  131. package/cjs/components/input/input.d.ts +2 -2
  132. package/cjs/components/input/input.js +1 -0
  133. package/cjs/components/jumbo-tabs/jumbo-tabs.css +1 -0
  134. package/cjs/components/list/list-item.js +7 -5
  135. package/cjs/components/list/list.css +1 -0
  136. package/cjs/components/mask/mask.js +1 -1
  137. package/cjs/components/modal/modal.js +2 -2
  138. package/cjs/components/picker/index.d.ts +44 -3
  139. package/cjs/components/picker/picker.d.ts +32 -2
  140. package/cjs/components/picker/picker.js +43 -16
  141. package/cjs/components/popup/popup.js +1 -1
  142. package/cjs/components/swipe-action/swipe-action.js +1 -1
  143. package/cjs/components/swiper/index.d.ts +16 -1
  144. package/cjs/components/swiper/swiper.d.ts +16 -1
  145. package/cjs/components/tabs/tabs.css +1 -0
  146. package/cjs/components/text-area/text-area.d.ts +2 -2
  147. package/cjs/components/text-area/text-area.js +4 -1
  148. package/cjs/components/toast/methods.js +3 -7
  149. package/cjs/components/virtual-input/virtual-input.js +2 -1
  150. package/cjs/locales/base.d.ts +1 -0
  151. package/cjs/locales/base.js +2 -1
  152. package/cjs/locales/en-US.d.ts +1 -0
  153. package/cjs/locales/es-ES.d.ts +1 -0
  154. package/cjs/locales/fa-IR.d.ts +1 -0
  155. package/cjs/locales/ko-KR.d.ts +1 -0
  156. package/cjs/locales/zh-CN.d.ts +1 -0
  157. package/cjs/locales/zh-CN.js +2 -1
  158. package/cjs/locales/zh-HK.d.ts +1 -0
  159. package/cjs/locales/zh-TW.d.ts +1 -0
  160. package/cjs/utils/is-node-with-content.d.ts +4 -0
  161. package/cjs/utils/is-node-with-content.js +10 -0
  162. package/cjs/utils/render-to-body.js +3 -6
  163. package/cjs/utils/render.d.ts +9 -0
  164. package/cjs/utils/render.js +80 -0
  165. package/cjs/utils/use-drag-and-pinch.d.ts +1 -1
  166. package/cjs/utils/use-props-value.d.ts +1 -1
  167. package/es/components/calendar/calendar.d.ts +4 -0
  168. package/es/components/calendar/calendar.js +13 -9
  169. package/es/components/capsule-tabs/capsule-tabs.css +1 -0
  170. package/es/components/cascade-picker/cascade-picker-utils.d.ts +2 -2
  171. package/es/components/cascade-picker/cascade-picker-utils.js +35 -15
  172. package/es/components/cascade-picker/cascade-picker.d.ts +6 -3
  173. package/es/components/cascade-picker/cascade-picker.js +7 -10
  174. package/es/components/cascade-picker/index.d.ts +4 -2
  175. package/es/components/cascade-picker-view/cascade-picker-view.js +3 -7
  176. package/es/components/date-picker/date-picker.d.ts +18 -4
  177. package/es/components/date-picker/date-picker.js +6 -5
  178. package/es/components/date-picker/index.d.ts +15 -2
  179. package/es/components/dialog/dialog.js +2 -2
  180. package/es/components/form/form-item.d.ts +2 -1
  181. package/es/components/form/form-item.js +23 -4
  182. package/es/components/form/utils.d.ts +1 -0
  183. package/es/components/form/utils.js +17 -0
  184. package/es/components/image-uploader/image-uploader.js +9 -4
  185. package/es/components/input/input.d.ts +2 -2
  186. package/es/components/input/input.js +1 -0
  187. package/es/components/jumbo-tabs/jumbo-tabs.css +1 -0
  188. package/es/components/list/list-item.js +6 -5
  189. package/es/components/list/list.css +1 -0
  190. package/es/components/mask/mask.js +1 -1
  191. package/es/components/modal/modal.js +2 -2
  192. package/es/components/picker/index.d.ts +44 -3
  193. package/es/components/picker/picker.d.ts +32 -2
  194. package/es/components/picker/picker.js +42 -17
  195. package/es/components/popup/popup.js +1 -1
  196. package/es/components/swipe-action/swipe-action.js +1 -1
  197. package/es/components/swiper/index.d.ts +16 -1
  198. package/es/components/swiper/swiper.d.ts +16 -1
  199. package/es/components/tabs/tabs.css +1 -0
  200. package/es/components/text-area/text-area.d.ts +2 -2
  201. package/es/components/text-area/text-area.js +4 -2
  202. package/es/components/toast/methods.js +3 -3
  203. package/es/components/virtual-input/virtual-input.js +2 -1
  204. package/es/locales/base.d.ts +1 -0
  205. package/es/locales/base.js +2 -1
  206. package/es/locales/en-US.d.ts +1 -0
  207. package/es/locales/es-ES.d.ts +1 -0
  208. package/es/locales/fa-IR.d.ts +1 -0
  209. package/es/locales/ko-KR.d.ts +1 -0
  210. package/es/locales/zh-CN.d.ts +1 -0
  211. package/es/locales/zh-CN.js +2 -1
  212. package/es/locales/zh-HK.d.ts +1 -0
  213. package/es/locales/zh-TW.d.ts +1 -0
  214. package/es/utils/is-node-with-content.d.ts +4 -0
  215. package/es/utils/is-node-with-content.js +3 -0
  216. package/es/utils/render-to-body.js +3 -3
  217. package/es/utils/render.d.ts +9 -0
  218. package/es/utils/render.js +65 -0
  219. package/es/utils/use-drag-and-pinch.d.ts +1 -1
  220. package/es/utils/use-props-value.d.ts +1 -1
  221. package/package.json +8 -8
  222. package/umd/antd-mobile.js +1 -1
  223. package/2x/cjs/components/cascade-picker/use-cascade-picker-options.d.ts +0 -5
  224. package/2x/cjs/components/cascade-picker/use-cascade-picker-options.js +0 -40
  225. package/2x/es/components/cascade-picker/use-cascade-picker-options.d.ts +0 -5
  226. package/2x/es/components/cascade-picker/use-cascade-picker-options.js +0 -32
  227. package/cjs/components/cascade-picker/use-cascade-picker-options.d.ts +0 -5
  228. package/cjs/components/cascade-picker/use-cascade-picker-options.js +0 -40
  229. package/es/components/cascade-picker/use-cascade-picker-options.d.ts +0 -5
  230. package/es/components/cascade-picker/use-cascade-picker-options.js +0 -32
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import { RightOutline } from 'antd-mobile-icons';
4
4
  import classNames from 'classnames';
5
+ import { isNodeWithContent } from '../../utils/is-node-with-content';
5
6
  const classPrefix = `adm-list-item`;
6
7
  export const ListItem = props => {
7
8
  var _a;
@@ -10,17 +11,17 @@ export const ListItem = props => {
10
11
  const arrow = props.arrow === undefined ? clickable : props.arrow;
11
12
  const content = React.createElement("div", {
12
13
  className: `${classPrefix}-content`
13
- }, props.prefix && React.createElement("div", {
14
+ }, isNodeWithContent(props.prefix) && React.createElement("div", {
14
15
  className: `${classPrefix}-content-prefix`
15
16
  }, props.prefix), React.createElement("div", {
16
17
  className: `${classPrefix}-content-main`
17
- }, props.title && React.createElement("div", {
18
+ }, isNodeWithContent(props.title) && React.createElement("div", {
18
19
  className: `${classPrefix}-title`
19
- }, props.title), props.children, props.description && React.createElement("div", {
20
+ }, props.title), props.children, isNodeWithContent(props.description) && React.createElement("div", {
20
21
  className: `${classPrefix}-description`
21
- }, props.description)), props.extra && React.createElement("div", {
22
+ }, props.description)), isNodeWithContent(props.extra) && React.createElement("div", {
22
23
  className: `${classPrefix}-content-extra`
23
- }, props.extra), arrow && React.createElement("div", {
24
+ }, props.extra), isNodeWithContent(arrow) && React.createElement("div", {
24
25
  className: `${classPrefix}-content-arrow`
25
26
  }, arrow === true ? React.createElement(RightOutline, null) : arrow));
26
27
  return withNativeProps(props, React.createElement(clickable ? 'a' : 'div', {
@@ -42,6 +42,7 @@
42
42
  padding-left: var(--padding-left);
43
43
  position: relative;
44
44
  background-color: #ffffff;
45
+ line-height: 1.5;
45
46
  }
46
47
  .adm-list-item-title,
47
48
  .adm-list-item-description {
@@ -75,7 +75,7 @@ export const Mask = p => {
75
75
  background,
76
76
  opacity
77
77
  }, props.style), {
78
- display: active ? 'unset' : 'none'
78
+ display: active ? undefined : 'none'
79
79
  }),
80
80
  onClick: e => {
81
81
  var _a;
@@ -92,7 +92,7 @@ export const Modal = p => {
92
92
  const node = withStopPropagation(props.stopPropagation, withNativeProps(props, React.createElement("div", {
93
93
  className: cls(),
94
94
  style: {
95
- display: active ? 'unset' : 'none'
95
+ display: active ? undefined : 'none'
96
96
  }
97
97
  }, React.createElement(Mask, {
98
98
  visible: props.visible,
@@ -103,7 +103,7 @@ export const Modal = p => {
103
103
  }), React.createElement("div", {
104
104
  className: cls('wrap'),
105
105
  style: {
106
- pointerEvents: props.visible ? 'unset' : 'none'
106
+ pointerEvents: props.visible ? undefined : 'none'
107
107
  }
108
108
  }, React.createElement(animated.div, {
109
109
  style: style
@@ -1,9 +1,50 @@
1
- /// <reference types="react" />
2
1
  import './picker.less';
3
2
  import { prompt } from './prompt';
4
- export type { PickerProps } from './picker';
3
+ export type { PickerProps, PickerRef, PickerActions } from './picker';
5
4
  export type { PickerValue, PickerColumnItem, PickerColumn, PickerValueExtend, } from '../picker-view';
6
- declare const _default: import("react").NamedExoticComponent<import("./picker").PickerProps> & {
5
+ declare const _default: import("react").NamedExoticComponent<{
6
+ columns: import("../picker-view").PickerColumn[] | ((value: import("../picker-view").PickerValue[]) => import("../picker-view").PickerColumn[]);
7
+ value?: import("../picker-view").PickerValue[] | undefined;
8
+ defaultValue?: import("../picker-view").PickerValue[] | undefined;
9
+ onSelect?: ((value: import("../picker-view").PickerValue[], extend: import("../picker-view").PickerValueExtend) => void) | undefined;
10
+ onConfirm?: ((value: import("../picker-view").PickerValue[], extend: import("../picker-view").PickerValueExtend) => void) | undefined;
11
+ onCancel?: (() => void) | undefined;
12
+ onClose?: (() => void) | undefined;
13
+ closeOnMaskClick?: boolean | undefined;
14
+ visible?: boolean | undefined;
15
+ title?: import("react").ReactNode;
16
+ confirmText?: import("react").ReactNode;
17
+ cancelText?: import("react").ReactNode;
18
+ children?: ((items: (import("../picker-view").PickerColumnItem | null)[], actions: import("./picker").PickerActions) => import("react").ReactNode) | undefined;
19
+ renderLabel?: ((item: import("../picker-view").PickerColumnItem) => import("react").ReactNode) | undefined;
20
+ mouseWheel?: boolean | undefined;
21
+ popupClassName?: string | undefined;
22
+ popupStyle?: import("react").CSSProperties | undefined;
23
+ forceRender?: boolean | undefined;
24
+ destroyOnClose?: boolean | undefined;
25
+ } & Pick<import("../popup").PopupProps, "onClick" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & import("../../utils/native-props").NativeProps<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size"> & import("react").RefAttributes<import("./picker").PickerActions>> & {
26
+ readonly type: import("react").ForwardRefExoticComponent<{
27
+ columns: import("../picker-view").PickerColumn[] | ((value: import("../picker-view").PickerValue[]) => import("../picker-view").PickerColumn[]);
28
+ value?: import("../picker-view").PickerValue[] | undefined;
29
+ defaultValue?: import("../picker-view").PickerValue[] | undefined;
30
+ onSelect?: ((value: import("../picker-view").PickerValue[], extend: import("../picker-view").PickerValueExtend) => void) | undefined;
31
+ onConfirm?: ((value: import("../picker-view").PickerValue[], extend: import("../picker-view").PickerValueExtend) => void) | undefined;
32
+ onCancel?: (() => void) | undefined;
33
+ onClose?: (() => void) | undefined;
34
+ closeOnMaskClick?: boolean | undefined;
35
+ visible?: boolean | undefined;
36
+ title?: import("react").ReactNode;
37
+ confirmText?: import("react").ReactNode;
38
+ cancelText?: import("react").ReactNode;
39
+ children?: ((items: (import("../picker-view").PickerColumnItem | null)[], actions: import("./picker").PickerActions) => import("react").ReactNode) | undefined;
40
+ renderLabel?: ((item: import("../picker-view").PickerColumnItem) => import("react").ReactNode) | undefined;
41
+ mouseWheel?: boolean | undefined;
42
+ popupClassName?: string | undefined;
43
+ popupStyle?: import("react").CSSProperties | undefined;
44
+ forceRender?: boolean | undefined;
45
+ destroyOnClose?: boolean | undefined;
46
+ } & Pick<import("../popup").PopupProps, "onClick" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & import("../../utils/native-props").NativeProps<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size"> & import("react").RefAttributes<import("./picker").PickerActions>>;
47
+ } & {
7
48
  prompt: typeof prompt;
8
49
  };
9
50
  export default _default;
@@ -2,6 +2,12 @@ import React, { ReactNode } from 'react';
2
2
  import { PopupProps } from '../popup';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import { PickerColumn, PickerColumnItem, PickerValue, PickerValueExtend } from './index';
5
+ export declare type PickerActions = {
6
+ open: () => void;
7
+ close: () => void;
8
+ toggle: () => void;
9
+ };
10
+ export declare type PickerRef = PickerActions;
5
11
  export declare type PickerProps = {
6
12
  columns: PickerColumn[] | ((value: PickerValue[]) => PickerColumn[]);
7
13
  value?: PickerValue[];
@@ -15,8 +21,32 @@ export declare type PickerProps = {
15
21
  title?: ReactNode;
16
22
  confirmText?: ReactNode;
17
23
  cancelText?: ReactNode;
18
- children?: (items: (PickerColumnItem | null)[]) => ReactNode;
24
+ children?: (items: (PickerColumnItem | null)[], actions: PickerActions) => ReactNode;
19
25
  renderLabel?: (item: PickerColumnItem) => ReactNode;
20
26
  mouseWheel?: boolean;
27
+ popupClassName?: string;
28
+ popupStyle?: React.CSSProperties;
29
+ forceRender?: boolean;
30
+ destroyOnClose?: boolean;
21
31
  } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps<'--header-button-font-size' | '--title-font-size' | '--item-font-size' | '--item-height'>;
22
- export declare const Picker: React.NamedExoticComponent<PickerProps>;
32
+ export declare const Picker: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
33
+ columns: PickerColumn[] | ((value: PickerValue[]) => PickerColumn[]);
34
+ value?: PickerValue[] | undefined;
35
+ defaultValue?: PickerValue[] | undefined;
36
+ onSelect?: ((value: PickerValue[], extend: PickerValueExtend) => void) | undefined;
37
+ onConfirm?: ((value: PickerValue[], extend: PickerValueExtend) => void) | undefined;
38
+ onCancel?: (() => void) | undefined;
39
+ onClose?: (() => void) | undefined;
40
+ closeOnMaskClick?: boolean | undefined;
41
+ visible?: boolean | undefined;
42
+ title?: ReactNode;
43
+ confirmText?: ReactNode;
44
+ cancelText?: ReactNode;
45
+ children?: ((items: (PickerColumnItem | null)[], actions: PickerActions) => ReactNode) | undefined;
46
+ renderLabel?: ((item: PickerColumnItem) => ReactNode) | undefined;
47
+ mouseWheel?: boolean | undefined;
48
+ popupClassName?: string | undefined;
49
+ popupStyle?: React.CSSProperties | undefined;
50
+ forceRender?: boolean | undefined;
51
+ destroyOnClose?: boolean | undefined;
52
+ } & Pick<PopupProps, "onClick" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & NativeProps<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size"> & React.RefAttributes<PickerActions>>>;
@@ -1,4 +1,5 @@
1
- import React, { useState, useEffect, memo } from 'react';
1
+ import React, { useState, useEffect, forwardRef, useImperativeHandle, memo } from 'react';
2
+ import classNames from 'classnames';
2
3
  import Popup from '../popup';
3
4
  import { mergeProps } from '../../utils/with-default-props';
4
5
  import { withNativeProps } from '../../utils/native-props';
@@ -9,13 +10,14 @@ import { useConfig } from '../config-provider';
9
10
  import { useMemoizedFn } from 'ahooks';
10
11
  import SafeArea from '../safe-area';
11
12
  import { defaultRenderLabel } from './picker-utils';
13
+ import { useShouldRender } from '../../utils/should-render';
12
14
  const classPrefix = `adm-picker`;
13
15
  const defaultProps = {
14
16
  defaultValue: [],
15
17
  closeOnMaskClick: true,
16
18
  renderLabel: defaultRenderLabel
17
19
  };
18
- export const Picker = memo(p => {
20
+ export const Picker = memo(forwardRef((p, ref) => {
19
21
  var _a;
20
22
 
21
23
  const {
@@ -25,6 +27,29 @@ export const Picker = memo(p => {
25
27
  confirmText: locale.common.confirm,
26
28
  cancelText: locale.common.cancel
27
29
  }, p);
30
+ const [visible, setVisible] = usePropsValue({
31
+ value: props.visible,
32
+ defaultValue: false,
33
+ onChange: v => {
34
+ var _a;
35
+
36
+ if (v === false) {
37
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
38
+ }
39
+ }
40
+ });
41
+ const actions = {
42
+ toggle: () => {
43
+ setVisible(v => !v);
44
+ },
45
+ open: () => {
46
+ setVisible(true);
47
+ },
48
+ close: () => {
49
+ setVisible(false);
50
+ }
51
+ };
52
+ useImperativeHandle(ref, () => actions);
28
53
  const [value, setValue] = usePropsValue(Object.assign(Object.assign({}, props), {
29
54
  onChange: val => {
30
55
  var _a;
@@ -39,9 +64,9 @@ export const Picker = memo(p => {
39
64
  if (innerValue !== value) {
40
65
  setInnerValue(value);
41
66
  }
42
- }, [props.visible]);
67
+ }, [visible]);
43
68
  useEffect(() => {
44
- if (!props.visible) {
69
+ if (!visible) {
45
70
  setInnerValue(value);
46
71
  }
47
72
  }, [value]);
@@ -50,10 +75,11 @@ export const Picker = memo(p => {
50
75
 
51
76
  setInnerValue(val);
52
77
 
53
- if (props.visible) {
78
+ if (visible) {
54
79
  (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, val, ext);
55
80
  }
56
81
  });
82
+ const shouldRender = useShouldRender(visible, props.forceRender, props.destroyOnClose);
57
83
  const pickerElement = withNativeProps(props, React.createElement("div", {
58
84
  className: classPrefix
59
85
  }, React.createElement("div", {
@@ -61,20 +87,18 @@ export const Picker = memo(p => {
61
87
  }, React.createElement("a", {
62
88
  className: `${classPrefix}-header-button`,
63
89
  onClick: () => {
64
- var _a, _b;
90
+ var _a;
65
91
 
66
92
  (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
67
- (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
93
+ setVisible(false);
68
94
  }
69
95
  }, props.cancelText), React.createElement("div", {
70
96
  className: `${classPrefix}-header-title`
71
97
  }, props.title), React.createElement("a", {
72
98
  className: `${classPrefix}-header-button`,
73
99
  onClick: () => {
74
- var _a;
75
-
76
100
  setValue(innerValue);
77
- (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
101
+ setVisible(false);
78
102
  }
79
103
  }, props.confirmText)), React.createElement("div", {
80
104
  className: `${classPrefix}-body`
@@ -86,15 +110,16 @@ export const Picker = memo(p => {
86
110
  onChange: onChange
87
111
  }))));
88
112
  const popupElement = React.createElement(Popup, {
89
- className: `${classPrefix}-popup`,
90
- visible: props.visible,
113
+ style: props.popupStyle,
114
+ className: classNames(`${classPrefix}-popup`, props.popupClassName),
115
+ visible: visible,
91
116
  position: 'bottom',
92
117
  onMaskClick: () => {
93
- var _a, _b;
118
+ var _a;
94
119
 
95
120
  if (!props.closeOnMaskClick) return;
96
121
  (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
97
- (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
122
+ setVisible(false);
98
123
  },
99
124
  getContainer: props.getContainer,
100
125
  destroyOnClose: true,
@@ -103,9 +128,9 @@ export const Picker = memo(p => {
103
128
  onClick: props.onClick,
104
129
  forceRender: true,
105
130
  stopPropagation: props.stopPropagation
106
- }, pickerElement, React.createElement(SafeArea, {
131
+ }, shouldRender && pickerElement, React.createElement(SafeArea, {
107
132
  position: 'bottom'
108
133
  }));
109
- return React.createElement(React.Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, extend.items));
110
- });
134
+ return React.createElement(React.Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, extend.items, actions));
135
+ }));
111
136
  Picker.displayName = 'Picker';
@@ -55,7 +55,7 @@ export const Popup = p => {
55
55
  className: classPrefix,
56
56
  onClick: props.onClick,
57
57
  style: {
58
- display: active ? 'unset' : 'none'
58
+ display: active ? undefined : 'none'
59
59
  }
60
60
  }, props.mask && React.createElement(Mask, {
61
61
  visible: props.visible,
@@ -185,7 +185,7 @@ export const SwipeAction = forwardRef((p, ref) => {
185
185
  }
186
186
  }, React.createElement(animated.div, {
187
187
  style: {
188
- pointerEvents: x.to(v => v !== 0 && x.goal !== 0 ? 'none' : 'unset')
188
+ pointerEvents: x.to(v => v !== 0 && x.goal !== 0 ? 'none' : 'auto')
189
189
  }
190
190
  }, props.children)), withStopPropagation(props.stopPropagation, React.createElement("div", {
191
191
  className: 'adm-swipe-action-actions adm-swipe-action-actions-right',
@@ -1,7 +1,22 @@
1
1
  /// <reference types="react" />
2
2
  import './swiper.less';
3
3
  export type { SwiperProps, SwiperRef } from './swiper';
4
- declare const _default: import("react").ForwardRefExoticComponent<import("react").RefAttributes<unknown>> & {
4
+ declare const _default: import("react").ForwardRefExoticComponent<{
5
+ defaultIndex?: number | undefined;
6
+ allowTouchMove?: boolean | undefined;
7
+ autoplay?: boolean | undefined;
8
+ autoplayInterval?: number | undefined;
9
+ loop?: boolean | undefined;
10
+ direction?: "vertical" | "horizontal" | undefined;
11
+ onIndexChange?: ((index: number) => void) | undefined;
12
+ indicatorProps?: Pick<import("../page-indicator").PageIndicatorProps, "style" | "className" | "color"> | undefined;
13
+ indicator?: ((total: number, current: number) => import("react").ReactNode) | undefined;
14
+ slideSize?: number | undefined;
15
+ trackOffset?: number | undefined;
16
+ stuckAtBoundary?: boolean | undefined;
17
+ rubberband?: boolean | undefined;
18
+ children?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>[] | undefined;
19
+ } & import("../../utils/native-props").NativeProps<"--border-radius" | "--width" | "--height" | "--track-padding"> & import("react").RefAttributes<import("./swiper").SwiperRef>> & {
5
20
  Item: import("react").FC<{
6
21
  onClick?: ((e: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
7
22
  children?: import("react").ReactNode;
@@ -22,4 +22,19 @@ export declare type SwiperProps = {
22
22
  rubberband?: boolean;
23
23
  children?: ReactElement | ReactElement[];
24
24
  } & NativeProps<'--height' | '--width' | '--border-radius' | '--track-padding'>;
25
- export declare const Swiper: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
25
+ export declare const Swiper: React.ForwardRefExoticComponent<{
26
+ defaultIndex?: number | undefined;
27
+ allowTouchMove?: boolean | undefined;
28
+ autoplay?: boolean | undefined;
29
+ autoplayInterval?: number | undefined;
30
+ loop?: boolean | undefined;
31
+ direction?: "vertical" | "horizontal" | undefined;
32
+ onIndexChange?: ((index: number) => void) | undefined;
33
+ indicatorProps?: Pick<PageIndicatorProps, "style" | "className" | "color"> | undefined;
34
+ indicator?: ((total: number, current: number) => ReactNode) | undefined;
35
+ slideSize?: number | undefined;
36
+ trackOffset?: number | undefined;
37
+ stuckAtBoundary?: boolean | undefined;
38
+ rubberband?: boolean | undefined;
39
+ children?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactElement<any, string | React.JSXElementConstructor<any>>[] | undefined;
40
+ } & NativeProps<"--border-radius" | "--width" | "--height" | "--track-padding"> & React.RefAttributes<SwiperRef>>;
@@ -4,6 +4,7 @@
4
4
  --active-line-height: 2px;
5
5
  --active-line-border-radius: var(--active-line-height);
6
6
  position: relative;
7
+ min-width: 0;
7
8
  }
8
9
  .adm-tabs-header {
9
10
  position: relative;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ReactNode } from 'react';
3
3
  import { NativeProps } from '../../utils/native-props';
4
- export declare type TextAreaProps = Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, 'autoComplete' | 'autoFocus' | 'disabled' | 'readOnly' | 'onFocus' | 'onBlur' | 'onCompositionStart' | 'onCompositionEnd' | 'onClick'> & {
4
+ export declare type TextAreaProps = Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, 'autoComplete' | 'autoFocus' | 'disabled' | 'readOnly' | 'name' | 'onFocus' | 'onBlur' | 'onCompositionStart' | 'onCompositionEnd' | 'onClick'> & {
5
5
  onChange?: (val: string) => void;
6
6
  value?: string;
7
7
  defaultValue?: string;
@@ -20,7 +20,7 @@ export declare type TextAreaRef = {
20
20
  focus: () => void;
21
21
  blur: () => void;
22
22
  };
23
- export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "autoComplete" | "autoFocus" | "readOnly"> & {
23
+ export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "name" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "autoComplete" | "autoFocus" | "readOnly"> & {
24
24
  onChange?: ((val: string) => void) | undefined;
25
25
  value?: string | undefined;
26
26
  defaultValue?: string | undefined;
@@ -1,4 +1,5 @@
1
- import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
1
+ import React, { forwardRef, useImperativeHandle, useRef } from 'react';
2
+ import { useIsomorphicLayoutEffect } from 'ahooks';
2
3
  import { withNativeProps } from '../../utils/native-props';
3
4
  import { usePropsValue } from '../../utils/use-props-value';
4
5
  import { mergeProps } from '../../utils/with-default-props';
@@ -41,7 +42,7 @@ export const TextArea = forwardRef((p, ref) => {
41
42
  (_a = nativeTextAreaRef.current) === null || _a === void 0 ? void 0 : _a.blur();
42
43
  }
43
44
  }));
44
- useEffect(() => {
45
+ useIsomorphicLayoutEffect(() => {
45
46
  if (!autoSize) return;
46
47
  const textArea = nativeTextAreaRef.current;
47
48
  if (!textArea) return;
@@ -114,6 +115,7 @@ export const TextArea = forwardRef((p, ref) => {
114
115
  autoFocus: props.autoFocus,
115
116
  disabled: props.disabled,
116
117
  readOnly: props.readOnly,
118
+ name: props.name,
117
119
  onFocus: props.onFocus,
118
120
  onBlur: props.onBlur,
119
121
  onClick: props.onClick
@@ -1,12 +1,12 @@
1
1
  import React, { createRef, forwardRef, useEffect, useImperativeHandle, useState } from 'react';
2
2
  import { resolveContainer } from '../../utils/get-container';
3
- import ReactDOM from 'react-dom';
4
3
  import { InternalToast } from './toast';
5
4
  import { mergeProps } from '../../utils/with-default-props';
5
+ import { render, unmount as reactUnmount } from '../../utils/render';
6
6
  const containers = [];
7
7
 
8
8
  function unmount(container) {
9
- const unmountResult = ReactDOM.unmountComponentAtNode(container);
9
+ const unmountResult = reactUnmount(container);
10
10
 
11
11
  if (unmountResult && container.parentNode) {
12
12
  container.parentNode.removeChild(container);
@@ -64,7 +64,7 @@ export function show(p) {
64
64
  }));
65
65
  });
66
66
  const ref = createRef();
67
- ReactDOM.render(React.createElement(TempToast, {
67
+ render(React.createElement(TempToast, {
68
68
  ref: ref
69
69
  }), container);
70
70
  return {
@@ -84,7 +84,8 @@ export const VirtualInput = forwardRef((p, ref) => {
84
84
 
85
85
  (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
86
86
  (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
87
- }
87
+ },
88
+ getContainer: null
88
89
  });
89
90
  return withNativeProps(props, React.createElement("div", {
90
91
  ref: rootRef,
@@ -86,6 +86,7 @@ export declare const base: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,7 +86,8 @@ export const base = {
86
86
  }
87
87
  },
88
88
  ImageUploader: {
89
- uploading: 'Uploading...'
89
+ uploading: 'Uploading...',
90
+ upload: 'Upload'
90
91
  },
91
92
  InfiniteScroll: {
92
93
  noMore: 'No more'
@@ -86,6 +86,7 @@ declare const enUS: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const esES: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const faIR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const koKR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhCN: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -88,7 +88,8 @@ const zhCN = mergeLocale(base, {
88
88
  }
89
89
  },
90
90
  ImageUploader: {
91
- uploading: '上传中...'
91
+ uploading: '上传中...',
92
+ upload: '上传'
92
93
  },
93
94
  InfiniteScroll: {
94
95
  noMore: '没有更多了'
@@ -86,6 +86,7 @@ declare const zhHK: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhTW: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
+ export {};
@@ -0,0 +1,3 @@
1
+ export function isNodeWithContent(node) {
2
+ return node !== undefined && node !== null && node !== false;
3
+ }
@@ -1,16 +1,16 @@
1
- import ReactDOM from 'react-dom';
1
+ import { render, unmount as reactUnmount } from './render';
2
2
  export function renderToBody(element) {
3
3
  const container = document.createElement('div');
4
4
  document.body.appendChild(container);
5
5
 
6
6
  function unmount() {
7
- const unmountResult = ReactDOM.unmountComponentAtNode(container);
7
+ const unmountResult = reactUnmount(container);
8
8
 
9
9
  if (unmountResult && container.parentNode) {
10
10
  container.parentNode.removeChild(container);
11
11
  }
12
12
  }
13
13
 
14
- ReactDOM.render(element, container);
14
+ render(element, container);
15
15
  return unmount;
16
16
  }
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import type { Root } from 'react-dom/client';
3
+ declare const MARK = "__antd_mobile_root__";
4
+ declare type ContainerType = (Element | DocumentFragment) & {
5
+ [MARK]?: Root;
6
+ };
7
+ export declare function render(node: ReactElement, container: ContainerType): void;
8
+ export declare function unmount(container: ContainerType): boolean | Promise<void>;
9
+ export {};