@arco-design/mobile-react 2.20.0 → 2.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/avatar/index.d.ts +1 -1
  5. package/cjs/avatar/index.js +1 -1
  6. package/cjs/badge/index.d.ts +1 -1
  7. package/cjs/badge/index.js +1 -1
  8. package/cjs/button/style/css/index.css +64 -64
  9. package/cjs/button/style/index.less +7 -5
  10. package/cjs/carousel/index.d.ts +1 -1
  11. package/cjs/carousel/index.js +1 -1
  12. package/cjs/cell/index.d.ts +1 -1
  13. package/cjs/cell/index.js +1 -1
  14. package/cjs/checkbox/index.d.ts +1 -1
  15. package/cjs/checkbox/index.js +1 -1
  16. package/cjs/collapse/index.d.ts +1 -1
  17. package/cjs/collapse/index.js +1 -1
  18. package/cjs/count-down/index.d.ts +1 -1
  19. package/cjs/count-down/index.js +1 -1
  20. package/cjs/date-picker/index.d.ts +1 -1
  21. package/cjs/date-picker/index.js +1 -1
  22. package/cjs/dropdown/dropdown.js +36 -20
  23. package/cjs/dropdown/style/css/index.css +3 -0
  24. package/cjs/dropdown/style/index.less +2 -0
  25. package/cjs/ellipsis/components/js-ellipsis.js +2 -3
  26. package/cjs/ellipsis/index.d.ts +1 -1
  27. package/cjs/ellipsis/index.js +3 -4
  28. package/cjs/image/index.d.ts +1 -1
  29. package/cjs/image/index.js +1 -1
  30. package/cjs/image-picker/index.d.ts +4 -175
  31. package/cjs/image-picker/index.js +41 -18
  32. package/cjs/image-picker/type.d.ts +174 -0
  33. package/cjs/image-picker/type.js +3 -0
  34. package/cjs/image-preview/index.d.ts +1 -1
  35. package/cjs/image-preview/index.js +1 -1
  36. package/cjs/index.d.ts +2 -0
  37. package/cjs/index.js +9 -1
  38. package/cjs/input/hooks.js +49 -8
  39. package/cjs/input/index.d.ts +1 -1
  40. package/cjs/input/index.js +1 -1
  41. package/cjs/input/props.d.ts +8 -2
  42. package/cjs/notice-bar/index.d.ts +1 -1
  43. package/cjs/notice-bar/index.js +1 -1
  44. package/cjs/picker/index.d.ts +1 -1
  45. package/cjs/picker/index.js +1 -1
  46. package/cjs/picker-view/index.d.ts +1 -1
  47. package/cjs/picker-view/index.js +1 -1
  48. package/cjs/popover/index.d.ts +1 -1
  49. package/cjs/popover/index.js +1 -1
  50. package/cjs/popup-swiper/index.js +3 -2
  51. package/cjs/radio/index.d.ts +1 -1
  52. package/cjs/radio/index.js +1 -1
  53. package/cjs/rate/index.d.ts +1 -1
  54. package/cjs/rate/index.js +1 -1
  55. package/cjs/search-bar/association.d.ts +3 -0
  56. package/cjs/search-bar/association.js +92 -0
  57. package/cjs/search-bar/cancel-button.d.ts +10 -0
  58. package/cjs/search-bar/cancel-button.js +41 -0
  59. package/cjs/search-bar/demo/style/css/mobile.css +5 -0
  60. package/cjs/search-bar/demo/style/mobile.less +9 -0
  61. package/cjs/search-bar/highlight.d.ts +12 -0
  62. package/cjs/search-bar/highlight.js +77 -0
  63. package/cjs/search-bar/index.d.ts +13 -0
  64. package/cjs/search-bar/index.js +231 -0
  65. package/cjs/search-bar/style/css/index.css +148 -0
  66. package/cjs/search-bar/style/css/index.d.ts +2 -0
  67. package/cjs/search-bar/style/css/index.js +5 -0
  68. package/cjs/search-bar/style/index.d.ts +2 -0
  69. package/cjs/search-bar/style/index.js +5 -0
  70. package/cjs/search-bar/style/index.less +111 -0
  71. package/cjs/search-bar/type.d.ts +163 -0
  72. package/cjs/search-bar/type.js +3 -0
  73. package/cjs/slider/index.d.ts +1 -1
  74. package/cjs/slider/index.js +1 -1
  75. package/cjs/steps/index.d.ts +1 -1
  76. package/cjs/steps/index.js +1 -1
  77. package/cjs/sticky/index.d.ts +1 -1
  78. package/cjs/style.d.ts +2 -0
  79. package/cjs/style.js +4 -0
  80. package/cjs/swipe-action/demo/style/css/mobile.css +5 -0
  81. package/cjs/swipe-action/demo/style/mobile.less +9 -0
  82. package/cjs/swipe-action/index.d.ts +12 -0
  83. package/cjs/swipe-action/index.js +337 -0
  84. package/cjs/swipe-action/item.d.ts +11 -0
  85. package/cjs/swipe-action/item.js +52 -0
  86. package/cjs/swipe-action/style/css/index.css +88 -0
  87. package/cjs/swipe-action/style/css/index.d.ts +2 -0
  88. package/cjs/swipe-action/style/css/index.js +5 -0
  89. package/cjs/swipe-action/style/index.d.ts +2 -0
  90. package/cjs/swipe-action/style/index.js +5 -0
  91. package/cjs/swipe-action/style/index.less +89 -0
  92. package/cjs/swipe-action/type.d.ts +123 -0
  93. package/cjs/swipe-action/type.js +3 -0
  94. package/cjs/switch/index.d.ts +1 -1
  95. package/cjs/switch/index.js +1 -1
  96. package/cjs/tabs/tab-pane.js +5 -1
  97. package/cjs/tag/index.d.ts +1 -1
  98. package/cjs/tag/index.js +1 -1
  99. package/cjs/textarea/index.d.ts +1 -1
  100. package/cjs/textarea/index.js +1 -1
  101. package/dist/index.js +7394 -6570
  102. package/dist/index.min.js +6 -6
  103. package/dist/style.css +267 -64
  104. package/dist/style.min.css +1 -1
  105. package/esm/avatar/index.d.ts +1 -1
  106. package/esm/avatar/index.js +1 -1
  107. package/esm/badge/index.d.ts +1 -1
  108. package/esm/badge/index.js +1 -1
  109. package/esm/button/style/css/index.css +64 -64
  110. package/esm/button/style/index.less +7 -5
  111. package/esm/carousel/index.d.ts +1 -1
  112. package/esm/carousel/index.js +1 -1
  113. package/esm/cell/index.d.ts +1 -1
  114. package/esm/cell/index.js +1 -1
  115. package/esm/checkbox/index.d.ts +1 -1
  116. package/esm/checkbox/index.js +1 -1
  117. package/esm/collapse/index.d.ts +1 -1
  118. package/esm/collapse/index.js +1 -1
  119. package/esm/count-down/index.d.ts +1 -1
  120. package/esm/count-down/index.js +1 -1
  121. package/esm/date-picker/index.d.ts +1 -1
  122. package/esm/date-picker/index.js +1 -1
  123. package/esm/dropdown/dropdown.js +36 -20
  124. package/esm/dropdown/style/css/index.css +3 -0
  125. package/esm/dropdown/style/index.less +2 -0
  126. package/esm/ellipsis/components/js-ellipsis.js +2 -3
  127. package/esm/ellipsis/index.d.ts +1 -1
  128. package/esm/ellipsis/index.js +3 -4
  129. package/esm/image/index.d.ts +1 -1
  130. package/esm/image/index.js +1 -1
  131. package/esm/image-picker/index.d.ts +4 -175
  132. package/esm/image-picker/index.js +30 -17
  133. package/esm/image-picker/type.d.ts +174 -0
  134. package/esm/image-picker/type.js +1 -0
  135. package/esm/image-preview/index.d.ts +1 -1
  136. package/esm/image-preview/index.js +1 -1
  137. package/esm/index.d.ts +2 -0
  138. package/esm/index.js +2 -0
  139. package/esm/input/hooks.js +49 -8
  140. package/esm/input/index.d.ts +1 -1
  141. package/esm/input/index.js +1 -1
  142. package/esm/input/props.d.ts +8 -2
  143. package/esm/notice-bar/index.d.ts +1 -1
  144. package/esm/notice-bar/index.js +1 -1
  145. package/esm/picker/index.d.ts +1 -1
  146. package/esm/picker/index.js +1 -1
  147. package/esm/picker-view/index.d.ts +1 -1
  148. package/esm/picker-view/index.js +1 -1
  149. package/esm/popover/index.d.ts +1 -1
  150. package/esm/popover/index.js +1 -1
  151. package/esm/popup-swiper/index.js +3 -2
  152. package/esm/radio/index.d.ts +1 -1
  153. package/esm/radio/index.js +1 -1
  154. package/esm/rate/index.d.ts +1 -1
  155. package/esm/rate/index.js +1 -1
  156. package/esm/search-bar/association.d.ts +3 -0
  157. package/esm/search-bar/association.js +82 -0
  158. package/esm/search-bar/cancel-button.d.ts +10 -0
  159. package/esm/search-bar/cancel-button.js +30 -0
  160. package/esm/search-bar/demo/style/css/mobile.css +5 -0
  161. package/esm/search-bar/demo/style/mobile.less +9 -0
  162. package/esm/search-bar/highlight.d.ts +12 -0
  163. package/esm/search-bar/highlight.js +66 -0
  164. package/esm/search-bar/index.d.ts +13 -0
  165. package/esm/search-bar/index.js +212 -0
  166. package/esm/search-bar/style/css/index.css +148 -0
  167. package/esm/search-bar/style/css/index.d.ts +2 -0
  168. package/esm/search-bar/style/css/index.js +2 -0
  169. package/esm/search-bar/style/index.d.ts +2 -0
  170. package/esm/search-bar/style/index.js +2 -0
  171. package/esm/search-bar/style/index.less +111 -0
  172. package/esm/search-bar/type.d.ts +163 -0
  173. package/esm/search-bar/type.js +1 -0
  174. package/esm/slider/index.d.ts +1 -1
  175. package/esm/slider/index.js +1 -1
  176. package/esm/steps/index.d.ts +1 -1
  177. package/esm/steps/index.js +1 -1
  178. package/esm/sticky/index.d.ts +1 -1
  179. package/esm/style.d.ts +2 -0
  180. package/esm/style.js +2 -0
  181. package/esm/swipe-action/demo/style/css/mobile.css +5 -0
  182. package/esm/swipe-action/demo/style/mobile.less +9 -0
  183. package/esm/swipe-action/index.d.ts +12 -0
  184. package/esm/swipe-action/index.js +320 -0
  185. package/esm/swipe-action/item.d.ts +11 -0
  186. package/esm/swipe-action/item.js +42 -0
  187. package/esm/swipe-action/style/css/index.css +88 -0
  188. package/esm/swipe-action/style/css/index.d.ts +2 -0
  189. package/esm/swipe-action/style/css/index.js +2 -0
  190. package/esm/swipe-action/style/index.d.ts +2 -0
  191. package/esm/swipe-action/style/index.js +2 -0
  192. package/esm/swipe-action/style/index.less +89 -0
  193. package/esm/swipe-action/type.d.ts +123 -0
  194. package/esm/swipe-action/type.js +1 -0
  195. package/esm/switch/index.d.ts +1 -1
  196. package/esm/switch/index.js +1 -1
  197. package/esm/tabs/tab-pane.js +5 -1
  198. package/esm/tag/index.d.ts +1 -1
  199. package/esm/tag/index.js +1 -1
  200. package/esm/textarea/index.d.ts +1 -1
  201. package/esm/textarea/index.js +1 -1
  202. package/package.json +3 -3
  203. package/tokens/app/arcodesign/default/css-variables.less +34 -0
  204. package/tokens/app/arcodesign/default/index.d.ts +34 -0
  205. package/tokens/app/arcodesign/default/index.js +34 -0
  206. package/tokens/app/arcodesign/default/index.json +398 -0
  207. package/tokens/app/arcodesign/default/index.less +34 -0
  208. package/umd/avatar/index.d.ts +1 -1
  209. package/umd/avatar/index.js +1 -1
  210. package/umd/badge/index.d.ts +1 -1
  211. package/umd/badge/index.js +1 -1
  212. package/umd/button/style/css/index.css +64 -64
  213. package/umd/button/style/index.less +7 -5
  214. package/umd/carousel/index.d.ts +1 -1
  215. package/umd/carousel/index.js +1 -1
  216. package/umd/cell/index.d.ts +1 -1
  217. package/umd/cell/index.js +1 -1
  218. package/umd/checkbox/index.d.ts +1 -1
  219. package/umd/checkbox/index.js +1 -1
  220. package/umd/collapse/index.d.ts +1 -1
  221. package/umd/collapse/index.js +1 -1
  222. package/umd/count-down/index.d.ts +1 -1
  223. package/umd/count-down/index.js +1 -1
  224. package/umd/date-picker/index.d.ts +1 -1
  225. package/umd/date-picker/index.js +1 -1
  226. package/umd/dropdown/dropdown.js +36 -20
  227. package/umd/dropdown/style/css/index.css +3 -0
  228. package/umd/dropdown/style/index.less +2 -0
  229. package/umd/ellipsis/components/js-ellipsis.js +2 -3
  230. package/umd/ellipsis/index.d.ts +1 -1
  231. package/umd/ellipsis/index.js +3 -4
  232. package/umd/image/index.d.ts +1 -1
  233. package/umd/image/index.js +1 -1
  234. package/umd/image-picker/index.d.ts +4 -175
  235. package/umd/image-picker/index.js +40 -22
  236. package/umd/image-picker/type.d.ts +174 -0
  237. package/umd/image-picker/type.js +17 -0
  238. package/umd/image-preview/index.d.ts +1 -1
  239. package/umd/image-preview/index.js +1 -1
  240. package/umd/index.d.ts +2 -0
  241. package/umd/index.js +9 -5
  242. package/umd/input/hooks.js +48 -7
  243. package/umd/input/index.d.ts +1 -1
  244. package/umd/input/index.js +1 -1
  245. package/umd/input/props.d.ts +8 -2
  246. package/umd/notice-bar/index.d.ts +1 -1
  247. package/umd/notice-bar/index.js +1 -1
  248. package/umd/picker/index.d.ts +1 -1
  249. package/umd/picker/index.js +1 -1
  250. package/umd/picker-view/index.d.ts +1 -1
  251. package/umd/picker-view/index.js +1 -1
  252. package/umd/popover/index.d.ts +1 -1
  253. package/umd/popover/index.js +1 -1
  254. package/umd/popup-swiper/index.js +3 -2
  255. package/umd/radio/index.d.ts +1 -1
  256. package/umd/radio/index.js +1 -1
  257. package/umd/rate/index.d.ts +1 -1
  258. package/umd/rate/index.js +1 -1
  259. package/umd/search-bar/association.d.ts +3 -0
  260. package/umd/search-bar/association.js +101 -0
  261. package/umd/search-bar/cancel-button.d.ts +10 -0
  262. package/umd/search-bar/cancel-button.js +52 -0
  263. package/umd/search-bar/demo/style/css/mobile.css +5 -0
  264. package/umd/search-bar/demo/style/mobile.less +9 -0
  265. package/umd/search-bar/highlight.d.ts +12 -0
  266. package/umd/search-bar/highlight.js +87 -0
  267. package/umd/search-bar/index.d.ts +13 -0
  268. package/umd/search-bar/index.js +229 -0
  269. package/umd/search-bar/style/css/index.css +148 -0
  270. package/umd/search-bar/style/css/index.d.ts +2 -0
  271. package/umd/search-bar/style/css/index.js +15 -0
  272. package/umd/search-bar/style/index.d.ts +2 -0
  273. package/umd/search-bar/style/index.js +15 -0
  274. package/umd/search-bar/style/index.less +111 -0
  275. package/umd/search-bar/type.d.ts +163 -0
  276. package/umd/search-bar/type.js +17 -0
  277. package/umd/slider/index.d.ts +1 -1
  278. package/umd/slider/index.js +1 -1
  279. package/umd/steps/index.d.ts +1 -1
  280. package/umd/steps/index.js +1 -1
  281. package/umd/sticky/index.d.ts +1 -1
  282. package/umd/style.d.ts +2 -0
  283. package/umd/style.js +4 -4
  284. package/umd/swipe-action/demo/style/css/mobile.css +5 -0
  285. package/umd/swipe-action/demo/style/mobile.less +9 -0
  286. package/umd/swipe-action/index.d.ts +12 -0
  287. package/umd/swipe-action/index.js +342 -0
  288. package/umd/swipe-action/item.d.ts +11 -0
  289. package/umd/swipe-action/item.js +62 -0
  290. package/umd/swipe-action/style/css/index.css +88 -0
  291. package/umd/swipe-action/style/css/index.d.ts +2 -0
  292. package/umd/swipe-action/style/css/index.js +15 -0
  293. package/umd/swipe-action/style/index.d.ts +2 -0
  294. package/umd/swipe-action/style/index.js +15 -0
  295. package/umd/swipe-action/style/index.less +89 -0
  296. package/umd/swipe-action/type.d.ts +123 -0
  297. package/umd/swipe-action/type.js +17 -0
  298. package/umd/switch/index.d.ts +1 -1
  299. package/umd/switch/index.js +1 -1
  300. package/umd/tabs/tab-pane.js +5 -1
  301. package/umd/tag/index.d.ts +1 -1
  302. package/umd/tag/index.js +1 -1
  303. package/umd/textarea/index.d.ts +1 -1
  304. package/umd/textarea/index.js +1 -1
@@ -173,7 +173,7 @@ var Slider = /*#__PURE__*/(0, _react.forwardRef)(function (_, ref) {
173
173
  * @en Slide input component, displays the current value and optional range.
174
174
  * @name 滑动输入条
175
175
  * @name_en Slider
176
- * @type 数据输入
176
+ * @type 数据录入
177
177
  * @type_en Data Entry
178
178
  */
179
179
 
@@ -13,7 +13,7 @@ declare const _default: React.ForwardRefExoticComponent<StepsProps & React.RefAt
13
13
  * @en Display the progress of a task, or guide users to complete a complex task.
14
14
  * @name 步骤条
15
15
  * @name_en Steps
16
- * @type 数据展示
16
+ * @type 信息展示
17
17
  * @type_en Data Display
18
18
  */
19
19
  export default _default;
@@ -114,7 +114,7 @@ var Steps = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
114
114
  * @en Display the progress of a task, or guide users to complete a complex task.
115
115
  * @name 步骤条
116
116
  * @name_en Steps
117
- * @type 数据展示
117
+ * @type 信息展示
118
118
  * @type_en Data Display
119
119
  */
120
120
 
@@ -118,7 +118,7 @@ export interface StickyProps {
118
118
  */
119
119
  getContainer?: () => HTMLElement | string;
120
120
  /**
121
- * 指定滚动容器,如果指定该值则relative属性始终认定为false;如果返回string则使用querySelector选取容器
121
+ * 指定滚动容器;如果返回string则使用querySelector选取容器
122
122
  * @en Specifies the scrolling container. If this value is specified, the relative property is always regarded as false; if a string is input, use querySelector to select the container
123
123
  * @default () => window
124
124
  */
package/cjs/style.d.ts CHANGED
@@ -42,8 +42,10 @@ import './pull-refresh/style';
42
42
  import './radio/style';
43
43
  import './rate/style';
44
44
  import './slider/style';
45
+ import './search-bar/style';
45
46
  import './steps/style';
46
47
  import './sticky/style';
48
+ import './swipe-action/style';
47
49
  import './swipe-load/style';
48
50
  import './tab-bar/style';
49
51
  import './tag/style';
package/cjs/style.js CHANGED
@@ -88,10 +88,14 @@ require("./rate/style");
88
88
 
89
89
  require("./slider/style");
90
90
 
91
+ require("./search-bar/style");
92
+
91
93
  require("./steps/style");
92
94
 
93
95
  require("./sticky/style");
94
96
 
97
+ require("./swipe-action/style");
98
+
95
99
  require("./swipe-load/style");
96
100
 
97
101
  require("./tab-bar/style");
@@ -0,0 +1,5 @@
1
+ #demo-swipe-action .arcodesign-mobile-demo-content {
2
+ padding: 0;
3
+ background: transparent;
4
+ overflow: hidden;
5
+ }
@@ -0,0 +1,9 @@
1
+ @import '../../../../style/mixin.less';
2
+
3
+ #demo-swipe-action {
4
+ .arcodesign-mobile-demo-content {
5
+ padding: 0;
6
+ background: transparent;
7
+ overflow: hidden;
8
+ }
9
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { SwipeActionProps, SwipeActionRef } from './type';
3
+ /**
4
+ * 滑动操作组件,左右滑动拉出菜单栏
5
+ * @en SwipeAction component, slide left and right to pull out the menu bar
6
+ * @type 反馈
7
+ * @type_en FeedBack
8
+ * @name 滑动操作
9
+ * @name_en SwipeAction
10
+ */
11
+ declare const SwipeAction: React.ForwardRefExoticComponent<SwipeActionProps & React.RefAttributes<SwipeActionRef>>;
12
+ export default SwipeAction;
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _mobileUtils = require("@arco-design/mobile-utils");
13
+
14
+ var _contextProvider = require("../context-provider");
15
+
16
+ var _item = _interopRequireDefault(require("./item"));
17
+
18
+ var _helpers = require("../_helpers");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ 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; }
23
+
24
+ /**
25
+ * 滑动操作组件,左右滑动拉出菜单栏
26
+ * @en SwipeAction component, slide left and right to pull out the menu bar
27
+ * @type 反馈
28
+ * @type_en FeedBack
29
+ * @name 滑动操作
30
+ * @name_en SwipeAction
31
+ */
32
+ var SwipeAction = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
33
+ var _props$className = props.className,
34
+ className = _props$className === void 0 ? '' : _props$className,
35
+ style = props.style,
36
+ children = props.children,
37
+ leftActions = props.leftActions,
38
+ rightActions = props.rightActions,
39
+ _props$disabled = props.disabled,
40
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
41
+ _props$threshold = props.threshold,
42
+ threshold = _props$threshold === void 0 ? 0.15 : _props$threshold,
43
+ closeOnTouchOutside = props.closeOnTouchOutside,
44
+ _props$transitionDura = props.transitionDuration,
45
+ transitionDuration = _props$transitionDura === void 0 ? 300 : _props$transitionDura,
46
+ _props$dampRate = props.dampRate,
47
+ dampRate = _props$dampRate === void 0 ? 15 : _props$dampRate,
48
+ _props$openStyleType = props.openStyleType,
49
+ openStyleType = _props$openStyleType === void 0 ? 'layer' : _props$openStyleType,
50
+ onClose = props.onClose,
51
+ onOpen = props.onOpen;
52
+ var domRef = (0, _react.useRef)(null);
53
+ var leftRef = (0, _react.useRef)(null);
54
+ var rightRef = (0, _react.useRef)(null);
55
+ var isOpen = (0, _react.useRef)(false);
56
+ var leftMenuWidthRef = (0, _react.useRef)(0);
57
+
58
+ var _useState = (0, _react.useState)([]),
59
+ leftMenuWidthArr = _useState[0],
60
+ setLeftMenuWidthArr = _useState[1];
61
+
62
+ var rightMenuWidthRef = (0, _react.useRef)(0);
63
+
64
+ var _useState2 = (0, _react.useState)([]),
65
+ rightMenuWidthArr = _useState2[0],
66
+ setRightMenuWidthArr = _useState2[1];
67
+
68
+ var dampRateRef = (0, _helpers.useLatestRef)(dampRate);
69
+ var forbidClick = (0, _react.useRef)(false);
70
+
71
+ var _useRefState = (0, _helpers.useRefState)(false),
72
+ moving = _useRefState[0],
73
+ movingRef = _useRefState[1],
74
+ setMoving = _useRefState[2];
75
+
76
+ var _useRefState2 = (0, _helpers.useRefState)(0),
77
+ offset = _useRefState2[0],
78
+ offsetRef = _useRefState2[1],
79
+ setOffset = _useRefState2[2];
80
+
81
+ var _useContext = (0, _react.useContext)(_contextProvider.GlobalContext),
82
+ prefixCls = _useContext.prefixCls;
83
+
84
+ var startRef = (0, _react.useRef)(0);
85
+ var startX = (0, _react.useRef)(0);
86
+ var slideX = (0, _react.useRef)(0);
87
+ var isLayer = openStyleType === 'layer';
88
+ var transitionStyle = (0, _react.useMemo)(function () {
89
+ return (0, _helpers.getStyleWithVendor)({
90
+ transitionDuration: moving ? '0ms' : transitionDuration + "ms"
91
+ });
92
+ }, [moving, transitionDuration]);
93
+
94
+ function resetMoveData() {
95
+ startX.current = 0;
96
+ slideX.current = 0;
97
+ }
98
+
99
+ function getMenuCurrentWidth(a, min, max) {
100
+ var buffer = Math.abs(a) / dampRateRef.current;
101
+ return Math.min(Math.max(a, min - buffer), max + buffer);
102
+ }
103
+
104
+ function touchstart(e) {
105
+ startRef.current = offsetRef.current;
106
+ resetMoveData();
107
+ startX.current = e.touches[0].pageX;
108
+ }
109
+
110
+ function touchmove(e) {
111
+ e.preventDefault();
112
+ slideX.current = e.touches[0].pageX - startX.current;
113
+ forbidClick.current = true;
114
+ setMoving(true);
115
+ setOffset(getMenuCurrentWidth(slideX.current + startRef.current, -rightMenuWidthRef.current, leftMenuWidthRef.current));
116
+ }
117
+
118
+ function touchend() {
119
+ if (movingRef.current) {
120
+ var currentMenu = offsetRef.current > 0 ? 'left' : 'right';
121
+ changeMenu(currentMenu);
122
+ setMoving(false);
123
+ (0, _mobileUtils.nextTick)(function () {
124
+ forbidClick.current = false;
125
+ });
126
+ }
127
+ }
128
+
129
+ function changeMenu(dir) {
130
+ var cookedThreshold = isOpen.current ? 1 - threshold : threshold;
131
+ var width = dir === 'left' ? leftMenuWidthRef.current : rightMenuWidthRef.current;
132
+
133
+ if (width && Math.abs(offsetRef.current) > width * cookedThreshold) {
134
+ open(dir);
135
+ } else {
136
+ close(dir);
137
+ }
138
+ }
139
+
140
+ function getWidthByRef(widthRef) {
141
+ if (!widthRef.current) {
142
+ return {
143
+ totalWidth: 0,
144
+ widthArr: []
145
+ };
146
+ }
147
+
148
+ var totalWidth = 0;
149
+ var widthArr = [];
150
+ var allEle = widthRef.current.getElementsByClassName(prefixCls + "-swipe-action-menu-action-info-container");
151
+ Array.prototype.forEach.call(allEle, function (ele) {
152
+ var _ele$getBoundingClien;
153
+
154
+ var w = (_ele$getBoundingClien = ele.getBoundingClientRect().width) != null ? _ele$getBoundingClien : 0;
155
+ totalWidth += w;
156
+ widthArr.push(w);
157
+ });
158
+ return {
159
+ totalWidth: totalWidth,
160
+ widthArr: widthArr
161
+ };
162
+ }
163
+
164
+ (0, _react.useEffect)(function () {
165
+ var container = domRef.current;
166
+
167
+ if (!disabled && container) {
168
+ container.addEventListener('touchstart', touchstart);
169
+ container.addEventListener('touchmove', touchmove);
170
+ container.addEventListener('touchend', touchend);
171
+ }
172
+
173
+ return function () {
174
+ if (!disabled && container) {
175
+ container.removeEventListener('touchstart', touchstart);
176
+ container.removeEventListener('touchmove', touchmove);
177
+ container.removeEventListener('touchend', touchend);
178
+ }
179
+ };
180
+ }, [disabled]); // 获取左右菜单的宽度
181
+ // @en Get the width of the left and right menu
182
+
183
+ (0, _react.useEffect)(function () {
184
+ var _getWidthByRef = getWidthByRef(leftRef),
185
+ leftTotalWidth = _getWidthByRef.totalWidth,
186
+ leftWidthArr = _getWidthByRef.widthArr;
187
+
188
+ leftMenuWidthRef.current = leftTotalWidth;
189
+ setLeftMenuWidthArr(leftWidthArr);
190
+
191
+ var _getWidthByRef2 = getWidthByRef(rightRef),
192
+ rightTotalWidth = _getWidthByRef2.totalWidth,
193
+ rightWidthArr = _getWidthByRef2.widthArr;
194
+
195
+ rightMenuWidthRef.current = rightTotalWidth;
196
+ setRightMenuWidthArr(rightWidthArr);
197
+ }, [leftActions, rightActions]); // 点击外部区域事件
198
+ // @en Event when clicking outside of the element
199
+
200
+ (0, _react.useEffect)(function () {
201
+ var handle = function handle(e) {
202
+ var _domRef$current;
203
+
204
+ if (!((_domRef$current = domRef.current) != null && _domRef$current.contains(e.target)) && isOpen.current) {
205
+ close();
206
+ }
207
+ };
208
+
209
+ closeOnTouchOutside && document.addEventListener('touchstart', handle);
210
+ return function () {
211
+ closeOnTouchOutside && document.removeEventListener('touchstart', handle);
212
+ };
213
+ }, [closeOnTouchOutside]);
214
+ (0, _react.useImperativeHandle)(ref, function () {
215
+ return {
216
+ dom: domRef.current,
217
+ close: close,
218
+ open: open
219
+ };
220
+ });
221
+
222
+ function close(dir) {
223
+ setOffset(0);
224
+
225
+ if (isOpen.current) {
226
+ isOpen.current = false;
227
+
228
+ if (!dir && offsetRef.current !== 0) {
229
+ var noDir = offsetRef.current > 0 ? 'left' : 'right';
230
+ handleClose(noDir);
231
+ return;
232
+ }
233
+
234
+ handleClose(dir);
235
+ }
236
+ }
237
+
238
+ function open(dir) {
239
+ if (dir === void 0) {
240
+ dir = 'right';
241
+ }
242
+
243
+ if (!isOpen.current) {
244
+ isOpen.current = true;
245
+ handleOpen(dir);
246
+ }
247
+
248
+ setOffset(dir === 'left' ? leftMenuWidthRef.current : -rightMenuWidthRef.current);
249
+ }
250
+
251
+ function handleOpen(dir) {
252
+ setTimeout(function () {
253
+ onOpen == null ? void 0 : onOpen(dir);
254
+ }, transitionDuration);
255
+ }
256
+
257
+ function handleClose(dir) {
258
+ setTimeout(function () {
259
+ onClose == null ? void 0 : onClose(dir);
260
+ }, transitionDuration);
261
+ }
262
+
263
+ function actionClick(e) {
264
+ var _leftRef$current, _rightRef$current;
265
+
266
+ if (isOpen.current && !forbidClick.current && !((_leftRef$current = leftRef.current) != null && _leftRef$current.contains(e.target)) && !((_rightRef$current = rightRef.current) != null && _rightRef$current.contains(e.target))) {
267
+ close();
268
+ }
269
+ }
270
+
271
+ function getActionRightByIndex(index) {
272
+ var preWidth = leftMenuWidthArr.slice(index + 1).reduce(function (acc, cur) {
273
+ return acc + cur;
274
+ }, 0);
275
+ return (preWidth / leftMenuWidthRef.current || 0) * 100 + "%";
276
+ }
277
+
278
+ function getActionLeftByIndex(index) {
279
+ var preWidth = rightMenuWidthArr.slice(0, index).reduce(function (acc, cur) {
280
+ return acc + cur;
281
+ }, 0);
282
+ return (preWidth / rightMenuWidthRef.current || 0) * 100 + "%";
283
+ }
284
+
285
+ return /*#__PURE__*/_react.default.createElement("div", {
286
+ className: (0, _mobileUtils.cls)(prefixCls + "-swipe-action", className, offset === 0 ? 'action-close' : 'action-open'),
287
+ style: (0, _helpers.getStyleWithVendor)((0, _extends2.default)({}, style || {}, transitionStyle, {
288
+ transform: "translateX(" + offset + "px)"
289
+ })),
290
+ ref: domRef,
291
+ onClick: actionClick
292
+ }, /*#__PURE__*/_react.default.createElement("div", {
293
+ className: (0, _mobileUtils.cls)(prefixCls + "-swipe-action-menu-left", prefixCls + "-swipe-action-menu", offset > 0 ? 'action-open' : 'action-close'),
294
+ ref: leftRef,
295
+ style: isLayer && offset >= 0 ? (0, _extends2.default)({
296
+ width: offset
297
+ }, transitionStyle) : {}
298
+ }, leftActions == null ? void 0 : leftActions.map(function (action, index) {
299
+ return /*#__PURE__*/_react.default.createElement(_item.default, {
300
+ action: (0, _extends2.default)({}, action || {}, {
301
+ style: (0, _extends2.default)({}, isLayer ? {
302
+ right: getActionRightByIndex(index)
303
+ } : {}, action.style || {}),
304
+ className: (0, _mobileUtils.cls)(action.className, "open-style-" + openStyleType)
305
+ }),
306
+ prefixCls: prefixCls + "-swipe-action-menu-action",
307
+ index: leftActions.length - index,
308
+ type: "left",
309
+ close: close,
310
+ key: index
311
+ });
312
+ })), /*#__PURE__*/_react.default.createElement("div", {
313
+ className: prefixCls + "-swipe-action-content"
314
+ }, children), /*#__PURE__*/_react.default.createElement("div", {
315
+ className: (0, _mobileUtils.cls)(prefixCls + "-swipe-action-menu-right", prefixCls + "-swipe-action-menu", offset < 0 ? 'action-open' : 'action-close'),
316
+ ref: rightRef,
317
+ style: isLayer && offset <= 0 ? (0, _extends2.default)({
318
+ width: -1 * offset
319
+ }, transitionStyle) : {}
320
+ }, rightActions == null ? void 0 : rightActions.map(function (action, index) {
321
+ return /*#__PURE__*/_react.default.createElement(_item.default, {
322
+ action: (0, _extends2.default)({}, action || {}, {
323
+ style: (0, _extends2.default)({}, isLayer ? {
324
+ left: getActionLeftByIndex(index)
325
+ } : {}, action.style || {}),
326
+ className: (0, _mobileUtils.cls)(action.className, "open-style-" + openStyleType)
327
+ }),
328
+ prefixCls: prefixCls + "-swipe-action-menu-action",
329
+ index: index + 1,
330
+ type: "right",
331
+ close: close,
332
+ key: index
333
+ });
334
+ })));
335
+ });
336
+ var _default = SwipeAction;
337
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { Action } from './type';
3
+ interface IProps {
4
+ action: Action;
5
+ prefixCls: string;
6
+ index: number;
7
+ type: 'left' | 'right';
8
+ close: () => void;
9
+ }
10
+ export default function renderAction({ action, prefixCls, index, type, close }: IProps): JSX.Element;
11
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = renderAction;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _mobileUtils = require("@arco-design/mobile-utils");
13
+
14
+ function renderAction(_ref) {
15
+ var action = _ref.action,
16
+ prefixCls = _ref.prefixCls,
17
+ index = _ref.index,
18
+ type = _ref.type,
19
+ close = _ref.close;
20
+ var text = action.text,
21
+ actionStyle = action.style,
22
+ className = action.className,
23
+ onClick = action.onClick,
24
+ icon = action.icon,
25
+ children = action.children;
26
+
27
+ function click() {
28
+ var result = (onClick == null ? void 0 : onClick()) || null;
29
+
30
+ if (!result || typeof result === 'boolean') {
31
+ !result && close();
32
+ } else if (result && result.then) {
33
+ result.then(function (res) {
34
+ return !res && close();
35
+ });
36
+ }
37
+ }
38
+
39
+ return /*#__PURE__*/_react.default.createElement("div", {
40
+ className: (0, _mobileUtils.cls)(prefixCls + "-" + type + " " + prefixCls + "-info-container", className),
41
+ style: (0, _extends2.default)({
42
+ zIndex: index
43
+ }, actionStyle),
44
+ onClick: click
45
+ }, children || /*#__PURE__*/_react.default.createElement("div", {
46
+ className: prefixCls + "-info"
47
+ }, icon ? /*#__PURE__*/_react.default.createElement("div", {
48
+ className: prefixCls + "-info-icon"
49
+ }, icon) : null, text ? /*#__PURE__*/_react.default.createElement("div", {
50
+ className: prefixCls + "-info-text"
51
+ }, text) : null));
52
+ }
@@ -0,0 +1,88 @@
1
+ .arco-swipe-action {
2
+ position: relative;
3
+ -webkit-transition: -webkit-transform 0s;
4
+ transition: -webkit-transform 0s;
5
+ transition: transform 0s;
6
+ transition: transform 0s, -webkit-transform 0s;
7
+ font-size: 0.32rem ;
8
+ }
9
+ .arco-swipe-action.action-open,
10
+ .arco-swipe-action-menu.action-open {
11
+ -webkit-transition-timing-function: cubic-bezier(0.2, 0.8, 0.32, 1.28) ;
12
+ transition-timing-function: cubic-bezier(0.2, 0.8, 0.32, 1.28) ;
13
+ }
14
+ .arco-swipe-action.action-close,
15
+ .arco-swipe-action-menu.action-close {
16
+ -webkit-transition-timing-function: cubic-bezier(0.34, 0.69, 0.1, 1) ;
17
+ transition-timing-function: cubic-bezier(0.34, 0.69, 0.1, 1) ;
18
+ }
19
+ .arco-swipe-action-content {
20
+ width: 100%;
21
+ }
22
+ .arco-swipe-action-menu {
23
+ display: -webkit-box;
24
+ display: -webkit-flex;
25
+ display: flex;
26
+ position: absolute;
27
+ height: 100%;
28
+ overflow: visible;
29
+ -webkit-flex-wrap: nowrap;
30
+ flex-wrap: nowrap;
31
+ top: 0;
32
+ -webkit-transition: width 0s;
33
+ transition: width 0s;
34
+ }
35
+ .arco-swipe-action-menu-left {
36
+ right: 100%;
37
+ }
38
+ .arco-swipe-action-menu-right {
39
+ left: 100%;
40
+ }
41
+ .arco-swipe-action-menu-action-left::after {
42
+ right: 100%;
43
+ margin-right: -1PX;
44
+ }
45
+ .arco-swipe-action-menu-action-right::after {
46
+ left: 100%;
47
+ margin-left: -1PX;
48
+ }
49
+ .arco-swipe-action-menu-action-info {
50
+ height: 100%;
51
+ padding: 0.32rem ;
52
+ display: -webkit-box;
53
+ display: -webkit-flex;
54
+ display: flex;
55
+ -webkit-box-pack: center;
56
+ -webkit-justify-content: center;
57
+ justify-content: center;
58
+ -webkit-box-align: center;
59
+ -webkit-align-items: center;
60
+ align-items: center;
61
+ }
62
+ .arco-swipe-action-menu-action-info-container {
63
+ position: relative;
64
+ }
65
+ .arco-swipe-action-menu-action-info-container.open-style-layer {
66
+ position: absolute;
67
+ height: 100%;
68
+ }
69
+ .arco-swipe-action-menu-action-info-container::after {
70
+ content: " ";
71
+ position: absolute;
72
+ top: 0;
73
+ height: 100%;
74
+ width: 0.6rem ;
75
+ background: inherit;
76
+ }
77
+ .arco-swipe-action-menu-action-info-text {
78
+ white-space: nowrap;
79
+ font-size: 0.32rem ;
80
+ line-height: 0.44rem ;
81
+ color: #ffffff ;
82
+ }
83
+ .arco-swipe-action-menu-action-info-icon {
84
+ margin-right: 0.08rem ;
85
+ height: 0.4rem ;
86
+ width: 0.4rem ;
87
+ color: #ffffff ;
88
+ }
@@ -0,0 +1,2 @@
1
+ import '../../../../style/css/public.css';
2
+ import './index.css';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ require("../../../../style/css/public.css");
4
+
5
+ require("./index.css");
@@ -0,0 +1,2 @@
1
+ import '../../../style/public.less';
2
+ import './index.less';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ require("../../../style/public.less");
4
+
5
+ require("./index.less");