@nutui/nutui-react-taro 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (363) hide show
  1. package/CHANGELOG.md +137 -638
  2. package/dist/esm/ActionSheet.js +15 -16
  3. package/dist/esm/Address.js +19 -22
  4. package/dist/esm/Animate.js +7 -9
  5. package/dist/esm/AnimatingNumbers.js +8 -9
  6. package/dist/esm/Audio.js +18 -20
  7. package/dist/esm/Avatar.js +11 -12
  8. package/dist/esm/AvatarGroup.js +8 -13
  9. package/dist/esm/BackTop.js +9 -10
  10. package/dist/esm/Badge.js +7 -10
  11. package/dist/esm/Barrage.js +9 -10
  12. package/dist/esm/Button.js +8 -9
  13. package/dist/esm/Calendar.js +18 -21
  14. package/dist/esm/CalendarItem.js +11 -14
  15. package/dist/esm/Card.js +12 -13
  16. package/dist/esm/Cascader.js +16 -18
  17. package/dist/esm/Cell.js +7 -8
  18. package/dist/esm/CellGroup.js +7 -8
  19. package/dist/esm/Checkbox.js +9 -10
  20. package/dist/esm/CheckboxGroup.js +9 -10
  21. package/dist/esm/CircleProgress.js +8 -10
  22. package/dist/esm/Col.js +8 -8
  23. package/dist/esm/Collapse.js +8 -9
  24. package/dist/esm/CollapseItem.js +7 -8
  25. package/dist/esm/ConfigProvider.js +9 -9
  26. package/dist/esm/CountDown.js +8 -11
  27. package/dist/esm/DatePicker.js +20 -24
  28. package/dist/esm/Dialog.js +13 -15
  29. package/dist/esm/Divider.js +7 -7
  30. package/dist/esm/Drag.js +7 -9
  31. package/dist/esm/Elevator.js +9 -10
  32. package/dist/esm/Ellipsis.js +9 -11
  33. package/dist/esm/Empty.js +7 -11
  34. package/dist/esm/FixedNav.js +11 -14
  35. package/dist/esm/Form.js +10 -11
  36. package/dist/esm/FormItem.js +8 -9
  37. package/dist/esm/Grid.js +8 -11
  38. package/dist/esm/GridItem.js +7 -10
  39. package/dist/esm/Image.js +7 -10
  40. package/dist/esm/ImagePreview.js +18 -20
  41. package/dist/esm/Indicator.js +6 -7
  42. package/dist/esm/Infiniteloading.js +12 -15
  43. package/dist/esm/Input.js +11 -11
  44. package/dist/esm/InputNumber.js +9 -10
  45. package/dist/esm/Layout.js +5 -6
  46. package/dist/esm/Menu.js +8 -9
  47. package/dist/esm/MenuItem.js +13 -15
  48. package/dist/esm/NavBar.js +7 -11
  49. package/dist/esm/NoticeBar.js +9 -12
  50. package/dist/esm/Notify.js +8 -10
  51. package/dist/esm/NumberKeyboard.js +14 -19
  52. package/dist/esm/Overlay.js +8 -9
  53. package/dist/esm/Pagination.js +9 -12
  54. package/dist/esm/Picker.js +19 -23
  55. package/dist/esm/Popover.js +10 -11
  56. package/dist/esm/Popup.js +12 -15
  57. package/dist/esm/Price.js +6 -8
  58. package/dist/esm/Progress.js +7 -11
  59. package/dist/esm/PullToRefresh.js +9 -14
  60. package/dist/esm/Radio.js +9 -10
  61. package/dist/esm/RadioGroup.js +9 -10
  62. package/dist/esm/Range/style/index.js +1 -1
  63. package/dist/esm/Range.js +11 -16
  64. package/dist/esm/Rate.js +9 -10
  65. package/dist/esm/Row.js +8 -8
  66. package/dist/esm/SearchBar.js +11 -14
  67. package/dist/esm/ShortPassword.js +16 -19
  68. package/dist/esm/SideNavBar.js +14 -20
  69. package/dist/esm/SideNavBarItem.js +5 -6
  70. package/dist/esm/Signature.js +13 -16
  71. package/dist/esm/Skeleton.js +14 -13
  72. package/dist/esm/Step.js +8 -11
  73. package/dist/esm/Steps/style/index.js +1 -1
  74. package/dist/esm/Steps.js +8 -10
  75. package/dist/esm/Sticky.js +10 -12
  76. package/dist/esm/SubSideNavBar.js +6 -7
  77. package/dist/esm/Swipe.js +11 -12
  78. package/dist/esm/Swiper.js +8 -11
  79. package/dist/esm/SwiperItem.js +5 -10
  80. package/dist/esm/Switch.js +7 -8
  81. package/dist/esm/TabPane.js +6 -9
  82. package/dist/esm/Tabbar/style/index.js +1 -1
  83. package/dist/esm/Tabbar.js +10 -8
  84. package/dist/esm/TabbarItem.js +8 -10
  85. package/dist/esm/Table.js +9 -14
  86. package/dist/esm/Tabs.js +11 -12
  87. package/dist/esm/Tag.js +8 -9
  88. package/dist/esm/TextArea.js +11 -11
  89. package/dist/esm/TimeDetail.js +8 -11
  90. package/dist/esm/TimePannel.js +8 -11
  91. package/dist/esm/TimeSelect.js +18 -21
  92. package/dist/esm/Toast.js +9 -10
  93. package/dist/esm/TrendArrow.js +8 -9
  94. package/dist/esm/Uploader.js +14 -19
  95. package/dist/esm/UserContext-ab42ba7f.js +5 -0
  96. package/dist/esm/Video.js +8 -9
  97. package/dist/esm/VirtualList.js +8 -11
  98. package/dist/esm/WaterMark.js +10 -13
  99. package/dist/esm/actionsheet.taro-d2217152.js +61 -0
  100. package/dist/esm/address.taro-1a8ab3f1.js +470 -0
  101. package/dist/esm/animate.taro-c8b29242.js +44 -0
  102. package/dist/esm/animatingnumbers.taro-c2a52dbd.js +103 -0
  103. package/dist/esm/audio.taro-bbd39f93.js +185 -0
  104. package/dist/esm/avatar.taro-01536aff.js +100 -0
  105. package/dist/esm/avatargroup-ad5ffb46.js +34 -0
  106. package/dist/esm/backtop.taro-7de36464.js +48 -0
  107. package/dist/esm/badge.taro-872605bf.js +48 -0
  108. package/dist/esm/barrage.taro-c8cb9864.js +91 -0
  109. package/dist/esm/bem-cdccae08.js +5 -0
  110. package/dist/esm/button.taro-01eae688.js +72 -0
  111. package/dist/esm/calendar.taro-10a6cb11.js +70 -0
  112. package/dist/esm/calendaritem.taro-3e5f114e.js +732 -0
  113. package/dist/esm/can-use-dom-0e539bd3.js +4 -0
  114. package/dist/esm/card.taro-2080f4d2.js +51 -0
  115. package/dist/esm/cascader.taro-fb7a0230.js +471 -0
  116. package/dist/esm/cell.taro-4e31d1fa.js +48 -0
  117. package/dist/esm/cellgroup.taro-a790d91b.js +28 -0
  118. package/dist/esm/checkbox.taro-016074da.js +177 -0
  119. package/dist/esm/circleprogress.taro-7149e09d.js +104 -0
  120. package/dist/esm/col.taro-d6a46a7d.js +41 -0
  121. package/dist/esm/collapse.taro-3d997680.js +70 -0
  122. package/dist/esm/collapseitem-f4571575.js +76 -0
  123. package/dist/esm/configprovider.taro-25758d9f.js +462 -0
  124. package/dist/esm/context-ab42ba7f.js +5 -0
  125. package/dist/esm/context-d0fccf11.js +5 -0
  126. package/dist/esm/countdown.taro-22200811.js +210 -0
  127. package/dist/esm/datepicker.taro-65dbeceb.js +260 -0
  128. package/dist/esm/dialog.taro-290eb9a6.js +128 -0
  129. package/dist/esm/divider.taro-0cb5f894.js +31 -0
  130. package/dist/esm/drag.taro-48e1ff38.js +111 -0
  131. package/dist/esm/elevator.taro-df8fde9d.js +206 -0
  132. package/dist/esm/ellipsis.taro-f9688dd7.js +242 -0
  133. package/dist/esm/empty.taro-ca792f57.js +59 -0
  134. package/dist/esm/fixednav.taro-28e5f776.js +61 -0
  135. package/dist/esm/form.taro-b06754e8.js +182 -0
  136. package/dist/esm/formitem.taro-b326809d.js +108 -0
  137. package/dist/esm/grid.taro-fbbd8618.js +52 -0
  138. package/dist/esm/griditem.taro-b0c37077.js +85 -0
  139. package/dist/esm/image.taro-767aa000.js +65 -0
  140. package/dist/esm/imagepreview.taro-daa5a84f.js +180 -0
  141. package/dist/esm/index-e3184f19.js +9 -0
  142. package/dist/esm/indicator.taro-edbc71df.js +30 -0
  143. package/dist/esm/infiniteloading.taro-f8f23ac6.js +143 -0
  144. package/dist/esm/input.taro-27d686c9.js +164 -0
  145. package/dist/esm/inputnumber.taro-6657d2c1.js +197 -0
  146. package/dist/esm/layout.taro-9659a928.js +11 -0
  147. package/dist/esm/menu.taro-cd0fef41.js +122 -0
  148. package/dist/esm/menuitem.taro-6076bffa.js +142 -0
  149. package/dist/esm/navbar.taro-5e1a0835.js +61 -0
  150. package/dist/esm/noticebar.taro-2f02b2ad.js +369 -0
  151. package/dist/esm/notify.taro-5768403d.js +75 -0
  152. package/dist/esm/numberkeyboard.taro-ad8afaf9.js +136 -0
  153. package/dist/esm/nutui-react.es.js +206 -118
  154. package/dist/esm/offsetContext-f32a9246.js +5 -0
  155. package/dist/esm/overlay.taro-75012bd3.js +77 -0
  156. package/dist/esm/pagination.taro-63607c3b.js +94 -0
  157. package/dist/esm/picker.taro-0570ec32.js +481 -0
  158. package/dist/esm/popover.taro-ad483372.js +162 -0
  159. package/dist/esm/popup.taro-e756f3fc.js +150 -0
  160. package/dist/esm/price.taro-479f1b82.js +80 -0
  161. package/dist/esm/progress.taro-437b9f6a.js +66 -0
  162. package/dist/esm/pulltorefresh.taro-6afe4805.js +138 -0
  163. package/dist/esm/radio.taro-5d6ca4ad.js +153 -0
  164. package/dist/esm/range.taro-615e193a.js +259 -0
  165. package/dist/esm/rate.taro-78c66969.js +77 -0
  166. package/dist/esm/row.taro-8b7febd4.js +48 -0
  167. package/dist/esm/searchbar.taro-37ade36e.js +159 -0
  168. package/dist/esm/shortpassword.taro-f7292032.js +146 -0
  169. package/dist/esm/sidenavbar.taro-9f210df4.js +51 -0
  170. package/dist/esm/sidenavbaritem.taro-32a45ce6.js +12 -0
  171. package/dist/esm/signature.taro-c57469aa.js +146 -0
  172. package/dist/esm/skeleton.taro-9ff9baf4.js +71 -0
  173. package/dist/esm/step.taro-2f55e4f2.js +63 -0
  174. package/dist/esm/steps.taro-196c1f59.js +31 -0
  175. package/dist/esm/sticky.taro-f8ae8d5e.js +154 -0
  176. package/dist/esm/subsidenavbar.taro-abe07673.js +64 -0
  177. package/dist/esm/swipe.taro-de80fcd8.js +180 -0
  178. package/dist/esm/swiper.taro-4aeb8526.js +86 -0
  179. package/dist/esm/swiperitem.taro-ef7342e8.js +14 -0
  180. package/dist/esm/switch.taro-f0da73a3.js +44 -0
  181. package/dist/esm/tabbar.taro-18eee41f.js +55 -0
  182. package/dist/esm/tabbaritem.taro-89646ca1.js +47 -0
  183. package/dist/esm/table.taro-15a55c5d.js +100 -0
  184. package/dist/esm/tabpane.taro-f8d92ece.js +21 -0
  185. package/dist/esm/tabs.taro-66164782.js +146 -0
  186. package/dist/esm/tag.taro-1b4134a5.js +92 -0
  187. package/dist/esm/textarea.taro-c110565e.js +102 -0
  188. package/dist/esm/timedetail.taro-8d2acbbf.js +41 -0
  189. package/dist/esm/timepannel.taro-ee4c5dfa.js +22 -0
  190. package/dist/esm/timeselect.taro-069deedd.js +133 -0
  191. package/dist/esm/toast.taro-92c10e1d.js +114 -0
  192. package/dist/esm/trendarrow.taro-0cf43935.js +72 -0
  193. package/dist/esm/typings-11d83a22.js +7 -0
  194. package/dist/esm/uploader.taro-7e38fc37.js +519 -0
  195. package/dist/esm/use-client-rect-f317804e.js +10 -0
  196. package/dist/esm/use-props-value-7ac1b1b5.js +16 -0
  197. package/dist/esm/use-touch-ff43512c.js +69 -0
  198. package/dist/esm/video-5d106e33.js +73 -0
  199. package/dist/esm/virtuallist.taro-99f03769.js +195 -0
  200. package/dist/esm/watermark.taro-cef29c03.js +109 -0
  201. package/dist/locales/base.js +1 -1
  202. package/dist/locales/en-US.js +1 -1
  203. package/dist/locales/id-ID.js +1 -1
  204. package/dist/locales/zh-CN.js +1 -1
  205. package/dist/locales/zh-TW.js +1 -1
  206. package/dist/locales/zh-UG.js +1 -1
  207. package/dist/nutui.react.mjs +16980 -22641
  208. package/dist/nutui.react.umd.js +17061 -22738
  209. package/dist/packages/audio/audio.scss +2 -15
  210. package/dist/packages/badge/badge.scss +8 -18
  211. package/dist/packages/calendar/calendar.scss +0 -30
  212. package/dist/packages/cascader/cascader.scss +0 -26
  213. package/dist/packages/cellgroup/cellgroup.scss +20 -16
  214. package/dist/packages/checkbox/checkbox.scss +8 -11
  215. package/dist/packages/circleprogress/circleprogress.scss +0 -9
  216. package/dist/packages/dialog/dialog.scss +36 -65
  217. package/dist/packages/elevator/elevator.scss +2 -28
  218. package/dist/packages/empty/empty.scss +0 -9
  219. package/dist/packages/imagepreview/imagepreview.scss +52 -16
  220. package/dist/packages/input/input.scss +13 -180
  221. package/dist/packages/menu/menu.scss +44 -55
  222. package/dist/packages/menuitem/menuitem.scss +16 -26
  223. package/dist/packages/navbar/navbar.scss +16 -115
  224. package/dist/packages/noticebar/noticebar.scss +18 -19
  225. package/dist/packages/notify/notify.scss +1 -1
  226. package/dist/packages/numberkeyboard/numberkeyboard.scss +29 -77
  227. package/dist/packages/overlay/overlay.scss +11 -4
  228. package/dist/packages/picker/picker.scss +66 -137
  229. package/dist/packages/popup/popup.scss +0 -16
  230. package/dist/packages/price/price.scss +8 -0
  231. package/dist/packages/progress/progress.scss +19 -58
  232. package/dist/packages/pulltorefresh/pulltorefresh.scss +0 -8
  233. package/dist/packages/radio/radio.scss +13 -32
  234. package/dist/packages/radiogroup/radiogroup.scss +17 -51
  235. package/dist/packages/range/range.scss +24 -49
  236. package/dist/packages/row/row.scss +13 -31
  237. package/dist/packages/sidenavbar/sidenavbar.scss +0 -19
  238. package/dist/packages/step/step.scss +9 -62
  239. package/dist/packages/steps/steps.scss +2 -0
  240. package/dist/packages/swiper/swiper.scss +3 -18
  241. package/dist/packages/switch/switch.scss +13 -31
  242. package/dist/packages/tabbar/tabbar.scss +16 -22
  243. package/dist/packages/tabbaritem/tabbaritem.scss +9 -70
  244. package/dist/packages/table/table.scss +0 -56
  245. package/dist/packages/tabs/tabs.scss +196 -225
  246. package/dist/packages/textarea/textarea.scss +5 -12
  247. package/dist/packages/uploader/uploader.scss +2 -28
  248. package/dist/style.css +1 -1
  249. package/dist/style.mjs +1 -1
  250. package/dist/styles/themes/default.scss +17 -18
  251. package/dist/styles/variables-jmapp.scss +120 -240
  252. package/dist/styles/variables.scss +139 -252
  253. package/dist/types/index.d.ts +572 -722
  254. package/package.json +2 -2
  255. package/dist/esm/AvatarContext-c96afdcc.js +0 -5
  256. package/dist/esm/Icon.js +0 -64
  257. package/dist/esm/UserContext-0aac9a82.js +0 -5
  258. package/dist/esm/UserContext-e402e1a6.js +0 -5
  259. package/dist/esm/UserContext-e8176108.js +0 -5
  260. package/dist/esm/actionsheet.taro-b76a342e.js +0 -53
  261. package/dist/esm/address.taro-1812caeb.js +0 -461
  262. package/dist/esm/animate.taro-fb7986d6.js +0 -40
  263. package/dist/esm/animatingnumbers.taro-03e5d61d.js +0 -104
  264. package/dist/esm/audio.taro-f672a68c.js +0 -162
  265. package/dist/esm/avatar.taro-de157a1f.js +0 -105
  266. package/dist/esm/avatargroup-b476ac68.js +0 -34
  267. package/dist/esm/backtop.taro-ba271b8f.js +0 -52
  268. package/dist/esm/badge.taro-ae154f41.js +0 -50
  269. package/dist/esm/barrage.taro-80df08d3.js +0 -94
  270. package/dist/esm/bem-350c1702.js +0 -5
  271. package/dist/esm/button.taro-a1c9512f.js +0 -65
  272. package/dist/esm/calendar.taro-b6b147ca.js +0 -65
  273. package/dist/esm/calendaritem.taro-ae167e59.js +0 -787
  274. package/dist/esm/can-use-dom-3eeb5af4.js +0 -6
  275. package/dist/esm/card.taro-5e9b34c8.js +0 -33
  276. package/dist/esm/cascader.taro-9c0a1a38.js +0 -447
  277. package/dist/esm/cell.taro-26870740.js +0 -43
  278. package/dist/esm/cellgroup.taro-6e901b54.js +0 -24
  279. package/dist/esm/checkbox.taro-785c528b.js +0 -168
  280. package/dist/esm/circleprogress.taro-79854448.js +0 -109
  281. package/dist/esm/col.taro-53eed3cc.js +0 -41
  282. package/dist/esm/collapse.taro-35a8a0d6.js +0 -79
  283. package/dist/esm/collapseitem-690eb91c.js +0 -68
  284. package/dist/esm/configprovider-9960f0fb.js +0 -19
  285. package/dist/esm/configprovider.taro-c8c54556.js +0 -45
  286. package/dist/esm/countdown.taro-0e6bf7a2.js +0 -225
  287. package/dist/esm/datepicker.taro-439e2080.js +0 -275
  288. package/dist/esm/dialog.taro-00ac41fd.js +0 -118
  289. package/dist/esm/divider.taro-6c1657ce.js +0 -31
  290. package/dist/esm/drag.taro-79bb8744.js +0 -110
  291. package/dist/esm/elevator.taro-81a11ecc.js +0 -178
  292. package/dist/esm/ellipsis.taro-b6cda065.js +0 -241
  293. package/dist/esm/empty.taro-fde835ca.js +0 -62
  294. package/dist/esm/fixednav.taro-39fbd47a.js +0 -54
  295. package/dist/esm/form.taro-0d83f1e8.js +0 -179
  296. package/dist/esm/formitem.taro-0de07d1e.js +0 -89
  297. package/dist/esm/get-scroll-parent-b4a07e65.js +0 -25
  298. package/dist/esm/grid.taro-3797169c.js +0 -49
  299. package/dist/esm/griditem.taro-04f59ae1.js +0 -80
  300. package/dist/esm/image.taro-edb572bb.js +0 -64
  301. package/dist/esm/imagepreview.taro-867ee24a.js +0 -167
  302. package/dist/esm/index-5bcb0ff8.js +0 -7
  303. package/dist/esm/indicator.taro-c10334e8.js +0 -30
  304. package/dist/esm/infiniteloading.taro-73c9b8ca.js +0 -141
  305. package/dist/esm/input.taro-10ed5500.js +0 -237
  306. package/dist/esm/inputnumber.taro-108c4784.js +0 -199
  307. package/dist/esm/layout.taro-9046d093.js +0 -11
  308. package/dist/esm/menu.taro-54951911.js +0 -98
  309. package/dist/esm/menuitem.taro-86a6bb6c.js +0 -128
  310. package/dist/esm/navbar.taro-69f47d51.js +0 -77
  311. package/dist/esm/noticebar.taro-49e7441f.js +0 -427
  312. package/dist/esm/notify.taro-e17c6f82.js +0 -75
  313. package/dist/esm/numberkeyboard.taro-81b36e5e.js +0 -159
  314. package/dist/esm/offsetContext-c2a746fa.js +0 -5
  315. package/dist/esm/overlay.taro-ad0d4775.js +0 -75
  316. package/dist/esm/pagination.taro-60b22b27.js +0 -91
  317. package/dist/esm/picker.taro-5c9030a7.js +0 -423
  318. package/dist/esm/popover.taro-2a57eae4.js +0 -153
  319. package/dist/esm/popup.taro-124b9bab.js +0 -142
  320. package/dist/esm/price.taro-776ed16e.js +0 -83
  321. package/dist/esm/progress.taro-24392ef3.js +0 -88
  322. package/dist/esm/pulltorefresh.taro-d5fcfcb0.js +0 -181
  323. package/dist/esm/radio.taro-51e10152.js +0 -177
  324. package/dist/esm/range.taro-7a2b6ca1.js +0 -332
  325. package/dist/esm/rate.taro-57341aa9.js +0 -77
  326. package/dist/esm/row.taro-f64d4a13.js +0 -46
  327. package/dist/esm/searchbar.taro-eef468bb.js +0 -152
  328. package/dist/esm/shortpassword.taro-9a2c98ad.js +0 -119
  329. package/dist/esm/sidenavbar.taro-0265812f.js +0 -35
  330. package/dist/esm/sidenavbaritem.taro-bb80dbf4.js +0 -12
  331. package/dist/esm/signature.taro-f01b2b05.js +0 -143
  332. package/dist/esm/skeleton.taro-64e858a2.js +0 -62
  333. package/dist/esm/step.taro-2ec1f283.js +0 -58
  334. package/dist/esm/steps.taro-c82d2252.js +0 -30
  335. package/dist/esm/sticky.taro-b5bde7b1.js +0 -136
  336. package/dist/esm/subsidenavbar.taro-3cce8442.js +0 -63
  337. package/dist/esm/supports-passive-c85ef996.js +0 -18
  338. package/dist/esm/swipe.taro-350c9a94.js +0 -177
  339. package/dist/esm/swiper.taro-7a94e211.js +0 -451
  340. package/dist/esm/swiperitem-c9e3d0d5.js +0 -29
  341. package/dist/esm/switch.taro-34ca8228.js +0 -50
  342. package/dist/esm/tabbar.taro-9acfc2fa.js +0 -59
  343. package/dist/esm/tabbaritem.taro-42ba353f.js +0 -55
  344. package/dist/esm/table.taro-3946697c.js +0 -95
  345. package/dist/esm/tabpane.taro-4ca340ef.js +0 -23
  346. package/dist/esm/tabs.taro-be8cacb5.js +0 -140
  347. package/dist/esm/tag.taro-0c2567de.js +0 -92
  348. package/dist/esm/textarea.taro-a0f79515.js +0 -94
  349. package/dist/esm/timedetail.taro-fce4e614.js +0 -44
  350. package/dist/esm/timepannel.taro-fd3d008d.js +0 -22
  351. package/dist/esm/timeselect.taro-5b047850.js +0 -133
  352. package/dist/esm/toast.taro-e4f44812.js +0 -108
  353. package/dist/esm/trendarrow.taro-7cf90def.js +0 -70
  354. package/dist/esm/typings-d8491423.js +0 -6
  355. package/dist/esm/uploader.taro-0cca7e97.js +0 -496
  356. package/dist/esm/use-client-rect-1f8ed1fe.js +0 -18
  357. package/dist/esm/use-props-value-ae7ee726.js +0 -15
  358. package/dist/esm/use-touch-db24bb5c.js +0 -69
  359. package/dist/esm/video-7ed508cc.js +0 -67
  360. package/dist/esm/virtuallist.taro-35b9bd9a.js +0 -214
  361. package/dist/esm/watermark.taro-c780d360.js +0 -114
  362. package/dist/esm/zh-CN-b4f493ba.js +0 -131
  363. package/dist/packages/icon/icon.scss +0 -0
@@ -0,0 +1,72 @@
1
+ import React, { useRef } from "react";
2
+ import { TriangleUp, TriangleDown } from "@nutui/icons-react-taro";
3
+ import { c as cn } from "./bem-cdccae08.js";
4
+ const defaultProps = {
5
+ rate: 0,
6
+ digits: 2,
7
+ showSign: false,
8
+ showZero: false,
9
+ arrowLeft: false,
10
+ syncTextColor: true,
11
+ textColor: "#333",
12
+ riseColor: "#fa2c19",
13
+ dropColor: "#64b578",
14
+ upIcon: null,
15
+ downIcon: null,
16
+ className: ""
17
+ };
18
+ const TrendArrow = (props) => {
19
+ const { rate, digits, showSign, showZero, arrowLeft, syncTextColor, textColor, riseColor, dropColor, upIcon, downIcon, className, children, ...rest } = { ...defaultProps, ...props };
20
+ const b = cn("trendarrow");
21
+ const handleClick = () => {
22
+ };
23
+ const rateTrend = useRef(rate > 0);
24
+ const myFixed = (num, digit = 2) => {
25
+ if (Object.is(parseFloat(num), NaN)) {
26
+ return console.log(`传入的值:${num}不是一个数字`);
27
+ }
28
+ num = parseFloat(num);
29
+ const numPow = Math.pow(10, digit);
30
+ return (Math.round((num + Number.EPSILON) * numPow) / numPow).toFixed(digit);
31
+ };
32
+ const calcStyle = (() => {
33
+ const arrowColor = rateTrend.current ? riseColor : dropColor;
34
+ const textEquArrowColor = syncTextColor ? arrowColor : textColor;
35
+ const style = {
36
+ color: rate === 0 ? textColor : textEquArrowColor
37
+ };
38
+ return style;
39
+ })();
40
+ const calcRate = (() => {
41
+ rateTrend.current = rate > 0;
42
+ const absRate = Math.abs(rate);
43
+ if (!showZero && rate === 0) {
44
+ return "--";
45
+ }
46
+ const resultRate = `${// eslint-disable-next-line no-nested-ternary
47
+ showSign && rate !== 0 ? rateTrend.current ? "+" : "-" : ""}${myFixed(Number(absRate), digits)}%`;
48
+ return resultRate;
49
+ })();
50
+ const calcIconProps = (() => {
51
+ const iconProps = {
52
+ color: rateTrend.current ? riseColor : dropColor
53
+ };
54
+ return iconProps;
55
+ })();
56
+ const renderContent = (arrowLeft2) => {
57
+ const classNameSuffix = !arrowLeft2 ? "icon-after" : "icon-before";
58
+ return React.createElement("span", { className: `${b(classNameSuffix)} ${b("rate")}`, style: calcStyle }, calcRate);
59
+ };
60
+ return React.createElement(
61
+ "div",
62
+ { className: `${b()} ${className}`, ...rest, onClick: handleClick },
63
+ !arrowLeft && renderContent(!arrowLeft),
64
+ children || React.createElement(React.Fragment, null, Number(rate) !== 0 && React.createElement(React.Fragment, null, rateTrend ? React.createElement(TriangleUp, { color: calcIconProps.color }) : React.createElement(TriangleDown, { color: calcIconProps.color }))),
65
+ arrowLeft && renderContent(!arrowLeft)
66
+ );
67
+ };
68
+ TrendArrow.defaultProps = defaultProps;
69
+ TrendArrow.displayName = "NutTrendArrow";
70
+ export {
71
+ TrendArrow as T
72
+ };
@@ -0,0 +1,7 @@
1
+ const ComponentDefaults = {
2
+ className: "",
3
+ style: {}
4
+ };
5
+ export {
6
+ ComponentDefaults as C
7
+ };
@@ -0,0 +1,519 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import React, { useState, useEffect, useImperativeHandle } from "react";
8
+ import classNames from "classnames";
9
+ import Taro, { uploadFile, getEnv, chooseMedia, chooseImage } from "@tarojs/taro";
10
+ import { Failure, Loading, Link, Del, Photograph } from "@nutui/icons-react-taro";
11
+ import { Image } from "@tarojs/components";
12
+ import { B as Button } from "./button.taro-01eae688.js";
13
+ import { P as Progress } from "./progress.taro-437b9f6a.js";
14
+ import { u as useConfig } from "./configprovider.taro-25758d9f.js";
15
+ import { i as isPromise } from "./index-e3184f19.js";
16
+ import { C as ComponentDefaults } from "./typings-11d83a22.js";
17
+ class UploadOptions {
18
+ constructor() {
19
+ __publicField(this, "url", "");
20
+ __publicField(this, "name", "file");
21
+ __publicField(this, "fileType", "image");
22
+ __publicField(this, "formData");
23
+ __publicField(this, "sourceFile");
24
+ __publicField(this, "method", "post");
25
+ __publicField(this, "xhrState", 200);
26
+ __publicField(this, "timeout", 30 * 1e3);
27
+ __publicField(this, "headers", {});
28
+ __publicField(this, "withCredentials", false);
29
+ __publicField(this, "onStart");
30
+ __publicField(this, "taroFilePath");
31
+ __publicField(this, "onProgress");
32
+ __publicField(this, "onSuccess");
33
+ __publicField(this, "onFailure");
34
+ __publicField(this, "beforeXhrUpload");
35
+ }
36
+ }
37
+ class Upload {
38
+ constructor(options) {
39
+ __publicField(this, "options");
40
+ this.options = options;
41
+ }
42
+ upload() {
43
+ var _a;
44
+ const { options } = this;
45
+ const xhr = new XMLHttpRequest();
46
+ xhr.timeout = options.timeout;
47
+ if (xhr.upload) {
48
+ xhr.upload.addEventListener("progress", (e) => {
49
+ var _a2;
50
+ (_a2 = options.onProgress) == null ? void 0 : _a2.call(options, e, options);
51
+ }, false);
52
+ xhr.onreadystatechange = () => {
53
+ var _a2, _b;
54
+ if (xhr.readyState === 4) {
55
+ if (xhr.status === options.xhrState) {
56
+ (_a2 = options.onSuccess) == null ? void 0 : _a2.call(options, xhr.responseText, options);
57
+ } else {
58
+ (_b = options.onFailure) == null ? void 0 : _b.call(options, xhr.responseText, options);
59
+ }
60
+ }
61
+ };
62
+ xhr.withCredentials = options.withCredentials;
63
+ xhr.open(options.method, options.url, true);
64
+ for (const [key, value] of Object.entries(options.headers)) {
65
+ xhr.setRequestHeader(key, value);
66
+ }
67
+ (_a = options.onStart) == null ? void 0 : _a.call(options, options);
68
+ if (options.beforeXhrUpload) {
69
+ options.beforeXhrUpload(xhr, options);
70
+ } else {
71
+ xhr.send(options.formData);
72
+ }
73
+ } else {
74
+ console.warn("浏览器不支持 XMLHttpRequest");
75
+ }
76
+ }
77
+ }
78
+ class UploaderTaro extends Upload {
79
+ constructor(options) {
80
+ super(options);
81
+ }
82
+ uploadTaro(uploadFile2, env) {
83
+ var _a;
84
+ const options = this.options;
85
+ if (env === "WEB") {
86
+ this.upload();
87
+ } else {
88
+ if (options.beforeXhrUpload) {
89
+ options.beforeXhrUpload(uploadFile2, options);
90
+ } else {
91
+ const uploadTask = uploadFile2({
92
+ url: options.url,
93
+ filePath: options.taroFilePath,
94
+ fileType: options.fileType,
95
+ header: {
96
+ "Content-Type": "multipart/form-data",
97
+ ...options.headers
98
+ },
99
+ formData: options.formData,
100
+ name: options.name,
101
+ success(response) {
102
+ var _a2, _b;
103
+ if (options.xhrState == response.statusCode) {
104
+ (_a2 = options.onSuccess) == null ? void 0 : _a2.call(options, response, options);
105
+ } else {
106
+ (_b = options.onFailure) == null ? void 0 : _b.call(options, response, options);
107
+ }
108
+ },
109
+ fail(e) {
110
+ var _a2;
111
+ (_a2 = options.onFailure) == null ? void 0 : _a2.call(options, e, options);
112
+ }
113
+ });
114
+ (_a = options.onStart) == null ? void 0 : _a.call(options, options);
115
+ uploadTask.progress((res) => {
116
+ var _a2;
117
+ (_a2 = options.onProgress) == null ? void 0 : _a2.call(options, res, options);
118
+ });
119
+ }
120
+ }
121
+ }
122
+ }
123
+ const funcInterceptor = (interceptor, { args = [], done, canceled }) => {
124
+ if (interceptor) {
125
+ const returnVal = interceptor.apply(null, args);
126
+ if (isPromise(returnVal)) {
127
+ returnVal.then((value) => {
128
+ if (value) {
129
+ done(value);
130
+ } else if (canceled) {
131
+ canceled();
132
+ }
133
+ }).catch(() => {
134
+ });
135
+ } else if (returnVal) {
136
+ done();
137
+ } else if (canceled) {
138
+ canceled();
139
+ }
140
+ } else {
141
+ done();
142
+ }
143
+ };
144
+ const defaultProps = {
145
+ ...ComponentDefaults,
146
+ url: "",
147
+ maxCount: 1,
148
+ sizeType: ["original", "compressed"],
149
+ sourceType: ["album", "camera"],
150
+ mediaType: ["image", "video"],
151
+ camera: "back",
152
+ uploadIcon: null,
153
+ uploadLabel: "",
154
+ previewType: "picture",
155
+ imageFit: "cover",
156
+ name: "file",
157
+ accept: "*",
158
+ disabled: false,
159
+ autoUpload: true,
160
+ multiple: false,
161
+ maxFileSize: Number.MAX_VALUE,
162
+ data: {},
163
+ headers: {},
164
+ method: "post",
165
+ previewUrl: "",
166
+ xhrState: 200,
167
+ timeout: 1e3 * 30,
168
+ preview: true,
169
+ deletable: true,
170
+ maxDuration: 10,
171
+ beforeDelete: (file, files) => {
172
+ return true;
173
+ }
174
+ };
175
+ class FileItem {
176
+ constructor() {
177
+ __publicField(this, "status", "ready");
178
+ __publicField(this, "message", "准备中..");
179
+ __publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
180
+ __publicField(this, "name");
181
+ __publicField(this, "url");
182
+ __publicField(this, "type");
183
+ __publicField(this, "path");
184
+ __publicField(this, "percentage", 0);
185
+ __publicField(this, "formData", {});
186
+ }
187
+ }
188
+ const InternalUploader = (props, ref) => {
189
+ const { locale } = useConfig();
190
+ const { children, uploadIcon, uploadLabel, accept, name, camera, defaultValue, value, previewType, imageFit, disabled, multiple, url, previewUrl, headers, timeout, method, xhrState, data, preview, deletable, maxCount, maxFileSize, mediaType, className, autoUpload, sizeType, sourceType, maxDuration, onStart, onDelete, onChange, onFileItemClick, onProgress, onSuccess, onUpdate, onFailure, onOversize, beforeXhrUpload, beforeDelete, ...restProps } = { ...defaultProps, ...props };
191
+ const [fileList, setFileList] = useState(defaultValue || []);
192
+ const [uploadQueue, setUploadQueue] = useState([]);
193
+ useEffect(() => {
194
+ if (value) {
195
+ setFileList(value);
196
+ }
197
+ }, [value]);
198
+ const classes = classNames(className, "nut-uploader");
199
+ useImperativeHandle(ref, () => ({
200
+ submit: () => {
201
+ Promise.all(uploadQueue).then((res) => {
202
+ res.forEach((i) => i.uploadTaro(uploadFile, getEnv()));
203
+ });
204
+ },
205
+ clear: () => {
206
+ clearUploadQueue();
207
+ }
208
+ }));
209
+ const clearUploadQueue = (index = -1) => {
210
+ if (index > -1) {
211
+ uploadQueue.splice(index, 1);
212
+ setUploadQueue(uploadQueue);
213
+ } else {
214
+ setUploadQueue([]);
215
+ fileList.splice(0, fileList.length);
216
+ setFileList([...fileList]);
217
+ }
218
+ };
219
+ const _chooseImage = () => {
220
+ if (disabled) {
221
+ return;
222
+ }
223
+ if (Taro.getEnv() === "WEB") {
224
+ const el = document.getElementById("taroChooseImage");
225
+ if (el) {
226
+ el == null ? void 0 : el.setAttribute("accept", accept);
227
+ } else {
228
+ const obj = document.createElement("input");
229
+ obj.setAttribute("type", "file");
230
+ obj.setAttribute("id", "taroChooseImage");
231
+ obj.setAttribute("accept", accept);
232
+ obj.setAttribute("style", "position: fixed; top: -4000px; left: -3000px; z-index: -300;");
233
+ document.body.appendChild(obj);
234
+ }
235
+ }
236
+ if (getEnv() === "WEAPP") {
237
+ chooseMedia({
238
+ /** 最多可以选择的文件个数 */
239
+ count: multiple ? maxCount * 1 - fileList.length : 1,
240
+ /** 文件类型 */
241
+ mediaType,
242
+ /** 图片和视频选择的来源 */
243
+ sourceType,
244
+ /** 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 30s 之间 */
245
+ maxDuration,
246
+ /** 仅对 mediaType 为 image 时有效,是否压缩所选文件 */
247
+ sizeType: [],
248
+ /** 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头 */
249
+ camera,
250
+ /** 接口调用失败的回调函数 */
251
+ fail: (res) => {
252
+ onFailure && onFailure(res);
253
+ },
254
+ /** 接口调用成功的回调函数 */
255
+ success: onChangeMedia
256
+ });
257
+ } else {
258
+ chooseImage({
259
+ // 选择数量
260
+ count: multiple ? maxCount * 1 - fileList.length : 1,
261
+ // 可以指定是原图还是压缩图,默认二者都有
262
+ sizeType,
263
+ sourceType,
264
+ success: onChangeImage,
265
+ fail: (res) => {
266
+ onFailure && onFailure(res);
267
+ }
268
+ });
269
+ }
270
+ };
271
+ const executeUpload = (fileItem, index) => {
272
+ const uploadOption = new UploadOptions();
273
+ uploadOption.name = name;
274
+ uploadOption.url = url;
275
+ uploadOption.fileType = fileItem.type;
276
+ uploadOption.formData = fileItem.formData;
277
+ uploadOption.timeout = timeout * 1;
278
+ uploadOption.method = method;
279
+ uploadOption.xhrState = xhrState;
280
+ uploadOption.headers = headers;
281
+ uploadOption.taroFilePath = fileItem.path;
282
+ uploadOption.beforeXhrUpload = beforeXhrUpload;
283
+ uploadOption.onStart = (option) => {
284
+ clearUploadQueue(index);
285
+ setFileList((fileList2) => {
286
+ fileList2.map((item) => {
287
+ if (item.uid === fileItem.uid) {
288
+ item.status = "ready";
289
+ item.message = locale.uploader.readyUpload;
290
+ }
291
+ });
292
+ return [...fileList2];
293
+ });
294
+ onStart && onStart(option);
295
+ };
296
+ uploadOption.onProgress = (e, option) => {
297
+ setFileList((fileList2) => {
298
+ fileList2.map((item) => {
299
+ if (item.uid === fileItem.uid) {
300
+ item.status = "uploading";
301
+ item.message = locale.uploader.uploading;
302
+ item.percentage = e.progress;
303
+ onProgress && onProgress({ e, option, percentage: item.percentage });
304
+ }
305
+ });
306
+ return [...fileList2];
307
+ });
308
+ };
309
+ uploadOption.onSuccess = (responseText, option) => {
310
+ setFileList((fileList2) => {
311
+ onUpdate && onUpdate(fileList2);
312
+ fileList2.map((item) => {
313
+ if (item.uid === fileItem.uid) {
314
+ item.status = "success";
315
+ item.message = locale.uploader.success;
316
+ }
317
+ });
318
+ return [...fileList2];
319
+ });
320
+ onSuccess && onSuccess({
321
+ responseText,
322
+ option,
323
+ fileList
324
+ });
325
+ };
326
+ uploadOption.onFailure = (responseText, option) => {
327
+ setFileList((fileList2) => {
328
+ fileList2.map((item) => {
329
+ if (item.uid === fileItem.uid) {
330
+ item.status = "error";
331
+ item.message = locale.uploader.error;
332
+ }
333
+ });
334
+ return [...fileList2];
335
+ });
336
+ onFailure && onFailure({
337
+ responseText,
338
+ option,
339
+ fileList
340
+ });
341
+ };
342
+ const task = new UploaderTaro(uploadOption);
343
+ if (props.autoUpload) {
344
+ task.uploadTaro(uploadFile, getEnv());
345
+ } else {
346
+ uploadQueue.push(new Promise((resolve, reject) => {
347
+ resolve(task);
348
+ }));
349
+ setUploadQueue(uploadQueue);
350
+ }
351
+ };
352
+ const readFile = (files) => {
353
+ files.forEach((file, index) => {
354
+ var _a, _b;
355
+ let fileType = file.type;
356
+ const filepath = file.tempFilePath || file.path;
357
+ const fileItem = new FileItem();
358
+ if (file.fileType) {
359
+ fileType = file.fileType;
360
+ } else {
361
+ const imgReg = /\.(png|jpeg|jpg|webp|gif)$/i;
362
+ if (!fileType && (imgReg.test(filepath) || filepath.includes("data:image"))) {
363
+ fileType = "image";
364
+ }
365
+ }
366
+ fileItem.path = filepath;
367
+ fileItem.name = filepath;
368
+ fileItem.status = "ready";
369
+ fileItem.type = fileType;
370
+ if (autoUpload) {
371
+ fileItem.message = locale.uploader.readyUpload;
372
+ } else {
373
+ fileItem.message = locale.uploader.waitingUpload;
374
+ }
375
+ if (getEnv() === "WEB") {
376
+ const formData = new FormData();
377
+ for (const [key, value2] of Object.entries(data)) {
378
+ formData.append(key, value2);
379
+ }
380
+ formData.append(name, file.originalFileObj);
381
+ fileItem.name = (_a = file.originalFileObj) == null ? void 0 : _a.name;
382
+ fileItem.type = (_b = file.originalFileObj) == null ? void 0 : _b.type;
383
+ fileItem.formData = formData;
384
+ } else {
385
+ fileItem.formData = data;
386
+ }
387
+ if (preview) {
388
+ fileItem.url = fileType == "video" ? file.thumbTempFilePath : filepath;
389
+ }
390
+ fileList.push(fileItem);
391
+ setFileList([...fileList]);
392
+ executeUpload(fileItem, index);
393
+ });
394
+ };
395
+ const filterFiles = (files) => {
396
+ const maximum = props.maxCount * 1;
397
+ const maximize = props.maxFileSize * 1;
398
+ const oversizes = new Array();
399
+ const filterFile = files.filter((file) => {
400
+ if (file.size > maximize) {
401
+ oversizes.push(file);
402
+ return false;
403
+ }
404
+ return true;
405
+ });
406
+ if (oversizes.length) {
407
+ onOversize && onOversize(files);
408
+ }
409
+ const currentFileLength = filterFile.length + fileList.length;
410
+ if (currentFileLength > maximum) {
411
+ filterFile.splice(filterFile.length - (currentFileLength - maximum));
412
+ }
413
+ return filterFile;
414
+ };
415
+ const deleted = (file, index) => {
416
+ fileList.splice(index, 1);
417
+ onDelete && onDelete(file, fileList);
418
+ setFileList([...fileList]);
419
+ };
420
+ const onDeleteItem = (file, index) => {
421
+ clearUploadQueue(index);
422
+ funcInterceptor(beforeDelete, {
423
+ args: [file, fileList],
424
+ done: () => deleted(file, index)
425
+ });
426
+ };
427
+ const onChangeMedia = (res) => {
428
+ const { tempFiles } = res;
429
+ const _files = filterFiles(tempFiles);
430
+ readFile(_files);
431
+ onChange && onChange({ fileList });
432
+ };
433
+ const onChangeImage = (res) => {
434
+ const { tempFiles } = res;
435
+ const _files = filterFiles(tempFiles);
436
+ readFile(_files);
437
+ onChange && onChange({ fileList });
438
+ };
439
+ const handleItemClick = (file) => {
440
+ onFileItemClick && onFileItemClick(file);
441
+ };
442
+ return React.createElement(
443
+ "div",
444
+ { className: classes, ...restProps },
445
+ children && React.createElement(
446
+ "div",
447
+ { className: "nut-uploader__slot" },
448
+ React.createElement(
449
+ React.Fragment,
450
+ null,
451
+ children,
452
+ maxCount > fileList.length && React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
453
+ )
454
+ ),
455
+ fileList.length !== 0 && fileList.map((item, index) => {
456
+ return React.createElement(
457
+ "div",
458
+ { className: `nut-uploader__preview ${previewType}`, key: item.uid },
459
+ previewType === "picture" && !children && React.createElement(
460
+ "div",
461
+ { className: "nut-uploader__preview-img" },
462
+ deletable && React.createElement(Failure, { color: "rgba(0,0,0,0.6)", className: "close", onClick: () => onDeleteItem(item, index) }),
463
+ item.status === "ready" ? React.createElement(
464
+ "div",
465
+ { className: "nut-uploader__preview__progress" },
466
+ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)
467
+ ) : item.status !== "success" && React.createElement(
468
+ "div",
469
+ { className: "nut-uploader__preview__progress" },
470
+ item.failIcon !== " " && item.loadingIcon !== " " && (item.status === "error" ? item.failIcon || React.createElement(Failure, { color: "#fff" }) : item.loadingIcon || React.createElement(Loading, { color: "#fff" })),
471
+ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)
472
+ ),
473
+ item.type.includes("image") ? React.createElement(React.Fragment, null, item.url && React.createElement(Image, { className: "nut-uploader__preview-img__c", style: { objectFit: imageFit }, mode: "aspectFit", src: item.url, onClick: () => handleItemClick(item) })) : React.createElement(React.Fragment, null, previewUrl ? React.createElement(Image, { className: "nut-uploader__preview-img__c", mode: "aspectFit", src: previewUrl, onClick: () => handleItemClick(item) }) : React.createElement(
474
+ "div",
475
+ { className: "nut-uploader__preview-img__file" },
476
+ React.createElement(
477
+ "div",
478
+ { onClick: () => handleItemClick(item), className: "nut-uploader__preview-img__file__name" },
479
+ React.createElement(Link, { color: "#808080" }),
480
+ " ",
481
+ item.name
482
+ )
483
+ )),
484
+ item.status === "success" ? React.createElement("div", { className: "tips" }, item.name) : null
485
+ ),
486
+ previewType === "list" && React.createElement(
487
+ "div",
488
+ { className: "nut-uploader__preview-list" },
489
+ React.createElement(
490
+ "div",
491
+ { className: `nut-uploader__preview-img__file__name ${item.status}`, onClick: () => handleItemClick(item) },
492
+ React.createElement(Link, null),
493
+ " ",
494
+ item.name
495
+ ),
496
+ deletable && React.createElement(Del, { color: "#808080", className: "nut-uploader__preview-img__file__del", onClick: () => onDeleteItem(item, index) }),
497
+ item.status === "uploading" && React.createElement(Progress, { percent: item.percentage, color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)", showText: false })
498
+ )
499
+ );
500
+ }),
501
+ maxCount > fileList.length && previewType === "picture" && !children && React.createElement(
502
+ "div",
503
+ { className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}` },
504
+ React.createElement(
505
+ "div",
506
+ { className: "nut-uploader__icon" },
507
+ uploadIcon || React.createElement(Photograph, { size: "20px", color: "#808080" }),
508
+ React.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)
509
+ ),
510
+ React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
511
+ )
512
+ );
513
+ };
514
+ const Uploader = React.forwardRef(InternalUploader);
515
+ Uploader.defaultProps = defaultProps;
516
+ Uploader.displayName = "NutUploader";
517
+ export {
518
+ Uploader as U
519
+ };
@@ -0,0 +1,10 @@
1
+ const getRectByTaro = async (element) => {
2
+ if (element) {
3
+ const res = await element.getBoundingClientRect();
4
+ return res;
5
+ }
6
+ return Promise.resolve({});
7
+ };
8
+ export {
9
+ getRectByTaro as g
10
+ };
@@ -0,0 +1,16 @@
1
+ import { useState } from "react";
2
+ function usePropsValue({ value, defaultValue, finalValue, onChange = (value2) => {
3
+ } }) {
4
+ const [uncontrolled, setUncontrolled] = useState(defaultValue !== void 0 ? defaultValue : finalValue);
5
+ const handleUncontrolledChange = (val) => {
6
+ setUncontrolled(val);
7
+ onChange == null ? void 0 : onChange(val);
8
+ };
9
+ if (value !== void 0) {
10
+ return [value, onChange];
11
+ }
12
+ return [uncontrolled, handleUncontrolledChange];
13
+ }
14
+ export {
15
+ usePropsValue as u
16
+ };
@@ -0,0 +1,69 @@
1
+ import { useState } from "react";
2
+ const MIN_DISTANCE = 10;
3
+ function getDirection(x, y) {
4
+ if (x > y && x > MIN_DISTANCE) {
5
+ return "horizontal";
6
+ }
7
+ if (y > x && y > MIN_DISTANCE) {
8
+ return "vertical";
9
+ }
10
+ return "";
11
+ }
12
+ function useTouch() {
13
+ const [startX, SetStartX] = useState(0);
14
+ const [startY, SetStartY] = useState(0);
15
+ const [moveX, SetMoveX] = useState(0);
16
+ const [moveY, SetMoveY] = useState(0);
17
+ const [deltaX, SetDeltaX] = useState(0);
18
+ const [deltaY, SetDeltaY] = useState(0);
19
+ const [offsetX, SetOffsetX] = useState(0);
20
+ const [offsetY, SetOffsetY] = useState(0);
21
+ const [direction, SetDirection] = useState("");
22
+ const isVertical = () => direction === "vertical";
23
+ const isHorizontal = () => direction === "horizontal";
24
+ const reset = () => {
25
+ SetDeltaX(0);
26
+ SetDeltaY(0);
27
+ SetOffsetX(0);
28
+ SetOffsetY(0);
29
+ SetDirection("");
30
+ };
31
+ const start = (event) => {
32
+ reset();
33
+ SetStartX(event.touches[0].clientX);
34
+ SetStartY(event.touches[0].clientY);
35
+ };
36
+ const move = (event) => {
37
+ const touch = event.touches[0];
38
+ const dX = touch.clientX - startX;
39
+ const dY = touch.clientY - startY;
40
+ SetDeltaX(dX);
41
+ SetDeltaY(dY);
42
+ SetMoveX(touch.clientX);
43
+ SetMoveY(touch.clientY);
44
+ SetOffsetX(Math.abs(dX));
45
+ SetOffsetY(Math.abs(dY));
46
+ if (!direction) {
47
+ SetDirection(getDirection(offsetX, offsetY));
48
+ }
49
+ };
50
+ return {
51
+ move,
52
+ start,
53
+ reset,
54
+ startX,
55
+ startY,
56
+ moveX,
57
+ moveY,
58
+ deltaX,
59
+ deltaY,
60
+ offsetX,
61
+ offsetY,
62
+ direction,
63
+ isVertical,
64
+ isHorizontal
65
+ };
66
+ }
67
+ export {
68
+ useTouch as u
69
+ };