@nutui/nutui-react-taro 1.5.2-beta.1 → 1.5.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 (231) hide show
  1. package/dist/esm/ActionSheet.js +90 -14
  2. package/dist/esm/Address.js +620 -21
  3. package/dist/esm/Animate.js +53 -7
  4. package/dist/esm/AnimatingNumbers.js +125 -7
  5. package/dist/esm/Audio.js +264 -19
  6. package/dist/esm/Avatar.js +130 -11
  7. package/dist/esm/{AvatarContext-c96afdcc.js → AvatarContext-15733596.js} +1 -3
  8. package/dist/esm/AvatarGroup.js +41 -11
  9. package/dist/esm/BackTop.js +138 -10
  10. package/dist/esm/Badge.js +71 -9
  11. package/dist/esm/Barrage.js +97 -8
  12. package/dist/esm/Button.js +108 -9
  13. package/dist/esm/Calendar.js +128 -20
  14. package/dist/esm/CalendarItem.js +674 -12
  15. package/dist/esm/Card.js +61 -11
  16. package/dist/esm/Cascader.js +671 -16
  17. package/dist/esm/Cell.js +101 -9
  18. package/dist/esm/CellGroup.js +2 -5
  19. package/dist/esm/Checkbox.js +5 -7
  20. package/dist/esm/CheckboxGroup.js +111 -8
  21. package/dist/esm/CircleProgress.js +114 -8
  22. package/dist/esm/Col.js +57 -7
  23. package/dist/esm/Collapse.js +97 -7
  24. package/dist/esm/CollapseItem.js +146 -8
  25. package/dist/esm/ConfigProvider.js +187 -8
  26. package/dist/esm/CountDown.js +247 -9
  27. package/dist/esm/DatePicker.js +309 -25
  28. package/dist/esm/Dialog.js +296 -17
  29. package/dist/esm/Divider.js +34 -7
  30. package/dist/esm/Drag.js +118 -7
  31. package/dist/esm/Elevator.js +234 -8
  32. package/dist/esm/Ellipsis.js +176 -10
  33. package/dist/esm/Empty.js +79 -8
  34. package/dist/esm/FixedNav.js +103 -14
  35. package/dist/esm/Form.js +215 -10
  36. package/dist/esm/FormItem.js +3 -10
  37. package/dist/esm/Grid.js +81 -11
  38. package/dist/esm/GridItem.js +123 -13
  39. package/dist/esm/Icon.js +2 -5
  40. package/dist/esm/Image.js +169 -11
  41. package/dist/esm/ImagePreview.js +225 -19
  42. package/dist/esm/Indicator.js +50 -7
  43. package/dist/esm/Infiniteloading.js +215 -14
  44. package/dist/esm/Input.js +362 -12
  45. package/dist/esm/InputNumber.js +275 -9
  46. package/dist/esm/Layout.js +13 -5
  47. package/dist/esm/Menu.js +153 -10
  48. package/dist/esm/MenuItem.js +175 -15
  49. package/dist/esm/NavBar.js +114 -9
  50. package/dist/esm/NoticeBar.js +568 -10
  51. package/dist/esm/Notify.js +234 -8
  52. package/dist/esm/NumberKeyboard.js +247 -17
  53. package/dist/esm/Overlay.js +2 -6
  54. package/dist/esm/Pagination.js +168 -9
  55. package/dist/esm/Picker.js +494 -22
  56. package/dist/esm/Popover.js +223 -12
  57. package/dist/esm/Popup.js +193 -13
  58. package/dist/esm/Price.js +84 -6
  59. package/dist/esm/Progress.js +122 -9
  60. package/dist/esm/PullToRefresh.js +276 -13
  61. package/dist/esm/Radio.js +4 -8
  62. package/dist/esm/RadioGroup.js +120 -7
  63. package/dist/esm/Range.js +406 -15
  64. package/dist/esm/Rate.js +121 -9
  65. package/dist/esm/Row.js +49 -7
  66. package/dist/esm/SearchBar.js +235 -12
  67. package/dist/esm/ShortPassword.js +191 -17
  68. package/dist/esm/SideNavBar.js +57 -19
  69. package/dist/esm/SideNavBarItem.js +24 -5
  70. package/dist/esm/Signature.js +153 -13
  71. package/dist/esm/Skeleton.js +98 -12
  72. package/dist/esm/Step.js +87 -10
  73. package/dist/esm/Steps.js +38 -8
  74. package/dist/esm/Sticky.js +190 -11
  75. package/dist/esm/SubSideNavBar.js +78 -6
  76. package/dist/esm/Swipe.js +230 -10
  77. package/dist/esm/Swiper.js +490 -9
  78. package/dist/esm/SwiperItem.js +36 -8
  79. package/dist/esm/Switch.js +71 -6
  80. package/dist/esm/TabPane.js +2 -5
  81. package/dist/esm/Tabbar.js +68 -6
  82. package/dist/esm/TabbarItem.js +78 -9
  83. package/dist/esm/Table.js +140 -12
  84. package/dist/esm/Tabs.js +5 -8
  85. package/dist/esm/Tag.js +110 -10
  86. package/dist/esm/TextArea.js +148 -9
  87. package/dist/esm/TimeDetail.js +67 -9
  88. package/dist/esm/TimePannel.js +29 -9
  89. package/dist/esm/TimeSelect.js +171 -19
  90. package/dist/esm/Toast.js +268 -7
  91. package/dist/esm/TrendArrow.js +99 -7
  92. package/dist/esm/Uploader.js +566 -17
  93. package/dist/esm/{UserContext-0aac9a82.js → UserContext-101ad4a4.js} +1 -3
  94. package/dist/esm/{UserContext-e402e1a6.js → UserContext-2629d479.js} +1 -3
  95. package/dist/esm/{UserContext-e8176108.js → UserContext-b33bcf21.js} +1 -3
  96. package/dist/esm/Video.js +90 -7
  97. package/dist/esm/VirtualList.js +313 -9
  98. package/dist/esm/WaterMark.js +111 -11
  99. package/dist/esm/{bem-350c1702.js → bem-3b438e61.js} +6 -3
  100. package/dist/esm/cellgroup-fcc72767.js +34 -0
  101. package/dist/esm/checkbox-44e13cd0.js +137 -0
  102. package/dist/esm/date-c7aad4c0.js +97 -0
  103. package/dist/esm/formitem-8a73a5fb.js +157 -0
  104. package/dist/esm/get-scroll-parent-5f85dee8.js +24 -0
  105. package/dist/esm/{grid.taro.context-c2bbfb4f.js → grid.context-2ee27d95.js} +2 -4
  106. package/dist/esm/icon-4ef1581c.js +70 -0
  107. package/dist/esm/index-030b7245.js +11 -0
  108. package/dist/esm/nutui-react.es.js +94 -119
  109. package/dist/esm/offsetContext-3ab00d40.js +16 -0
  110. package/dist/esm/overlay-de6c79d5.js +83 -0
  111. package/dist/esm/radio-9f141e6b.js +118 -0
  112. package/dist/esm/render-bbebb760.js +79 -0
  113. package/dist/esm/tabpane-01075e6c.js +29 -0
  114. package/dist/esm/tabs-e1b4e4b1.js +181 -0
  115. package/dist/esm/typings-f27b58f4.js +8 -0
  116. package/dist/esm/useClientRect-56bb675b.js +39 -0
  117. package/dist/esm/useTouch-cf73a407.js +99 -0
  118. package/dist/locales/base.js +1 -1
  119. package/dist/locales/en-US.js +1 -1
  120. package/dist/locales/id-ID.js +1 -1
  121. package/dist/locales/zh-CN.js +1 -1
  122. package/dist/locales/zh-TW.js +1 -1
  123. package/dist/locales/zh-UG.js +1 -1
  124. package/dist/nutui.react.mjs +15025 -13192
  125. package/dist/nutui.react.umd.js +15004 -13169
  126. package/dist/style.mjs +1 -1
  127. package/dist/types/index.d.ts +183 -176
  128. package/package.json +1 -1
  129. package/dist/esm/actionsheet.taro-e6a51446.js +0 -53
  130. package/dist/esm/address.taro-3a9b6396.js +0 -461
  131. package/dist/esm/animate.taro-fb7986d6.js +0 -40
  132. package/dist/esm/animatingnumbers.taro-03e5d61d.js +0 -104
  133. package/dist/esm/audio.taro-87ec8bf2.js +0 -161
  134. package/dist/esm/avatar.taro-3676f38f.js +0 -103
  135. package/dist/esm/avatargroup-f3574510.js +0 -34
  136. package/dist/esm/backtop.taro-66394a36.js +0 -48
  137. package/dist/esm/badge.taro-a4e59c11.js +0 -52
  138. package/dist/esm/barrage.taro-0495a1b2.js +0 -94
  139. package/dist/esm/button.taro-9244d065.js +0 -100
  140. package/dist/esm/calendar.taro-670842ea.js +0 -65
  141. package/dist/esm/calendaritem.taro-2a603571.js +0 -787
  142. package/dist/esm/can-use-dom-3eeb5af4.js +0 -6
  143. package/dist/esm/card.taro-e4c76dad.js +0 -33
  144. package/dist/esm/cascader.taro-eb1fb011.js +0 -438
  145. package/dist/esm/cell.taro-a10a74d3.js +0 -64
  146. package/dist/esm/cellgroup.taro-abe501bc.js +0 -25
  147. package/dist/esm/checkbox.taro-6120e3e3.js +0 -171
  148. package/dist/esm/circleprogress.taro-79854448.js +0 -109
  149. package/dist/esm/col.taro-53eed3cc.js +0 -41
  150. package/dist/esm/collapse.taro-1a9e4ba2.js +0 -83
  151. package/dist/esm/collapseitem-4d0bc55d.js +0 -83
  152. package/dist/esm/configprovider-67d19d3a.js +0 -19
  153. package/dist/esm/configprovider.taro-8d71eb49.js +0 -42
  154. package/dist/esm/countdown.taro-5b17c607.js +0 -226
  155. package/dist/esm/datepicker.taro-6e9b4b8f.js +0 -275
  156. package/dist/esm/dialog.taro-a3267d29.js +0 -118
  157. package/dist/esm/divider.taro-26d1d8b4.js +0 -35
  158. package/dist/esm/drag.taro-79bb8744.js +0 -110
  159. package/dist/esm/elevator.taro-6019669e.js +0 -178
  160. package/dist/esm/ellipsis.taro-f15f26da.js +0 -241
  161. package/dist/esm/empty.taro-04ae4389.js +0 -62
  162. package/dist/esm/fixednav.taro-1f05acaf.js +0 -53
  163. package/dist/esm/form.taro-0c8e7a39.js +0 -179
  164. package/dist/esm/formitem.taro-190a3326.js +0 -89
  165. package/dist/esm/get-scroll-parent-b4a07e65.js +0 -25
  166. package/dist/esm/grid.taro-3503b82c.js +0 -61
  167. package/dist/esm/griditem.taro-cdb3f119.js +0 -98
  168. package/dist/esm/icon-296a1bec.js +0 -63
  169. package/dist/esm/icon.taro-296a1bec.js +0 -63
  170. package/dist/esm/image.taro-142cf512.js +0 -64
  171. package/dist/esm/imagepreview.taro-c50bb0a3.js +0 -167
  172. package/dist/esm/index-5bcb0ff8.js +0 -7
  173. package/dist/esm/indicator.taro-cba8b010.js +0 -37
  174. package/dist/esm/infiniteloading.taro-183bccbf.js +0 -144
  175. package/dist/esm/input.taro-97af6c96.js +0 -240
  176. package/dist/esm/inputnumber.taro-91f65d17.js +0 -130
  177. package/dist/esm/layout.taro-9046d093.js +0 -11
  178. package/dist/esm/menu.taro-7e4038a1.js +0 -99
  179. package/dist/esm/menuitem.taro-96cc4f15.js +0 -130
  180. package/dist/esm/navbar.taro-777c4705.js +0 -79
  181. package/dist/esm/noticebar.taro-4a23cdee.js +0 -448
  182. package/dist/esm/notify.taro-e17c6f82.js +0 -75
  183. package/dist/esm/numberkeyboard.taro-1bc24744.js +0 -159
  184. package/dist/esm/offsetContext-c2a746fa.js +0 -5
  185. package/dist/esm/overlay.taro-21e87fb1.js +0 -69
  186. package/dist/esm/pagination.taro-715a173b.js +0 -124
  187. package/dist/esm/picker.taro-9ad1b7c5.js +0 -473
  188. package/dist/esm/popover.taro-ad5e76ea.js +0 -156
  189. package/dist/esm/popup.taro-01676bff.js +0 -137
  190. package/dist/esm/price.taro-776ed16e.js +0 -83
  191. package/dist/esm/progress.taro-f0ce38e9.js +0 -90
  192. package/dist/esm/pulltorefresh.taro-a294f656.js +0 -181
  193. package/dist/esm/radio.taro-a6eff96c.js +0 -168
  194. package/dist/esm/range.taro-d8fc7656.js +0 -332
  195. package/dist/esm/rate.taro-6cdf03bd.js +0 -75
  196. package/dist/esm/row.taro-f64d4a13.js +0 -46
  197. package/dist/esm/searchbar.taro-0c25927b.js +0 -152
  198. package/dist/esm/shortpassword.taro-9ee034f7.js +0 -111
  199. package/dist/esm/sidenavbar.taro-c307b35e.js +0 -35
  200. package/dist/esm/sidenavbaritem.taro-5a7965d0.js +0 -12
  201. package/dist/esm/signature.taro-ec4e713b.js +0 -143
  202. package/dist/esm/skeleton.taro-76faf63f.js +0 -62
  203. package/dist/esm/step.taro-b7903e8c.js +0 -59
  204. package/dist/esm/steps.taro-c82d2252.js +0 -30
  205. package/dist/esm/sticky.taro-218bda37.js +0 -138
  206. package/dist/esm/subsidenavbar.taro-69cb9752.js +0 -63
  207. package/dist/esm/supports-passive-c85ef996.js +0 -18
  208. package/dist/esm/swipe.taro-ea35f07f.js +0 -177
  209. package/dist/esm/swiper.taro-7a94e211.js +0 -451
  210. package/dist/esm/swiperitem-c9e3d0d5.js +0 -29
  211. package/dist/esm/switch.taro-34ca8228.js +0 -50
  212. package/dist/esm/tabbar.taro-9acfc2fa.js +0 -59
  213. package/dist/esm/tabbaritem.taro-bf517487.js +0 -58
  214. package/dist/esm/table.taro-91fc0c01.js +0 -93
  215. package/dist/esm/tabpane.taro-4ca340ef.js +0 -23
  216. package/dist/esm/tabs.taro-6a7524a4.js +0 -140
  217. package/dist/esm/tag.taro-23ba0834.js +0 -92
  218. package/dist/esm/textarea.taro-442e7350.js +0 -94
  219. package/dist/esm/timedetail.taro-5b2f2269.js +0 -44
  220. package/dist/esm/timepannel.taro-d6e40180.js +0 -22
  221. package/dist/esm/timeselect.taro-a07036f4.js +0 -133
  222. package/dist/esm/toast.taro-d6c14811.js +0 -109
  223. package/dist/esm/trendarrow.taro-b8c5ccd9.js +0 -73
  224. package/dist/esm/typings-b9828dba.js +0 -9
  225. package/dist/esm/uploader.taro-587e6bf3.js +0 -492
  226. package/dist/esm/useClientRect-1f8ed1fe.js +0 -18
  227. package/dist/esm/useTouch-db24bb5c.js +0 -69
  228. package/dist/esm/video-f1be8a91.js +0 -67
  229. package/dist/esm/virtuallist.taro-f0b0270d.js +0 -214
  230. package/dist/esm/watermark.taro-9ce2ae37.js +0 -114
  231. package/dist/esm/zh-CN-c779e6c1.js +0 -131
@@ -1,7 +1,79 @@
1
- import { S as SubSideNavBar } from './subsidenavbar.taro-69cb9752.js';
2
- import 'react';
3
- import './offsetContext-c2a746fa.js';
4
-
5
-
6
-
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["title", "ikey", "children", "onClick", "open"];
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+ import React__default, { useContext, useRef, useCallback, useEffect } from 'react';
7
+ import { O as OffsetContext, h as handleClick } from './offsetContext-3ab00d40.js';
8
+ var defaultProps = {
9
+ open: true
10
+ };
11
+ var SubSideNavBar = function SubSideNavBar(props) {
12
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
13
+ title = _defaultProps$props.title,
14
+ ikey = _defaultProps$props.ikey,
15
+ children = _defaultProps$props.children,
16
+ onClick = _defaultProps$props.onClick,
17
+ open = _defaultProps$props.open,
18
+ rest = _objectWithoutProperties(_defaultProps$props, _excluded);
19
+ // const offset = props.offset ? Number(props.offset) : 20
20
+ var offset = useContext(OffsetContext);
21
+ console.log('offset>>>>>>>', offset);
22
+ var listRef = useRef(null);
23
+ var setListLevel = useCallback(function (nodeList) {
24
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
25
+ var titleClass = nodeList[0].className;
26
+ if (titleClass.includes('nut-subsidenavbar__title')) {
27
+ // const left = 15 + offset * level
28
+ var left = offset * (level + 1);
29
+ nodeList[0].style.paddingLeft = "".concat(left, "px");
30
+ }
31
+ var childNodes = nodeList[1] && nodeList[1].children && Array.from(nodeList[1].children).filter(function (item) {
32
+ return item.nodeType !== 3 && item.nodeType !== 8;
33
+ });
34
+ childNodes.forEach(function (item) {
35
+ var itemClass = item.className;
36
+ if (itemClass.includes('nut-subsidenavbar__item')) {
37
+ // const left = 15 + offset * (level + 1)
38
+ var _left = offset * (level + 2);
39
+ item.style.paddingLeft = "".concat(_left, "px");
40
+ }
41
+ if (itemClass.includes('nut-subsidenavbar__list')) {
42
+ var _level = item.getAttribute('level') ? Number(item.getAttribute('level')) : 1;
43
+ _level += 1;
44
+ item.setAttribute('level', _level.toString());
45
+ item.children && setListLevel(item.children, _level);
46
+ }
47
+ });
48
+ }, [offset]);
49
+ var clickFn = function clickFn(e) {
50
+ handleClick(e);
51
+ var currentClass = e.currentTarget.className;
52
+ var isShow = currentClass.includes('nutShow');
53
+ onClick && onClick({
54
+ title: title,
55
+ ikey: ikey,
56
+ isShow: isShow
57
+ });
58
+ };
59
+ useEffect(function () {
60
+ var _listRef$current, _listRef$current2;
61
+ var childNodes = (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.children;
62
+ (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.setAttribute('level', '1');
63
+ childNodes && setListLevel(childNodes);
64
+ }, [setListLevel]);
65
+ var divClass = open ? 'nut-subsidenavbar__list nutShow' : 'nut-subsidenavbar__list nutHide';
66
+ var iconClass = open ? 'arrow-icon arrow-down' : 'arrow-icon arrow-up';
67
+ return React__default.createElement("div", _objectSpread({
68
+ className: divClass,
69
+ ref: listRef,
70
+ onClick: clickFn
71
+ }, rest), React__default.createElement("div", {
72
+ className: "nut-subsidenavbar__title border-bt"
73
+ }, title, " ", React__default.createElement("i", {
74
+ className: iconClass
75
+ })), React__default.createElement("div", {
76
+ className: "nut-subsidenavbar__content"
77
+ }, children));
78
+ };
7
79
  export { SubSideNavBar as default };
package/dist/esm/Swipe.js CHANGED
@@ -1,12 +1,232 @@
1
- import { S as Swipe } from './swipe.taro-ea35f07f.js';
2
- import 'react';
3
- import 'classnames';
4
- import '@tarojs/taro';
5
- import './bem-350c1702.js';
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ import React__default, { forwardRef, useRef, useState, useMemo, useCallback, useImperativeHandle, useEffect } from 'react';
6
+ import classNames from 'classnames';
7
+ import { c as cn } from './bem-3b438e61.js';
8
+ import { u as useTouch } from './useTouch-cf73a407.js';
9
+ import { g as getRect } from './useClientRect-56bb675b.js';
6
10
  import '@bem-react/classname';
7
- import './useTouch-db24bb5c.js';
8
- import './useClientRect-1f8ed1fe.js';
9
-
10
-
11
-
11
+ function preventDefault(event, isStopPropagation) {
12
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
13
+ event.preventDefault();
14
+ }
15
+ if (isStopPropagation) {
16
+ event.stopPropagation();
17
+ }
18
+ }
19
+ var defaultProps = {
20
+ name: '',
21
+ leftWidth: 0,
22
+ rightWidth: 0
23
+ };
24
+ var Swipe = forwardRef(function (props, instanceRef) {
25
+ var swipeBem = cn('swipe');
26
+ var touch = useTouch();
27
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
28
+ children = _defaultProps$props.children,
29
+ className = _defaultProps$props.className,
30
+ style = _defaultProps$props.style;
31
+ var root = useRef();
32
+ var opened = useRef(false);
33
+ var lockClick = useRef(false);
34
+ var startOffset = useRef(0);
35
+ var _useState = useState({
36
+ offset: 0,
37
+ dragging: false
38
+ }),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ state = _useState2[0],
41
+ setState = _useState2[1];
42
+ var _useState3 = useState({
43
+ left: 0,
44
+ right: 0
45
+ }),
46
+ _useState4 = _slicedToArray(_useState3, 2),
47
+ actionWidth = _useState4[0],
48
+ setActionWidth = _useState4[1];
49
+ var wrapperStyle = {
50
+ transform: "translate3d(".concat(state.offset, "px, 0, 0)"),
51
+ transitionDuration: state.dragging ? '0s' : '.6s'
52
+ };
53
+ var leftWidth = useMemo(function () {
54
+ return props.leftWidth ? props.leftWidth : actionWidth.left;
55
+ }, [props.leftWidth, actionWidth.left]);
56
+ var rightWidth = useMemo(function () {
57
+ return props.rightWidth ? props.rightWidth : actionWidth.right;
58
+ }, [props.rightWidth, actionWidth.right]);
59
+ var _onTouchStart = function onTouchStart(event) {
60
+ if (!props.disabled) {
61
+ startOffset.current = state.offset;
62
+ touch.start(event);
63
+ props.onTouchStart && props.onTouchStart(event);
64
+ }
65
+ };
66
+ var _onTouchMove = function onTouchMove(event) {
67
+ if (props.disabled) {
68
+ return;
69
+ }
70
+ touch.move(event);
71
+ props.onTouchMove && props.onTouchMove(event);
72
+ if (touch.isHorizontal()) {
73
+ lockClick.current = true;
74
+ var newState = _objectSpread(_objectSpread({}, state), {}, {
75
+ dragging: true
76
+ });
77
+ var isEdge = !opened || touch.deltaX * startOffset.current < 0;
78
+ if (isEdge) {
79
+ preventDefault(event, true);
80
+ }
81
+ newState.offset = rangeCalculation(touch.deltaX + startOffset.current, -rightWidth, leftWidth);
82
+ setState(newState);
83
+ }
84
+ };
85
+ var _onTouchEnd = function onTouchEnd(event) {
86
+ if (state.dragging) {
87
+ setState(function (v) {
88
+ return _objectSpread(_objectSpread({}, v), {}, {
89
+ dragging: false
90
+ });
91
+ });
92
+ toggle(state.offset > 0 ? 'left' : 'right');
93
+ setTimeout(function () {
94
+ lockClick.current = false;
95
+ }, 0);
96
+ props.onTouchEnd && props.onTouchEnd(event);
97
+ }
98
+ };
99
+ var toggle = function toggle(side) {
100
+ var offset = Math.abs(state.offset);
101
+ var base = 0.3;
102
+ var baseNum = opened ? 1 - base : base;
103
+ var width = side === 'left' ? leftWidth : rightWidth;
104
+ if (width && offset > Number(width) * baseNum) {
105
+ open(side);
106
+ } else {
107
+ _close(side);
108
+ }
109
+ };
110
+ var open = function open(side) {
111
+ var _props$onOpen;
112
+ opened.current = true;
113
+ var offset = side === 'left' ? leftWidth : -rightWidth;
114
+ var name = props.name;
115
+ (_props$onOpen = props.onOpen) === null || _props$onOpen === void 0 ? void 0 : _props$onOpen.call(props, {
116
+ name: name,
117
+ position: side
118
+ });
119
+ setState(function (v) {
120
+ return _objectSpread(_objectSpread({}, v), {}, {
121
+ offset: Number(offset) || 0
122
+ });
123
+ });
124
+ };
125
+ var _close = function close(position) {
126
+ if (opened.current) {
127
+ var _props$onClose;
128
+ opened.current = false;
129
+ (_props$onClose = props.onClose) === null || _props$onClose === void 0 ? void 0 : _props$onClose.call(props, {
130
+ name: props.name,
131
+ position: position || 'left'
132
+ });
133
+ }
134
+ setState(function (v) {
135
+ return _objectSpread(_objectSpread({}, v), {}, {
136
+ offset: 0
137
+ });
138
+ });
139
+ };
140
+ var rangeCalculation = function rangeCalculation(num, min, max) {
141
+ return Math.min(Math.max(Number(num), Number(min)), Number(max));
142
+ };
143
+ var getNodeWidth = function getNodeWidth(node) {
144
+ if (node) {
145
+ var ele = getRect(node);
146
+ return ele.width;
147
+ }
148
+ return 0;
149
+ };
150
+ var leftRef = useCallback(function (node) {
151
+ if (node !== null) {
152
+ setActionWidth(function (v) {
153
+ return _objectSpread(_objectSpread({}, v), {}, {
154
+ left: getNodeWidth(node)
155
+ });
156
+ });
157
+ }
158
+ }, [props.leftAction]);
159
+ var rightRef = useCallback(function (node) {
160
+ if (node !== null) {
161
+ setActionWidth(function (v) {
162
+ return _objectSpread(_objectSpread({}, v), {}, {
163
+ right: getNodeWidth(node)
164
+ });
165
+ });
166
+ }
167
+ }, [props.rightAction]);
168
+ var renderActionContent = function renderActionContent(side, measuredRef) {
169
+ if (props["".concat(side, "Action")]) {
170
+ return React__default.createElement("div", {
171
+ ref: measuredRef,
172
+ className: "".concat(swipeBem(side)),
173
+ onClick: function onClick(e) {
174
+ return handleOperate(e, side);
175
+ }
176
+ }, props["".concat(side, "Action")]);
177
+ }
178
+ return null;
179
+ };
180
+ var handleOperate = function handleOperate(event, position) {
181
+ event.stopPropagation();
182
+ if (props.beforeClose) {
183
+ props.beforeClose(position);
184
+ } else {
185
+ props.onActionClick && props.onActionClick(event, position);
186
+ }
187
+ };
188
+ useImperativeHandle(instanceRef, function () {
189
+ return {
190
+ open: open,
191
+ close: function close() {
192
+ return _close();
193
+ }
194
+ };
195
+ });
196
+ useEffect(function () {
197
+ var handler = function handler(event) {
198
+ var targets = [root];
199
+ if (targets.some(function (targetItem) {
200
+ var targetElement = targetItem.current || targetItem;
201
+ return !targetElement || (targetElement === null || targetElement === void 0 ? void 0 : targetElement.contains(event.target));
202
+ })) {
203
+ return;
204
+ }
205
+ _close();
206
+ };
207
+ document.addEventListener('touchstart', handler);
208
+ return function () {
209
+ document.removeEventListener('touchstart', handler);
210
+ };
211
+ }, []);
212
+ return React__default.createElement("div", {
213
+ ref: root,
214
+ className: classNames(swipeBem(), className),
215
+ onTouchStart: function onTouchStart(e) {
216
+ return _onTouchStart(e);
217
+ },
218
+ onTouchMove: function onTouchMove(e) {
219
+ return _onTouchMove(e);
220
+ },
221
+ onTouchEnd: function onTouchEnd(e) {
222
+ return _onTouchEnd(e);
223
+ },
224
+ style: style
225
+ }, React__default.createElement("div", {
226
+ className: "".concat(swipeBem('wrapper')),
227
+ style: wrapperStyle
228
+ }, renderActionContent('left', leftRef), children, renderActionContent('right', rightRef)));
229
+ });
230
+ Swipe.defaultProps = defaultProps;
231
+ Swipe.displayName = 'NutSwipe';
12
232
  export { Swipe as default };