antd-mobile 5.3.0 → 5.5.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 (156) hide show
  1. package/2x/cjs/components/avatar/avatar.js +1 -0
  2. package/2x/cjs/components/calendar/calendar.js +23 -20
  3. package/2x/cjs/components/cascader-view/cascader-view.d.ts +1 -0
  4. package/2x/cjs/components/cascader-view/use-cascader-value-extend.js +23 -0
  5. package/2x/cjs/components/check-list/check-list-item.js +1 -1
  6. package/2x/cjs/components/checkbox/checkbox.js +16 -4
  7. package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +2 -0
  8. package/2x/cjs/components/floating-bubble/floating-bubble.js +56 -16
  9. package/2x/cjs/components/form/form-array.d.ts +19 -0
  10. package/2x/cjs/components/form/form-array.js +52 -0
  11. package/2x/cjs/components/form/form-item.css +6 -1
  12. package/2x/cjs/components/form/form-item.js +24 -8
  13. package/2x/cjs/components/form/form.css +5 -0
  14. package/2x/cjs/components/form/form.js +17 -6
  15. package/2x/cjs/components/form/index.css +11 -1
  16. package/2x/cjs/components/form/index.d.ts +2 -0
  17. package/2x/cjs/components/form/index.js +3 -0
  18. package/2x/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  19. package/2x/cjs/components/image-uploader/image-uploader.js +17 -1
  20. package/2x/cjs/components/infinite-scroll/infinite-scroll.js +23 -19
  21. package/2x/cjs/components/modal/modal.js +0 -1
  22. package/2x/cjs/components/notice-bar/notice-bar.js +1 -1
  23. package/2x/cjs/components/popover/index.d.ts +7 -2
  24. package/2x/cjs/components/popover/normalize-placement.d.ts +2 -0
  25. package/2x/cjs/components/popover/normalize-placement.js +22 -0
  26. package/2x/cjs/components/popover/popover.css +0 -104
  27. package/2x/cjs/components/popover/popover.d.ts +11 -5
  28. package/2x/cjs/components/popover/popover.js +126 -22
  29. package/2x/cjs/components/popover/wrapper.d.ts +7 -0
  30. package/2x/cjs/components/popover/wrapper.js +41 -0
  31. package/2x/cjs/components/pull-to-refresh/pull-to-refresh.js +24 -9
  32. package/2x/cjs/components/radio/radio.js +16 -4
  33. package/2x/cjs/components/search-bar/search-bar.js +0 -1
  34. package/2x/cjs/components/swiper/swiper.js +1 -1
  35. package/2x/cjs/components/text-area/text-area.css +4 -1
  36. package/2x/cjs/components/text-area/text-area.d.ts +2 -2
  37. package/2x/cjs/utils/use-props-value.d.ts +2 -1
  38. package/2x/cjs/utils/use-props-value.js +4 -2
  39. package/2x/es/components/avatar/avatar.js +1 -0
  40. package/2x/es/components/calendar/calendar.js +23 -19
  41. package/2x/es/components/cascader-view/cascader-view.d.ts +1 -0
  42. package/2x/es/components/cascader-view/use-cascader-value-extend.js +23 -0
  43. package/2x/es/components/check-list/check-list-item.js +1 -1
  44. package/2x/es/components/checkbox/checkbox.js +17 -5
  45. package/2x/es/components/floating-bubble/floating-bubble.d.ts +2 -0
  46. package/2x/es/components/floating-bubble/floating-bubble.js +57 -17
  47. package/2x/es/components/form/form-array.d.ts +19 -0
  48. package/2x/es/components/form/form-array.js +38 -0
  49. package/2x/es/components/form/form-item.css +6 -1
  50. package/2x/es/components/form/form-item.js +22 -8
  51. package/2x/es/components/form/form.css +5 -0
  52. package/2x/es/components/form/form.js +16 -6
  53. package/2x/es/components/form/index.css +11 -1
  54. package/2x/es/components/form/index.d.ts +2 -0
  55. package/2x/es/components/form/index.js +2 -0
  56. package/2x/es/components/image-uploader/image-uploader.d.ts +1 -1
  57. package/2x/es/components/image-uploader/image-uploader.js +17 -1
  58. package/2x/es/components/infinite-scroll/infinite-scroll.js +22 -19
  59. package/2x/es/components/modal/modal.js +0 -1
  60. package/2x/es/components/notice-bar/notice-bar.js +1 -1
  61. package/2x/es/components/popover/index.d.ts +7 -2
  62. package/2x/es/components/popover/normalize-placement.d.ts +2 -0
  63. package/2x/es/components/popover/normalize-placement.js +15 -0
  64. package/2x/es/components/popover/popover.css +0 -104
  65. package/2x/es/components/popover/popover.d.ts +11 -5
  66. package/2x/es/components/popover/popover.js +118 -22
  67. package/2x/es/components/popover/wrapper.d.ts +7 -0
  68. package/2x/es/components/popover/wrapper.js +28 -0
  69. package/2x/es/components/pull-to-refresh/pull-to-refresh.js +24 -9
  70. package/2x/es/components/radio/radio.js +17 -5
  71. package/2x/es/components/search-bar/search-bar.js +0 -1
  72. package/2x/es/components/swiper/swiper.js +1 -1
  73. package/2x/es/components/text-area/text-area.css +4 -1
  74. package/2x/es/components/text-area/text-area.d.ts +2 -2
  75. package/2x/es/utils/use-props-value.d.ts +2 -1
  76. package/2x/es/utils/use-props-value.js +4 -2
  77. package/2x/package.json +2 -2
  78. package/cjs/components/avatar/avatar.js +1 -0
  79. package/cjs/components/calendar/calendar.js +23 -20
  80. package/cjs/components/cascader-view/cascader-view.d.ts +1 -0
  81. package/cjs/components/cascader-view/use-cascader-value-extend.js +23 -0
  82. package/cjs/components/check-list/check-list-item.js +1 -1
  83. package/cjs/components/checkbox/checkbox.js +16 -4
  84. package/cjs/components/floating-bubble/floating-bubble.d.ts +2 -0
  85. package/cjs/components/floating-bubble/floating-bubble.js +56 -16
  86. package/cjs/components/form/form-array.d.ts +19 -0
  87. package/cjs/components/form/form-array.js +52 -0
  88. package/cjs/components/form/form-item.css +5 -1
  89. package/cjs/components/form/form-item.js +24 -8
  90. package/cjs/components/form/form.css +4 -0
  91. package/cjs/components/form/form.js +17 -6
  92. package/cjs/components/form/index.css +9 -1
  93. package/cjs/components/form/index.d.ts +2 -0
  94. package/cjs/components/form/index.js +3 -0
  95. package/cjs/components/image-uploader/image-uploader.d.ts +1 -1
  96. package/cjs/components/image-uploader/image-uploader.js +17 -1
  97. package/cjs/components/infinite-scroll/infinite-scroll.js +23 -19
  98. package/cjs/components/modal/modal.js +0 -1
  99. package/cjs/components/notice-bar/notice-bar.js +1 -1
  100. package/cjs/components/popover/index.d.ts +7 -2
  101. package/cjs/components/popover/normalize-placement.d.ts +2 -0
  102. package/cjs/components/popover/normalize-placement.js +22 -0
  103. package/cjs/components/popover/popover.css +0 -84
  104. package/cjs/components/popover/popover.d.ts +11 -5
  105. package/cjs/components/popover/popover.js +126 -22
  106. package/cjs/components/popover/wrapper.d.ts +7 -0
  107. package/cjs/components/popover/wrapper.js +41 -0
  108. package/cjs/components/pull-to-refresh/pull-to-refresh.js +24 -9
  109. package/cjs/components/radio/radio.js +16 -4
  110. package/cjs/components/search-bar/search-bar.js +0 -1
  111. package/cjs/components/swiper/swiper.js +1 -1
  112. package/cjs/components/text-area/text-area.css +4 -1
  113. package/cjs/components/text-area/text-area.d.ts +2 -2
  114. package/cjs/utils/use-props-value.d.ts +2 -1
  115. package/cjs/utils/use-props-value.js +4 -2
  116. package/es/components/avatar/avatar.js +1 -0
  117. package/es/components/calendar/calendar.js +23 -19
  118. package/es/components/cascader-view/cascader-view.d.ts +1 -0
  119. package/es/components/cascader-view/use-cascader-value-extend.js +23 -0
  120. package/es/components/check-list/check-list-item.js +1 -1
  121. package/es/components/checkbox/checkbox.js +17 -5
  122. package/es/components/floating-bubble/floating-bubble.d.ts +2 -0
  123. package/es/components/floating-bubble/floating-bubble.js +57 -17
  124. package/es/components/form/form-array.d.ts +19 -0
  125. package/es/components/form/form-array.js +38 -0
  126. package/es/components/form/form-item.css +5 -1
  127. package/es/components/form/form-item.js +22 -8
  128. package/es/components/form/form.css +4 -0
  129. package/es/components/form/form.js +16 -6
  130. package/es/components/form/index.css +9 -1
  131. package/es/components/form/index.d.ts +2 -0
  132. package/es/components/form/index.js +2 -0
  133. package/es/components/image-uploader/image-uploader.d.ts +1 -1
  134. package/es/components/image-uploader/image-uploader.js +17 -1
  135. package/es/components/infinite-scroll/infinite-scroll.js +22 -19
  136. package/es/components/modal/modal.js +0 -1
  137. package/es/components/notice-bar/notice-bar.js +1 -1
  138. package/es/components/popover/index.d.ts +7 -2
  139. package/es/components/popover/normalize-placement.d.ts +2 -0
  140. package/es/components/popover/normalize-placement.js +15 -0
  141. package/es/components/popover/popover.css +0 -84
  142. package/es/components/popover/popover.d.ts +11 -5
  143. package/es/components/popover/popover.js +118 -22
  144. package/es/components/popover/wrapper.d.ts +7 -0
  145. package/es/components/popover/wrapper.js +28 -0
  146. package/es/components/pull-to-refresh/pull-to-refresh.js +24 -9
  147. package/es/components/radio/radio.js +17 -5
  148. package/es/components/search-bar/search-bar.js +0 -1
  149. package/es/components/swiper/swiper.js +1 -1
  150. package/es/components/text-area/text-area.css +4 -1
  151. package/es/components/text-area/text-area.d.ts +2 -2
  152. package/es/utils/use-props-value.d.ts +2 -1
  153. package/es/utils/use-props-value.js +4 -2
  154. package/package.json +2 -2
  155. package/umd/antd-mobile.js +1 -1
  156. package/umd/antd-mobile.js.LICENSE.txt +0 -24
@@ -41,7 +41,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
41
 
42
42
  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; }
43
43
 
44
- const classPrefix = `adm-modal`;
45
44
  const defaultProps = {
46
45
  visible: false,
47
46
  actions: [],
@@ -76,7 +76,7 @@ const NoticeBar = (0, _react.memo)(p => {
76
76
  delayLockRef.current = false;
77
77
  start();
78
78
  }, props.delay);
79
- (0, _useResizeEffect.useResizeEffect)(text => {
79
+ (0, _useResizeEffect.useResizeEffect)(() => {
80
80
  start();
81
81
  }, containerRef);
82
82
  (0, _useMutationEffect.useMutationEffect)(() => {
@@ -3,16 +3,21 @@ import './popover.less';
3
3
  import './popover-menu.less';
4
4
  export type { PopoverProps, PopoverRef } from './popover';
5
5
  export type { PopoverMenuProps, Action } from './popover-menu';
6
+ export declare type Placement = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';
7
+ export declare type DeprecatedPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
6
8
  declare const _default: import("react").ForwardRefExoticComponent<{
9
+ defaultVisible?: boolean | undefined;
10
+ visible?: boolean | undefined;
11
+ onVisibleChange?: ((visible: boolean) => void) | undefined;
7
12
  getContainer?: import("../../utils/render-to-container").GetContainer | undefined;
8
13
  destroyOnHide?: boolean | undefined;
9
14
  children: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
10
15
  mode?: "dark" | "light" | undefined;
11
16
  trigger?: "click" | undefined;
12
- placement?: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | undefined;
17
+ placement?: DeprecatedPlacement | Placement | undefined;
13
18
  stopPropagation?: "click"[] | undefined;
14
19
  content: import("react").ReactNode;
15
- } & Pick<import("rc-tooltip/lib/Tooltip").TooltipProps, "visible" | "align" | "defaultVisible" | "onVisibleChange"> & import("../../utils/native-props").NativeProps<"--z-index"> & import("react").RefAttributes<import("./popover").PopoverRef>> & {
20
+ } & import("../../utils/native-props").NativeProps<"--z-index"> & import("react").RefAttributes<import("./popover").PopoverRef>> & {
16
21
  Menu: import("react").ForwardRefExoticComponent<Omit<import("./popover").PopoverProps, "content"> & {
17
22
  actions: import("./popover-menu").Action[];
18
23
  onAction?: ((item: import("./popover-menu").Action) => void) | undefined;
@@ -0,0 +1,2 @@
1
+ import { DeprecatedPlacement, Placement } from './index';
2
+ export declare function normalizePlacement(placement: Placement | DeprecatedPlacement): Placement;
@@ -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
+ }
@@ -34,110 +34,6 @@
34
34
  display: none;
35
35
  }
36
36
 
37
- .adm-popover-placement-top,
38
- .adm-popover-placement-topLeft,
39
- .adm-popover-placement-topRight {
40
- padding-bottom: var(--arrow-size);
41
- }
42
-
43
- .adm-popover-placement-top .adm-popover-arrow,
44
- .adm-popover-placement-topLeft .adm-popover-arrow,
45
- .adm-popover-placement-topRight .adm-popover-arrow {
46
- bottom: 0;
47
- --arrow-icon-rotate: 0deg;
48
- }
49
-
50
- .adm-popover-placement-top .adm-popover-arrow {
51
- left: 50%;
52
- transform: translateX(-50%);
53
- }
54
-
55
- .adm-popover-placement-topLeft .adm-popover-arrow {
56
- left: 24px;
57
- }
58
-
59
- .adm-popover-placement-topRight .adm-popover-arrow {
60
- right: 24px;
61
- }
62
-
63
- .adm-popover-placement-right,
64
- .adm-popover-placement-rightTop,
65
- .adm-popover-placement-rightBottom {
66
- padding-left: var(--arrow-size);
67
- }
68
-
69
- .adm-popover-placement-right .adm-popover-arrow,
70
- .adm-popover-placement-rightTop .adm-popover-arrow,
71
- .adm-popover-placement-rightBottom .adm-popover-arrow {
72
- left: 0;
73
- --arrow-icon-rotate: 90deg;
74
- }
75
-
76
- .adm-popover-placement-right .adm-popover-arrow {
77
- top: 50%;
78
- transform: translateY(-50%);
79
- }
80
-
81
- .adm-popover-placement-rightTop .adm-popover-arrow {
82
- top: 24px;
83
- }
84
-
85
- .adm-popover-placement-rightBottom .adm-popover-arrow {
86
- bottom: 24px;
87
- }
88
-
89
- .adm-popover-placement-bottom,
90
- .adm-popover-placement-bottomLeft,
91
- .adm-popover-placement-bottomRight {
92
- padding-top: var(--arrow-size);
93
- }
94
-
95
- .adm-popover-placement-bottom .adm-popover-arrow,
96
- .adm-popover-placement-bottomLeft .adm-popover-arrow,
97
- .adm-popover-placement-bottomRight .adm-popover-arrow {
98
- top: 0;
99
- --arrow-icon-rotate: 180deg;
100
- }
101
-
102
- .adm-popover-placement-bottom .adm-popover-arrow {
103
- left: 50%;
104
- transform: translateX(-50%);
105
- }
106
-
107
- .adm-popover-placement-bottomLeft .adm-popover-arrow {
108
- left: 24px;
109
- }
110
-
111
- .adm-popover-placement-bottomRight .adm-popover-arrow {
112
- right: 24px;
113
- }
114
-
115
- .adm-popover-placement-left,
116
- .adm-popover-placement-leftTop,
117
- .adm-popover-placement-leftBottom {
118
- padding-right: var(--arrow-size);
119
- }
120
-
121
- .adm-popover-placement-left .adm-popover-arrow,
122
- .adm-popover-placement-leftTop .adm-popover-arrow,
123
- .adm-popover-placement-leftBottom .adm-popover-arrow {
124
- right: 0;
125
- --arrow-icon-rotate: 270deg;
126
- }
127
-
128
- .adm-popover-placement-left .adm-popover-arrow {
129
- top: 50%;
130
- transform: translateY(-50%);
131
- }
132
-
133
- .adm-popover-placement-leftTop .adm-popover-arrow {
134
- top: 24px;
135
- }
136
-
137
- .adm-popover-placement-leftBottom .adm-popover-arrow {
138
- bottom: 24px;
139
- }
140
-
141
37
  .adm-popover-inner {
142
38
  background-color: var(--background);
143
39
  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 _dom = require("@floating-ui/dom");
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,113 @@ 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, _dom.computePosition)(target, floating, {
102
+ placement,
103
+ middleware: [(0, _dom.offset)((0, _convertPx.convertPx)(12)), (0, _dom.shift)({
104
+ padding: (0, _convertPx.convertPx)(4),
105
+ crossAxis: false,
106
+ limiter: (0, _dom.limitShift)()
107
+ }), (0, _dom.flip)(), (0, _dom.hide)(), (0, _dom.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
+ setVisible(v => !v);
153
+ }
154
+
155
+ targetElement.addEventListener('click', handleClick);
156
+ return () => {
157
+ targetElement.removeEventListener('click', handleClick);
158
+ };
159
+ }, [targetElement, props.trigger]);
160
+ (0, _react.useEffect)(() => {
161
+ const floatingElement = floatingRef.current;
162
+ if (!targetElement || !floatingElement) return;
163
+ return (0, _dom.autoUpdate)(targetElement, floatingElement, update);
164
+ }, [targetElement]);
165
+ (0, _ahooks.useClickAway)(() => {
166
+ if (!props.trigger) return;
167
+ setVisible(false);
168
+ }, () => {
169
+ var _a;
170
+
171
+ return (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.element;
172
+ });
173
+ const shouldRender = (0, _shouldRender.useShouldRender)(visible, false, props.destroyOnHide);
174
+ return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_wrapper.Wrapper, {
175
+ ref: targetRef
176
+ }, props.children), shouldRender && (0, _renderToContainer.renderToContainer)(props.getContainer, floating));
73
177
  });
74
178
  exports.Popover = Popover;
@@ -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
 
@@ -87,22 +87,34 @@ const Radio = p => {
87
87
  }, checked && _react.default.createElement(_checkIcon.CheckIcon, null));
88
88
  };
89
89
 
90
+ const inputRef = (0, _react.useRef)(null);
91
+ const labelRef = (0, _react.useRef)(null);
92
+ (0, _react.useEffect)(() => {
93
+ var _a;
94
+
95
+ (_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('click', e => {
96
+ if (e.target !== inputRef.current) {
97
+ e.stopPropagation();
98
+ e.stopImmediatePropagation();
99
+ }
100
+ }, {
101
+ capture: false
102
+ });
103
+ }, []);
90
104
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("label", {
105
+ ref: labelRef,
91
106
  className: (0, _classnames.default)(classPrefix, {
92
107
  [`${classPrefix}-checked`]: checked,
93
108
  [`${classPrefix}-disabled`]: disabled,
94
109
  [`${classPrefix}-block`]: props.block
95
110
  })
96
111
  }, _react.default.createElement("input", {
112
+ ref: inputRef,
97
113
  type: 'radio',
98
114
  checked: checked,
99
115
  onChange: e => {
100
116
  setChecked(e.target.checked);
101
117
  },
102
- onClick: e => {
103
- e.stopPropagation();
104
- e.nativeEvent.stopImmediatePropagation();
105
- },
106
118
  disabled: disabled,
107
119
  id: props.id
108
120
  }), renderIcon(), props.children && _react.default.createElement("div", {
@@ -67,7 +67,6 @@ const SearchBar = (0, _react.forwardRef)((p, ref) => {
67
67
 
68
68
  const renderCancelButton = () => {
69
69
  let isShowCancel = false;
70
- const showCancelButton = props.showCancelButton;
71
70
 
72
71
  if (typeof props.showCancelButton === 'function') {
73
72
  isShowCancel = props.showCancelButton(hasFocus, value);
@@ -258,7 +258,7 @@ const Swiper = (0, _react.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
258
258
  style: {
259
259
  [isVertical ? 'y' : 'x']: position.to(position => `${-position}%`)
260
260
  }
261
- }, _react.default.Children.map(validChildren, (child, index) => {
261
+ }, _react.default.Children.map(validChildren, child => {
262
262
  return _react.default.createElement("div", {
263
263
  className: 'adm-swiper-slide'
264
264
  }, child);
@@ -3,6 +3,8 @@
3
3
  --color: var(--adm-color-text);
4
4
  --placeholder-color: var(--adm-color-light);
5
5
  --disabled-color: var(--adm-color-weak);
6
+ --text-align: left;
7
+ --count-text-align: right;
6
8
  width: 100%;
7
9
  max-width: 100%;
8
10
  max-height: 100%;
@@ -27,6 +29,7 @@
27
29
  outline: none;
28
30
  appearance: none;
29
31
  min-height: 1.5em;
32
+ text-align: var(--text-align);
30
33
  }
31
34
 
32
35
  .adm-text-area-element::placeholder {
@@ -62,7 +65,7 @@
62
65
  }
63
66
 
64
67
  .adm-text-area-count {
65
- text-align: right;
68
+ text-align: var(--count-text-align);
66
69
  color: var(--adm-color-weak);
67
70
  font-size: 34px;
68
71
  padding-top: 16px;
@@ -14,7 +14,7 @@ export declare type TextAreaProps = Pick<React.DetailedHTMLProps<React.TextareaH
14
14
  maxRows?: number;
15
15
  };
16
16
  id?: string;
17
- } & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color'>;
17
+ } & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--count-text-align'>;
18
18
  export declare type TextAreaRef = {
19
19
  clear: () => void;
20
20
  focus: () => void;
@@ -33,4 +33,4 @@ export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.Detail
33
33
  maxRows?: number | undefined;
34
34
  } | undefined;
35
35
  id?: string | undefined;
36
- } & NativeProps<"--color" | "--font-size" | "--placeholder-color" | "--disabled-color"> & React.RefAttributes<TextAreaRef>>;
36
+ } & NativeProps<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--count-text-align"> & React.RefAttributes<TextAreaRef>>;
@@ -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
  }
@@ -17,6 +17,7 @@ export const Avatar = p => {
17
17
  placeholder: props.fallback,
18
18
  alt: props.alt,
19
19
  lazy: props.lazy,
20
+ fit: props.fit,
20
21
  onClick: props.onClick,
21
22
  onError: props.onError
22
23
  }));