antd-mobile 5.1.0 → 5.2.2

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 (299) hide show
  1. package/2x/README.md +9 -1
  2. package/2x/cjs/components/calendar/calendar.d.ts +11 -2
  3. package/2x/cjs/components/calendar/calendar.js +32 -10
  4. package/2x/cjs/components/calendar/index.d.ts +1 -1
  5. package/2x/cjs/components/capsule-tabs/capsule-tabs.d.ts +1 -0
  6. package/2x/cjs/components/capsule-tabs/capsule-tabs.js +14 -17
  7. package/2x/cjs/components/cascade-picker/prompt.d.ts +2 -1
  8. package/2x/cjs/components/collapse/collapse.js +5 -3
  9. package/2x/cjs/components/date-picker/date-picker.js +11 -1
  10. package/2x/cjs/components/dialog/clear.d.ts +1 -0
  11. package/2x/cjs/components/dialog/clear.js +14 -0
  12. package/2x/cjs/components/dialog/dialog.css +27 -18
  13. package/2x/cjs/components/dialog/dialog.js +39 -42
  14. package/2x/cjs/components/dialog/index.d.ts +2 -0
  15. package/2x/cjs/components/dialog/index.js +4 -1
  16. package/2x/cjs/components/dialog/show.d.ts +1 -0
  17. package/2x/cjs/components/dialog/show.js +23 -11
  18. package/2x/cjs/components/dropdown/dropdown.css +2 -1
  19. package/2x/cjs/components/dropdown/item.js +2 -2
  20. package/2x/cjs/components/form/form.css +12 -0
  21. package/2x/cjs/components/form/form.d.ts +4 -4
  22. package/2x/cjs/components/form/index.css +12 -0
  23. package/2x/cjs/components/form/index.d.ts +3 -3
  24. package/2x/cjs/components/image-viewer/image-viewer.d.ts +1 -1
  25. package/2x/cjs/components/image-viewer/index.d.ts +1 -1
  26. package/2x/cjs/components/input/input.d.ts +2 -2
  27. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.d.ts +1 -0
  28. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.js +14 -17
  29. package/2x/cjs/components/mask/mask.js +2 -2
  30. package/2x/cjs/components/modal/clear.d.ts +1 -0
  31. package/2x/cjs/components/modal/clear.js +14 -0
  32. package/2x/cjs/components/modal/index.d.ts +2 -0
  33. package/2x/cjs/components/modal/index.js +4 -1
  34. package/2x/cjs/components/modal/modal.css +27 -21
  35. package/2x/cjs/components/modal/modal.js +39 -36
  36. package/2x/cjs/components/modal/show.d.ts +1 -0
  37. package/2x/cjs/components/modal/show.js +23 -11
  38. package/2x/cjs/components/passcode-input/passcode-input.d.ts +1 -1
  39. package/2x/cjs/components/picker/prompt.d.ts +2 -2
  40. package/2x/cjs/components/picker-view/picker-view.css +0 -10
  41. package/2x/cjs/components/picker-view/wheel.js +7 -14
  42. package/2x/cjs/components/popover/arrow.js +1 -2
  43. package/2x/cjs/components/popover/index.d.ts +3 -3
  44. package/2x/cjs/components/popover/popover-menu.d.ts +1 -1
  45. package/2x/cjs/components/popover/popover.d.ts +1 -1
  46. package/2x/cjs/components/popup/popup.js +2 -2
  47. package/2x/cjs/components/search-bar/search-bar.js +1 -0
  48. package/2x/cjs/components/selector/selector.d.ts +3 -1
  49. package/2x/cjs/components/stepper/stepper.d.ts +12 -2
  50. package/2x/cjs/components/stepper/stepper.js +43 -16
  51. package/2x/cjs/components/swiper/index.d.ts +3 -3
  52. package/2x/cjs/components/swiper/swiper.d.ts +3 -3
  53. package/2x/cjs/components/switch/spin-icon.d.ts +3 -0
  54. package/2x/cjs/components/switch/spin-icon.js +37 -0
  55. package/2x/cjs/components/switch/switch.css +1 -1
  56. package/2x/cjs/components/switch/switch.js +4 -6
  57. package/2x/cjs/components/tabs/tabs.d.ts +1 -0
  58. package/2x/cjs/components/tabs/tabs.js +17 -19
  59. package/2x/cjs/components/virtual-input/virtual-input.d.ts +2 -2
  60. package/2x/cjs/utils/measure-css-length.d.ts +1 -0
  61. package/2x/cjs/utils/measure-css-length.js +28 -0
  62. package/2x/cjs/utils/native-props.d.ts +1 -1
  63. package/2x/cjs/utils/render-to-container.d.ts +1 -1
  64. package/2x/cjs/utils/should-render.d.ts +10 -0
  65. package/{cjs/utils/use-should-render.js → 2x/cjs/utils/should-render.js} +8 -0
  66. package/2x/cjs/utils/use-drag-and-pinch.d.ts +1 -2
  67. package/2x/cjs/utils/use-isomorphic-update-layout-effect.js +1 -3
  68. package/2x/cjs/utils/use-props-value.d.ts +1 -1
  69. package/2x/cjs/utils/use-tab-list-scroll.js +3 -1
  70. package/2x/cjs/utils/use-touch.d.ts +0 -1
  71. package/2x/cjs/utils/validate.js +1 -1
  72. package/2x/cjs/utils/with-stop-propagation.d.ts +1 -1
  73. package/2x/es/components/calendar/calendar.d.ts +11 -2
  74. package/2x/es/components/calendar/calendar.js +33 -9
  75. package/2x/es/components/calendar/index.d.ts +1 -1
  76. package/2x/es/components/capsule-tabs/capsule-tabs.d.ts +1 -0
  77. package/2x/es/components/capsule-tabs/capsule-tabs.js +13 -17
  78. package/2x/es/components/cascade-picker/prompt.d.ts +2 -1
  79. package/2x/es/components/collapse/collapse.js +4 -3
  80. package/2x/es/components/date-picker/date-picker.js +10 -1
  81. package/2x/es/components/dialog/clear.d.ts +1 -0
  82. package/2x/es/components/dialog/clear.js +6 -0
  83. package/2x/es/components/dialog/dialog.css +27 -18
  84. package/2x/es/components/dialog/dialog.js +37 -41
  85. package/2x/es/components/dialog/index.d.ts +2 -0
  86. package/2x/es/components/dialog/index.js +3 -1
  87. package/2x/es/components/dialog/show.d.ts +1 -0
  88. package/2x/es/components/dialog/show.js +20 -11
  89. package/2x/es/components/dropdown/dropdown.css +2 -1
  90. package/2x/es/components/dropdown/item.js +1 -1
  91. package/2x/es/components/form/form.css +12 -0
  92. package/2x/es/components/form/form.d.ts +4 -4
  93. package/2x/es/components/form/index.css +12 -0
  94. package/2x/es/components/form/index.d.ts +3 -3
  95. package/2x/es/components/image-viewer/image-viewer.d.ts +1 -1
  96. package/2x/es/components/image-viewer/index.d.ts +1 -1
  97. package/2x/es/components/input/input.d.ts +2 -2
  98. package/2x/es/components/jumbo-tabs/jumbo-tabs.d.ts +1 -0
  99. package/2x/es/components/jumbo-tabs/jumbo-tabs.js +13 -17
  100. package/2x/es/components/mask/mask.js +1 -1
  101. package/2x/es/components/modal/clear.d.ts +1 -0
  102. package/2x/es/components/modal/clear.js +6 -0
  103. package/2x/es/components/modal/index.d.ts +2 -0
  104. package/2x/es/components/modal/index.js +3 -1
  105. package/2x/es/components/modal/modal.css +27 -21
  106. package/2x/es/components/modal/modal.js +37 -36
  107. package/2x/es/components/modal/show.d.ts +1 -0
  108. package/2x/es/components/modal/show.js +20 -11
  109. package/2x/es/components/passcode-input/passcode-input.d.ts +1 -1
  110. package/2x/es/components/picker/prompt.d.ts +2 -2
  111. package/2x/es/components/picker-view/picker-view.css +0 -10
  112. package/2x/es/components/picker-view/wheel.js +7 -14
  113. package/2x/es/components/popover/arrow.js +1 -2
  114. package/2x/es/components/popover/index.d.ts +3 -3
  115. package/2x/es/components/popover/popover-menu.d.ts +1 -1
  116. package/2x/es/components/popover/popover.d.ts +1 -1
  117. package/2x/es/components/popup/popup.js +1 -1
  118. package/2x/es/components/search-bar/search-bar.js +1 -0
  119. package/2x/es/components/selector/selector.d.ts +3 -1
  120. package/2x/es/components/stepper/stepper.d.ts +12 -2
  121. package/2x/es/components/stepper/stepper.js +43 -16
  122. package/2x/es/components/swiper/index.d.ts +3 -3
  123. package/2x/es/components/swiper/swiper.d.ts +3 -3
  124. package/2x/es/components/switch/spin-icon.d.ts +3 -0
  125. package/2x/es/components/switch/spin-icon.js +23 -0
  126. package/2x/es/components/switch/switch.css +1 -1
  127. package/2x/es/components/switch/switch.js +3 -5
  128. package/2x/es/components/tabs/tabs.d.ts +1 -0
  129. package/2x/es/components/tabs/tabs.js +16 -20
  130. package/2x/es/components/virtual-input/virtual-input.d.ts +2 -2
  131. package/2x/es/utils/measure-css-length.d.ts +1 -0
  132. package/2x/es/utils/measure-css-length.js +19 -0
  133. package/2x/es/utils/native-props.d.ts +1 -1
  134. package/2x/es/utils/render-to-container.d.ts +1 -1
  135. package/2x/es/utils/should-render.d.ts +10 -0
  136. package/2x/es/utils/{use-should-render.js → should-render.js} +4 -0
  137. package/2x/es/utils/use-drag-and-pinch.d.ts +1 -2
  138. package/2x/es/utils/use-isomorphic-update-layout-effect.js +1 -2
  139. package/2x/es/utils/use-props-value.d.ts +1 -1
  140. package/2x/es/utils/use-tab-list-scroll.js +3 -2
  141. package/2x/es/utils/use-touch.d.ts +0 -1
  142. package/2x/es/utils/validate.js +1 -1
  143. package/2x/es/utils/with-stop-propagation.d.ts +1 -1
  144. package/2x/package.json +4 -4
  145. package/README.md +9 -1
  146. package/cjs/components/calendar/calendar.d.ts +11 -2
  147. package/cjs/components/calendar/calendar.js +32 -10
  148. package/cjs/components/calendar/index.d.ts +1 -1
  149. package/cjs/components/capsule-tabs/capsule-tabs.d.ts +1 -0
  150. package/cjs/components/capsule-tabs/capsule-tabs.js +14 -17
  151. package/cjs/components/cascade-picker/prompt.d.ts +2 -1
  152. package/cjs/components/collapse/collapse.js +5 -3
  153. package/cjs/components/date-picker/date-picker.js +11 -1
  154. package/cjs/components/dialog/clear.d.ts +1 -0
  155. package/cjs/components/dialog/clear.js +14 -0
  156. package/cjs/components/dialog/dialog.css +26 -18
  157. package/cjs/components/dialog/dialog.js +39 -42
  158. package/cjs/components/dialog/index.d.ts +2 -0
  159. package/cjs/components/dialog/index.js +4 -1
  160. package/cjs/components/dialog/show.d.ts +1 -0
  161. package/cjs/components/dialog/show.js +23 -11
  162. package/cjs/components/dropdown/dropdown.css +2 -1
  163. package/cjs/components/dropdown/item.js +2 -2
  164. package/cjs/components/form/form.css +11 -0
  165. package/cjs/components/form/form.d.ts +4 -4
  166. package/cjs/components/form/index.css +11 -0
  167. package/cjs/components/form/index.d.ts +3 -3
  168. package/cjs/components/image-viewer/image-viewer.d.ts +1 -1
  169. package/cjs/components/image-viewer/index.d.ts +1 -1
  170. package/cjs/components/input/input.d.ts +2 -2
  171. package/cjs/components/jumbo-tabs/jumbo-tabs.d.ts +1 -0
  172. package/cjs/components/jumbo-tabs/jumbo-tabs.js +14 -17
  173. package/cjs/components/mask/mask.js +2 -2
  174. package/cjs/components/modal/clear.d.ts +1 -0
  175. package/cjs/components/modal/clear.js +14 -0
  176. package/cjs/components/modal/index.d.ts +2 -0
  177. package/cjs/components/modal/index.js +4 -1
  178. package/cjs/components/modal/modal.css +26 -20
  179. package/cjs/components/modal/modal.js +39 -36
  180. package/cjs/components/modal/show.d.ts +1 -0
  181. package/cjs/components/modal/show.js +23 -11
  182. package/cjs/components/passcode-input/passcode-input.d.ts +1 -1
  183. package/cjs/components/picker/prompt.d.ts +2 -2
  184. package/cjs/components/picker-view/picker-view.css +0 -9
  185. package/cjs/components/picker-view/wheel.js +7 -14
  186. package/cjs/components/popover/arrow.js +1 -2
  187. package/cjs/components/popover/index.d.ts +3 -3
  188. package/cjs/components/popover/popover-menu.d.ts +1 -1
  189. package/cjs/components/popover/popover.d.ts +1 -1
  190. package/cjs/components/popup/popup.js +2 -2
  191. package/cjs/components/search-bar/search-bar.js +1 -0
  192. package/cjs/components/selector/selector.d.ts +3 -1
  193. package/cjs/components/stepper/stepper.d.ts +12 -2
  194. package/cjs/components/stepper/stepper.js +43 -16
  195. package/cjs/components/swiper/index.d.ts +3 -3
  196. package/cjs/components/swiper/swiper.d.ts +3 -3
  197. package/cjs/components/switch/spin-icon.d.ts +3 -0
  198. package/cjs/components/switch/spin-icon.js +37 -0
  199. package/cjs/components/switch/switch.css +1 -1
  200. package/cjs/components/switch/switch.js +4 -6
  201. package/cjs/components/tabs/tabs.d.ts +1 -0
  202. package/cjs/components/tabs/tabs.js +17 -19
  203. package/cjs/components/virtual-input/virtual-input.d.ts +2 -2
  204. package/cjs/utils/measure-css-length.d.ts +1 -0
  205. package/cjs/utils/measure-css-length.js +28 -0
  206. package/cjs/utils/native-props.d.ts +1 -1
  207. package/cjs/utils/render-to-container.d.ts +1 -1
  208. package/cjs/utils/should-render.d.ts +10 -0
  209. package/{2x/cjs/utils/use-should-render.js → cjs/utils/should-render.js} +8 -0
  210. package/cjs/utils/use-drag-and-pinch.d.ts +1 -2
  211. package/cjs/utils/use-isomorphic-update-layout-effect.js +1 -3
  212. package/cjs/utils/use-props-value.d.ts +1 -1
  213. package/cjs/utils/use-tab-list-scroll.js +3 -1
  214. package/cjs/utils/use-touch.d.ts +0 -1
  215. package/cjs/utils/validate.js +1 -1
  216. package/cjs/utils/with-stop-propagation.d.ts +1 -1
  217. package/es/components/calendar/calendar.d.ts +11 -2
  218. package/es/components/calendar/calendar.js +33 -9
  219. package/es/components/calendar/index.d.ts +1 -1
  220. package/es/components/capsule-tabs/capsule-tabs.d.ts +1 -0
  221. package/es/components/capsule-tabs/capsule-tabs.js +13 -17
  222. package/es/components/cascade-picker/prompt.d.ts +2 -1
  223. package/es/components/collapse/collapse.js +4 -3
  224. package/es/components/date-picker/date-picker.js +10 -1
  225. package/es/components/dialog/clear.d.ts +1 -0
  226. package/es/components/dialog/clear.js +6 -0
  227. package/es/components/dialog/dialog.css +26 -18
  228. package/es/components/dialog/dialog.js +37 -41
  229. package/es/components/dialog/index.d.ts +2 -0
  230. package/es/components/dialog/index.js +3 -1
  231. package/es/components/dialog/show.d.ts +1 -0
  232. package/es/components/dialog/show.js +20 -11
  233. package/es/components/dropdown/dropdown.css +2 -1
  234. package/es/components/dropdown/item.js +1 -1
  235. package/es/components/form/form.css +11 -0
  236. package/es/components/form/form.d.ts +4 -4
  237. package/es/components/form/index.css +11 -0
  238. package/es/components/form/index.d.ts +3 -3
  239. package/es/components/image-viewer/image-viewer.d.ts +1 -1
  240. package/es/components/image-viewer/index.d.ts +1 -1
  241. package/es/components/input/input.d.ts +2 -2
  242. package/es/components/jumbo-tabs/jumbo-tabs.d.ts +1 -0
  243. package/es/components/jumbo-tabs/jumbo-tabs.js +13 -17
  244. package/es/components/mask/mask.js +1 -1
  245. package/es/components/modal/clear.d.ts +1 -0
  246. package/es/components/modal/clear.js +6 -0
  247. package/es/components/modal/index.d.ts +2 -0
  248. package/es/components/modal/index.js +3 -1
  249. package/es/components/modal/modal.css +26 -20
  250. package/es/components/modal/modal.js +37 -36
  251. package/es/components/modal/show.d.ts +1 -0
  252. package/es/components/modal/show.js +20 -11
  253. package/es/components/passcode-input/passcode-input.d.ts +1 -1
  254. package/es/components/picker/prompt.d.ts +2 -2
  255. package/es/components/picker-view/picker-view.css +0 -9
  256. package/es/components/picker-view/wheel.js +7 -14
  257. package/es/components/popover/arrow.js +1 -2
  258. package/es/components/popover/index.d.ts +3 -3
  259. package/es/components/popover/popover-menu.d.ts +1 -1
  260. package/es/components/popover/popover.d.ts +1 -1
  261. package/es/components/popup/popup.js +1 -1
  262. package/es/components/search-bar/search-bar.js +1 -0
  263. package/es/components/selector/selector.d.ts +3 -1
  264. package/es/components/stepper/stepper.d.ts +12 -2
  265. package/es/components/stepper/stepper.js +43 -16
  266. package/es/components/swiper/index.d.ts +3 -3
  267. package/es/components/swiper/swiper.d.ts +3 -3
  268. package/es/components/switch/spin-icon.d.ts +3 -0
  269. package/es/components/switch/spin-icon.js +23 -0
  270. package/es/components/switch/switch.css +1 -1
  271. package/es/components/switch/switch.js +3 -5
  272. package/es/components/tabs/tabs.d.ts +1 -0
  273. package/es/components/tabs/tabs.js +16 -20
  274. package/es/components/virtual-input/virtual-input.d.ts +2 -2
  275. package/es/utils/measure-css-length.d.ts +1 -0
  276. package/es/utils/measure-css-length.js +19 -0
  277. package/es/utils/native-props.d.ts +1 -1
  278. package/es/utils/render-to-container.d.ts +1 -1
  279. package/es/utils/should-render.d.ts +10 -0
  280. package/es/utils/{use-should-render.js → should-render.js} +4 -0
  281. package/es/utils/use-drag-and-pinch.d.ts +1 -2
  282. package/es/utils/use-isomorphic-update-layout-effect.js +1 -2
  283. package/es/utils/use-props-value.d.ts +1 -1
  284. package/es/utils/use-tab-list-scroll.js +3 -2
  285. package/es/utils/use-touch.d.ts +0 -1
  286. package/es/utils/validate.js +1 -1
  287. package/es/utils/with-stop-propagation.d.ts +1 -1
  288. package/package.json +4 -4
  289. package/umd/antd-mobile.js +1 -1
  290. package/2x/assets/spin.svg +0 -12
  291. package/2x/cjs/assets/spin.svg +0 -12
  292. package/2x/cjs/utils/use-should-render.d.ts +0 -1
  293. package/2x/es/assets/spin.svg +0 -12
  294. package/2x/es/utils/use-should-render.d.ts +0 -1
  295. package/assets/spin.svg +0 -12
  296. package/cjs/assets/spin.svg +0 -12
  297. package/cjs/utils/use-should-render.d.ts +0 -1
  298. package/es/assets/spin.svg +0 -12
  299. package/es/utils/use-should-render.d.ts +0 -1
@@ -25,6 +25,10 @@ var _useResizeEffect = require("../../utils/use-resize-effect");
25
25
 
26
26
  var _withDefaultProps = require("../../utils/with-default-props");
27
27
 
28
+ var _useIsomorphicUpdateLayoutEffect = require("../../utils/use-isomorphic-update-layout-effect");
29
+
30
+ var _shouldRender = require("../../utils/should-render");
31
+
28
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
33
 
30
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -166,7 +170,7 @@ const Tabs = p => {
166
170
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
167
171
  animate(!x.isAnimating);
168
172
  }, []);
169
- (0, _ahooks.useUpdateLayoutEffect)(() => {
173
+ (0, _useIsomorphicUpdateLayoutEffect.useIsomorphicUpdateLayoutEffect)(() => {
170
174
  animate();
171
175
  }, [activeKey]);
172
176
  (0, _useResizeEffect.useResizeEffect)(() => {
@@ -253,24 +257,18 @@ const Tabs = p => {
253
257
  return null;
254
258
  }
255
259
 
256
- if (pane.key === activeKey) {
257
- return _react.default.createElement("div", {
258
- key: pane.key,
259
- className: `${classPrefix}-content`
260
- }, pane.props.children);
261
- }
262
-
263
- if (pane.props.forceRender) {
264
- return _react.default.createElement("div", {
265
- key: pane.key,
266
- className: `${classPrefix}-content`,
267
- style: {
268
- display: 'none'
269
- }
270
- }, pane.props.children);
271
- }
272
-
273
- return null;
260
+ const active = pane.key === activeKey;
261
+ return _react.default.createElement(_shouldRender.ShouldRender, {
262
+ key: pane.key,
263
+ active: active,
264
+ forceRender: pane.props.forceRender,
265
+ destroyOnClose: pane.props.destroyOnClose
266
+ }, _react.default.createElement("div", {
267
+ className: `${classPrefix}-content`,
268
+ style: {
269
+ display: active ? 'block' : 'none'
270
+ }
271
+ }, pane.props.children));
274
272
  })));
275
273
  };
276
274
 
@@ -18,7 +18,7 @@ export declare const VirtualInput: React.ForwardRefExoticComponent<{
18
18
  onFocus?: (() => void) | undefined;
19
19
  onBlur?: (() => void) | undefined;
20
20
  onClick?: ((e: React.MouseEvent<HTMLDivElement>) => void) | undefined;
21
- keyboard?: React.ReactElement<NumberKeyboardProps, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)> | undefined;
21
+ keyboard?: React.ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
22
22
  clearable?: boolean | undefined;
23
23
  onClear?: (() => void) | undefined;
24
- } & Pick<InputProps, "value" | "disabled" | "onChange" | "placeholder"> & NativeProps<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--caret-width" | "--caret-color"> & React.RefAttributes<VirtualInputRef>>;
24
+ } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder"> & NativeProps<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--caret-width" | "--caret-color"> & React.RefAttributes<VirtualInputRef>>;
@@ -0,0 +1 @@
1
+ export declare function measureCSSLength(raw: string): number;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.measureCSSLength = measureCSSLength;
7
+
8
+ var _isDev = require("./is-dev");
9
+
10
+ var _devLog = require("./dev-log");
11
+
12
+ function measureCSSLength(raw) {
13
+ const withUnit = raw.trim();
14
+
15
+ if (withUnit.endsWith('px')) {
16
+ return parseFloat(withUnit);
17
+ } else if (withUnit.endsWith('rem')) {
18
+ return parseFloat(withUnit) * parseFloat(window.getComputedStyle(document.documentElement).fontSize);
19
+ } else if (withUnit.endsWith('vw')) {
20
+ return parseFloat(withUnit) * window.innerWidth / 100;
21
+ } else {
22
+ if (_isDev.isDev) {
23
+ (0, _devLog.devError)('Global', 'You are using a not supported CSS unit. Only `px` `rem` and `vw` are supported.');
24
+ }
25
+
26
+ return 0;
27
+ }
28
+ }
@@ -5,4 +5,4 @@ export interface NativeProps<S extends string = never> {
5
5
  style?: CSSProperties & Partial<Record<S, string>>;
6
6
  tabIndex?: number;
7
7
  }
8
- export declare function withNativeProps<P extends NativeProps>(props: P, element: ReactElement): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
8
+ export declare function withNativeProps<P extends NativeProps>(props: P, element: ReactElement): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -1,3 +1,3 @@
1
1
  import { ReactElement } from 'react';
2
2
  export declare type GetContainer = HTMLElement | (() => HTMLElement) | null;
3
- export declare function renderToContainer(getContainer: GetContainer, node: ReactElement): ReactElement<any, string | ((props: any) => ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
3
+ export declare function renderToContainer(getContainer: GetContainer, node: ReactElement): ReactElement<any, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,10 @@
1
+ import { FC, ReactElement } from 'react';
2
+ interface Props {
3
+ active: boolean;
4
+ forceRender?: boolean;
5
+ destroyOnClose?: boolean;
6
+ children: ReactElement;
7
+ }
8
+ export declare const ShouldRender: FC<Props>;
9
+ export declare function useShouldRender(active: boolean, forceRender?: boolean, destroyOnClose?: boolean): boolean;
10
+ export {};
@@ -3,10 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.ShouldRender = void 0;
6
7
  exports.useShouldRender = useShouldRender;
7
8
 
8
9
  var _useInitialized = require("./use-initialized");
9
10
 
11
+ const ShouldRender = props => {
12
+ const shouldRender = useShouldRender(props.active, props.forceRender, props.destroyOnClose);
13
+ return shouldRender ? props.children : null;
14
+ };
15
+
16
+ exports.ShouldRender = ShouldRender;
17
+
10
18
  function useShouldRender(active, forceRender, destroyOnClose) {
11
19
  const initialized = (0, _useInitialized.useInitialized)(active);
12
20
  if (forceRender) return true;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
- export declare const useDragAndPinch: <Config extends import("@use-gesture/react").UserGestureConfig = import("@use-gesture/react").UserGestureConfig>(_handlers: Partial<import("@use-gesture/react").NativeHandlers<import("@use-gesture/react").EventTypes> & import("@use-gesture/react").UserHandlers<import("@use-gesture/react").EventTypes>>, _config?: {} | Config | undefined) => Config["target"] extends object ? void : (...args: any[]) => Pick<import("react").DOMAttributes<EventTarget>, "onClick" | "onChange" | "onPause" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScrollCapture" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">;
1
+ export declare const useDragAndPinch: <Config extends import("@use-gesture/react").UserGestureConfig = import("@use-gesture/react").UserGestureConfig>(_handlers: Partial<import("@use-gesture/react").NativeHandlers<import("@use-gesture/react").EventTypes> & import("@use-gesture/react").UserHandlers<import("@use-gesture/react").EventTypes>>, _config?: {} | Config | undefined) => Config["target"] extends object ? void : (...args: any[]) => import("@use-gesture/react").ReactDOMAttributes;
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useIsomorphicUpdateLayoutEffect = void 0;
7
7
 
8
- var _createUpdateEffect = require("ahooks/lib/createUpdateEffect");
9
-
10
8
  var _ahooks = require("ahooks");
11
9
 
12
- const useIsomorphicUpdateLayoutEffect = (0, _createUpdateEffect.createUpdateEffect)(_ahooks.useIsomorphicLayoutEffect);
10
+ const useIsomorphicUpdateLayoutEffect = (0, _ahooks.createUpdateEffect)(_ahooks.useIsomorphicLayoutEffect);
13
11
  exports.useIsomorphicUpdateLayoutEffect = useIsomorphicUpdateLayoutEffect;
@@ -3,5 +3,5 @@ declare type Options<T> = {
3
3
  defaultValue: T;
4
4
  onChange?: (v: T) => void;
5
5
  };
6
- export declare function usePropsValue<T>(options: Options<T>): readonly [T, (v: T) => void];
6
+ export declare function usePropsValue<T>(options: Options<T>): readonly [T, (this: unknown, v: T) => void];
7
7
  export {};
@@ -13,6 +13,8 @@ var _bound = require("./bound");
13
13
 
14
14
  var _ahooks = require("ahooks");
15
15
 
16
+ var _useIsomorphicUpdateLayoutEffect = require("./use-isomorphic-update-layout-effect");
17
+
16
18
  const useTabListScroll = (targetRef, activeIndex) => {
17
19
  const [{
18
20
  scrollLeft
@@ -50,7 +52,7 @@ const useTabListScroll = (targetRef, activeIndex) => {
50
52
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
51
53
  animate(true);
52
54
  }, []);
53
- (0, _ahooks.useUpdateLayoutEffect)(() => {
55
+ (0, _useIsomorphicUpdateLayoutEffect.useIsomorphicUpdateLayoutEffect)(() => {
54
56
  animate();
55
57
  }, [activeIndex]);
56
58
  (0, _useMutationEffect.useMutationEffect)(() => {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare type Direction = '' | 'vertical' | 'horizontal';
3
2
  export declare function useTouch(): {
4
3
  move: EventListener;
@@ -23,7 +23,7 @@ function isObject(val) {
23
23
  }
24
24
 
25
25
  function isPromise(obj) {
26
- return obj && typeof obj === 'object' && typeof obj.then === 'function';
26
+ return !!obj && typeof obj === 'object' && typeof obj.then === 'function';
27
27
  }
28
28
 
29
29
  function isDate(val) {
@@ -1,3 +1,3 @@
1
1
  import React, { ReactElement } from 'react';
2
2
  export declare type PropagationEvent = 'click';
3
- export declare function withStopPropagation(events: PropagationEvent[], element: ReactElement): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
3
+ export declare function withStopPropagation(events: PropagationEvent[], element: ReactElement): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -1,5 +1,13 @@
1
- import { FC } from 'react';
1
+ import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
+ declare type Page = {
4
+ month: number;
5
+ year: number;
6
+ };
7
+ export declare type CalenderRef = {
8
+ jumpTo: (page: Page | ((page: Page) => Page)) => void;
9
+ jumpToToday: () => void;
10
+ };
3
11
  export declare type CalendarProps = {
4
12
  weekStartsOn?: 'Monday' | 'Sunday';
5
13
  renderLabel?: (date: Date) => string | null | undefined;
@@ -20,4 +28,5 @@ export declare type CalendarProps = {
20
28
  defaultValue?: [Date, Date] | null;
21
29
  onChange?: (val: [Date, Date]) => void;
22
30
  }) & NativeProps;
23
- export declare const Calendar: FC<CalendarProps>;
31
+ export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<CalenderRef>>;
32
+ export {};
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React, { forwardRef, useMemo, useState, useImperativeHandle } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import dayjs from 'dayjs';
4
4
  import classNames from 'classnames';
@@ -13,7 +13,7 @@ const classPrefix = 'adm-calendar';
13
13
  const defaultProps = {
14
14
  weekStartsOn: 'Sunday'
15
15
  };
16
- export const Calendar = p => {
16
+ export const Calendar = forwardRef((p, ref) => {
17
17
  const today = dayjs();
18
18
  const props = mergeProps(defaultProps, p);
19
19
  const {
@@ -32,6 +32,25 @@ export const Calendar = p => {
32
32
 
33
33
  (_a = props.onPageChange) === null || _a === void 0 ? void 0 : _a.call(props, current.year(), current.month() + 1);
34
34
  }, [current]);
35
+ useImperativeHandle(ref, () => ({
36
+ jumpTo: pageOrPageGenerator => {
37
+ let page;
38
+
39
+ if (typeof pageOrPageGenerator === 'function') {
40
+ page = pageOrPageGenerator({
41
+ year: current.year(),
42
+ month: current.month() + 1
43
+ });
44
+ } else {
45
+ page = pageOrPageGenerator;
46
+ }
47
+
48
+ setCurrent(dayjs().year(page.year).month(page.month - 1));
49
+ },
50
+ jumpToToday: () => {
51
+ setCurrent(dayjs().date(1));
52
+ }
53
+ }));
35
54
  const header = React.createElement("div", {
36
55
  className: `${classPrefix}-header`
37
56
  }, React.createElement("a", {
@@ -117,13 +136,18 @@ export const Calendar = p => {
117
136
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate());
118
137
  } else if (props.selectionMode === 'range') {
119
138
  if (begin !== null && end === null) {
120
- if (d.isBefore(begin)) {
121
- setEnd(begin);
122
- setBegin(d);
123
- (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, [d.toDate(), begin.toDate()]);
139
+ if (begin.isSame(d.toDate())) {
140
+ setBegin(null);
141
+ setEnd(null);
124
142
  } else {
125
- setEnd(d);
126
- (_c = props.onChange) === null || _c === void 0 ? void 0 : _c.call(props, [begin.toDate(), d.toDate()]);
143
+ if (d.isBefore(begin)) {
144
+ setEnd(begin);
145
+ setBegin(d);
146
+ (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, [d.toDate(), begin.toDate()]);
147
+ } else {
148
+ setEnd(d);
149
+ (_c = props.onChange) === null || _c === void 0 ? void 0 : _c.call(props, [begin.toDate(), d.toDate()]);
150
+ }
127
151
  }
128
152
  } else {
129
153
  setBegin(d);
@@ -158,4 +182,4 @@ export const Calendar = p => {
158
182
  return withNativeProps(props, React.createElement("div", {
159
183
  className: classPrefix
160
184
  }, header, mark, body));
161
- };
185
+ });
@@ -1,4 +1,4 @@
1
1
  import './calendar.less';
2
2
  import { Calendar } from './calendar';
3
- export type { CalendarProps } from './calendar';
3
+ export type { CalendarProps, CalenderRef } from './calendar';
4
4
  export default Calendar;
@@ -4,6 +4,7 @@ export declare type CapsuleTabProps = {
4
4
  title: ReactNode;
5
5
  disabled?: boolean;
6
6
  forceRender?: boolean;
7
+ destroyOnClose?: boolean;
7
8
  } & NativeProps;
8
9
  export declare const CapsuleTab: FC<CapsuleTabProps>;
9
10
  export declare type CapsuleTabsProps = {
@@ -6,6 +6,7 @@ import { usePropsValue } from '../../utils/use-props-value';
6
6
  import { useResizeEffect } from '../../utils/use-resize-effect';
7
7
  import { useTabListScroll } from '../../utils/use-tab-list-scroll';
8
8
  import ScrollMask from '../scroll-mask';
9
+ import { ShouldRender } from '../../utils/should-render';
9
10
  const classPrefix = `adm-capsule-tabs`;
10
11
  export const CapsuleTab = () => {
11
12
  return null;
@@ -83,22 +84,17 @@ export const CapsuleTabs = props => {
83
84
  return null;
84
85
  }
85
86
 
86
- if (pane.key === activeKey) {
87
- return React.createElement("div", {
88
- key: pane.key,
89
- className: `${classPrefix}-content`
90
- }, pane.props.children);
91
- }
92
-
93
- if (pane.props.forceRender) {
94
- return React.createElement("div", {
95
- key: pane.key,
96
- style: {
97
- display: 'none'
98
- }
99
- }, pane.props.children);
100
- }
101
-
102
- return null;
87
+ const active = pane.key === activeKey;
88
+ return React.createElement(ShouldRender, {
89
+ key: pane.key,
90
+ active: active,
91
+ forceRender: pane.props.forceRender,
92
+ destroyOnClose: pane.props.destroyOnClose
93
+ }, React.createElement("div", {
94
+ className: `${classPrefix}-content`,
95
+ style: {
96
+ display: active ? 'block' : 'none'
97
+ }
98
+ }, pane.props.children));
103
99
  })));
104
100
  };
@@ -1,2 +1,3 @@
1
1
  import { CascadePickerProps } from './cascade-picker';
2
- export declare function prompt(props: Omit<CascadePickerProps, 'value' | 'visible' | 'children'>): Promise<(string | null)[] | null>;
2
+ import type { PickerValue } from '../picker';
3
+ export declare function prompt(props: Omit<CascadePickerProps, 'value' | 'visible' | 'children'>): Promise<PickerValue[] | null>;
@@ -5,8 +5,9 @@ import { DownOutline } from 'antd-mobile-icons';
5
5
  import classNames from 'classnames';
6
6
  import { useSpring, animated } from '@react-spring/web';
7
7
  import { usePropsValue } from '../../utils/use-props-value';
8
- import { useMount, useUpdateLayoutEffect } from 'ahooks';
9
- import { useShouldRender } from '../../utils/use-should-render';
8
+ import { useMount } from 'ahooks';
9
+ import { useShouldRender } from '../../utils/should-render';
10
+ import { useIsomorphicUpdateLayoutEffect } from '../../utils/use-isomorphic-update-layout-effect';
10
11
  const classPrefix = `adm-collapse`;
11
12
  export const CollapsePanel = () => {
12
13
  return null;
@@ -34,7 +35,7 @@ const CollapsePanelContent = props => {
34
35
  immediate: true
35
36
  });
36
37
  });
37
- useUpdateLayoutEffect(() => {
38
+ useIsomorphicUpdateLayoutEffect(() => {
38
39
  const inner = innerRef.current;
39
40
  if (!inner) return;
40
41
 
@@ -5,6 +5,7 @@ import { withNativeProps } from '../../utils/native-props';
5
5
  import { mergeProps } from '../../utils/with-default-props';
6
6
  import { usePropsValue } from '../../utils/use-props-value';
7
7
  import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns, defaultRenderLabel } from './date-picker-utils';
8
+ import { bound } from '../../utils/bound';
8
9
  const thisYear = new Date().getFullYear();
9
10
  const defaultProps = {
10
11
  min: new Date(new Date().setFullYear(thisYear - 10)),
@@ -26,7 +27,15 @@ export const DatePicker = p => {
26
27
  }
27
28
  });
28
29
  const now = useMemo(() => new Date(), []);
29
- const pickerValue = useMemo(() => convertDateToStringArray(value !== null && value !== void 0 ? value : now, props.precision), [value, props.precision]);
30
+ const pickerValue = useMemo(() => {
31
+ let date = value;
32
+
33
+ if (date === null) {
34
+ date = new Date(bound(now.getTime(), props.min.getTime(), props.max.getTime()));
35
+ }
36
+
37
+ return convertDateToStringArray(date, props.precision);
38
+ }, [value, props.precision]);
30
39
  const onConfirm = useCallback(val => {
31
40
  setValue(convertStringArrayToDate(val, props.precision));
32
41
  }, [setValue, props.precision]);
@@ -0,0 +1 @@
1
+ export declare function clear(): void;
@@ -0,0 +1,6 @@
1
+ import { closeFnSet } from './show';
2
+ export function clear() {
3
+ closeFnSet.forEach(close => {
4
+ close();
5
+ });
6
+ }
@@ -15,7 +15,7 @@
15
15
  max-width: 500px;
16
16
  transform: translate(-50%, -50%);
17
17
  }
18
- .adm-dialog-main {
18
+ .adm-dialog-body {
19
19
  width: 100%;
20
20
  max-height: 70vh;
21
21
  font-size: 14px;
@@ -25,29 +25,33 @@
25
25
  display: flex;
26
26
  flex-direction: column;
27
27
  }
28
- .adm-dialog-main > * {
28
+ .adm-dialog-body > * {
29
29
  flex: none;
30
30
  }
31
- .adm-dialog-main > .adm-dialog-image-container {
31
+ .adm-dialog-body > .adm-dialog-content {
32
32
  flex: auto;
33
33
  }
34
- .adm-dialog-main > .adm-dialog-image-container + .adm-dialog-body {
35
- padding-top: 12px;
34
+ .adm-dialog-body:not(.adm-dialog-with-image) {
35
+ padding-top: 20px;
36
36
  }
37
- .adm-dialog-main .adm-dialog-body {
38
- padding: 20px 12px;
37
+ .adm-dialog-body .adm-dialog-image-container {
38
+ margin-bottom: 12px;
39
+ max-height: 40vh;
39
40
  }
40
- .adm-dialog-main .adm-dialog-body-header-wrapper {
41
- display: flex;
42
- justify-content: center;
41
+ .adm-dialog-body .adm-dialog-header {
42
+ margin-bottom: 8px;
43
+ padding: 0 12px;
43
44
  }
44
- .adm-dialog-main .adm-dialog-body-title {
45
+ .adm-dialog-body .adm-dialog-title {
46
+ margin-bottom: 8px;
47
+ padding: 0 12px;
45
48
  font-weight: bold;
46
49
  font-size: 18px;
47
50
  line-height: 25px;
48
51
  text-align: center;
49
52
  }
50
- .adm-dialog-main .adm-dialog-body-content {
53
+ .adm-dialog-body .adm-dialog-content {
54
+ padding: 0 12px 20px;
51
55
  max-height: 70vh;
52
56
  overflow-x: hidden;
53
57
  overflow-y: auto;
@@ -55,28 +59,32 @@
55
59
  line-height: 1.4;
56
60
  color: #333;
57
61
  }
58
- .adm-dialog-main .adm-dialog-footer {
62
+ .adm-dialog-body .adm-dialog-content-empty {
63
+ padding: 0;
64
+ height: 12px;
65
+ }
66
+ .adm-dialog-body .adm-dialog-footer {
59
67
  user-select: none;
60
68
  }
61
- .adm-dialog-main .adm-dialog-footer .adm-dialog-action-row {
69
+ .adm-dialog-body .adm-dialog-footer .adm-dialog-action-row {
62
70
  display: flex;
63
71
  align-items: stretch;
64
72
  border-top: 0.5px solid var(--adm-border-color);
65
73
  }
66
- .adm-dialog-main .adm-dialog-footer .adm-dialog-action-row > * {
74
+ .adm-dialog-body .adm-dialog-footer .adm-dialog-action-row > * {
67
75
  flex: 1;
68
76
  }
69
- .adm-dialog-main .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button {
77
+ .adm-dialog-body .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button {
70
78
  padding: 10px;
71
79
  font-size: 18px;
72
80
  line-height: 25px;
73
81
  border-radius: 0;
74
82
  border-right: solid 0.5px var(--adm-border-color);
75
83
  }
76
- .adm-dialog-main .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button-bold {
84
+ .adm-dialog-body .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button-bold {
77
85
  font-weight: bold;
78
86
  }
79
- .adm-dialog-main .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button:last-child {
87
+ .adm-dialog-body .adm-dialog-footer .adm-dialog-action-row > .adm-dialog-button:last-child {
80
88
  border-right: none;
81
89
  }
82
90
  .adm-dialog-image-container {
@@ -6,13 +6,11 @@ import { useUnmountedRef } from 'ahooks';
6
6
  import Mask from '../mask';
7
7
  import { DialogActionButton } from './dialog-action-button';
8
8
  import Image from '../image';
9
- import Space from '../space';
10
9
  import { renderToContainer } from '../../utils/render-to-container';
11
10
  import { withStopPropagation } from '../../utils/with-stop-propagation';
12
11
  import AutoCenter from '../auto-center';
13
12
  import { useSpring, animated } from '@react-spring/web';
14
13
  import { withNativeProps } from '../../utils/native-props';
15
- const classPrefix = `adm-dialog`;
16
14
  const defaultProps = {
17
15
  visible: false,
18
16
  actions: [],
@@ -50,51 +48,27 @@ export const Dialog = p => {
50
48
  }
51
49
  });
52
50
  const [active, setActive] = useState(props.visible);
53
- const node = withNativeProps(props, React.createElement("div", {
54
- className: classPrefix,
55
- style: {
56
- display: active ? 'unset' : 'none'
57
- }
58
- }, React.createElement(Mask, {
59
- visible: props.visible,
60
- onMaskClick: props.closeOnMaskClick ? props.onClose : undefined,
61
- style: props.maskStyle,
62
- className: classNames(`${classPrefix}-mask`, props.maskClassName)
63
- }), React.createElement("div", {
64
- className: `${classPrefix}-wrap`,
65
- style: {
66
- pointerEvents: props.visible ? 'unset' : 'none'
67
- }
68
- }, React.createElement(animated.div, {
69
- style: Object.assign({}, style),
70
- onClick: e => e.stopPropagation(),
71
- className: `${classPrefix}-main`
51
+ const body = React.createElement("div", {
52
+ className: classNames(cls('body'), props.image && cls('with-image'), props.bodyClassName),
53
+ style: props.bodyStyle
72
54
  }, !!props.image && React.createElement("div", {
73
- className: `${classPrefix}-image-container`
55
+ className: cls('image-container')
74
56
  }, React.createElement(Image, {
75
57
  src: props.image,
76
58
  alt: 'dialog header image',
77
59
  width: '100%'
78
- })), React.createElement("div", {
79
- style: props.bodyStyle,
80
- className: classNames(`${classPrefix}-body`, props.bodyClassName)
81
- }, React.createElement(Space, {
82
- direction: 'vertical',
83
- block: true
84
- }, !!props.header && React.createElement("div", {
85
- className: `${classPrefix}-body-header-wrapper`
86
- }, React.createElement("div", {
87
- className: `${classPrefix}-body-header`
88
- }, props.header)), !!props.title && React.createElement("div", {
89
- className: `${classPrefix}-body-title`
90
- }, props.title), !!props.content && React.createElement("div", {
91
- className: `${classPrefix}-body-content`
92
- }, typeof props.content === 'string' ? React.createElement(AutoCenter, null, props.content) : props.content))), React.createElement("div", {
93
- className: `${classPrefix}-footer`
60
+ })), !!props.header && React.createElement("div", {
61
+ className: cls('header')
62
+ }, React.createElement(AutoCenter, null, props.header)), !!props.title && React.createElement("div", {
63
+ className: cls('title')
64
+ }, props.title), React.createElement("div", {
65
+ className: classNames(cls('content'), !props.content && cls('content-empty'))
66
+ }, typeof props.content === 'string' ? React.createElement(AutoCenter, null, props.content) : props.content), React.createElement("div", {
67
+ className: cls('footer')
94
68
  }, props.actions.map((row, index) => {
95
69
  const actions = Array.isArray(row) ? row : [row];
96
70
  return React.createElement("div", {
97
- className: `${classPrefix}-action-row`,
71
+ className: cls('action-row'),
98
72
  key: index
99
73
  }, actions.map((action, index) => React.createElement(DialogActionButton, {
100
74
  key: action.key,
@@ -109,6 +83,28 @@ export const Dialog = p => {
109
83
  }
110
84
  })
111
85
  })));
112
- }))))));
86
+ })));
87
+ const node = withNativeProps(props, React.createElement("div", {
88
+ className: cls(),
89
+ style: {
90
+ display: active ? 'unset' : 'none'
91
+ }
92
+ }, React.createElement(Mask, {
93
+ visible: props.visible,
94
+ onMaskClick: props.closeOnMaskClick ? props.onClose : undefined,
95
+ style: props.maskStyle,
96
+ className: classNames(cls('mask'), props.maskClassName)
97
+ }), React.createElement("div", {
98
+ className: cls('wrap'),
99
+ style: {
100
+ pointerEvents: props.visible ? 'unset' : 'none'
101
+ }
102
+ }, React.createElement(animated.div, {
103
+ style: style
104
+ }, body))));
113
105
  return renderToContainer(props.getContainer, withStopPropagation(props.stopPropagation, node));
114
- };
106
+ };
107
+
108
+ function cls(name = '') {
109
+ return 'adm-dialog' + (name && '-') + name;
110
+ }