antd-mobile 5.14.2 → 5.15.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 (292) hide show
  1. package/2x/README.md +1 -2
  2. package/2x/bundle/antd-mobile.cjs.js +201 -162
  3. package/2x/bundle/antd-mobile.es.js +196 -157
  4. package/2x/bundle/style.css +9 -6
  5. package/2x/cjs/components/badge/badge.css +1 -1
  6. package/2x/cjs/components/badge/badge.d.ts +2 -0
  7. package/2x/cjs/components/badge/badge.js +2 -1
  8. package/2x/cjs/components/button/button.d.ts +5 -1
  9. package/2x/cjs/components/center-popup/center-popup.d.ts +1 -0
  10. package/2x/cjs/components/center-popup/center-popup.js +3 -1
  11. package/2x/cjs/components/checkbox/checkbox.d.ts +22 -2
  12. package/2x/cjs/components/checkbox/checkbox.js +14 -4
  13. package/2x/cjs/components/checkbox/index.d.ts +17 -2
  14. package/2x/cjs/components/checkbox/native-input.js +10 -8
  15. package/2x/cjs/components/date-picker/date-picker-date-utils.js +12 -15
  16. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -15
  17. package/2x/cjs/components/date-picker/date-picker.d.ts +5 -1
  18. package/2x/cjs/components/date-picker/index.d.ts +5 -1
  19. package/2x/cjs/components/dialog/dialog.js +3 -1
  20. package/2x/cjs/components/dropdown/dropdown.d.ts +5 -1
  21. package/2x/cjs/components/dropdown/index.d.ts +5 -1
  22. package/2x/cjs/components/floating-panel/floating-panel.d.ts +5 -1
  23. package/2x/cjs/components/form/form-item.js +2 -4
  24. package/2x/cjs/components/form/form-subscribe.d.ts +7 -2
  25. package/2x/cjs/components/form/form-subscribe.js +28 -16
  26. package/2x/cjs/components/form/form.d.ts +5 -1
  27. package/2x/cjs/components/form/index.d.ts +6 -2
  28. package/2x/cjs/components/index-bar/index-bar.d.ts +5 -1
  29. package/2x/cjs/components/index-bar/index.d.ts +5 -1
  30. package/2x/cjs/components/infinite-scroll/infinite-scroll.js +13 -4
  31. package/2x/cjs/components/input/input.d.ts +5 -1
  32. package/2x/cjs/components/list/list.css +3 -0
  33. package/2x/cjs/components/list/list.d.ts +1 -1
  34. package/2x/cjs/components/passcode-input/passcode-input.d.ts +5 -1
  35. package/2x/cjs/components/picker/index.d.ts +10 -2
  36. package/2x/cjs/components/picker/picker.d.ts +5 -1
  37. package/2x/cjs/components/popover/index.d.ts +5 -1
  38. package/2x/cjs/components/popover/popover.d.ts +5 -1
  39. package/2x/cjs/components/radio/radio.js +3 -3
  40. package/2x/cjs/components/rate/rate.css +2 -2
  41. package/2x/cjs/components/rate/rate.js +3 -3
  42. package/2x/cjs/components/rate/star.d.ts +2 -0
  43. package/2x/cjs/components/rate/star.js +37 -0
  44. package/2x/cjs/components/safe-area/safe-area.css +3 -2
  45. package/2x/cjs/components/search-bar/search-bar.d.ts +5 -1
  46. package/2x/cjs/components/swipe-action/swipe-action.d.ts +5 -1
  47. package/2x/cjs/components/swiper/index.d.ts +10 -2
  48. package/2x/cjs/components/swiper/swiper.d.ts +5 -1
  49. package/2x/cjs/components/switch/switch.js +10 -1
  50. package/2x/cjs/components/text-area/text-area.d.ts +6 -1
  51. package/2x/cjs/components/text-area/text-area.js +5 -0
  52. package/2x/cjs/components/toast/methods.js +32 -73
  53. package/2x/cjs/components/toast/toast.js +6 -2
  54. package/2x/cjs/components/virtual-input/virtual-input.d.ts +5 -1
  55. package/2x/cjs/components/water-mark/water-mark.js +3 -2
  56. package/2x/cjs/global/global.css +0 -1
  57. package/2x/cjs/global/theme-default.css +0 -1
  58. package/2x/cjs/locales/base.d.ts +3 -0
  59. package/2x/cjs/locales/base.js +3 -0
  60. package/2x/cjs/locales/en-US.d.ts +3 -0
  61. package/2x/cjs/locales/es-ES.d.ts +3 -0
  62. package/2x/cjs/locales/fa-IR.d.ts +3 -0
  63. package/2x/cjs/locales/fr-FR.d.ts +3 -0
  64. package/2x/cjs/locales/ko-KR.d.ts +3 -0
  65. package/2x/cjs/locales/zh-CN.d.ts +3 -0
  66. package/2x/cjs/locales/zh-CN.js +3 -0
  67. package/2x/cjs/locales/zh-HK.d.ts +3 -0
  68. package/2x/cjs/locales/zh-TW.d.ts +3 -0
  69. package/2x/cjs/utils/native-props.d.ts +3 -3
  70. package/2x/cjs/utils/render-imperatively.d.ts +4 -1
  71. package/2x/cjs/utils/render-imperatively.js +23 -11
  72. package/2x/cjs/utils/use-props-value.js +2 -6
  73. package/2x/es/components/badge/badge.css +1 -1
  74. package/2x/es/components/badge/badge.d.ts +2 -0
  75. package/2x/es/components/badge/badge.js +2 -1
  76. package/2x/es/components/button/button.d.ts +5 -1
  77. package/2x/es/components/center-popup/center-popup.d.ts +1 -0
  78. package/2x/es/components/center-popup/center-popup.js +3 -1
  79. package/2x/es/components/checkbox/checkbox.d.ts +22 -2
  80. package/2x/es/components/checkbox/checkbox.js +15 -3
  81. package/2x/es/components/checkbox/index.d.ts +17 -2
  82. package/2x/es/components/checkbox/native-input.js +9 -8
  83. package/2x/es/components/date-picker/date-picker-date-utils.js +12 -15
  84. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -15
  85. package/2x/es/components/date-picker/date-picker.d.ts +5 -1
  86. package/2x/es/components/date-picker/index.d.ts +5 -1
  87. package/2x/es/components/dialog/dialog.js +3 -1
  88. package/2x/es/components/dropdown/dropdown.d.ts +5 -1
  89. package/2x/es/components/dropdown/index.d.ts +5 -1
  90. package/2x/es/components/floating-panel/floating-panel.d.ts +5 -1
  91. package/2x/es/components/form/form-item.js +2 -2
  92. package/2x/es/components/form/form-subscribe.d.ts +7 -2
  93. package/2x/es/components/form/form-subscribe.js +21 -14
  94. package/2x/es/components/form/form.d.ts +5 -1
  95. package/2x/es/components/form/index.d.ts +6 -2
  96. package/2x/es/components/index-bar/index-bar.d.ts +5 -1
  97. package/2x/es/components/index-bar/index.d.ts +5 -1
  98. package/2x/es/components/infinite-scroll/infinite-scroll.js +14 -5
  99. package/2x/es/components/input/input.d.ts +5 -1
  100. package/2x/es/components/list/list.css +3 -0
  101. package/2x/es/components/list/list.d.ts +1 -1
  102. package/2x/es/components/passcode-input/passcode-input.d.ts +5 -1
  103. package/2x/es/components/picker/index.d.ts +10 -2
  104. package/2x/es/components/picker/picker.d.ts +5 -1
  105. package/2x/es/components/popover/index.d.ts +5 -1
  106. package/2x/es/components/popover/popover.d.ts +5 -1
  107. package/2x/es/components/radio/radio.js +3 -3
  108. package/2x/es/components/rate/rate.css +2 -2
  109. package/2x/es/components/rate/rate.js +2 -2
  110. package/2x/es/components/rate/star.d.ts +2 -0
  111. package/2x/es/components/rate/star.js +25 -0
  112. package/2x/es/components/safe-area/safe-area.css +3 -2
  113. package/2x/es/components/search-bar/search-bar.d.ts +5 -1
  114. package/2x/es/components/swipe-action/swipe-action.d.ts +5 -1
  115. package/2x/es/components/swiper/index.d.ts +10 -2
  116. package/2x/es/components/swiper/swiper.d.ts +5 -1
  117. package/2x/es/components/switch/switch.js +9 -1
  118. package/2x/es/components/text-area/text-area.d.ts +6 -1
  119. package/2x/es/components/text-area/text-area.js +5 -0
  120. package/2x/es/components/toast/methods.js +29 -67
  121. package/2x/es/components/toast/toast.js +6 -2
  122. package/2x/es/components/virtual-input/virtual-input.d.ts +5 -1
  123. package/2x/es/components/water-mark/water-mark.js +3 -2
  124. package/2x/es/global/global.css +0 -1
  125. package/2x/es/global/theme-default.css +0 -1
  126. package/2x/es/locales/base.d.ts +3 -0
  127. package/2x/es/locales/base.js +3 -0
  128. package/2x/es/locales/en-US.d.ts +3 -0
  129. package/2x/es/locales/es-ES.d.ts +3 -0
  130. package/2x/es/locales/fa-IR.d.ts +3 -0
  131. package/2x/es/locales/fr-FR.d.ts +3 -0
  132. package/2x/es/locales/ko-KR.d.ts +3 -0
  133. package/2x/es/locales/zh-CN.d.ts +3 -0
  134. package/2x/es/locales/zh-CN.js +3 -0
  135. package/2x/es/locales/zh-HK.d.ts +3 -0
  136. package/2x/es/locales/zh-TW.d.ts +3 -0
  137. package/2x/es/utils/native-props.d.ts +3 -3
  138. package/2x/es/utils/render-imperatively.d.ts +4 -1
  139. package/2x/es/utils/render-imperatively.js +23 -11
  140. package/2x/es/utils/use-props-value.js +2 -6
  141. package/2x/package.json +3 -3
  142. package/2x/umd/antd-mobile.js +1 -1
  143. package/README.md +1 -2
  144. package/bundle/antd-mobile.cjs.js +201 -162
  145. package/bundle/antd-mobile.es.js +196 -157
  146. package/bundle/style.css +9 -6
  147. package/cjs/components/badge/badge.css +1 -1
  148. package/cjs/components/badge/badge.d.ts +2 -0
  149. package/cjs/components/badge/badge.js +2 -1
  150. package/cjs/components/button/button.d.ts +5 -1
  151. package/cjs/components/center-popup/center-popup.d.ts +1 -0
  152. package/cjs/components/center-popup/center-popup.js +3 -1
  153. package/cjs/components/checkbox/checkbox.d.ts +22 -2
  154. package/cjs/components/checkbox/checkbox.js +14 -4
  155. package/cjs/components/checkbox/index.d.ts +17 -2
  156. package/cjs/components/checkbox/native-input.js +10 -8
  157. package/cjs/components/date-picker/date-picker-date-utils.js +12 -15
  158. package/cjs/components/date-picker/date-picker-week-utils.js +12 -15
  159. package/cjs/components/date-picker/date-picker.d.ts +5 -1
  160. package/cjs/components/date-picker/index.d.ts +5 -1
  161. package/cjs/components/dialog/dialog.js +3 -1
  162. package/cjs/components/dropdown/dropdown.d.ts +5 -1
  163. package/cjs/components/dropdown/index.d.ts +5 -1
  164. package/cjs/components/floating-panel/floating-panel.d.ts +5 -1
  165. package/cjs/components/form/form-item.js +2 -4
  166. package/cjs/components/form/form-subscribe.d.ts +7 -2
  167. package/cjs/components/form/form-subscribe.js +28 -16
  168. package/cjs/components/form/form.d.ts +5 -1
  169. package/cjs/components/form/index.d.ts +6 -2
  170. package/cjs/components/index-bar/index-bar.d.ts +5 -1
  171. package/cjs/components/index-bar/index.d.ts +5 -1
  172. package/cjs/components/infinite-scroll/infinite-scroll.js +13 -4
  173. package/cjs/components/input/input.d.ts +5 -1
  174. package/cjs/components/list/list.css +3 -0
  175. package/cjs/components/list/list.d.ts +1 -1
  176. package/cjs/components/passcode-input/passcode-input.d.ts +5 -1
  177. package/cjs/components/picker/index.d.ts +10 -2
  178. package/cjs/components/picker/picker.d.ts +5 -1
  179. package/cjs/components/popover/index.d.ts +5 -1
  180. package/cjs/components/popover/popover.d.ts +5 -1
  181. package/cjs/components/radio/radio.js +3 -3
  182. package/cjs/components/rate/rate.css +2 -2
  183. package/cjs/components/rate/rate.js +3 -3
  184. package/cjs/components/rate/star.d.ts +2 -0
  185. package/cjs/components/rate/star.js +37 -0
  186. package/cjs/components/safe-area/safe-area.css +3 -2
  187. package/cjs/components/search-bar/search-bar.d.ts +5 -1
  188. package/cjs/components/swipe-action/swipe-action.d.ts +5 -1
  189. package/cjs/components/swiper/index.d.ts +10 -2
  190. package/cjs/components/swiper/swiper.d.ts +5 -1
  191. package/cjs/components/switch/switch.js +10 -1
  192. package/cjs/components/text-area/text-area.d.ts +6 -1
  193. package/cjs/components/text-area/text-area.js +5 -0
  194. package/cjs/components/toast/methods.js +32 -73
  195. package/cjs/components/toast/toast.js +6 -2
  196. package/cjs/components/virtual-input/virtual-input.d.ts +5 -1
  197. package/cjs/components/water-mark/water-mark.js +3 -2
  198. package/cjs/global/global.css +0 -1
  199. package/cjs/global/theme-default.css +0 -1
  200. package/cjs/locales/base.d.ts +3 -0
  201. package/cjs/locales/base.js +3 -0
  202. package/cjs/locales/en-US.d.ts +3 -0
  203. package/cjs/locales/es-ES.d.ts +3 -0
  204. package/cjs/locales/fa-IR.d.ts +3 -0
  205. package/cjs/locales/fr-FR.d.ts +3 -0
  206. package/cjs/locales/ko-KR.d.ts +3 -0
  207. package/cjs/locales/zh-CN.d.ts +3 -0
  208. package/cjs/locales/zh-CN.js +3 -0
  209. package/cjs/locales/zh-HK.d.ts +3 -0
  210. package/cjs/locales/zh-TW.d.ts +3 -0
  211. package/cjs/utils/native-props.d.ts +3 -3
  212. package/cjs/utils/render-imperatively.d.ts +4 -1
  213. package/cjs/utils/render-imperatively.js +23 -11
  214. package/cjs/utils/use-props-value.js +2 -6
  215. package/es/components/badge/badge.css +1 -1
  216. package/es/components/badge/badge.d.ts +2 -0
  217. package/es/components/badge/badge.js +2 -1
  218. package/es/components/button/button.d.ts +5 -1
  219. package/es/components/center-popup/center-popup.d.ts +1 -0
  220. package/es/components/center-popup/center-popup.js +3 -1
  221. package/es/components/checkbox/checkbox.d.ts +22 -2
  222. package/es/components/checkbox/checkbox.js +15 -3
  223. package/es/components/checkbox/index.d.ts +17 -2
  224. package/es/components/checkbox/native-input.js +9 -8
  225. package/es/components/date-picker/date-picker-date-utils.js +12 -15
  226. package/es/components/date-picker/date-picker-week-utils.js +12 -15
  227. package/es/components/date-picker/date-picker.d.ts +5 -1
  228. package/es/components/date-picker/index.d.ts +5 -1
  229. package/es/components/dialog/dialog.js +3 -1
  230. package/es/components/dropdown/dropdown.d.ts +5 -1
  231. package/es/components/dropdown/index.d.ts +5 -1
  232. package/es/components/floating-panel/floating-panel.d.ts +5 -1
  233. package/es/components/form/form-item.js +2 -2
  234. package/es/components/form/form-subscribe.d.ts +7 -2
  235. package/es/components/form/form-subscribe.js +21 -14
  236. package/es/components/form/form.d.ts +5 -1
  237. package/es/components/form/index.d.ts +6 -2
  238. package/es/components/index-bar/index-bar.d.ts +5 -1
  239. package/es/components/index-bar/index.d.ts +5 -1
  240. package/es/components/infinite-scroll/infinite-scroll.js +14 -5
  241. package/es/components/input/input.d.ts +5 -1
  242. package/es/components/list/list.css +3 -0
  243. package/es/components/list/list.d.ts +1 -1
  244. package/es/components/passcode-input/passcode-input.d.ts +5 -1
  245. package/es/components/picker/index.d.ts +10 -2
  246. package/es/components/picker/picker.d.ts +5 -1
  247. package/es/components/popover/index.d.ts +5 -1
  248. package/es/components/popover/popover.d.ts +5 -1
  249. package/es/components/radio/radio.js +3 -3
  250. package/es/components/rate/rate.css +2 -2
  251. package/es/components/rate/rate.js +2 -2
  252. package/es/components/rate/star.d.ts +2 -0
  253. package/es/components/rate/star.js +25 -0
  254. package/es/components/safe-area/safe-area.css +3 -2
  255. package/es/components/search-bar/search-bar.d.ts +5 -1
  256. package/es/components/swipe-action/swipe-action.d.ts +5 -1
  257. package/es/components/swiper/index.d.ts +10 -2
  258. package/es/components/swiper/swiper.d.ts +5 -1
  259. package/es/components/switch/switch.js +9 -1
  260. package/es/components/text-area/text-area.d.ts +6 -1
  261. package/es/components/text-area/text-area.js +5 -0
  262. package/es/components/toast/methods.js +29 -67
  263. package/es/components/toast/toast.js +6 -2
  264. package/es/components/virtual-input/virtual-input.d.ts +5 -1
  265. package/es/components/water-mark/water-mark.js +3 -2
  266. package/es/global/global.css +0 -1
  267. package/es/global/theme-default.css +0 -1
  268. package/es/locales/base.d.ts +3 -0
  269. package/es/locales/base.js +3 -0
  270. package/es/locales/en-US.d.ts +3 -0
  271. package/es/locales/es-ES.d.ts +3 -0
  272. package/es/locales/fa-IR.d.ts +3 -0
  273. package/es/locales/fr-FR.d.ts +3 -0
  274. package/es/locales/ko-KR.d.ts +3 -0
  275. package/es/locales/zh-CN.d.ts +3 -0
  276. package/es/locales/zh-CN.js +3 -0
  277. package/es/locales/zh-HK.d.ts +3 -0
  278. package/es/locales/zh-TW.d.ts +3 -0
  279. package/es/utils/native-props.d.ts +3 -3
  280. package/es/utils/render-imperatively.d.ts +4 -1
  281. package/es/utils/render-imperatively.js +23 -11
  282. package/es/utils/use-props-value.js +2 -6
  283. package/package.json +3 -3
  284. package/umd/antd-mobile.js +1 -1
  285. package/2x/cjs/components/form/form-imperative-item.d.ts +0 -5
  286. package/2x/cjs/components/form/form-imperative-item.js +0 -57
  287. package/2x/es/components/form/form-imperative-item.d.ts +0 -5
  288. package/2x/es/components/form/form-imperative-item.js +0 -38
  289. package/cjs/components/form/form-imperative-item.d.ts +0 -5
  290. package/cjs/components/form/form-imperative-item.js +0 -57
  291. package/es/components/form/form-imperative-item.d.ts +0 -5
  292. package/es/components/form/form-imperative-item.js +0 -38
@@ -115,6 +115,9 @@ const zhCN = (0, _mergeLocale.mergeLocale)(_base.base, {
115
115
  pulling: '下拉刷新',
116
116
  canRelease: '释放立即刷新',
117
117
  complete: '刷新成功'
118
+ },
119
+ Switch: {
120
+ name: '开关'
118
121
  }
119
122
  });
120
123
  var _default = zhCN;
@@ -104,5 +104,8 @@ declare const zhHK: {
104
104
  canRelease: string;
105
105
  complete: string;
106
106
  };
107
+ Switch: {
108
+ name: string;
109
+ };
107
110
  };
108
111
  export default zhHK;
@@ -104,5 +104,8 @@ declare const zhTW: {
104
104
  canRelease: string;
105
105
  complete: string;
106
106
  };
107
+ Switch: {
108
+ name: string;
109
+ };
107
110
  };
108
111
  export default zhTW;
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import React, { AriaAttributes } from 'react';
2
2
  import type { CSSProperties, ReactElement } from 'react';
3
- export interface NativeProps<S extends string = never> {
3
+ export declare type NativeProps<S extends string = never> = {
4
4
  className?: string;
5
5
  style?: CSSProperties & Partial<Record<S, string>>;
6
6
  tabIndex?: number;
7
- }
7
+ } & AriaAttributes;
8
8
  export declare function withNativeProps<P extends NativeProps>(props: P, element: ReactElement): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -4,7 +4,10 @@ declare type ImperativeProps = {
4
4
  onClose?: () => void;
5
5
  afterClose?: () => void;
6
6
  };
7
- export declare function renderImperatively(element: ReactElement<ImperativeProps>): {
7
+ declare type TargetElement = ReactElement<ImperativeProps>;
8
+ export declare type ImperativeHandler = {
8
9
  close: () => void;
10
+ replace: (element: TargetElement) => void;
9
11
  };
12
+ export declare function renderImperatively(element: TargetElement): ImperativeHandler;
10
13
  export {};
@@ -17,6 +17,8 @@ function renderImperatively(element) {
17
17
  const Wrapper = _react.default.forwardRef((_, ref) => {
18
18
  const [visible, setVisible] = (0, _react.useState)(false);
19
19
  const closedRef = (0, _react.useRef)(false);
20
+ const [elementToRender, setElementToRender] = (0, _react.useState)(element);
21
+ const keyRef = (0, _react.useRef)(0);
20
22
  (0, _react.useEffect)(() => {
21
23
  if (!closedRef.current) {
22
24
  setVisible(true);
@@ -30,20 +32,28 @@ function renderImperatively(element) {
30
32
 
31
33
  closedRef.current = true;
32
34
  setVisible(false);
33
- (_b = (_a = element.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
35
+ (_b = (_a = elementToRender.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
34
36
  }
35
37
 
36
38
  function afterClose() {
37
39
  var _a, _b;
38
40
 
39
41
  unmount();
40
- (_b = (_a = element.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
42
+ (_b = (_a = elementToRender.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
41
43
  }
42
44
 
43
45
  (0, _react.useImperativeHandle)(ref, () => ({
44
- close: onClose
46
+ close: onClose,
47
+ replace: element => {
48
+ var _a, _b;
49
+
50
+ keyRef.current++;
51
+ (_b = (_a = elementToRender.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
52
+ setElementToRender(element);
53
+ }
45
54
  }));
46
- return _react.default.cloneElement(element, Object.assign(Object.assign({}, element.props), {
55
+ return _react.default.cloneElement(elementToRender, Object.assign(Object.assign({}, elementToRender.props), {
56
+ key: keyRef.current,
47
57
  visible,
48
58
  onClose,
49
59
  afterClose
@@ -55,14 +65,16 @@ function renderImperatively(element) {
55
65
  const unmount = (0, _renderToBody.renderToBody)(_react.default.createElement(Wrapper, {
56
66
  ref: wrapperRef
57
67
  }));
68
+ return {
69
+ close: () => {
70
+ var _a;
58
71
 
59
- function close() {
60
- var _a;
61
-
62
- (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.close();
63
- }
72
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.close();
73
+ },
74
+ replace: element => {
75
+ var _a;
64
76
 
65
- return {
66
- close
77
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.replace(element);
78
+ }
67
79
  };
68
80
  }
@@ -24,12 +24,8 @@ function usePropsValue(options) {
24
24
 
25
25
  const setState = (0, _ahooks.useMemoizedFn)(v => {
26
26
  const nextValue = typeof v === 'function' ? v(stateRef.current) : v;
27
-
28
- if (value === undefined) {
29
- stateRef.current = nextValue;
30
- update();
31
- }
32
-
27
+ stateRef.current = nextValue;
28
+ update();
33
29
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);
34
30
  });
35
31
  return [stateRef.current, setState];
@@ -1,4 +1,4 @@
1
- .adm-badge-wrap {
1
+ .adm-badge-wrapper {
2
2
  display: inline-block;
3
3
  position: relative;
4
4
  }
@@ -6,5 +6,7 @@ export declare type BadgeProps = {
6
6
  color?: string;
7
7
  bordered?: boolean;
8
8
  children?: React.ReactNode;
9
+ wrapperClassName?: string;
10
+ wrapperStyle?: React.CSSProperties;
9
11
  } & NativeProps<'--right' | '--top' | '--color'>;
10
12
  export declare const Badge: FC<BadgeProps>;
@@ -20,6 +20,7 @@ export const Badge = props => {
20
20
  className: `${classPrefix}-content`
21
21
  }, content))) : null;
22
22
  return children ? React.createElement("div", {
23
- className: `${classPrefix}-wrap`
23
+ className: classNames(`${classPrefix}-wrapper`, props.wrapperClassName),
24
+ style: props.wrapperStyle
24
25
  }, children, element) : element;
25
26
  };
@@ -31,5 +31,9 @@ export declare const Button: React.ForwardRefExoticComponent<{
31
31
  type?: "reset" | "submit" | "button" | undefined;
32
32
  shape?: "default" | "rounded" | "rectangular" | undefined;
33
33
  children?: React.ReactNode;
34
- } & Pick<NativeButtonProps, "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & NativeProps<"--border-radius" | "--text-color" | "--background-color" | "--border-width" | "--border-style" | "--border-color"> & React.RefAttributes<ButtonRef>>;
34
+ } & Pick<NativeButtonProps, "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & {
35
+ className?: string | undefined;
36
+ style?: (React.CSSProperties & Partial<Record<"--border-radius" | "--text-color" | "--background-color" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
37
+ tabIndex?: number | undefined;
38
+ } & React.AriaAttributes & React.RefAttributes<ButtonRef>>;
35
39
  export {};
@@ -19,5 +19,6 @@ export declare type CenterPopupProps = PropsWithChildren<{
19
19
  onMaskClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
20
20
  stopPropagation?: PropagationEvent[];
21
21
  visible?: boolean;
22
+ role?: string;
22
23
  }> & NativeProps<'--background-color' | '--border-radius' | '--max-width' | '--min-width' | '--z-index'>;
23
24
  export declare const CenterPopup: FC<CenterPopupProps>;
@@ -73,7 +73,9 @@ export const CenterPopup = p => {
73
73
  className: classNames('adm-center-popup-mask', props.maskClassName),
74
74
  disableBodyScroll: false
75
75
  }), React.createElement("div", {
76
- className: 'adm-center-popup-wrap'
76
+ className: 'adm-center-popup-wrap',
77
+ role: props.role,
78
+ "aria-label": props['aria-label']
77
79
  }, React.createElement(animated.div, {
78
80
  style: style,
79
81
  ref: ref
@@ -1,4 +1,4 @@
1
- import React, { FC } from 'react';
1
+ import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  export declare type CheckboxValue = string | number;
4
4
  export declare type CheckboxProps = {
@@ -13,4 +13,24 @@ export declare type CheckboxProps = {
13
13
  icon?: (checked: boolean, indeterminate: boolean) => React.ReactNode;
14
14
  children?: React.ReactNode;
15
15
  } & NativeProps<'--icon-size' | '--font-size' | '--gap'>;
16
- export declare const Checkbox: FC<CheckboxProps>;
16
+ export declare type CheckboxRef = {
17
+ check: () => void;
18
+ uncheck: () => void;
19
+ toggle: () => void;
20
+ };
21
+ export declare const Checkbox: React.ForwardRefExoticComponent<{
22
+ checked?: boolean | undefined;
23
+ defaultChecked?: boolean | undefined;
24
+ disabled?: boolean | undefined;
25
+ onChange?: ((checked: boolean) => void) | undefined;
26
+ value?: CheckboxValue | undefined;
27
+ indeterminate?: boolean | undefined;
28
+ block?: boolean | undefined;
29
+ id?: string | undefined;
30
+ icon?: ((checked: boolean, indeterminate: boolean) => React.ReactNode) | undefined;
31
+ children?: React.ReactNode;
32
+ } & {
33
+ className?: string | undefined;
34
+ style?: (React.CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
35
+ tabIndex?: number | undefined;
36
+ } & React.AriaAttributes & React.RefAttributes<CheckboxRef>>;
@@ -1,4 +1,4 @@
1
- import React, { useContext } from 'react';
1
+ import React, { forwardRef, useContext, useImperativeHandle } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import classNames from 'classnames';
4
4
  import { CheckboxGroupContext } from './group-context';
@@ -14,7 +14,7 @@ const defaultProps = {
14
14
  defaultChecked: false,
15
15
  indeterminate: false
16
16
  };
17
- export const Checkbox = p => {
17
+ export const Checkbox = forwardRef((p, ref) => {
18
18
  const groupContext = useContext(CheckboxGroupContext);
19
19
  const props = mergeProps(defaultProps, p);
20
20
  let [checked, setChecked] = usePropsValue({
@@ -55,6 +55,18 @@ export const Checkbox = p => {
55
55
  disabled = disabled || groupContext.disabled;
56
56
  }
57
57
 
58
+ useImperativeHandle(ref, () => ({
59
+ check: () => {
60
+ setChecked(true);
61
+ },
62
+ uncheck: () => {
63
+ setChecked(false);
64
+ },
65
+ toggle: () => {
66
+ setChecked(!checked);
67
+ }
68
+ }));
69
+
58
70
  const renderIcon = () => {
59
71
  if (props.icon) {
60
72
  return React.createElement("div", {
@@ -83,4 +95,4 @@ export const Checkbox = p => {
83
95
  }), renderIcon(), props.children && React.createElement("div", {
84
96
  className: `${classPrefix}-content`
85
97
  }, props.children)));
86
- };
98
+ });
@@ -1,8 +1,23 @@
1
1
  /// <reference types="react" />
2
2
  import './checkbox.less';
3
- export type { CheckboxValue, CheckboxProps } from './checkbox';
3
+ export type { CheckboxValue, CheckboxProps, CheckboxRef } from './checkbox';
4
4
  export type { CheckboxGroupProps } from './group';
5
- declare const _default: import("react").FC<import("./checkbox").CheckboxProps> & {
5
+ declare const _default: import("react").ForwardRefExoticComponent<{
6
+ checked?: boolean | undefined;
7
+ defaultChecked?: boolean | undefined;
8
+ disabled?: boolean | undefined;
9
+ onChange?: ((checked: boolean) => void) | undefined;
10
+ value?: import("./checkbox").CheckboxValue | undefined;
11
+ indeterminate?: boolean | undefined;
12
+ block?: boolean | undefined;
13
+ id?: string | undefined;
14
+ icon?: ((checked: boolean, indeterminate: boolean) => import("react").ReactNode) | undefined;
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ className?: string | undefined;
18
+ style?: (import("react").CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
19
+ tabIndex?: number | undefined;
20
+ } & import("react").AriaAttributes & import("react").RefAttributes<import("./checkbox").CheckboxRef>> & {
6
21
  Group: import("react").FC<import("./group").CheckboxGroupProps>;
7
22
  };
8
23
  export default _default;
@@ -1,17 +1,18 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
+ import { useMemoizedFn } from 'ahooks';
2
3
  export const NativeInput = props => {
3
4
  const inputRef = useRef(null);
5
+ const handleClick = useMemoizedFn(e => {
6
+ e.stopPropagation();
7
+ e.stopImmediatePropagation();
8
+ const latestChecked = e.target.checked;
9
+ if (latestChecked === props.checked) return;
10
+ props.onChange(latestChecked);
11
+ });
4
12
  useEffect(() => {
5
13
  if (props.disabled) return;
6
14
  if (!inputRef.current) return;
7
15
  const input = inputRef.current;
8
-
9
- function handleClick(e) {
10
- e.stopPropagation();
11
- e.stopImmediatePropagation();
12
- props.onChange(input.checked);
13
- }
14
-
15
16
  input.addEventListener('click', handleClick);
16
17
  return () => {
17
18
  input.removeEventListener('click', handleClick);
@@ -19,7 +20,7 @@ export const NativeInput = props => {
19
20
  }, [props.disabled, props.onChange]);
20
21
  return React.createElement("input", {
21
22
  ref: inputRef,
22
- type: 'checkbox',
23
+ type: props.type,
23
24
  checked: props.checked,
24
25
  onChange: () => {},
25
26
  disabled: props.disabled,
@@ -39,21 +39,6 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
39
39
  const maxMinute = max.getMinutes();
40
40
  const maxSecond = max.getSeconds();
41
41
  const rank = precisionRankRecord[precision];
42
-
43
- if (rank >= precisionRankRecord.year) {
44
- const years = [];
45
-
46
- for (let i = minYear; i <= maxYear; i++) {
47
- const value = i.toString();
48
- years.push({
49
- label: renderLabel ? renderLabel('year', i) : value,
50
- value
51
- });
52
- }
53
-
54
- ret.push(years);
55
- }
56
-
57
42
  const selectedYear = parseInt(selected[0]);
58
43
  const firstDayInSelectedMonth = dayjs(convertStringArrayToDate([selected[0], selected[1], '1']));
59
44
  const selectedMonth = parseInt(selected[1]);
@@ -94,6 +79,18 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
94
79
  return column;
95
80
  };
96
81
 
82
+ if (rank >= precisionRankRecord.year) {
83
+ const lower = minYear;
84
+ const upper = maxYear;
85
+ const years = generateColumn(lower, upper, 'year');
86
+ ret.push(years.map(v => {
87
+ return {
88
+ label: renderLabel('year', v),
89
+ value: v.toString()
90
+ };
91
+ }));
92
+ }
93
+
97
94
  if (rank >= precisionRankRecord.month) {
98
95
  const lower = isInMinYear ? minMonth : 1;
99
96
  const upper = isInMaxYear ? maxMonth : 12;
@@ -18,21 +18,6 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
18
18
  const minYear = min.getFullYear();
19
19
  const maxYear = max.getFullYear();
20
20
  const rank = precisionRankRecord[precision];
21
-
22
- if (rank >= precisionRankRecord.year) {
23
- const years = [];
24
-
25
- for (let i = minYear; i <= maxYear; i++) {
26
- const value = i.toString();
27
- years.push({
28
- label: renderLabel ? renderLabel('year', i) : value,
29
- value
30
- });
31
- }
32
-
33
- ret.push(years);
34
- }
35
-
36
21
  const selectedYear = parseInt(selected[0]);
37
22
  const isInMinYear = selectedYear === minYear;
38
23
  const isInMaxYear = selectedYear === maxYear;
@@ -70,6 +55,18 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
70
55
  return column;
71
56
  };
72
57
 
58
+ if (rank >= precisionRankRecord.year) {
59
+ const lower = minYear;
60
+ const upper = maxYear;
61
+ const years = generateColumn(lower, upper, 'year');
62
+ ret.push(years.map(v => {
63
+ return {
64
+ label: renderLabel('year', v),
65
+ value: v.toString()
66
+ };
67
+ }));
68
+ }
69
+
73
70
  if (rank >= precisionRankRecord.week) {
74
71
  const lower = isInMinYear ? minWeek : 1;
75
72
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
@@ -28,4 +28,8 @@ export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProp
28
28
  filter?: Partial<Record<Precision, (val: number, extend: {
29
29
  date: Date;
30
30
  }) => boolean>> | undefined;
31
- } & NativeProps<never> & React.RefAttributes<PickerActions>>;
31
+ } & {
32
+ className?: string | undefined;
33
+ style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
34
+ tabIndex?: number | undefined;
35
+ } & React.AriaAttributes & React.RefAttributes<PickerActions>>;
@@ -16,7 +16,11 @@ declare const _default: import("react").ForwardRefExoticComponent<Pick<import(".
16
16
  filter?: Partial<Record<import("./date-picker-utils").Precision, (val: number, extend: {
17
17
  date: Date;
18
18
  }) => boolean>> | undefined;
19
- } & import("../../utils/native-props").NativeProps<never> & import("react").RefAttributes<import("../picker").PickerActions>> & {
19
+ } & {
20
+ className?: string | undefined;
21
+ style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
22
+ tabIndex?: number | undefined;
23
+ } & import("react").AriaAttributes & import("react").RefAttributes<import("../picker").PickerActions>> & {
20
24
  prompt: typeof prompt;
21
25
  };
22
26
  export default _default;
@@ -65,7 +65,9 @@ export const Dialog = p => {
65
65
  stopPropagation: props.stopPropagation,
66
66
  disableBodyScroll: props.disableBodyScroll,
67
67
  destroyOnClose: props.destroyOnClose,
68
- forceRender: props.forceRender
68
+ forceRender: props.forceRender,
69
+ role: 'dialog',
70
+ "aria-label": props['aria-label']
69
71
  }, element);
70
72
  };
71
73
 
@@ -18,7 +18,11 @@ declare const Dropdown: React.ForwardRefExoticComponent<{
18
18
  closeOnClickAway?: boolean | undefined;
19
19
  onChange?: ((key: string | null) => void) | undefined;
20
20
  arrow?: React.ReactNode;
21
- } & NativeProps<never> & {
21
+ } & {
22
+ className?: string | undefined;
23
+ style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
24
+ tabIndex?: number | undefined;
25
+ } & React.AriaAttributes & {
22
26
  children?: React.ReactNode;
23
27
  } & React.RefAttributes<DropdownRef>>;
24
28
  export default Dropdown;
@@ -9,7 +9,11 @@ declare const _default: import("react").ForwardRefExoticComponent<{
9
9
  closeOnClickAway?: boolean | undefined;
10
10
  onChange?: ((key: string | null) => void) | undefined;
11
11
  arrow?: import("react").ReactNode;
12
- } & import("../../utils/native-props").NativeProps<never> & {
12
+ } & {
13
+ className?: string | undefined;
14
+ style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
15
+ tabIndex?: number | undefined;
16
+ } & import("react").AriaAttributes & {
13
17
  children?: import("react").ReactNode;
14
18
  } & import("react").RefAttributes<import("./dropdown").DropdownRef>> & {
15
19
  Item: import("react").FC<import("./item").DropdownItemProps>;
@@ -16,4 +16,8 @@ export declare const FloatingPanel: React.ForwardRefExoticComponent<{
16
16
  children: ReactNode;
17
17
  onHeightChange?: ((height: number, animating: boolean) => void) | undefined;
18
18
  handleDraggingOfContent?: boolean | undefined;
19
- } & NativeProps<"--z-index" | "--border-radius" | "--header-height"> & React.RefAttributes<FloatingPanelRef>>;
19
+ } & {
20
+ className?: string | undefined;
21
+ style?: (React.CSSProperties & Partial<Record<"--z-index" | "--border-radius" | "--header-height", string>>) | undefined;
22
+ tabIndex?: number | undefined;
23
+ } & React.AriaAttributes & React.RefAttributes<FloatingPanelRef>>;
@@ -80,13 +80,13 @@ const FormItemLayout = props => {
80
80
  e.preventDefault();
81
81
  }
82
82
  }, React.createElement(QuestionCircleOutline, null)))) : null;
83
- const description = React.createElement(React.Fragment, null, props.description, hasFeedback && React.createElement(React.Fragment, null, props.errors.map((error, index) => React.createElement("div", {
83
+ const description = props.description || hasFeedback ? React.createElement(React.Fragment, null, props.description, hasFeedback && React.createElement(React.Fragment, null, props.errors.map((error, index) => React.createElement("div", {
84
84
  key: `error-${index}`,
85
85
  className: `${classPrefix}-feedback-error`
86
86
  }, error)), props.warnings.map((warning, index) => React.createElement("div", {
87
87
  key: `warning-${index}`,
88
88
  className: `${classPrefix}-feedback-warning`
89
- }, warning))));
89
+ }, warning)))) : null;
90
90
  return React.createElement(List.Item, {
91
91
  style: style,
92
92
  title: layout === 'vertical' && labelElement,
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { FC } from 'react';
2
2
  import type { FormInstance } from 'rc-field-form';
3
3
  import type { NamePath } from 'rc-field-form/es/interface';
4
4
  declare type RenderChildren<Values = any> = (changedValues: Record<string, any>, form: FormInstance<Values>) => React.ReactNode;
@@ -7,5 +7,10 @@ export interface FormSubscribeProps {
7
7
  to: NamePath[];
8
8
  children: ChildrenType;
9
9
  }
10
- export declare const FormSubscribe: React.VFC<FormSubscribeProps>;
10
+ export declare const FormSubscribe: FC<FormSubscribeProps>;
11
+ export declare const Watcher: React.NamedExoticComponent<{
12
+ form: FormInstance;
13
+ namePath: NamePath;
14
+ onChange: () => void;
15
+ }>;
11
16
  export {};
@@ -1,14 +1,21 @@
1
- import React from 'react';
2
- import Form from '.';
3
- export const FormSubscribe = ({
4
- children,
5
- to
6
- }) => {
7
- return React.createElement(Form.Item, {
8
- noStyle: true,
9
- dependencies: to
10
- }, form => {
11
- const changedValues = form.getFieldsValue(to);
12
- return children(changedValues, form);
13
- });
14
- };
1
+ import React, { memo, useContext } from 'react';
2
+ import { FieldContext, useWatch } from 'rc-field-form';
3
+ import { useUpdate } from 'ahooks';
4
+ import { useIsomorphicUpdateLayoutEffect } from '../../utils/use-isomorphic-update-layout-effect';
5
+ export const FormSubscribe = props => {
6
+ const update = useUpdate();
7
+ const form = useContext(FieldContext);
8
+ return React.createElement(React.Fragment, null, props.children(form.getFieldsValue(props.to), form), props.to.map(namePath => React.createElement(Watcher, {
9
+ key: namePath.toString(),
10
+ form: form,
11
+ namePath: namePath,
12
+ onChange: update
13
+ })));
14
+ };
15
+ export const Watcher = memo(props => {
16
+ const value = useWatch(props.namePath, props.form);
17
+ useIsomorphicUpdateLayoutEffect(() => {
18
+ props.onChange();
19
+ }, [value]);
20
+ return null;
21
+ });
@@ -8,7 +8,11 @@ export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'na
8
8
  footer?: ReactNode;
9
9
  mode?: ListProps['mode'];
10
10
  };
11
- export declare const Form: React.ForwardRefExoticComponent<Pick<RcFormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & NativeProps<"--border-inner" | "--border-top" | "--border-bottom"> & Partial<FormContextType> & {
11
+ export declare const Form: React.ForwardRefExoticComponent<Pick<RcFormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
12
+ className?: string | undefined;
13
+ style?: (React.CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
14
+ tabIndex?: number | undefined;
15
+ } & React.AriaAttributes & Partial<FormContextType> & {
12
16
  footer?: ReactNode;
13
17
  mode?: ListProps['mode'];
14
18
  } & React.RefAttributes<FormInstance>>;
@@ -7,12 +7,16 @@ export type { FormItemProps } from './form-item';
7
7
  export type { FormSubscribeProps } from './form-subscribe';
8
8
  export type { ValidateMessages, FieldData, NamePath, } from 'rc-field-form/es/interface';
9
9
  export type { FormArrayField, FormArrayOperation, FormArrayProps, } from './form-array';
10
- declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & import("../../utils/native-props").NativeProps<"--border-inner" | "--border-top" | "--border-bottom"> & Partial<import("./context").FormContextType> & {
10
+ declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
11
+ className?: string | undefined;
12
+ style?: (import("react").CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
13
+ tabIndex?: number | undefined;
14
+ } & import("react").AriaAttributes & Partial<import("./context").FormContextType> & {
11
15
  footer?: import("react").ReactNode;
12
16
  mode?: "default" | "card" | undefined;
13
17
  } & import("react").RefAttributes<import("./form").FormInstance>> & {
14
18
  Item: import("react").FC<import("./form-item").FormItemProps>;
15
- Subscribe: import("react").VFC<import("./form-subscribe").FormSubscribeProps>;
19
+ Subscribe: import("react").FC<import("./form-subscribe").FormSubscribeProps>;
16
20
  Header: import("react").FC<{
17
21
  children?: import("react").ReactNode;
18
22
  }>;
@@ -12,4 +12,8 @@ export declare const IndexBar: React.ForwardRefExoticComponent<{
12
12
  sticky?: boolean | undefined;
13
13
  onIndexChange?: ((index: string) => void) | undefined;
14
14
  children?: React.ReactNode;
15
- } & NativeProps<"--sticky-offset-top"> & React.RefAttributes<IndexBarRef>>;
15
+ } & {
16
+ className?: string | undefined;
17
+ style?: (React.CSSProperties & Partial<Record<"--sticky-offset-top", string>>) | undefined;
18
+ tabIndex?: number | undefined;
19
+ } & React.AriaAttributes & React.RefAttributes<IndexBarRef>>;
@@ -6,7 +6,11 @@ declare const _default: import("react").ForwardRefExoticComponent<{
6
6
  sticky?: boolean | undefined;
7
7
  onIndexChange?: ((index: string) => void) | undefined;
8
8
  children?: import("react").ReactNode;
9
- } & import("../../utils/native-props").NativeProps<"--sticky-offset-top"> & import("react").RefAttributes<import("./index-bar").IndexBarRef>> & {
9
+ } & {
10
+ className?: string | undefined;
11
+ style?: (import("react").CSSProperties & Partial<Record<"--sticky-offset-top", string>>) | undefined;
12
+ tabIndex?: number | undefined;
13
+ } & import("react").AriaAttributes & import("react").RefAttributes<import("./index-bar").IndexBarRef>> & {
10
14
  Panel: import("react").FC<import("./panel").IndexBarPanelProps>;
11
15
  };
12
16
  export default _default;