antd-mobile 5.4.0 → 5.6.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 (227) hide show
  1. package/2x/cjs/components/action-sheet/action-sheet.d.ts +5 -5
  2. package/2x/cjs/components/action-sheet/action-sheet.js +6 -46
  3. package/2x/cjs/components/action-sheet/index.d.ts +1 -1
  4. package/2x/cjs/components/badge/badge.js +1 -1
  5. package/2x/cjs/components/cascader-view/cascader-view.d.ts +1 -0
  6. package/2x/cjs/components/cascader-view/cascader-view.js +7 -0
  7. package/2x/cjs/components/cascader-view/use-cascader-value-extend.js +23 -0
  8. package/2x/cjs/components/check-list/check-list-item.js +1 -1
  9. package/2x/cjs/components/checkbox/checkbox.js +4 -8
  10. package/2x/cjs/components/checkbox/native-input.d.ts +10 -0
  11. package/2x/cjs/components/checkbox/native-input.js +42 -0
  12. package/2x/cjs/components/dialog/index.d.ts +1 -1
  13. package/2x/cjs/components/dialog/show.d.ts +2 -4
  14. package/2x/cjs/components/dialog/show.js +9 -47
  15. package/2x/cjs/components/dot-loading/dot-loading.js +1 -2
  16. package/2x/cjs/components/error-block/error-block.js +4 -2
  17. package/2x/cjs/components/floating-bubble/floating-bubble.css +2 -1
  18. package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +1 -1
  19. package/2x/cjs/components/floating-bubble/floating-bubble.js +14 -5
  20. package/2x/cjs/components/form/form-array.d.ts +19 -0
  21. package/2x/cjs/components/form/form-array.js +52 -0
  22. package/2x/cjs/components/form/form-item.css +6 -1
  23. package/2x/cjs/components/form/form-item.js +24 -8
  24. package/2x/cjs/components/form/form.css +5 -0
  25. package/2x/cjs/components/form/form.js +16 -5
  26. package/2x/cjs/components/form/index.css +11 -1
  27. package/2x/cjs/components/form/index.d.ts +2 -0
  28. package/2x/cjs/components/form/index.js +3 -0
  29. package/2x/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  30. package/2x/cjs/components/image-uploader/image-uploader.js +17 -1
  31. package/2x/cjs/components/image-viewer/index.d.ts +1 -1
  32. package/2x/cjs/components/image-viewer/methods.d.ts +3 -4
  33. package/2x/cjs/components/image-viewer/methods.js +41 -56
  34. package/2x/cjs/components/modal/index.d.ts +1 -1
  35. package/2x/cjs/components/modal/show.d.ts +2 -4
  36. package/2x/cjs/components/modal/show.js +9 -47
  37. package/2x/cjs/components/popover/index.d.ts +7 -2
  38. package/2x/cjs/components/popover/normalize-placement.d.ts +2 -0
  39. package/2x/cjs/components/popover/normalize-placement.js +22 -0
  40. package/2x/cjs/components/popover/popover.css +0 -104
  41. package/2x/cjs/components/popover/popover.d.ts +11 -5
  42. package/2x/cjs/components/popover/popover.js +127 -22
  43. package/2x/cjs/components/popover/temp-floating-ui.min.d.ts +1 -0
  44. package/2x/cjs/components/popover/temp-floating-ui.min.js +1 -0
  45. package/2x/cjs/components/popover/wrapper.d.ts +7 -0
  46. package/2x/cjs/components/popover/wrapper.js +41 -0
  47. package/2x/cjs/components/pull-to-refresh/pull-to-refresh.js +24 -9
  48. package/2x/cjs/components/radio/radio.js +4 -8
  49. package/2x/cjs/components/search-bar/search-bar.d.ts +1 -1
  50. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -1
  51. package/2x/cjs/components/tab-bar/tab-bar.js +1 -1
  52. package/2x/cjs/components/tree-select/tree-select.js +2 -2
  53. package/2x/cjs/utils/render-imperatively.d.ts +10 -0
  54. package/2x/cjs/utils/render-imperatively.js +58 -0
  55. package/2x/cjs/utils/use-props-value.d.ts +2 -1
  56. package/2x/cjs/utils/use-props-value.js +4 -2
  57. package/2x/es/components/action-sheet/action-sheet.d.ts +5 -5
  58. package/2x/es/components/action-sheet/action-sheet.js +5 -41
  59. package/2x/es/components/action-sheet/index.d.ts +1 -1
  60. package/2x/es/components/badge/badge.js +1 -1
  61. package/2x/es/components/cascader-view/cascader-view.d.ts +1 -0
  62. package/2x/es/components/cascader-view/cascader-view.js +7 -0
  63. package/2x/es/components/cascader-view/use-cascader-value-extend.js +23 -0
  64. package/2x/es/components/check-list/check-list-item.js +1 -1
  65. package/2x/es/components/checkbox/checkbox.js +3 -8
  66. package/2x/es/components/checkbox/native-input.d.ts +10 -0
  67. package/2x/es/components/checkbox/native-input.js +28 -0
  68. package/2x/es/components/dialog/index.d.ts +1 -1
  69. package/2x/es/components/dialog/show.d.ts +2 -4
  70. package/2x/es/components/dialog/show.js +8 -44
  71. package/2x/es/components/dot-loading/dot-loading.js +1 -2
  72. package/2x/es/components/error-block/error-block.js +4 -2
  73. package/2x/es/components/floating-bubble/floating-bubble.css +2 -1
  74. package/2x/es/components/floating-bubble/floating-bubble.d.ts +1 -1
  75. package/2x/es/components/floating-bubble/floating-bubble.js +14 -5
  76. package/2x/es/components/form/form-array.d.ts +19 -0
  77. package/2x/es/components/form/form-array.js +38 -0
  78. package/2x/es/components/form/form-item.css +6 -1
  79. package/2x/es/components/form/form-item.js +22 -8
  80. package/2x/es/components/form/form.css +5 -0
  81. package/2x/es/components/form/form.js +15 -5
  82. package/2x/es/components/form/index.css +11 -1
  83. package/2x/es/components/form/index.d.ts +2 -0
  84. package/2x/es/components/form/index.js +2 -0
  85. package/2x/es/components/image-uploader/image-uploader.d.ts +1 -1
  86. package/2x/es/components/image-uploader/image-uploader.js +17 -1
  87. package/2x/es/components/image-viewer/index.d.ts +1 -1
  88. package/2x/es/components/image-viewer/methods.d.ts +3 -4
  89. package/2x/es/components/image-viewer/methods.js +38 -57
  90. package/2x/es/components/modal/index.d.ts +1 -1
  91. package/2x/es/components/modal/show.d.ts +2 -4
  92. package/2x/es/components/modal/show.js +8 -44
  93. package/2x/es/components/popover/index.d.ts +7 -2
  94. package/2x/es/components/popover/normalize-placement.d.ts +2 -0
  95. package/2x/es/components/popover/normalize-placement.js +15 -0
  96. package/2x/es/components/popover/popover.css +0 -104
  97. package/2x/es/components/popover/popover.d.ts +11 -5
  98. package/2x/es/components/popover/popover.js +119 -22
  99. package/2x/es/components/popover/temp-floating-ui.min.d.ts +1 -0
  100. package/2x/es/components/popover/temp-floating-ui.min.js +1 -0
  101. package/2x/es/components/popover/wrapper.d.ts +7 -0
  102. package/2x/es/components/popover/wrapper.js +28 -0
  103. package/2x/es/components/pull-to-refresh/pull-to-refresh.js +24 -9
  104. package/2x/es/components/radio/radio.js +3 -8
  105. package/2x/es/components/search-bar/search-bar.d.ts +1 -1
  106. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -1
  107. package/2x/es/components/tab-bar/tab-bar.js +1 -1
  108. package/2x/es/components/tree-select/tree-select.js +2 -2
  109. package/2x/es/utils/render-imperatively.d.ts +10 -0
  110. package/2x/es/utils/render-imperatively.js +45 -0
  111. package/2x/es/utils/use-props-value.d.ts +2 -1
  112. package/2x/es/utils/use-props-value.js +4 -2
  113. package/2x/package.json +3 -4
  114. package/cjs/components/action-sheet/action-sheet.d.ts +5 -5
  115. package/cjs/components/action-sheet/action-sheet.js +6 -46
  116. package/cjs/components/action-sheet/index.d.ts +1 -1
  117. package/cjs/components/badge/badge.js +1 -1
  118. package/cjs/components/cascader-view/cascader-view.d.ts +1 -0
  119. package/cjs/components/cascader-view/cascader-view.js +7 -0
  120. package/cjs/components/cascader-view/use-cascader-value-extend.js +23 -0
  121. package/cjs/components/check-list/check-list-item.js +1 -1
  122. package/cjs/components/checkbox/checkbox.js +4 -8
  123. package/cjs/components/checkbox/native-input.d.ts +10 -0
  124. package/cjs/components/checkbox/native-input.js +42 -0
  125. package/cjs/components/dialog/index.d.ts +1 -1
  126. package/cjs/components/dialog/show.d.ts +2 -4
  127. package/cjs/components/dialog/show.js +9 -47
  128. package/cjs/components/dot-loading/dot-loading.js +1 -2
  129. package/cjs/components/error-block/error-block.js +4 -2
  130. package/cjs/components/floating-bubble/floating-bubble.css +2 -1
  131. package/cjs/components/floating-bubble/floating-bubble.d.ts +1 -1
  132. package/cjs/components/floating-bubble/floating-bubble.js +14 -5
  133. package/cjs/components/form/form-array.d.ts +19 -0
  134. package/cjs/components/form/form-array.js +52 -0
  135. package/cjs/components/form/form-item.css +5 -1
  136. package/cjs/components/form/form-item.js +24 -8
  137. package/cjs/components/form/form.css +4 -0
  138. package/cjs/components/form/form.js +16 -5
  139. package/cjs/components/form/index.css +9 -1
  140. package/cjs/components/form/index.d.ts +2 -0
  141. package/cjs/components/form/index.js +3 -0
  142. package/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  143. package/cjs/components/image-uploader/image-uploader.js +17 -1
  144. package/cjs/components/image-viewer/index.d.ts +1 -1
  145. package/cjs/components/image-viewer/methods.d.ts +3 -4
  146. package/cjs/components/image-viewer/methods.js +41 -56
  147. package/cjs/components/modal/index.d.ts +1 -1
  148. package/cjs/components/modal/show.d.ts +2 -4
  149. package/cjs/components/modal/show.js +9 -47
  150. package/cjs/components/popover/index.d.ts +7 -2
  151. package/cjs/components/popover/normalize-placement.d.ts +2 -0
  152. package/cjs/components/popover/normalize-placement.js +22 -0
  153. package/cjs/components/popover/popover.css +0 -84
  154. package/cjs/components/popover/popover.d.ts +11 -5
  155. package/cjs/components/popover/popover.js +127 -22
  156. package/cjs/components/popover/temp-floating-ui.min.d.ts +1 -0
  157. package/cjs/components/popover/temp-floating-ui.min.js +1 -0
  158. package/cjs/components/popover/wrapper.d.ts +7 -0
  159. package/cjs/components/popover/wrapper.js +41 -0
  160. package/cjs/components/pull-to-refresh/pull-to-refresh.js +24 -9
  161. package/cjs/components/radio/radio.js +4 -8
  162. package/cjs/components/search-bar/search-bar.d.ts +1 -1
  163. package/cjs/components/tab-bar/tab-bar.d.ts +1 -1
  164. package/cjs/components/tab-bar/tab-bar.js +1 -1
  165. package/cjs/components/tree-select/tree-select.js +2 -2
  166. package/cjs/utils/render-imperatively.d.ts +10 -0
  167. package/cjs/utils/render-imperatively.js +58 -0
  168. package/cjs/utils/use-props-value.d.ts +2 -1
  169. package/cjs/utils/use-props-value.js +4 -2
  170. package/es/components/action-sheet/action-sheet.d.ts +5 -5
  171. package/es/components/action-sheet/action-sheet.js +5 -41
  172. package/es/components/action-sheet/index.d.ts +1 -1
  173. package/es/components/badge/badge.js +1 -1
  174. package/es/components/cascader-view/cascader-view.d.ts +1 -0
  175. package/es/components/cascader-view/cascader-view.js +7 -0
  176. package/es/components/cascader-view/use-cascader-value-extend.js +23 -0
  177. package/es/components/check-list/check-list-item.js +1 -1
  178. package/es/components/checkbox/checkbox.js +3 -8
  179. package/es/components/checkbox/native-input.d.ts +10 -0
  180. package/es/components/checkbox/native-input.js +28 -0
  181. package/es/components/dialog/index.d.ts +1 -1
  182. package/es/components/dialog/show.d.ts +2 -4
  183. package/es/components/dialog/show.js +8 -44
  184. package/es/components/dot-loading/dot-loading.js +1 -2
  185. package/es/components/error-block/error-block.js +4 -2
  186. package/es/components/floating-bubble/floating-bubble.css +2 -1
  187. package/es/components/floating-bubble/floating-bubble.d.ts +1 -1
  188. package/es/components/floating-bubble/floating-bubble.js +14 -5
  189. package/es/components/form/form-array.d.ts +19 -0
  190. package/es/components/form/form-array.js +38 -0
  191. package/es/components/form/form-item.css +5 -1
  192. package/es/components/form/form-item.js +22 -8
  193. package/es/components/form/form.css +4 -0
  194. package/es/components/form/form.js +15 -5
  195. package/es/components/form/index.css +9 -1
  196. package/es/components/form/index.d.ts +2 -0
  197. package/es/components/form/index.js +2 -0
  198. package/es/components/image-uploader/image-uploader.d.ts +1 -1
  199. package/es/components/image-uploader/image-uploader.js +17 -1
  200. package/es/components/image-viewer/index.d.ts +1 -1
  201. package/es/components/image-viewer/methods.d.ts +3 -4
  202. package/es/components/image-viewer/methods.js +38 -57
  203. package/es/components/modal/index.d.ts +1 -1
  204. package/es/components/modal/show.d.ts +2 -4
  205. package/es/components/modal/show.js +8 -44
  206. package/es/components/popover/index.d.ts +7 -2
  207. package/es/components/popover/normalize-placement.d.ts +2 -0
  208. package/es/components/popover/normalize-placement.js +15 -0
  209. package/es/components/popover/popover.css +0 -84
  210. package/es/components/popover/popover.d.ts +11 -5
  211. package/es/components/popover/popover.js +119 -22
  212. package/es/components/popover/temp-floating-ui.min.d.ts +1 -0
  213. package/es/components/popover/temp-floating-ui.min.js +1 -0
  214. package/es/components/popover/wrapper.d.ts +7 -0
  215. package/es/components/popover/wrapper.js +28 -0
  216. package/es/components/pull-to-refresh/pull-to-refresh.js +24 -9
  217. package/es/components/radio/radio.js +3 -8
  218. package/es/components/search-bar/search-bar.d.ts +1 -1
  219. package/es/components/tab-bar/tab-bar.d.ts +1 -1
  220. package/es/components/tab-bar/tab-bar.js +1 -1
  221. package/es/components/tree-select/tree-select.js +2 -2
  222. package/es/utils/render-imperatively.d.ts +10 -0
  223. package/es/utils/render-imperatively.js +45 -0
  224. package/es/utils/use-props-value.d.ts +2 -1
  225. package/es/utils/use-props-value.js +4 -2
  226. package/package.json +3 -4
  227. package/umd/antd-mobile.js +1 -1
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizePlacement = normalizePlacement;
7
+ const record = {
8
+ 'topLeft': 'top-start',
9
+ 'topRight': 'top-end',
10
+ 'bottomLeft': 'bottom-start',
11
+ 'bottomRight': 'bottom-end',
12
+ 'leftTop': 'left-start',
13
+ 'leftBottom': 'left-end',
14
+ 'rightTop': 'right-start',
15
+ 'rightBottom': 'right-end'
16
+ };
17
+
18
+ function normalizePlacement(placement) {
19
+ var _a;
20
+
21
+ return (_a = record[placement]) !== null && _a !== void 0 ? _a : placement;
22
+ }
@@ -29,90 +29,6 @@
29
29
  .adm-popover-hidden {
30
30
  display: none;
31
31
  }
32
- .adm-popover-placement-top,
33
- .adm-popover-placement-topLeft,
34
- .adm-popover-placement-topRight {
35
- padding-bottom: var(--arrow-size);
36
- }
37
- .adm-popover-placement-top .adm-popover-arrow,
38
- .adm-popover-placement-topLeft .adm-popover-arrow,
39
- .adm-popover-placement-topRight .adm-popover-arrow {
40
- bottom: 0;
41
- --arrow-icon-rotate: 0deg;
42
- }
43
- .adm-popover-placement-top .adm-popover-arrow {
44
- left: 50%;
45
- transform: translateX(-50%);
46
- }
47
- .adm-popover-placement-topLeft .adm-popover-arrow {
48
- left: 12px;
49
- }
50
- .adm-popover-placement-topRight .adm-popover-arrow {
51
- right: 12px;
52
- }
53
- .adm-popover-placement-right,
54
- .adm-popover-placement-rightTop,
55
- .adm-popover-placement-rightBottom {
56
- padding-left: var(--arrow-size);
57
- }
58
- .adm-popover-placement-right .adm-popover-arrow,
59
- .adm-popover-placement-rightTop .adm-popover-arrow,
60
- .adm-popover-placement-rightBottom .adm-popover-arrow {
61
- left: 0;
62
- --arrow-icon-rotate: 90deg;
63
- }
64
- .adm-popover-placement-right .adm-popover-arrow {
65
- top: 50%;
66
- transform: translateY(-50%);
67
- }
68
- .adm-popover-placement-rightTop .adm-popover-arrow {
69
- top: 12px;
70
- }
71
- .adm-popover-placement-rightBottom .adm-popover-arrow {
72
- bottom: 12px;
73
- }
74
- .adm-popover-placement-bottom,
75
- .adm-popover-placement-bottomLeft,
76
- .adm-popover-placement-bottomRight {
77
- padding-top: var(--arrow-size);
78
- }
79
- .adm-popover-placement-bottom .adm-popover-arrow,
80
- .adm-popover-placement-bottomLeft .adm-popover-arrow,
81
- .adm-popover-placement-bottomRight .adm-popover-arrow {
82
- top: 0;
83
- --arrow-icon-rotate: 180deg;
84
- }
85
- .adm-popover-placement-bottom .adm-popover-arrow {
86
- left: 50%;
87
- transform: translateX(-50%);
88
- }
89
- .adm-popover-placement-bottomLeft .adm-popover-arrow {
90
- left: 12px;
91
- }
92
- .adm-popover-placement-bottomRight .adm-popover-arrow {
93
- right: 12px;
94
- }
95
- .adm-popover-placement-left,
96
- .adm-popover-placement-leftTop,
97
- .adm-popover-placement-leftBottom {
98
- padding-right: var(--arrow-size);
99
- }
100
- .adm-popover-placement-left .adm-popover-arrow,
101
- .adm-popover-placement-leftTop .adm-popover-arrow,
102
- .adm-popover-placement-leftBottom .adm-popover-arrow {
103
- right: 0;
104
- --arrow-icon-rotate: 270deg;
105
- }
106
- .adm-popover-placement-left .adm-popover-arrow {
107
- top: 50%;
108
- transform: translateY(-50%);
109
- }
110
- .adm-popover-placement-leftTop .adm-popover-arrow {
111
- top: 12px;
112
- }
113
- .adm-popover-placement-leftBottom .adm-popover-arrow {
114
- bottom: 12px;
115
- }
116
32
  .adm-popover-inner {
117
33
  background-color: var(--background);
118
34
  background-clip: padding-box;
@@ -1,30 +1,36 @@
1
1
  import React, { ReactElement } from 'react';
2
- import type { TooltipProps } from 'rc-tooltip/lib/Tooltip';
3
2
  import { NativeProps } from '../../utils/native-props';
4
3
  import { PropagationEvent } from '../../utils/with-stop-propagation';
5
4
  import { GetContainer } from '../../utils/render-to-container';
5
+ import { DeprecatedPlacement, Placement } from './index';
6
6
  export declare type PopoverProps = {
7
+ defaultVisible?: boolean;
8
+ visible?: boolean;
9
+ onVisibleChange?: (visible: boolean) => void;
7
10
  getContainer?: GetContainer;
8
11
  destroyOnHide?: boolean;
9
12
  children: ReactElement;
10
13
  mode?: 'light' | 'dark';
11
14
  trigger?: 'click';
12
- placement?: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
15
+ placement?: Placement | DeprecatedPlacement;
13
16
  stopPropagation?: PropagationEvent[];
14
17
  content: React.ReactNode;
15
- } & Pick<TooltipProps, 'defaultVisible' | 'visible' | 'onVisibleChange' | 'align'> & NativeProps<'--z-index'>;
18
+ } & NativeProps<'--z-index'>;
16
19
  export declare type PopoverRef = {
17
20
  show: () => void;
18
21
  hide: () => void;
19
22
  visible: boolean;
20
23
  };
21
24
  export declare const Popover: React.ForwardRefExoticComponent<{
25
+ defaultVisible?: boolean | undefined;
26
+ visible?: boolean | undefined;
27
+ onVisibleChange?: ((visible: boolean) => void) | undefined;
22
28
  getContainer?: GetContainer | undefined;
23
29
  destroyOnHide?: boolean | undefined;
24
30
  children: ReactElement;
25
31
  mode?: "dark" | "light" | undefined;
26
32
  trigger?: "click" | undefined;
27
- placement?: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | undefined;
33
+ placement?: DeprecatedPlacement | Placement | undefined;
28
34
  stopPropagation?: "click"[] | undefined;
29
35
  content: React.ReactNode;
30
- } & Pick<TooltipProps, "visible" | "align" | "defaultVisible" | "onVisibleChange"> & NativeProps<"--z-index"> & React.RefAttributes<PopoverRef>>;
36
+ } & NativeProps<"--z-index"> & React.RefAttributes<PopoverRef>>;
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Popover = void 0;
7
7
 
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _tslib = require("tslib");
9
9
 
10
- var _rcTooltip = _interopRequireDefault(require("rc-tooltip"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
@@ -15,10 +15,26 @@ var _usePropsValue = require("../../utils/use-props-value");
15
15
 
16
16
  var _withDefaultProps = require("../../utils/with-default-props");
17
17
 
18
+ var _nativeProps = require("../../utils/native-props");
19
+
18
20
  var _withStopPropagation = require("../../utils/with-stop-propagation");
19
21
 
20
22
  var _arrow = require("./arrow");
21
23
 
24
+ var _renderToContainer = require("../../utils/render-to-container");
25
+
26
+ var _tempFloatingUiMin = require("./temp-floating-ui.min.js");
27
+
28
+ var _wrapper = require("./wrapper");
29
+
30
+ var _shouldRender = require("../../utils/should-render");
31
+
32
+ var _ahooks = require("ahooks");
33
+
34
+ var _normalizePlacement = require("./normalize-placement");
35
+
36
+ var _convertPx = require("../../utils/convert-px");
37
+
22
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
39
 
24
40
  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); }
@@ -33,12 +49,11 @@ const defaultProps = {
33
49
  getContainer: () => document.body
34
50
  };
35
51
  const Popover = (0, _react.forwardRef)((p, ref) => {
36
- var _a;
37
-
38
52
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
39
53
  const {
40
54
  mode = 'light'
41
55
  } = props;
56
+ const placement = (0, _normalizePlacement.normalizePlacement)(props.placement);
42
57
  const [visible, setVisible] = (0, _usePropsValue.usePropsValue)({
43
58
  value: props.visible,
44
59
  defaultValue: props.defaultVisible,
@@ -51,24 +66,114 @@ const Popover = (0, _react.forwardRef)((p, ref) => {
51
66
  visible
52
67
  };
53
68
  }, [visible]);
54
- const overlay = (0, _withStopPropagation.withStopPropagation)(props.stopPropagation, _react.default.createElement("div", {
69
+ const targetRef = (0, _react.useRef)(null);
70
+ const floatingRef = (0, _react.useRef)(null);
71
+ const arrowRef = (0, _react.useRef)(null);
72
+ const floating = (0, _withStopPropagation.withStopPropagation)(props.stopPropagation, (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
73
+ className: (0, _classnames.default)(classPrefix, `${classPrefix}-${mode}`, !visible && `${classPrefix}-hidden`),
74
+ ref: floatingRef
75
+ }, _react.default.createElement("div", {
76
+ className: `${classPrefix}-arrow`,
77
+ ref: arrowRef
78
+ }, _react.default.createElement(_arrow.Arrow, {
79
+ className: `${classPrefix}-arrow-icon`
80
+ })), _react.default.createElement("div", {
81
+ className: `${classPrefix}-inner`
82
+ }, _react.default.createElement("div", {
55
83
  className: `${classPrefix}-inner-content`
56
- }, props.content));
57
- return _react.default.createElement(_rcTooltip.default, Object.assign({}, props, {
58
- placement: props.placement,
59
- align: props.align,
60
- overlayClassName: (0, _classnames.default)(`${classPrefix}-${mode}`, props.className),
61
- overlayStyle: props.style,
62
- destroyTooltipOnHide: props.destroyOnHide,
63
- prefixCls: classPrefix,
64
- getTooltipContainer: props.getContainer || (() => document.body),
65
- visible: visible,
66
- arrowContent: _react.default.createElement(_arrow.Arrow, {
67
- className: `${classPrefix}-arrow-icon`
68
- }),
69
- onVisibleChange: setVisible,
70
- trigger: (_a = props.trigger) !== null && _a !== void 0 ? _a : [],
71
- overlay: overlay
72
- }), props.children);
84
+ }, props.content)))));
85
+ const [targetElement, setTargetElement] = (0, _react.useState)(null);
86
+
87
+ function update() {
88
+ var _a, _b, _c;
89
+
90
+ return (0, _tslib.__awaiter)(this, void 0, void 0, function* () {
91
+ const target = (_b = (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.element) !== null && _b !== void 0 ? _b : null;
92
+ const floating = floatingRef.current;
93
+ const arrowElement = arrowRef.current;
94
+ setTargetElement(target);
95
+ if (!target || !floating || !arrowElement) return;
96
+ const {
97
+ x,
98
+ y,
99
+ placement: realPlacement,
100
+ middlewareData
101
+ } = yield (0, _tempFloatingUiMin.computePosition)(target, floating, {
102
+ placement,
103
+ middleware: [(0, _tempFloatingUiMin.offset)((0, _convertPx.convertPx)(12)), (0, _tempFloatingUiMin.shift)({
104
+ padding: (0, _convertPx.convertPx)(4),
105
+ crossAxis: false,
106
+ limiter: (0, _tempFloatingUiMin.limitShift)()
107
+ }), (0, _tempFloatingUiMin.flip)(), (0, _tempFloatingUiMin.hide)(), (0, _tempFloatingUiMin.arrow)({
108
+ element: arrowElement,
109
+ padding: (0, _convertPx.convertPx)(12)
110
+ })]
111
+ });
112
+ Object.assign(floating.style, {
113
+ left: `${x}px`,
114
+ top: `${y}px`
115
+ });
116
+ const side = realPlacement.split('-')[0];
117
+ const arrowSide = {
118
+ top: 'bottom',
119
+ right: 'left',
120
+ bottom: 'top',
121
+ left: 'right'
122
+ }[side];
123
+ const {
124
+ x: arrowX,
125
+ y: arrowY
126
+ } = (_c = middlewareData.arrow) !== null && _c !== void 0 ? _c : {};
127
+ Object.assign(arrowElement.style, {
128
+ left: arrowX != null ? `${arrowX}px` : '',
129
+ top: arrowY != null ? `${arrowY}px` : '',
130
+ right: '',
131
+ bottom: '',
132
+ [arrowSide]: `-${(0, _convertPx.convertPx)(8)}px`
133
+ });
134
+ const arrowRotate = {
135
+ top: '0deg',
136
+ bottom: '180deg',
137
+ left: '270deg',
138
+ right: '90deg'
139
+ }[side];
140
+ arrowElement.style.setProperty('--arrow-icon-rotate', arrowRotate);
141
+ });
142
+ }
143
+
144
+ (0, _ahooks.useIsomorphicLayoutEffect)(() => {
145
+ update();
146
+ });
147
+ (0, _react.useEffect)(() => {
148
+ if (!targetElement) return;
149
+ if (!props.trigger) return;
150
+
151
+ function handleClick() {
152
+ console.log('handleClick');
153
+ setVisible(v => !v);
154
+ }
155
+
156
+ targetElement.addEventListener('click', handleClick);
157
+ return () => {
158
+ targetElement.removeEventListener('click', handleClick);
159
+ };
160
+ }, [targetElement, props.trigger]);
161
+ (0, _react.useEffect)(() => {
162
+ const floatingElement = floatingRef.current;
163
+ if (!targetElement || !floatingElement) return;
164
+ return (0, _tempFloatingUiMin.autoUpdate)(targetElement, floatingElement, update);
165
+ }, [targetElement]);
166
+ (0, _ahooks.useClickAway)(() => {
167
+ if (!props.trigger) return;
168
+ setVisible(false);
169
+ }, () => {
170
+ var _a;
171
+
172
+ return (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.element;
173
+ });
174
+ const shouldRender = (0, _shouldRender.useShouldRender)(visible, false, props.destroyOnHide);
175
+ return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_wrapper.Wrapper, {
176
+ ref: targetRef
177
+ }, props.children), shouldRender && (0, _renderToContainer.renderToContainer)(props.getContainer, floating));
73
178
  });
74
179
  exports.Popover = Popover;
@@ -0,0 +1 @@
1
+ export * from '@floating-ui/dom'
@@ -0,0 +1 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@floating-ui/core")):"function"==typeof define&&define.amd?define(["exports","@floating-ui/core"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).FloatingUIDOM={},t.FloatingUICore)}(this,(function(t,e){"use strict";function n(t){return"[object Window]"===(null==t?void 0:t.toString())}function o(t){if(null==t)return window;if(!n(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function i(t){return o(t).getComputedStyle(t)}function r(t){return n(t)?"":t?(t.nodeName||"").toLowerCase():""}function l(t){return t instanceof o(t).HTMLElement}function c(t){return t instanceof o(t).Element}function f(t){return t instanceof o(t).ShadowRoot||t instanceof ShadowRoot}function u(t){const{overflow:e,overflowX:n,overflowY:o}=i(t);return/auto|scroll|overlay|hidden/.test(e+o+n)}function s(t){return["table","td","th"].includes(r(t))}function d(t){const e=navigator.userAgent.toLowerCase().includes("firefox"),n=i(t);return"none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||["transform","perspective"].includes(n.willChange)||e&&"filter"===n.willChange||e&&!!n.filter&&"none"!==n.filter}const h=Math.min,a=Math.max,g=Math.round;function p(t,e){void 0===e&&(e=!1);const n=t.getBoundingClientRect();let o=1,i=1;return e&&l(t)&&(o=t.offsetWidth>0&&g(n.width)/t.offsetWidth||1,i=t.offsetHeight>0&&g(n.height)/t.offsetHeight||1),{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function m(t){return(e=t,(e instanceof o(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function y(t){return n(t)?{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}:{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function w(t){return p(m(t)).left+y(t).scrollLeft}function b(t,e,n){const o=l(e),i=m(e),c=p(t,o&&function(t){const e=p(t);return g(e.width)!==t.offsetWidth||g(e.height)!==t.offsetHeight}(e));let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(o||!o&&"fixed"!==n)if(("body"!==r(e)||u(i))&&(f=y(e)),l(e)){const t=p(e,!0);s.x=t.x+e.clientLeft,s.y=t.y+e.clientTop}else i&&(s.x=w(i));return{x:c.left+f.scrollLeft-s.x,y:c.top+f.scrollTop-s.y,width:c.width,height:c.height}}function v(t){return"html"===r(t)?t:t.assignedSlot||t.parentNode||(f(t)?t.host:null)||m(t)}function x(t){return l(t)&&"fixed"!==getComputedStyle(t).position?t.offsetParent:null}function L(t){const e=o(t);let n=x(t);for(;n&&s(n)&&"static"===getComputedStyle(n).position;)n=x(n);return n&&("html"===r(n)||"body"===r(n)&&"static"===getComputedStyle(n).position&&!d(n))?e:n||function(t){let e=v(t);for(f(e)&&(e=e.host);l(e)&&!["html","body"].includes(r(e));){if(d(e))return e;e=e.parentNode}return null}(t)||e}function O(t){if(l(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=p(t);return{width:e.width,height:e.height}}function P(t){const e=v(t);return["html","body","#document"].includes(r(e))?t.ownerDocument.body:l(e)&&u(e)?e:P(e)}function R(t,e){var n;void 0===e&&(e=[]);const i=P(t),r=i===(null==(n=t.ownerDocument)?void 0:n.body),l=o(i),c=r?[l].concat(l.visualViewport||[],u(i)?i:[]):i,f=e.concat(c);return r?f:f.concat(R(v(c)))}function T(t,n){return"viewport"===n?e.rectToClientRect(function(t){const e=o(t),n=m(t),i=e.visualViewport;let r=n.clientWidth,l=n.clientHeight,c=0,f=0;return i&&(r=i.width,l=i.height,Math.abs(e.innerWidth/i.scale-i.width)<.01&&(c=i.offsetLeft,f=i.offsetTop)),{width:r,height:l,x:c,y:f}}(t)):c(n)?function(t){const e=p(t),n=e.top+t.clientTop,o=e.left+t.clientLeft;return{top:n,left:o,x:o,y:n,right:o+t.clientWidth,bottom:n+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}(n):e.rectToClientRect(function(t){var e;const n=m(t),o=y(t),r=null==(e=t.ownerDocument)?void 0:e.body,l=a(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),c=a(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let f=-o.scrollLeft+w(t);const u=-o.scrollTop;return"rtl"===i(r||n).direction&&(f+=a(n.clientWidth,r?r.clientWidth:0)-l),{width:l,height:c,x:f,y:u}}(m(t)))}function C(t){const e=R(t),n=["absolute","fixed"].includes(i(t).position)&&l(t)?L(t):t;return c(n)?e.filter((t=>c(t)&&function(t,e){const n=null==e.getRootNode?void 0:e.getRootNode();if(t.contains(e))return!0;if(n&&f(n)){let n=e;do{if(n&&t===n)return!0;n=n.parentNode||n.host}while(n)}return!1}(t,n)&&"body"!==r(t))):[]}const W={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:o}=t;const i=[..."clippingAncestors"===n?C(e):[].concat(n),o],r=i[0],l=i.reduce(((t,n)=>{const o=T(e,n);return t.top=a(o.top,t.top),t.right=h(o.right,t.right),t.bottom=h(o.bottom,t.bottom),t.left=a(o.left,t.left),t}),T(e,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=l(n),c=m(n);if(n===c)return e;let f={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&"fixed"!==o)&&(("body"!==r(n)||u(c))&&(f=y(n)),l(n))){const t=p(n,!0);s.x=t.x+n.clientLeft,s.y=t.y+n.clientTop}return{...e,x:e.x-f.scrollLeft+s.x,y:e.y-f.scrollTop+s.y}},isElement:c,getDimensions:O,getOffsetParent:L,getDocumentElement:m,getElementRects:t=>{let{reference:e,floating:n,strategy:o}=t;return{reference:b(e,L(n),o),floating:{...O(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>"rtl"===i(t).direction};Object.defineProperty(t,"arrow",{enumerable:!0,get:function(){return e.arrow}}),Object.defineProperty(t,"autoPlacement",{enumerable:!0,get:function(){return e.autoPlacement}}),Object.defineProperty(t,"detectOverflow",{enumerable:!0,get:function(){return e.detectOverflow}}),Object.defineProperty(t,"flip",{enumerable:!0,get:function(){return e.flip}}),Object.defineProperty(t,"hide",{enumerable:!0,get:function(){return e.hide}}),Object.defineProperty(t,"inline",{enumerable:!0,get:function(){return e.inline}}),Object.defineProperty(t,"limitShift",{enumerable:!0,get:function(){return e.limitShift}}),Object.defineProperty(t,"offset",{enumerable:!0,get:function(){return e.offset}}),Object.defineProperty(t,"shift",{enumerable:!0,get:function(){return e.shift}}),Object.defineProperty(t,"size",{enumerable:!0,get:function(){return e.size}}),t.autoUpdate=function(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:f=!1}=o;let u=!1;const s=i&&!f,d=r&&!f,h=l&&!f,a=s||d?[...c(t)?R(t):[],...R(e)]:[];a.forEach((t=>{s&&t.addEventListener("scroll",n,{passive:!0}),d&&t.addEventListener("resize",n)}));let g,m=null;h&&(m=new ResizeObserver(n),c(t)&&m.observe(t),m.observe(e));let y=f?p(t):null;return f&&function e(){if(u)return;const o=p(t);!y||o.x===y.x&&o.y===y.y&&o.width===y.width&&o.height===y.height||n();y=o,g=requestAnimationFrame(e)}(),()=>{var t;u=!0,a.forEach((t=>{s&&t.removeEventListener("scroll",n),d&&t.removeEventListener("resize",n)})),null==(t=m)||t.disconnect(),m=null,f&&cancelAnimationFrame(g)}},t.computePosition=(t,n,o)=>e.computePosition(t,n,{platform:W,...o}),t.getOverflowAncestors=R,Object.defineProperty(t,"__esModule",{value:!0})}));
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare class Wrapper extends React.Component<{}, {}> {
3
+ element: Element | null;
4
+ componentDidMount(): void;
5
+ componentDidUpdate(): void;
6
+ render(): React.ReactNode;
7
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Wrapper = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactDom = require("react-dom");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ class Wrapper extends _react.default.Component {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.element = null;
18
+ }
19
+
20
+ componentDidMount() {
21
+ this.componentDidUpdate();
22
+ }
23
+
24
+ componentDidUpdate() {
25
+ // eslint-disable-next-line
26
+ const node = (0, _reactDom.findDOMNode)(this);
27
+
28
+ if (node instanceof Element) {
29
+ this.element = node;
30
+ } else {
31
+ this.element = null;
32
+ }
33
+ }
34
+
35
+ render() {
36
+ return _react.default.Children.only(this.props.children);
37
+ }
38
+
39
+ }
40
+
41
+ exports.Wrapper = Wrapper;
@@ -126,15 +126,30 @@ const PullToRefresh = p => {
126
126
 
127
127
  const [, y] = state.movement;
128
128
 
129
- if (state.first) {
130
- const element = elementRef.current;
131
- if (!element) return;
132
- const scrollParent = (0, _getScrollParent.getScrollParent)(element);
133
- if (!scrollParent) return;
134
- const top = 'scrollTop' in scrollParent ? scrollParent.scrollTop : scrollParent.scrollY;
135
-
136
- if (top <= 0 && y > 0) {
137
- pullingRef.current = true;
129
+ if (state.first && y > 0) {
130
+ const target = state.event.target;
131
+ if (!target || !(target instanceof Element)) return;
132
+ let scrollParent = (0, _getScrollParent.getScrollParent)(target);
133
+
134
+ while (true) {
135
+ if (!scrollParent) return;
136
+ const scrollTop = getScrollTop(scrollParent);
137
+
138
+ if (scrollTop > 0) {
139
+ return;
140
+ }
141
+
142
+ if (scrollParent instanceof Window) {
143
+ break;
144
+ }
145
+
146
+ scrollParent = (0, _getScrollParent.getScrollParent)(scrollParent.parentNode);
147
+ }
148
+
149
+ pullingRef.current = true;
150
+
151
+ function getScrollTop(element) {
152
+ return 'scrollTop' in element ? element.scrollTop : element.scrollY;
138
153
  }
139
154
  }
140
155
 
@@ -23,6 +23,8 @@ var _devLog = require("../../utils/dev-log");
23
23
 
24
24
  var _isDev = require("../../utils/is-dev");
25
25
 
26
+ var _nativeInput = require("../checkbox/native-input");
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
28
30
  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); }
@@ -93,16 +95,10 @@ const Radio = p => {
93
95
  [`${classPrefix}-disabled`]: disabled,
94
96
  [`${classPrefix}-block`]: props.block
95
97
  })
96
- }, _react.default.createElement("input", {
98
+ }, _react.default.createElement(_nativeInput.NativeInput, {
97
99
  type: 'radio',
98
100
  checked: checked,
99
- onChange: e => {
100
- setChecked(e.target.checked);
101
- },
102
- onClick: e => {
103
- e.stopPropagation();
104
- e.nativeEvent.stopImmediatePropagation();
105
- },
101
+ onChange: setChecked,
106
102
  disabled: disabled,
107
103
  id: props.id
108
104
  }), renderIcon(), props.children && _react.default.createElement("div", {
@@ -29,4 +29,4 @@ export declare const SearchBar: React.ForwardRefExoticComponent<Pick<InputProps,
29
29
  onSearch?: ((val: string) => void) | undefined;
30
30
  onChange?: ((val: string) => void) | undefined;
31
31
  onCancel?: (() => void) | undefined;
32
- } & NativeProps<"--border-radius" | "--height" | "--padding-left" | "--placeholder-color" | "--background"> & React.RefAttributes<InputRef>>;
32
+ } & NativeProps<"--border-radius" | "--height" | "--padding-left" | "--background" | "--placeholder-color"> & React.RefAttributes<InputRef>>;
@@ -3,7 +3,7 @@ import { NativeProps } from '../../utils/native-props';
3
3
  import { BadgeProps } from '../badge';
4
4
  export declare type TabBarItemProps = {
5
5
  icon?: ReactNode | ((active: boolean) => ReactNode);
6
- title?: ReactNode;
6
+ title?: ReactNode | ((active: boolean) => ReactNode);
7
7
  badge?: BadgeProps['content'];
8
8
  } & NativeProps;
9
9
  export declare const TabBarItem: FC<TabBarItemProps>;
@@ -74,7 +74,7 @@ const TabBar = p => {
74
74
 
75
75
  const titleElement = item.props.title && _react.default.createElement("div", {
76
76
  className: `${classPrefix}-item-title`
77
- }, item.props.title);
77
+ }, typeof item.props.title === 'function' ? item.props.title(active) : item.props.title);
78
78
 
79
79
  if (iconElement) {
80
80
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_badge.default, {
@@ -67,12 +67,12 @@ const TreeSelect = p => {
67
67
  let current = node;
68
68
 
69
69
  while (current) {
70
- parentNodes.unshift(current);
70
+ parentNodes.push(current);
71
71
  const next = optionsParentMap.get(current[valueName]);
72
72
  current = next;
73
73
  }
74
74
 
75
- const values = parentNodes.map(i => i[valueName]);
75
+ const values = parentNodes.reverse().map(i => i[valueName]);
76
76
  setValue(values);
77
77
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, values, {
78
78
  options: parentNodes
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ declare type ImperativeProps = {
3
+ visible?: boolean;
4
+ onClose?: () => void;
5
+ afterClose?: () => void;
6
+ };
7
+ export declare function renderImperatively(element: ReactElement<ImperativeProps>): {
8
+ close: () => void;
9
+ };
10
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderImperatively = renderImperatively;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _renderToBody = require("./render-to-body");
11
+
12
+ 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); }
13
+
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ function renderImperatively(element) {
17
+ let close = () => {};
18
+
19
+ const Wrapper = () => {
20
+ const [visible, setVisible] = (0, _react.useState)(false);
21
+ const closedRef = (0, _react.useRef)(false);
22
+ (0, _react.useEffect)(() => {
23
+ if (!closedRef.current) {
24
+ setVisible(true);
25
+ } else {
26
+ afterClose();
27
+ }
28
+ }, []);
29
+
30
+ function onClose() {
31
+ var _a, _b;
32
+
33
+ closedRef.current = true;
34
+ setVisible(false);
35
+ (_b = (_a = element.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
36
+ }
37
+
38
+ close = onClose;
39
+
40
+ function afterClose() {
41
+ var _a, _b;
42
+
43
+ unmount();
44
+ (_b = (_a = element.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
45
+ }
46
+
47
+ return _react.default.cloneElement(element, Object.assign(Object.assign({}, element.props), {
48
+ visible,
49
+ onClose,
50
+ afterClose
51
+ }));
52
+ };
53
+
54
+ const unmount = (0, _renderToBody.renderToBody)(_react.default.createElement(Wrapper, null));
55
+ return {
56
+ close
57
+ };
58
+ }
@@ -1,7 +1,8 @@
1
+ import { SetStateAction } from 'react';
1
2
  declare type Options<T> = {
2
3
  value?: T;
3
4
  defaultValue: T;
4
5
  onChange?: (v: T) => void;
5
6
  };
6
- export declare function usePropsValue<T>(options: Options<T>): readonly [T, (this: unknown, v: T) => void];
7
+ export declare function usePropsValue<T>(options: Options<T>): readonly [T, (this: unknown, v: SetStateAction<T>) => void];
7
8
  export {};
@@ -23,12 +23,14 @@ function usePropsValue(options) {
23
23
  }
24
24
 
25
25
  const setState = (0, _ahooks.useMemoizedFn)(v => {
26
+ const nextValue = typeof v === 'function' ? v(stateRef.current) : v;
27
+
26
28
  if (value === undefined) {
27
- stateRef.current = v;
29
+ stateRef.current = nextValue;
28
30
  update();
29
31
  }
30
32
 
31
- onChange === null || onChange === void 0 ? void 0 : onChange(v);
33
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);
32
34
  });
33
35
  return [stateRef.current, setState];
34
36
  }
@@ -10,7 +10,7 @@ export declare type Action = {
10
10
  onClick?: () => void;
11
11
  };
12
12
  export declare type ActionSheetProps = {
13
- visible: boolean;
13
+ visible?: boolean;
14
14
  actions: Action[];
15
15
  extra?: React.ReactNode;
16
16
  cancelText?: React.ReactNode;
@@ -22,11 +22,11 @@ export declare type ActionSheetProps = {
22
22
  closeOnMaskClick?: boolean;
23
23
  getContainer?: GetContainer;
24
24
  safeArea?: boolean;
25
+ popupClassName?: string;
26
+ popupStyle?: React.CSSProperties;
25
27
  } & NativeProps;
26
28
  export declare const ActionSheet: FC<ActionSheetProps>;
27
- export declare type ActionSheetRef = {
28
- close: () => void;
29
- };
30
- export declare function showActionSheet(props: Omit<ActionSheetProps, 'visible'>): {
29
+ export declare type ActionSheetShowHandler = {
31
30
  close: () => void;
32
31
  };
32
+ export declare function showActionSheet(props: Omit<ActionSheetProps, 'visible'>): ActionSheetShowHandler;