@nutui/nutui-react-taro 1.4.4-beta.0 → 1.4.5-beta.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 (219) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/Address.js +5 -5
  3. package/dist/esm/Audio.js +5 -5
  4. package/dist/esm/AvatarContext-7153ad2b.js +3 -1
  5. package/dist/esm/AvatarGroup.js +4 -4
  6. package/dist/esm/Calendar.js +5 -5
  7. package/dist/esm/CalendarItem.js +4 -4
  8. package/dist/esm/Card.js +4 -3
  9. package/dist/esm/Cell.js +2 -2
  10. package/dist/esm/ConfigProvider.js +3 -3
  11. package/dist/esm/CountDown.js +4 -4
  12. package/dist/esm/DatePicker.js +5 -5
  13. package/dist/esm/Dialog.js +4 -4
  14. package/dist/esm/Ellipsis.js +4 -4
  15. package/dist/esm/Empty.js +4 -4
  16. package/dist/esm/FixedNav.js +4 -4
  17. package/dist/esm/Form.js +4 -4
  18. package/dist/esm/FormItem.js +3 -3
  19. package/dist/esm/Grid.js +4 -4
  20. package/dist/esm/GridItem.js +4 -4
  21. package/dist/esm/Image.js +4 -4
  22. package/dist/esm/Infiniteloading.js +4 -4
  23. package/dist/esm/Input.js +4 -4
  24. package/dist/esm/MenuItem.js +4 -4
  25. package/dist/esm/NoticeBar.js +2 -2
  26. package/dist/esm/NumberKeyboard.js +4 -4
  27. package/dist/esm/Pagination.js +4 -4
  28. package/dist/esm/Picker.js +4 -4
  29. package/dist/esm/PullToRefresh.js +4 -4
  30. package/dist/esm/Range.js +4 -4
  31. package/dist/esm/SearchBar.js +4 -4
  32. package/dist/esm/ShortPassword.js +4 -4
  33. package/dist/esm/SideNavBar.js +4 -4
  34. package/dist/esm/Signature.js +4 -4
  35. package/dist/esm/Sticky.js +4 -4
  36. package/dist/esm/Table.js +4 -4
  37. package/dist/esm/Tag.js +3 -2
  38. package/dist/esm/TextArea.js +4 -4
  39. package/dist/esm/TimeDetail.js +4 -4
  40. package/dist/esm/TimePannel.js +4 -4
  41. package/dist/esm/TimeSelect.js +6 -6
  42. package/dist/esm/Uploader.js +4 -4
  43. package/dist/esm/UserContext-68f62e66.js +3 -1
  44. package/dist/esm/UserContext-b4181162.js +3 -1
  45. package/dist/esm/UserContext-be8097d2.js +3 -1
  46. package/dist/esm/VirtualList.js +6 -4
  47. package/dist/esm/WaterMark.js +4 -4
  48. package/dist/esm/actionsheet.taro-a58d3d12.js +45 -83
  49. package/dist/esm/address.taro-79cc7c96.js +461 -0
  50. package/dist/esm/animate.taro-b0e83dd5.js +32 -46
  51. package/dist/esm/animatingnumbers.taro-6f40a2e9.js +93 -134
  52. package/dist/esm/audio.taro-4fadc583.js +161 -0
  53. package/dist/esm/avatar.taro-85ced995.js +93 -119
  54. package/dist/esm/avatargroup-1d900174.js +34 -0
  55. package/dist/esm/backtop.taro-99107c30.js +39 -62
  56. package/dist/esm/badge.taro-fe9171ec.js +40 -58
  57. package/dist/esm/barrage.taro-0e157b5e.js +61 -91
  58. package/dist/esm/bem-893ad28d.js +3 -6
  59. package/dist/esm/button.taro-4ce133b9.js +87 -98
  60. package/dist/esm/calendar.taro-4ed72058.js +38 -0
  61. package/dist/esm/calendaritem.taro-1ebe428d.js +571 -0
  62. package/dist/esm/card.taro-39055e82.js +32 -0
  63. package/dist/esm/cascader.taro-d8cb1c3e.js +397 -636
  64. package/dist/esm/cell.taro-9a04a92e.js +64 -0
  65. package/dist/esm/cellgroup.taro-e094471c.js +18 -27
  66. package/dist/esm/checkbox.taro-0bda9796.js +160 -232
  67. package/dist/esm/circleprogress.taro-47db537c.js +99 -120
  68. package/dist/esm/col.taro-b61c7cba.js +33 -50
  69. package/dist/esm/collapse.taro-af58206c.js +73 -86
  70. package/dist/esm/collapseitem-ce1849d2.js +75 -139
  71. package/dist/esm/configprovider-5eea4f5d.js +19 -0
  72. package/dist/esm/configprovider.taro-26882dd2.js +42 -0
  73. package/dist/esm/countdown.taro-9e40de9c.js +225 -0
  74. package/dist/esm/datepicker.taro-7220e495.js +270 -0
  75. package/dist/esm/dialog.taro-1c03960e.js +123 -0
  76. package/dist/esm/divider.taro-5236fe6a.js +27 -27
  77. package/dist/esm/drag.taro-82b6b27a.js +99 -138
  78. package/dist/esm/elevator.taro-d7d65470.js +185 -259
  79. package/dist/esm/ellipsis.taro-49b6db0c.js +232 -0
  80. package/dist/esm/empty.taro-7bd813f9.js +62 -0
  81. package/dist/esm/fixednav.taro-5ad15202.js +53 -0
  82. package/dist/esm/form.taro-71d32671.js +179 -0
  83. package/dist/esm/formitem.taro-3089489b.js +89 -0
  84. package/dist/esm/grid.taro-e6decfce.js +58 -0
  85. package/dist/esm/grid.taro.context-39636af9.js +4 -2
  86. package/dist/esm/griditem.taro-4cade72e.js +90 -0
  87. package/dist/esm/icon-8dc4de10.js +43 -51
  88. package/dist/esm/icon.taro-1d0d4fb7.js +43 -51
  89. package/dist/esm/image.taro-e6dc5867.js +64 -0
  90. package/dist/esm/imagepreview.taro-3400ea03.js +158 -205
  91. package/dist/esm/index.taro-a36f96fb.js +149 -210
  92. package/dist/esm/indicator.taro-183ea169.js +29 -43
  93. package/dist/esm/infiniteloading.taro-6c2a2e95.js +142 -0
  94. package/dist/esm/input.taro-fd566407.js +243 -0
  95. package/dist/esm/inputnumber.taro-dc39b853.js +129 -177
  96. package/dist/esm/layout.taro-358f014f.js +6 -9
  97. package/dist/esm/menu.taro-4abed328.js +89 -132
  98. package/dist/esm/menuitem.taro-6e8b27c3.js +130 -0
  99. package/dist/esm/navbar.taro-c931c078.js +69 -105
  100. package/dist/esm/noticebar.taro-69ea7673.js +450 -0
  101. package/dist/esm/notify.taro-308e5892.js +66 -97
  102. package/dist/esm/numberkeyboard.taro-194519e4.js +158 -0
  103. package/dist/esm/nutui-react.es.js +44 -44
  104. package/dist/esm/offsetContext-bfb02c25.js +3 -1
  105. package/dist/esm/overlay.taro-98367bc1.js +59 -74
  106. package/dist/esm/pagination.taro-bb490de9.js +124 -0
  107. package/dist/esm/picker.taro-2a8ded7c.js +420 -0
  108. package/dist/esm/popover.taro-46d813e8.js +132 -222
  109. package/dist/esm/popup.taro-cb777e09.js +125 -178
  110. package/dist/esm/price.taro-8801462e.js +75 -86
  111. package/dist/esm/progress.taro-623bc807.js +84 -118
  112. package/dist/esm/pulltorefresh.taro-cab7b51c.js +221 -0
  113. package/dist/esm/range.taro-5d6ff217.js +332 -0
  114. package/dist/esm/rate.taro-10197384.js +64 -111
  115. package/dist/esm/row.taro-37a895de.js +38 -42
  116. package/dist/esm/searchbar.taro-839dd622.js +148 -0
  117. package/dist/esm/shortpassword.taro-182d46f7.js +111 -0
  118. package/dist/esm/sidenavbar.taro-006cf38b.js +35 -0
  119. package/dist/esm/sidenavbaritem.taro-fee11d26.js +9 -22
  120. package/dist/esm/signature.taro-33632585.js +143 -0
  121. package/dist/esm/skeleton.taro-853ce460.js +51 -88
  122. package/dist/esm/step.taro-1c94e067.js +49 -78
  123. package/dist/esm/steps.taro-acf205a0.js +21 -30
  124. package/dist/esm/sticky.taro-d0553f48.js +13 -0
  125. package/dist/esm/subsidenavbar.taro-f46b4c73.js +58 -75
  126. package/dist/esm/swipe.taro-83bc248f.js +164 -254
  127. package/dist/esm/swiper.taro-852f6615.js +424 -505
  128. package/dist/esm/swiperitem-86a3578a.js +20 -28
  129. package/dist/esm/switch.taro-bae2dca0.js +43 -64
  130. package/dist/esm/tabbar.taro-86cece39.js +47 -57
  131. package/dist/esm/tabbaritem.taro-8dfb8055.js +51 -79
  132. package/dist/esm/table.taro-cb4dd2c3.js +92 -0
  133. package/dist/esm/tabpane.taro-91cd6cf4.js +17 -22
  134. package/dist/esm/tabs.taro-e71875fa.js +121 -165
  135. package/dist/esm/tag.taro-00fe554d.js +89 -0
  136. package/dist/esm/textarea.taro-42600f8c.js +74 -0
  137. package/dist/esm/timedetail.taro-c5f564fd.js +44 -0
  138. package/dist/esm/timepannel.taro-29f9dd86.js +22 -0
  139. package/dist/esm/timeselect.taro-3ecce65d.js +133 -0
  140. package/dist/esm/toast.taro-0804b6b4.js +99 -137
  141. package/dist/esm/trendarrow.taro-5a7153e4.js +63 -90
  142. package/dist/esm/types/src/packages/cell/cell.taro.d.ts +0 -1
  143. package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +5 -4
  144. package/dist/esm/types/src/packages/noticebar/noticebar.taro.d.ts +5 -4
  145. package/dist/esm/types/src/packages/uploader/uploader.d.ts +1 -1
  146. package/dist/esm/types/src/packages/virtuallist/virtuallist.taro.d.ts +13 -2
  147. package/dist/esm/typings-1c5f2628.js +7 -6
  148. package/dist/esm/uploader.taro-f80d76d9.js +392 -0
  149. package/dist/esm/useClientRect-bf69d7b3.js +5 -25
  150. package/dist/esm/useTouch-a2ea68c6.js +63 -93
  151. package/dist/esm/video-8a3518c5.js +59 -83
  152. package/dist/esm/virtuallist.taro-e3345ced.js +215 -0
  153. package/dist/esm/watermark.taro-cd9db98a.js +114 -0
  154. package/dist/esm/zh-CN-dfc384d0.js +128 -133
  155. package/dist/locales/base.js +1 -1
  156. package/dist/locales/en-US.js +1 -1
  157. package/dist/locales/id-ID.js +1 -1
  158. package/dist/locales/zh-CN.js +1 -1
  159. package/dist/locales/zh-TW.js +1 -1
  160. package/dist/locales/zh-UG.js +1 -1
  161. package/dist/nutui.react.es.js +634 -5664
  162. package/dist/nutui.react.umd.js +634 -5664
  163. package/dist/packages/noticebar/noticebar.scss +17 -0
  164. package/dist/packages/radio/radio.scss +3 -1
  165. package/dist/packages/row/row.scss +2 -0
  166. package/dist/packages/searchbar/searchbar.scss +1 -1
  167. package/dist/packages/tag/tag.scss +13 -5
  168. package/dist/packages/virtuallist/virtuallist.scss +24 -0
  169. package/dist/style.css +1 -1
  170. package/dist/style.es.js +1 -1
  171. package/dist/styles/temp.scss +2340 -0
  172. package/dist/styles/theme-dark.scss +7 -0
  173. package/dist/styles/theme-default.scss +11 -0
  174. package/dist/styles/variables.scss +1945 -710
  175. package/dist/types/index.d.ts +16 -23
  176. package/package.json +9 -4
  177. package/dist/esm/address.taro-1e2aea24.js +0 -615
  178. package/dist/esm/audio.taro-fddcdfc0.js +0 -228
  179. package/dist/esm/avatargroup-f7f600ff.js +0 -42
  180. package/dist/esm/calendar.taro-72974415.js +0 -83
  181. package/dist/esm/calendaritem.taro-84e889eb.js +0 -580
  182. package/dist/esm/card.taro-a530dfb3.js +0 -61
  183. package/dist/esm/cell.taro-cf50c4f2.js +0 -109
  184. package/dist/esm/configprovider-c7d60e20.js +0 -18
  185. package/dist/esm/configprovider.taro-8bdb3a28.js +0 -50
  186. package/dist/esm/countdown.taro-d7dc8681.js +0 -246
  187. package/dist/esm/datepicker.taro-7199f521.js +0 -304
  188. package/dist/esm/dialog.taro-f54cfbf0.js +0 -187
  189. package/dist/esm/ellipsis.taro-c0de6ff4.js +0 -309
  190. package/dist/esm/empty.taro-dbc66496.js +0 -81
  191. package/dist/esm/fixednav.taro-9e759320.js +0 -97
  192. package/dist/esm/form.taro-880014b1.js +0 -181
  193. package/dist/esm/formitem.taro-3695f4a7.js +0 -136
  194. package/dist/esm/grid.taro-c2cc12d6.js +0 -81
  195. package/dist/esm/griditem.taro-892153cd.js +0 -122
  196. package/dist/esm/image.taro-c30973d5.js +0 -105
  197. package/dist/esm/infiniteloading.taro-b5ddf3cc.js +0 -188
  198. package/dist/esm/input.taro-104130c1.js +0 -361
  199. package/dist/esm/menuitem.taro-216e9f7d.js +0 -193
  200. package/dist/esm/noticebar.taro-94002898.js +0 -368
  201. package/dist/esm/numberkeyboard.taro-5e8f0ddf.js +0 -245
  202. package/dist/esm/pagination.taro-9925ffab.js +0 -169
  203. package/dist/esm/picker.taro-3b5cc054.js +0 -540
  204. package/dist/esm/pulltorefresh.taro-f26a20dd.js +0 -302
  205. package/dist/esm/range.taro-c41e9b90.js +0 -469
  206. package/dist/esm/searchbar.taro-01ed4ea4.js +0 -236
  207. package/dist/esm/shortpassword.taro-3a3bf412.js +0 -190
  208. package/dist/esm/sidenavbar.taro-06026f31.js +0 -66
  209. package/dist/esm/signature.taro-17648cac.js +0 -192
  210. package/dist/esm/sticky.taro-36013e97.js +0 -16
  211. package/dist/esm/table.taro-adda6622.js +0 -139
  212. package/dist/esm/tag.taro-bd900990.js +0 -104
  213. package/dist/esm/textarea.taro-83d5fe73.js +0 -102
  214. package/dist/esm/timedetail.taro-105f5380.js +0 -68
  215. package/dist/esm/timepannel.taro-c66c63dd.js +0 -30
  216. package/dist/esm/timeselect.taro-fc7ec6ee.js +0 -172
  217. package/dist/esm/uploader.taro-a1edf38f.js +0 -529
  218. package/dist/esm/virtuallist.taro-4add61c3.js +0 -315
  219. package/dist/esm/watermark.taro-323d1cf3.js +0 -132
@@ -1,127 +1,93 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- var _excluded = ["className", "style", "isShowPercentage", "percentage", "fillColor", "strokeColor", "strokeWidth", "size", "textColor", "textWidth", "showText", "textInside", "textBackground", "textType", "status", "iconName", "iconColor", "iconSize", "rounded", "children", "iconClassPrefix", "iconFontClassName"];
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
1
  import React__default from 'react';
7
2
  import classNames from 'classnames';
8
3
  import { I as Icon } from './icon-8dc4de10.js';
9
4
  import { c as cn } from './bem-893ad28d.js';
10
5
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
11
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
12
- className: '',
13
- style: {},
14
- isShowPercentage: true,
15
- percentage: 0,
16
- fillColor: '#f3f3f3',
17
- strokeColor: 'linear-gradient(135deg, #fa2c19 0%, #fa6419 100%)',
18
- strokeWidth: '',
19
- textColor: '',
20
- textWidth: '',
21
- showText: true,
22
- textInside: false,
23
- textBackground: 'linear-gradient(135deg, #fa2c19 0%, #fa6419 100%)',
24
- textType: 'text',
25
- status: false,
26
- iconName: 'checked',
27
- iconColor: '#439422',
28
- iconSize: '16px',
29
- rounded: true,
30
- children: undefined
31
- });
32
- var Progress = function Progress(props) {
33
- var _classNames, _classNames2, _classNames4;
34
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
35
- className = _defaultProps$props.className,
36
- style = _defaultProps$props.style,
37
- isShowPercentage = _defaultProps$props.isShowPercentage,
38
- percentage = _defaultProps$props.percentage,
39
- fillColor = _defaultProps$props.fillColor,
40
- strokeColor = _defaultProps$props.strokeColor,
41
- strokeWidth = _defaultProps$props.strokeWidth,
42
- size = _defaultProps$props.size,
43
- textColor = _defaultProps$props.textColor,
44
- textWidth = _defaultProps$props.textWidth,
45
- showText = _defaultProps$props.showText,
46
- textInside = _defaultProps$props.textInside,
47
- textBackground = _defaultProps$props.textBackground,
48
- textType = _defaultProps$props.textType,
49
- status = _defaultProps$props.status,
50
- iconName = _defaultProps$props.iconName,
51
- iconColor = _defaultProps$props.iconColor,
52
- iconSize = _defaultProps$props.iconSize,
53
- rounded = _defaultProps$props.rounded,
54
- children = _defaultProps$props.children,
55
- iconClassPrefix = _defaultProps$props.iconClassPrefix,
56
- iconFontClassName = _defaultProps$props.iconFontClassName,
57
- rest = _objectWithoutProperties(_defaultProps$props, _excluded);
58
- var b = cn('progress');
59
- var classes = classNames(b(''));
60
- var classesOuter = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(b(''), "-outer"), true), _defineProperty(_classNames, "".concat(b(''), "-").concat(size || 'base'), true), _classNames));
61
- var classesInner = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(b(''), "-inner"), true), _defineProperty(_classNames2, "".concat(b(''), "-active"), status), _classNames2));
62
- var classesText = classNames(_defineProperty({}, "".concat(b(''), "-text"), true));
63
- var classesInsideText = classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(b(''), "-text"), true), _defineProperty(_classNames4, "".concat(b(''), "-insidetext"), true), _classNames4));
64
- var classesTextInner = classNames(_defineProperty({}, "".concat(b(''), "-text__inner"), true));
65
- var stylesOuter = {
66
- height: "".concat(strokeWidth, "px"),
67
- // eslint-disable-next-line no-nested-ternary
68
- borderRadius: "".concat(rounded ? rounded === true ? '12px' : rounded : 0),
69
- background: "".concat(fillColor)
70
- };
71
- var stylesInner = {
72
- width: "".concat(percentage, "%"),
73
- // eslint-disable-next-line no-nested-ternary
74
- borderRadius: "".concat(rounded ? rounded === true ? '12px' : rounded : 0),
75
- background: "".concat(strokeColor)
76
- };
77
- var stylesInsideText = {
78
- width: "".concat(textWidth, "px"),
79
- left: "".concat(percentage, "%"),
80
- background: textBackground || strokeColor
81
- };
82
- var stylesInsideIcon = {
83
- width: "".concat(textWidth, "px"),
84
- left: "".concat(percentage, "%")
85
- };
86
- var stylesText = {
87
- width: "".concat(textWidth, "px")
88
- };
89
- return React__default.createElement("div", _objectSpread({
90
- className: "".concat(classes, " ").concat(className),
91
- style: style
92
- }, rest), React__default.createElement("div", {
93
- className: classesOuter,
94
- style: stylesOuter
95
- }, React__default.createElement("div", {
96
- className: classesInner,
97
- style: stylesInner
98
- }, showText && textInside && React__default.createElement(React__default.Fragment, null, children ? React__default.createElement("div", {
99
- className: classesInsideText,
100
- style: stylesInsideIcon
101
- }, children) : React__default.createElement("div", {
102
- className: classesInsideText,
103
- style: stylesInsideText
104
- }, React__default.createElement("span", {
105
- className: classesTextInner,
106
- style: {
107
- color: textColor || '#fff'
108
- }
109
- }, percentage, isShowPercentage ? '%' : ''))))), showText && !textInside && React__default.createElement("div", {
110
- className: classesText,
111
- style: stylesText
112
- }, textType === 'text' && React__default.createElement("span", {
113
- className: classesTextInner,
114
- style: {
115
- color: textColor || '#333'
116
- }
117
- }, percentage, isShowPercentage ? '%' : ''), textType === 'icon' && React__default.createElement(Icon, {
118
- classPrefix: iconClassPrefix,
119
- fontClassName: iconFontClassName,
120
- size: iconSize,
121
- name: iconName,
122
- color: iconColor
123
- })));
6
+
7
+ const defaultProps = {
8
+ ...ComponentDefaults,
9
+ className: '',
10
+ style: {},
11
+ isShowPercentage: true,
12
+ percentage: 0,
13
+ fillColor: '#f3f3f3',
14
+ strokeColor: 'linear-gradient(135deg, #fa2c19 0%, #fa6419 100%)',
15
+ strokeWidth: '',
16
+ textColor: '',
17
+ textWidth: '',
18
+ showText: true,
19
+ textInside: false,
20
+ textBackground: 'linear-gradient(135deg, #fa2c19 0%, #fa6419 100%)',
21
+ textType: 'text',
22
+ status: false,
23
+ iconName: 'checked',
24
+ iconColor: '#439422',
25
+ iconSize: '16px',
26
+ rounded: true,
27
+ children: undefined,
28
+ };
29
+ const Progress = (props) => {
30
+ const { className, style, isShowPercentage, percentage, fillColor, strokeColor, strokeWidth, size, textColor, textWidth, showText, textInside, textBackground, textType, status, iconName, iconColor, iconSize, rounded, children, iconClassPrefix, iconFontClassName, ...rest } = {
31
+ ...defaultProps,
32
+ ...props,
33
+ };
34
+ const b = cn('progress');
35
+ const classes = classNames(b(''));
36
+ const classesOuter = classNames({
37
+ [`${b('')}-outer`]: true,
38
+ [`${b('')}-${size || 'base'}`]: true,
39
+ });
40
+ const classesInner = classNames({
41
+ [`${b('')}-inner`]: true,
42
+ [`${b('')}-active`]: status,
43
+ });
44
+ const classesText = classNames({
45
+ [`${b('')}-text`]: true,
46
+ });
47
+ const classesInsideText = classNames({
48
+ [`${b('')}-text`]: true,
49
+ [`${b('')}-insidetext`]: true,
50
+ });
51
+ const classesTextInner = classNames({
52
+ [`${b('')}-text__inner`]: true,
53
+ });
54
+ const stylesOuter = {
55
+ height: `${strokeWidth}px`,
56
+ // eslint-disable-next-line no-nested-ternary
57
+ borderRadius: `${rounded ? (rounded === true ? '12px' : rounded) : 0}`,
58
+ background: `${fillColor}`,
59
+ };
60
+ const stylesInner = {
61
+ width: `${percentage}%`,
62
+ // eslint-disable-next-line no-nested-ternary
63
+ borderRadius: `${rounded ? (rounded === true ? '12px' : rounded) : 0}`,
64
+ background: `${strokeColor}`,
65
+ };
66
+ const stylesInsideText = {
67
+ width: `${textWidth}px`,
68
+ left: `${percentage}%`,
69
+ background: textBackground || strokeColor,
70
+ };
71
+ const stylesInsideIcon = {
72
+ width: `${textWidth}px`,
73
+ left: `${percentage}%`,
74
+ };
75
+ const stylesText = {
76
+ width: `${textWidth}px`,
77
+ };
78
+ return (React__default.createElement("div", { className: `${classes} ${className}`, style: style, ...rest },
79
+ React__default.createElement("div", { className: classesOuter, style: stylesOuter },
80
+ React__default.createElement("div", { className: classesInner, style: stylesInner }, showText && textInside && (React__default.createElement(React__default.Fragment, null, children ? (React__default.createElement("div", { className: classesInsideText, style: stylesInsideIcon }, children)) : (React__default.createElement("div", { className: classesInsideText, style: stylesInsideText },
81
+ React__default.createElement("span", { className: classesTextInner, style: { color: textColor || '#fff' } },
82
+ percentage,
83
+ isShowPercentage ? '%' : ''))))))),
84
+ showText && !textInside && (React__default.createElement("div", { className: classesText, style: stylesText },
85
+ textType === 'text' && (React__default.createElement("span", { className: classesTextInner, style: { color: textColor || '#333' } },
86
+ percentage,
87
+ isShowPercentage ? '%' : '')),
88
+ textType === 'icon' && (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, size: iconSize, name: iconName, color: iconColor }))))));
124
89
  };
125
90
  Progress.defaultProps = defaultProps;
126
91
  Progress.displayName = 'NutProgress';
92
+
127
93
  export { Progress as P };
@@ -0,0 +1,221 @@
1
+ import React__default, { useState, useRef, useEffect } from 'react';
2
+ import { useDrag } from '@use-gesture/react';
3
+ import { useSpring, animated } from '@react-spring/web';
4
+ import { u as useConfig } from './configprovider.taro-26882dd2.js';
5
+
6
+ const canUseDom = !!(typeof window !== 'undefined' &&
7
+ typeof document !== 'undefined' &&
8
+ window.document &&
9
+ window.document.createElement);
10
+
11
+ const defaultRoot = canUseDom ? window : undefined;
12
+ const overflowStylePatterns = ['scroll', 'auto', 'overlay'];
13
+ function isElement(node) {
14
+ const ELEMENT_NODE_TYPE = 1;
15
+ return node.nodeType === ELEMENT_NODE_TYPE;
16
+ }
17
+ function getScrollParent(el, root = defaultRoot) {
18
+ let node = el;
19
+ while (node && node !== root && isElement(node)) {
20
+ if (node === document.body) {
21
+ return root;
22
+ }
23
+ const { overflowY } = window.getComputedStyle(node);
24
+ if (overflowStylePatterns.includes(overflowY) &&
25
+ node.scrollHeight > node.clientHeight) {
26
+ return node;
27
+ }
28
+ node = node.parentNode;
29
+ }
30
+ return root;
31
+ }
32
+
33
+ function bound(position, min, max) {
34
+ let ret = position;
35
+ if (min !== undefined) {
36
+ ret = Math.max(position, min);
37
+ }
38
+ if (max !== undefined) {
39
+ ret = Math.min(ret, max);
40
+ }
41
+ return ret;
42
+ }
43
+
44
+ function rubberband(distance, dimension, constant) {
45
+ return (distance * dimension * constant) / (dimension + constant * distance);
46
+ }
47
+ function rubberbandIfOutOfBounds(position, min, max, dimension, constant = 0.15) {
48
+ if (constant === 0)
49
+ return bound(position, min, max);
50
+ if (position < min)
51
+ return -rubberband(min - position, dimension, constant) + min;
52
+ if (position > max)
53
+ return +rubberband(position - max, dimension, constant) + max;
54
+ return position;
55
+ }
56
+
57
+ const sleep = (time) => new Promise((resolve) => setTimeout(resolve, time));
58
+
59
+ let passiveSupported = false;
60
+ if (canUseDom) {
61
+ try {
62
+ const opts = Object.defineProperty({}, 'passive', {
63
+ get() {
64
+ passiveSupported = true;
65
+ },
66
+ });
67
+ window.addEventListener('test-passive-supported', null, opts);
68
+ }
69
+ catch (e) {
70
+ console.log(e);
71
+ }
72
+ }
73
+
74
+ const defaultProps = {
75
+ pullingText: '',
76
+ canReleaseText: '',
77
+ refreshingText: '',
78
+ completeText: '',
79
+ completeDelay: 500,
80
+ disabled: false,
81
+ headHeight: 40,
82
+ threshold: 60,
83
+ onRefresh: () => { },
84
+ };
85
+ const PullToRefresh = (p) => {
86
+ const { locale } = useConfig();
87
+ const props = {
88
+ ...defaultProps,
89
+ ...p,
90
+ ...{
91
+ pullingText: p.pullingText || locale.pullToRefresh.pullingText,
92
+ canReleaseText: p.canReleaseText || locale.pullToRefresh.canReleaseText,
93
+ refreshingText: p.refreshingText || locale.pullToRefresh.refreshingText,
94
+ completeText: p.completeText || locale.pullToRefresh.completeText,
95
+ },
96
+ };
97
+ const headHeight = props.headHeight;
98
+ const threshold = props.threshold;
99
+ const [status, setStatus] = useState('pulling');
100
+ const [springStyles, api] = useSpring(() => ({
101
+ from: { height: 0 },
102
+ config: {
103
+ tension: 300,
104
+ friction: 30,
105
+ clamp: true,
106
+ },
107
+ }));
108
+ const elementRef = useRef(null);
109
+ const pullingRef = useRef(false);
110
+ useEffect(() => {
111
+ elementRef.current?.addEventListener('touchmove', () => { });
112
+ }, []);
113
+ async function doRefresh() {
114
+ api.start({ height: headHeight });
115
+ setStatus('refreshing');
116
+ try {
117
+ await props.onRefresh();
118
+ setStatus('complete');
119
+ }
120
+ catch (e) {
121
+ api.start({
122
+ to: async (next) => {
123
+ await next({ height: 0 });
124
+ setStatus('pulling');
125
+ },
126
+ });
127
+ throw e;
128
+ }
129
+ if (props.completeDelay > 0) {
130
+ await sleep(props.completeDelay);
131
+ }
132
+ api.start({
133
+ to: async (next) => {
134
+ await next({ height: 0 });
135
+ setStatus('pulling');
136
+ },
137
+ });
138
+ }
139
+ useDrag((state) => {
140
+ if (status === 'refreshing' || status === 'complete')
141
+ return;
142
+ const { event } = state;
143
+ // 最后一个事件,检查是否可以刷新或是否是开始状态(第一个状态也是最后一个状态)
144
+ if (state.last) {
145
+ pullingRef.current = false;
146
+ if (status === 'canRelease') {
147
+ doRefresh();
148
+ }
149
+ else {
150
+ api.start({ height: 0 });
151
+ }
152
+ return;
153
+ }
154
+ function getScrollTop(element) {
155
+ return 'scrollTop' in element ? element.scrollTop : element.scrollY;
156
+ }
157
+ // 手指位置
158
+ const [, y] = state.movement;
159
+ // 第一个事件,并且手指位置大于0
160
+ if (state.first && y > 0) {
161
+ const target = state.event.target;
162
+ if (!target || !(target instanceof Element))
163
+ return;
164
+ let scrollParent = getScrollParent(target);
165
+ while (true) {
166
+ if (!scrollParent)
167
+ return;
168
+ const scrollTop = getScrollTop(scrollParent);
169
+ if (scrollTop > 0) {
170
+ return;
171
+ }
172
+ // 查找到 window 说明到顶了
173
+ if (scrollParent instanceof Window) {
174
+ break;
175
+ }
176
+ // 递归查找
177
+ scrollParent = getScrollParent(scrollParent.parentNode);
178
+ }
179
+ pullingRef.current = true;
180
+ }
181
+ if (!pullingRef.current)
182
+ return;
183
+ if (event.cancelable) {
184
+ event.preventDefault();
185
+ }
186
+ event.stopPropagation();
187
+ const height = Math.max(rubberbandIfOutOfBounds(y, 0, 0, headHeight * 5, 0.5), 0);
188
+ api.start({ height });
189
+ setStatus(height > threshold ? 'canRelease' : 'pulling');
190
+ }, {
191
+ pointer: { touch: true },
192
+ axis: 'y',
193
+ target: elementRef,
194
+ enabled: !props.disabled,
195
+ eventOptions: (passiveSupported
196
+ ? { passive: false }
197
+ : false),
198
+ });
199
+ const renderStatusText = () => {
200
+ if (props.renderText) {
201
+ return props.renderText?.(status);
202
+ }
203
+ if (status === 'pulling')
204
+ return props.pullingText;
205
+ if (status === 'canRelease')
206
+ return props.canReleaseText;
207
+ if (status === 'refreshing')
208
+ return props.refreshingText;
209
+ if (status === 'complete')
210
+ return props.completeText;
211
+ return '';
212
+ };
213
+ return (React__default.createElement(animated.div, { ref: elementRef, className: "nut-pulltorefresh" },
214
+ React__default.createElement(animated.div, { style: springStyles, className: "nut-pulltorefresh-head" },
215
+ React__default.createElement("div", { className: "nut-pulltorefresh-head-content", style: { height: headHeight } }, renderStatusText())),
216
+ React__default.createElement("div", { className: "nut-pulltorefresh-content" }, props.children)));
217
+ };
218
+ PullToRefresh.defaultProps = defaultProps;
219
+ PullToRefresh.displayName = 'NutPullToRefresh';
220
+
221
+ export { PullToRefresh as P };