@nutui/nutui-react-taro 3.0.0-beta.12 → 3.0.0-beta.14

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 (253) hide show
  1. package/dist/cjs/{utils → hooks}/use-click-away.js +2 -2
  2. package/dist/cjs/{utils → hooks}/use-isomprphic-layout-effect.js +1 -1
  3. package/dist/cjs/{utils → hooks}/use-lock-scroll.js +2 -2
  4. package/dist/cjs/packages/address/address.d.ts +1 -1
  5. package/dist/cjs/packages/address/address.js +1 -1
  6. package/dist/cjs/packages/animate/animate.js +5 -6
  7. package/dist/cjs/packages/animate/style/animate.scss +63 -105
  8. package/dist/cjs/packages/animate/style/style.css +45 -44
  9. package/dist/cjs/packages/animate/style/style.harmony.css +45 -44
  10. package/dist/cjs/packages/avatarcropper/avatarcropper.js +3 -2
  11. package/dist/cjs/packages/badge/badge.js +10 -11
  12. package/dist/cjs/packages/calendar/style/calendar.scss +25 -31
  13. package/dist/cjs/packages/calendar/style/style.css +14 -20
  14. package/dist/cjs/packages/calendar/style/style.harmony.css +14 -20
  15. package/dist/cjs/packages/calendarcard/calendarcard.js +1 -1
  16. package/dist/cjs/packages/calendaritem/calendaritem.js +1 -2
  17. package/dist/cjs/packages/cascader/cascader.js +1 -1
  18. package/dist/cjs/packages/checkbox/checkbox.js +1 -1
  19. package/dist/cjs/packages/checkboxgroup/checkboxgroup.js +1 -1
  20. package/dist/cjs/packages/circleprogress/circleprogress.js +1 -1
  21. package/dist/cjs/packages/collapse/collapse.js +1 -1
  22. package/dist/cjs/packages/configprovider/configprovider.js +1 -1
  23. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  24. package/dist/cjs/packages/datepicker/datepicker.js +1 -1
  25. package/dist/cjs/packages/datepicker/style/style.css +2 -2
  26. package/dist/cjs/packages/dialog/dialog.js +2 -2
  27. package/dist/cjs/packages/drag/drag.js +3 -2
  28. package/dist/cjs/packages/elevator/elevator.js +1 -1
  29. package/dist/cjs/packages/imagepreview/imagepreview.js +1 -1
  30. package/dist/cjs/packages/input/input.js +1 -1
  31. package/dist/cjs/packages/inputnumber/inputnumber.js +1 -1
  32. package/dist/cjs/packages/lottie/mp.js +3 -2
  33. package/dist/cjs/packages/menuitem/menuitem.js +5 -4
  34. package/dist/cjs/packages/notify/notify.js +1 -1
  35. package/dist/cjs/packages/nutui.react.build.d.ts +3 -1
  36. package/dist/cjs/packages/nutui.react.build.js +122 -118
  37. package/dist/cjs/packages/nutui.react.d.ts +4 -1
  38. package/dist/cjs/packages/nutui.react.js +123 -118
  39. package/dist/cjs/packages/nutui.react.scss.d.ts +1 -0
  40. package/dist/cjs/packages/nutui.react.scss.js +1 -0
  41. package/dist/cjs/packages/overlay/overlay.js +1 -1
  42. package/dist/cjs/packages/pagination/pagination.js +1 -1
  43. package/dist/cjs/packages/picker/picker.js +2 -2
  44. package/dist/cjs/packages/picker/pickerpanel.js +1 -1
  45. package/dist/cjs/packages/picker/style/style.css +2 -2
  46. package/dist/cjs/packages/picker/style/style.harmony.css +2 -2
  47. package/dist/cjs/packages/pickerview/index.d.ts +3 -0
  48. package/dist/cjs/packages/pickerview/index.js +13 -0
  49. package/dist/cjs/packages/pickerview/pickerroller.d.ts +7 -0
  50. package/dist/cjs/packages/pickerview/pickerroller.js +186 -0
  51. package/dist/cjs/packages/pickerview/pickerview.d.ts +4 -0
  52. package/dist/cjs/packages/pickerview/pickerview.js +201 -0
  53. package/dist/cjs/packages/pickerview/style/css.js +1 -0
  54. package/dist/cjs/packages/pickerview/style/index.js +1 -0
  55. package/dist/cjs/packages/pickerview/style/pickerview.scss +79 -0
  56. package/dist/cjs/packages/pickerview/style/style.css +73 -0
  57. package/dist/cjs/packages/pickerview/style/style.harmony.css +83 -0
  58. package/dist/cjs/packages/pickerview/types.d.ts +32 -0
  59. package/dist/cjs/packages/pickerview/types.js +4 -0
  60. package/dist/cjs/packages/pickerview/utils.d.ts +14 -0
  61. package/dist/cjs/packages/pickerview/utils.js +46 -0
  62. package/dist/cjs/packages/popover/popover.d.ts +2 -2
  63. package/dist/cjs/packages/popover/popover.js +1 -1
  64. package/dist/cjs/packages/popover/types.d.ts +3 -2
  65. package/dist/cjs/packages/popup/popup.js +1 -1
  66. package/dist/cjs/packages/progress/progress.js +1 -1
  67. package/dist/cjs/packages/pulltorefresh/pulltorefresh.js +3 -2
  68. package/dist/cjs/packages/radio/radio.js +1 -1
  69. package/dist/cjs/packages/radiogroup/radiogroup.js +1 -1
  70. package/dist/cjs/packages/range/range.js +2 -2
  71. package/dist/cjs/packages/rate/rate.js +2 -2
  72. package/dist/cjs/packages/segmented/segmented.js +1 -1
  73. package/dist/cjs/packages/shortpassword/shortpassword.js +1 -1
  74. package/dist/cjs/packages/sidebar/sidebar.js +3 -3
  75. package/dist/cjs/packages/sticky/sticky.js +3 -2
  76. package/dist/cjs/packages/swipe/swipe.js +2 -2
  77. package/dist/cjs/packages/switch/switch.js +1 -1
  78. package/dist/cjs/packages/tabbar/style/style.css +2 -9
  79. package/dist/cjs/packages/tabbar/tabbar.js +1 -1
  80. package/dist/cjs/packages/tabbaritem/style/style.css +2 -9
  81. package/dist/cjs/packages/tabbaritem/style/style.harmony.css +1 -1
  82. package/dist/cjs/packages/tabbaritem/style/tabbaritem.scss +2 -10
  83. package/dist/cjs/packages/tabbaritem/tabbaritem.js +9 -11
  84. package/dist/cjs/packages/table/table.js +1 -1
  85. package/dist/cjs/packages/tabs/tabs.js +3 -3
  86. package/dist/cjs/packages/textarea/textarea.d.ts +3 -3
  87. package/dist/cjs/packages/textarea/textarea.js +19 -22
  88. package/dist/cjs/packages/toast/toast.js +2 -2
  89. package/dist/cjs/packages/tour/tour.d.ts +1 -1
  90. package/dist/cjs/packages/tour/tour.js +1 -1
  91. package/dist/cjs/packages/uploader/types.d.ts +2 -1
  92. package/dist/cjs/packages/uploader/uploader.js +1 -1
  93. package/dist/cjs/packages/virtuallist/virtuallist.js +2 -2
  94. package/dist/cjs/utils/get-rect-by-taro.js +1 -1
  95. package/dist/cjs/utils/get-system-info.d.ts +19 -0
  96. package/dist/cjs/utils/get-system-info.js +32 -0
  97. package/dist/es/{utils → hooks}/use-click-away.js +3 -2
  98. package/dist/es/{utils → hooks}/use-isomprphic-layout-effect.js +1 -1
  99. package/dist/es/{utils → hooks}/use-lock-scroll.js +2 -2
  100. package/dist/es/packages/address/address.d.ts +1 -1
  101. package/dist/es/packages/address/address.js +1 -1
  102. package/dist/es/packages/animate/animate.js +5 -6
  103. package/dist/es/packages/animate/style/animate.scss +63 -105
  104. package/dist/es/packages/animate/style/style.css +45 -44
  105. package/dist/es/packages/animate/style/style.harmony.css +45 -44
  106. package/dist/es/packages/audio/audio.d.ts +30 -10
  107. package/dist/es/packages/avatarcropper/avatarcropper.js +3 -2
  108. package/dist/es/packages/badge/badge.js +10 -11
  109. package/dist/es/packages/calendar/calendar.d.ts +27 -135
  110. package/dist/es/packages/calendar/style/calendar.scss +25 -31
  111. package/dist/es/packages/calendar/style/style.css +14 -20
  112. package/dist/es/packages/calendar/style/style.harmony.css +14 -20
  113. package/dist/es/packages/calendarcard/calendarcard.js +1 -1
  114. package/dist/es/packages/calendaritem/calendaritem.js +1 -2
  115. package/dist/es/packages/cascader/cascader.js +1 -1
  116. package/dist/es/packages/checkbox/checkbox.js +1 -1
  117. package/dist/es/packages/checkboxgroup/checkboxgroup.js +1 -1
  118. package/dist/es/packages/circleprogress/circleprogress.d.ts +1 -1
  119. package/dist/es/packages/circleprogress/circleprogress.js +1 -1
  120. package/dist/es/packages/collapse/collapse.js +1 -1
  121. package/dist/es/packages/configprovider/configprovider.js +1 -1
  122. package/dist/es/packages/configprovider/types.d.ts +1 -1
  123. package/dist/es/packages/datepicker/datepicker.js +1 -1
  124. package/dist/es/packages/datepicker/style/style.css +2 -2
  125. package/dist/es/packages/dialog/dialog.js +2 -2
  126. package/dist/es/packages/drag/drag.js +4 -3
  127. package/dist/es/packages/elevator/elevator.js +1 -1
  128. package/dist/es/packages/form/form.d.ts +1 -1
  129. package/dist/es/packages/imagepreview/imagepreview.js +1 -1
  130. package/dist/es/packages/input/input.js +1 -1
  131. package/dist/es/packages/inputnumber/inputnumber.js +1 -1
  132. package/dist/es/packages/lottie/mp.js +4 -3
  133. package/dist/es/packages/menuitem/menuitem.js +6 -5
  134. package/dist/es/packages/noticebar/noticebar.d.ts +1 -1
  135. package/dist/es/packages/notify/notify.js +1 -1
  136. package/dist/es/packages/nutui.react.build.d.ts +3 -1
  137. package/dist/es/packages/nutui.react.build.js +3 -1
  138. package/dist/es/packages/overlay/overlay.js +1 -1
  139. package/dist/es/packages/pagination/pagination.js +1 -1
  140. package/dist/es/packages/picker/picker.js +2 -2
  141. package/dist/es/packages/picker/pickerpanel.js +1 -1
  142. package/dist/es/packages/picker/style/style.css +2 -2
  143. package/dist/es/packages/picker/style/style.harmony.css +2 -2
  144. package/dist/es/packages/pickerview/index.d.ts +3 -0
  145. package/dist/es/packages/pickerview/index.js +2 -0
  146. package/dist/es/packages/pickerview/pickerroller.d.ts +7 -0
  147. package/dist/es/packages/pickerview/pickerroller.js +175 -0
  148. package/dist/es/packages/pickerview/pickerview.d.ts +4 -0
  149. package/dist/es/packages/pickerview/pickerview.js +189 -0
  150. package/dist/es/packages/pickerview/style/css.js +1 -0
  151. package/dist/es/packages/pickerview/style/index.js +1 -0
  152. package/dist/es/packages/pickerview/style/pickerview.scss +79 -0
  153. package/dist/es/packages/pickerview/style/style.css +73 -0
  154. package/dist/es/packages/pickerview/style/style.harmony.css +83 -0
  155. package/dist/es/packages/pickerview/types.d.ts +32 -0
  156. package/dist/es/packages/pickerview/types.js +1 -0
  157. package/dist/es/packages/pickerview/utils.d.ts +14 -0
  158. package/dist/es/packages/pickerview/utils.js +28 -0
  159. package/dist/es/packages/popover/popover.d.ts +2 -2
  160. package/dist/es/packages/popover/popover.js +1 -1
  161. package/dist/es/packages/popover/types.d.ts +3 -2
  162. package/dist/es/packages/popup/popup.js +1 -1
  163. package/dist/es/packages/progress/progress.js +1 -1
  164. package/dist/es/packages/pulltorefresh/pulltorefresh.js +3 -2
  165. package/dist/es/packages/radio/radio.js +1 -1
  166. package/dist/es/packages/radiogroup/radiogroup.js +1 -1
  167. package/dist/es/packages/range/range.js +2 -2
  168. package/dist/es/packages/rate/rate.js +2 -2
  169. package/dist/es/packages/segmented/segmented.js +1 -1
  170. package/dist/es/packages/shortpassword/shortpassword.js +1 -1
  171. package/dist/es/packages/sidebar/sidebar.js +3 -3
  172. package/dist/es/packages/sticky/sticky.js +4 -3
  173. package/dist/es/packages/swipe/swipe.js +2 -2
  174. package/dist/es/packages/switch/switch.js +1 -1
  175. package/dist/es/packages/tabbar/style/style.css +2 -9
  176. package/dist/es/packages/tabbar/tabbar.js +1 -1
  177. package/dist/es/packages/tabbaritem/style/style.css +2 -9
  178. package/dist/es/packages/tabbaritem/style/style.harmony.css +1 -1
  179. package/dist/es/packages/tabbaritem/style/tabbaritem.scss +2 -10
  180. package/dist/es/packages/tabbaritem/tabbaritem.js +9 -11
  181. package/dist/es/packages/table/table.js +1 -1
  182. package/dist/es/packages/tabs/tabs.js +3 -3
  183. package/dist/es/packages/textarea/textarea.d.ts +3 -3
  184. package/dist/es/packages/textarea/textarea.js +20 -23
  185. package/dist/es/packages/toast/toast.js +2 -2
  186. package/dist/es/packages/tour/tour.d.ts +1 -1
  187. package/dist/es/packages/tour/tour.js +1 -1
  188. package/dist/es/packages/uploader/types.d.ts +2 -1
  189. package/dist/es/packages/uploader/uploader.js +1 -1
  190. package/dist/es/packages/virtuallist/virtuallist.d.ts +1 -1
  191. package/dist/es/packages/virtuallist/virtuallist.js +2 -2
  192. package/dist/es/utils/get-rect-by-taro.js +1 -1
  193. package/dist/es/utils/get-system-info.d.ts +19 -0
  194. package/dist/es/utils/get-system-info.js +19 -0
  195. package/dist/nutui.react.umd.js +529 -172
  196. package/dist/style.css +1 -1
  197. package/dist/style.scss +24 -23
  198. package/dist/styles/variables.scss +3 -1
  199. package/package.json +1 -80
  200. /package/dist/cjs/{utils → hooks}/use-click-away.d.ts +0 -0
  201. /package/dist/cjs/{utils → hooks}/use-client-rect.d.ts +0 -0
  202. /package/dist/cjs/{utils → hooks}/use-client-rect.js +0 -0
  203. /package/dist/cjs/{utils → hooks}/use-custom-event.d.ts +0 -0
  204. /package/dist/cjs/{utils → hooks}/use-custom-event.js +0 -0
  205. /package/dist/cjs/{utils → hooks}/use-force-update.d.ts +0 -0
  206. /package/dist/cjs/{utils → hooks}/use-force-update.js +0 -0
  207. /package/dist/cjs/{utils → hooks}/use-isomprphic-layout-effect.d.ts +0 -0
  208. /package/dist/cjs/{utils → hooks}/use-lock-scoll-taro.d.ts +0 -0
  209. /package/dist/cjs/{utils → hooks}/use-lock-scoll-taro.js +0 -0
  210. /package/dist/cjs/{utils → hooks}/use-lock-scroll.d.ts +0 -0
  211. /package/dist/cjs/{utils → hooks}/use-memo.d.ts +0 -0
  212. /package/dist/cjs/{utils → hooks}/use-memo.js +0 -0
  213. /package/dist/cjs/{utils → hooks}/use-props-value.d.ts +0 -0
  214. /package/dist/cjs/{utils → hooks}/use-props-value.js +0 -0
  215. /package/dist/cjs/{utils → hooks}/use-ref-state.d.ts +0 -0
  216. /package/dist/cjs/{utils → hooks}/use-ref-state.js +0 -0
  217. /package/dist/cjs/{utils → hooks}/use-refs.d.ts +0 -0
  218. /package/dist/cjs/{utils → hooks}/use-refs.js +0 -0
  219. /package/dist/cjs/{utils → hooks}/use-taro-rect.d.ts +0 -0
  220. /package/dist/cjs/{utils → hooks}/use-taro-rect.js +0 -0
  221. /package/dist/cjs/{utils → hooks}/use-touch.d.ts +0 -0
  222. /package/dist/cjs/{utils → hooks}/use-touch.js +0 -0
  223. /package/dist/cjs/{utils → hooks}/use-uuid.d.ts +0 -0
  224. /package/dist/cjs/{utils → hooks}/use-uuid.js +0 -0
  225. /package/dist/cjs/{utils → hooks}/use-watch.d.ts +0 -0
  226. /package/dist/cjs/{utils → hooks}/use-watch.js +0 -0
  227. /package/dist/es/{utils → hooks}/use-click-away.d.ts +0 -0
  228. /package/dist/es/{utils → hooks}/use-client-rect.d.ts +0 -0
  229. /package/dist/es/{utils → hooks}/use-client-rect.js +0 -0
  230. /package/dist/es/{utils → hooks}/use-custom-event.d.ts +0 -0
  231. /package/dist/es/{utils → hooks}/use-custom-event.js +0 -0
  232. /package/dist/es/{utils → hooks}/use-force-update.d.ts +0 -0
  233. /package/dist/es/{utils → hooks}/use-force-update.js +0 -0
  234. /package/dist/es/{utils → hooks}/use-isomprphic-layout-effect.d.ts +0 -0
  235. /package/dist/es/{utils → hooks}/use-lock-scoll-taro.d.ts +0 -0
  236. /package/dist/es/{utils → hooks}/use-lock-scoll-taro.js +0 -0
  237. /package/dist/es/{utils → hooks}/use-lock-scroll.d.ts +0 -0
  238. /package/dist/es/{utils → hooks}/use-memo.d.ts +0 -0
  239. /package/dist/es/{utils → hooks}/use-memo.js +0 -0
  240. /package/dist/es/{utils → hooks}/use-props-value.d.ts +0 -0
  241. /package/dist/es/{utils → hooks}/use-props-value.js +0 -0
  242. /package/dist/es/{utils → hooks}/use-ref-state.d.ts +0 -0
  243. /package/dist/es/{utils → hooks}/use-ref-state.js +0 -0
  244. /package/dist/es/{utils → hooks}/use-refs.d.ts +0 -0
  245. /package/dist/es/{utils → hooks}/use-refs.js +0 -0
  246. /package/dist/es/{utils → hooks}/use-taro-rect.d.ts +0 -0
  247. /package/dist/es/{utils → hooks}/use-taro-rect.js +0 -0
  248. /package/dist/es/{utils → hooks}/use-touch.d.ts +0 -0
  249. /package/dist/es/{utils → hooks}/use-touch.js +0 -0
  250. /package/dist/es/{utils → hooks}/use-uuid.d.ts +0 -0
  251. /package/dist/es/{utils → hooks}/use-uuid.js +0 -0
  252. /package/dist/es/{utils → hooks}/use-watch.d.ts +0 -0
  253. /package/dist/es/{utils → hooks}/use-watch.js +0 -0
@@ -3,7 +3,7 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
4
  import React, { useState, useEffect, useRef, useImperativeHandle } from "react";
5
5
  import { View } from "@tarojs/components";
6
- import { useTouch } from "../../utils/use-touch";
6
+ import { useTouch } from "../../hooks/use-touch";
7
7
  import { getRectByTaro } from "../../utils/get-rect-by-taro";
8
8
  import { passiveSupported } from "../../utils/supports-passive";
9
9
  var InternalPickerPanel = function(props, ref) {
@@ -429,7 +429,7 @@
429
429
  .nut-picker-list {
430
430
  flex: 1;
431
431
  position: relative;
432
- height: var(--nutui-picker-list-height, 252px);
432
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
433
433
  overflow: hidden;
434
434
  text-align: center;
435
435
  }
@@ -450,7 +450,7 @@
450
450
  z-index: 3;
451
451
  }
452
452
  .nut-picker-view-panel {
453
- height: var(--nutui-picker-list-height, 252px);
453
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
454
454
  flex-grow: 1;
455
455
  }
456
456
  .nut-picker-content, .nut-picker-roller {
@@ -65,7 +65,7 @@
65
65
  .nut-picker-list {
66
66
  flex: 1;
67
67
  position: relative;
68
- height: 252px;
68
+ height: calc(36px * 7);
69
69
  overflow: hidden;
70
70
  text-align: center;
71
71
  }
@@ -86,7 +86,7 @@
86
86
  z-index: 3;
87
87
  }
88
88
  .nut-picker-view-panel {
89
- height: 252px;
89
+ height: calc(36px * 7);
90
90
  flex-grow: 1;
91
91
  }
92
92
  .nut-picker-content {
@@ -0,0 +1,3 @@
1
+ import PickerView from "./pickerview";
2
+ export type { PickerViewProps, PickerOptionItem, PickerRollerProps, PickerValue, PickerOptions, PickerOnChangeCallbackParameter, } from './types';
3
+ export default PickerView;
@@ -0,0 +1,2 @@
1
+ import PickerView from "./pickerview";
2
+ export default PickerView;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { PickerRollerProps } from './types';
3
+ declare const PickerRoller: React.ForwardRefExoticComponent<Partial<PickerRollerProps> & React.RefAttributes<{
4
+ stopMomentum: () => void;
5
+ moving: boolean;
6
+ }>>;
7
+ export default PickerRoller;
@@ -0,0 +1,175 @@
1
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
2
+ import React, { useState, useEffect, useRef, useImperativeHandle } from "react";
3
+ import { View } from "@tarojs/components";
4
+ import { useTouch } from "../../hooks/use-touch";
5
+ import { passiveSupported } from "../../utils/supports-passive";
6
+ import { web } from "../../utils/platform-taro";
7
+ import { preventDefault } from "../../utils";
8
+ import { momentum, useStyles } from "./utils";
9
+ var InternalPickerRoller = function(props, ref) {
10
+ var _props_keyIndex = props.keyIndex, keyIndex = _props_keyIndex === void 0 ? 0 : _props_keyIndex, _props_options = props.options, options = _props_options === void 0 ? [] : _props_options, _props_threeDimensional = props.threeDimensional, threeDimensional = _props_threeDimensional === void 0 ? true : _props_threeDimensional, _props_duration = props.duration, duration = _props_duration === void 0 ? 1000 : _props_duration, onSelect = props.onSelect, _props_renderLabel = props.renderLabel, renderLabel = _props_renderLabel === void 0 ? function(item) {
11
+ return item.label;
12
+ } : _props_renderLabel;
13
+ var DEFAULT_DURATION = 200;
14
+ var INERTIA_TIME = 300;
15
+ var INERTIA_DISTANCE = 15;
16
+ var ROTATION = 20;
17
+ var touch = useTouch();
18
+ var _useState = _sliced_to_array(useState(1), 2), currentIndex = _useState[0], setCurrentIndex = _useState[1];
19
+ var lineSpacing = useRef(36);
20
+ var _useState1 = _sliced_to_array(useState(0), 2), touchTime = _useState1[0], setTouchTime = _useState1[1];
21
+ var _useState2 = _sliced_to_array(useState('0deg'), 2), touchDeg = _useState2[0], setTouchDeg = _useState2[1];
22
+ var isMoving = useRef(false);
23
+ var rollerRef = useRef(null);
24
+ var pickerRollerRef = useRef(null);
25
+ var _useState3 = _sliced_to_array(useState(0), 2), startTime = _useState3[0], setStartTime = _useState3[1];
26
+ var _useState4 = _sliced_to_array(useState(0), 2), startY = _useState4[0], setStartY = _useState4[1];
27
+ var transformY = useRef(0);
28
+ var _useState5 = _sliced_to_array(useState(0), 2), scrollDistance = _useState5[0], setScrollDistance = _useState5[1];
29
+ var _useStyles = useStyles(touchTime, touchDeg, scrollDistance, lineSpacing, ROTATION), touchRollerStyle = _useStyles.touchRollerStyle, touchTiledStyle = _useStyles.touchTiledStyle, rollerStyle = _useStyles.rollerStyle;
30
+ var isItemHidden = function(index) {
31
+ return index >= currentIndex + 8 || index <= currentIndex - 8;
32
+ };
33
+ var applyTransform = function(type, deg) {
34
+ var time = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_DURATION, translateY = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
35
+ setTouchTime(type !== 'end' ? 0 : time);
36
+ setTouchDeg(deg);
37
+ setScrollDistance(translateY);
38
+ };
39
+ var handleMove = function(move, type, time) {
40
+ var updatedMove = move + transformY.current;
41
+ if (type === 'end') {
42
+ updatedMove = Math.max(Math.min(updatedMove, 0), -(options.length - 1) * lineSpacing.current);
43
+ // 滚动距离为lineSpacing.current的倍数值
44
+ var endMove = Math.round(updatedMove / lineSpacing.current) * lineSpacing.current;
45
+ var deg = "".concat((Math.abs(Math.round(endMove / lineSpacing.current)) + 1) * ROTATION, "deg");
46
+ applyTransform(type, deg, time, endMove);
47
+ setCurrentIndex(Math.abs(Math.round(endMove / lineSpacing.current)) + 1);
48
+ } else {
49
+ var currentDeg = (-updatedMove / lineSpacing.current + 1) * ROTATION;
50
+ var deg1 = Math.min(Math.max(currentDeg, 0), (options.length + 1) * ROTATION);
51
+ if (deg1 >= 0 && deg1 < (options.length + 1) * ROTATION) {
52
+ applyTransform('', "".concat(deg1, "deg"), undefined, updatedMove);
53
+ setCurrentIndex(Math.abs(Math.round(updatedMove / lineSpacing.current)) + 1);
54
+ }
55
+ }
56
+ };
57
+ var selectValue = function(move) {
58
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(options === null || options === void 0 ? void 0 : options[Math.round(-move / lineSpacing.current)], keyIndex);
59
+ };
60
+ var handleTouchStart = function(event) {
61
+ touch.start(event);
62
+ setStartY(touch.deltaY.current);
63
+ setStartTime(Date.now());
64
+ transformY.current = scrollDistance;
65
+ };
66
+ var handleTouchMove = function(event) {
67
+ touch.move(event);
68
+ if (touch.isVertical) {
69
+ isMoving.current = true;
70
+ preventDefault(event, true);
71
+ }
72
+ var move = touch.deltaY.current - startY;
73
+ handleMove(move);
74
+ };
75
+ var handleTouchEnd = function() {
76
+ if (!isMoving.current) return;
77
+ var move = touch.deltaY.current - startY;
78
+ var moveTime = Date.now() - startTime;
79
+ if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {
80
+ var distance = momentum(move, moveTime);
81
+ handleMove(distance, 'end', +duration);
82
+ } else {
83
+ handleMove(move, 'end');
84
+ }
85
+ setTimeout(function() {
86
+ touch.reset();
87
+ }, 0);
88
+ };
89
+ var updateStatus = function(shouldSelect, value) {
90
+ var selectedValue = value || props.value;
91
+ var index = options.findIndex(function(item) {
92
+ return item.value === selectedValue;
93
+ });
94
+ setCurrentIndex(index === -1 ? 1 : index + 1);
95
+ var move = index * lineSpacing.current;
96
+ shouldSelect && selectValue(-move);
97
+ handleMove(-move);
98
+ };
99
+ var stopMomentumScroll = function() {
100
+ isMoving.current = false;
101
+ setTouchTime(0);
102
+ selectValue(scrollDistance);
103
+ };
104
+ // lineSpacing.current CSS variable
105
+ useEffect(function() {
106
+ var element = pickerRollerRef.current;
107
+ if (element && web()) {
108
+ var computedStyle = getComputedStyle(element);
109
+ var currentLineSpacing = computedStyle.getPropertyValue('--nutui-picker-item-height');
110
+ !!currentLineSpacing && (lineSpacing.current = parseFloat(currentLineSpacing));
111
+ }
112
+ }, [
113
+ pickerRollerRef.current
114
+ ]);
115
+ useEffect(function() {
116
+ isMoving.current = false;
117
+ setScrollDistance(0);
118
+ transformY.current = 0;
119
+ updateStatus(false);
120
+ }, [
121
+ options,
122
+ props.value
123
+ ]);
124
+ useImperativeHandle(ref, function() {
125
+ return {
126
+ stopMomentum: stopMomentumScroll,
127
+ moving: isMoving.current
128
+ };
129
+ });
130
+ useEffect(function() {
131
+ var _pickerRollerRef_current, _pickerRollerRef_current1, _pickerRollerRef_current2;
132
+ var eventOptions = passiveSupported ? {
133
+ passive: false,
134
+ once: true
135
+ } : false;
136
+ (_pickerRollerRef_current = pickerRollerRef.current) === null || _pickerRollerRef_current === void 0 ? void 0 : _pickerRollerRef_current.addEventListener('touchstart', handleTouchStart, eventOptions);
137
+ (_pickerRollerRef_current1 = pickerRollerRef.current) === null || _pickerRollerRef_current1 === void 0 ? void 0 : _pickerRollerRef_current1.addEventListener('touchmove', handleTouchMove, eventOptions);
138
+ (_pickerRollerRef_current2 = pickerRollerRef.current) === null || _pickerRollerRef_current2 === void 0 ? void 0 : _pickerRollerRef_current2.addEventListener('touchend', handleTouchEnd, eventOptions);
139
+ return function() {
140
+ var _pickerRollerRef_current, _pickerRollerRef_current1, _pickerRollerRef_current2;
141
+ (_pickerRollerRef_current = pickerRollerRef.current) === null || _pickerRollerRef_current === void 0 ? void 0 : _pickerRollerRef_current.removeEventListener('touchstart', handleTouchStart, eventOptions);
142
+ (_pickerRollerRef_current1 = pickerRollerRef.current) === null || _pickerRollerRef_current1 === void 0 ? void 0 : _pickerRollerRef_current1.removeEventListener('touchmove', handleTouchMove, eventOptions);
143
+ (_pickerRollerRef_current2 = pickerRollerRef.current) === null || _pickerRollerRef_current2 === void 0 ? void 0 : _pickerRollerRef_current2.removeEventListener('touchend', handleTouchEnd, eventOptions);
144
+ };
145
+ }, [
146
+ pickerRollerRef.current,
147
+ handleTouchStart,
148
+ handleTouchMove,
149
+ handleTouchEnd
150
+ ]);
151
+ return /*#__PURE__*/ React.createElement(View, {
152
+ className: "nut-pickerview-list",
153
+ ref: pickerRollerRef
154
+ }, /*#__PURE__*/ React.createElement(View, {
155
+ className: "nut-pickerview-roller",
156
+ ref: rollerRef,
157
+ style: threeDimensional ? touchRollerStyle() : touchTiledStyle(),
158
+ onTransitionEnd: stopMomentumScroll
159
+ }, threeDimensional && options.map(function(item, index) {
160
+ var _item_value;
161
+ return /*#__PURE__*/ React.createElement(View, {
162
+ className: "nut-pickerview-roller-item ".concat(isItemHidden(index + 1) && 'nut-pickerview-roller-item-hidden'),
163
+ style: rollerStyle(index),
164
+ key: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : index
165
+ }, renderLabel(item));
166
+ }), !threeDimensional && options.map(function(item, index) {
167
+ var _item_value;
168
+ return /*#__PURE__*/ React.createElement(View, {
169
+ className: "nut-pickerview-roller-item-tiled",
170
+ key: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : index
171
+ }, renderLabel(item));
172
+ })));
173
+ };
174
+ var PickerRoller = /*#__PURE__*/ React.forwardRef(InternalPickerRoller);
175
+ export default PickerRoller;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { PickerViewProps } from './types';
3
+ declare const PickerView: React.ForwardRefExoticComponent<Partial<PickerViewProps> & React.RefAttributes<unknown>>;
4
+ export default PickerView;
@@ -0,0 +1,189 @@
1
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
4
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
6
+ import classNames from "classnames";
7
+ import { View } from "@tarojs/components";
8
+ import isEqual from "react-fast-compare";
9
+ import { ComponentDefaults } from "../../utils/typings";
10
+ import { usePropsValue } from "../../hooks/use-props-value";
11
+ import PickerRoller from "./pickerroller";
12
+ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
13
+ options: [],
14
+ defaultValue: [],
15
+ value: undefined,
16
+ renderLabel: function(item) {
17
+ return item.label;
18
+ }
19
+ });
20
+ var InternalPickerView = function(props, ref) {
21
+ var _$_object_spread = _object_spread({}, defaultProps, props), options = _$_object_spread.options, _object_spread_defaultValue = _$_object_spread.defaultValue, defaultValue = _object_spread_defaultValue === void 0 ? [] : _object_spread_defaultValue, value = _$_object_spread.value, duration = _$_object_spread.duration, threeDimensional = _$_object_spread.threeDimensional, renderLabel = _$_object_spread.renderLabel, className = _$_object_spread.className, style = _$_object_spread.style, onChange = _$_object_spread.onChange;
22
+ var classPrefix = 'nut-pickerview';
23
+ var cls = classNames(classPrefix, className);
24
+ var _usePropsValue = _sliced_to_array(usePropsValue({
25
+ value: value,
26
+ defaultValue: _to_consumable_array(defaultValue),
27
+ finalValue: _to_consumable_array(defaultValue)
28
+ }), 1), selectedValue = _usePropsValue[0];
29
+ var _useState = _sliced_to_array(useState(selectedValue), 2), innerValue = _useState[0], setInnerValue = _useState[1];
30
+ var _useState1 = _sliced_to_array(useState([]), 2), innerOptions = _useState1[0], setInnerOptions = _useState1[1];
31
+ var changeIndex = useRef(0);
32
+ /**
33
+ * 数据类型:级联、多列
34
+ */ var columnsType = useMemo(function() {
35
+ var firstColumn = props.options[0] || [];
36
+ if (Array.isArray(firstColumn) && firstColumn.length > 0 && 'children' in firstColumn[0]) {
37
+ return 'cascade';
38
+ }
39
+ return 'multiple';
40
+ }, [
41
+ props.options
42
+ ]);
43
+ var formatCascadeOptions = function(options, value) {
44
+ var _loop = function() {
45
+ var currentOptions = columnOptions.children;
46
+ formatted.push(currentOptions);
47
+ var currentValue = value === null || value === void 0 ? void 0 : value[columnIndex];
48
+ if (currentValue === 0) {
49
+ // 如果 currentValue 为 0,返回第一个 children
50
+ columnOptions = currentOptions[0];
51
+ } else if (currentValue) {
52
+ // 如果 currentValue 存在,查找匹配的项
53
+ var index = currentOptions.findIndex(function(columnItem) {
54
+ return columnItem.value === currentValue;
55
+ });
56
+ columnOptions = currentOptions[index === -1 ? 0 : index] // 如果未找到,默认取第一个
57
+ ;
58
+ } else {
59
+ return "break" // 如果 currentValue 不存在,终止循环
60
+ ;
61
+ }
62
+ columnIndex++;
63
+ };
64
+ if (!options.length) return [] // 如果 options 为空,直接返回空数组
65
+ ;
66
+ var formatted = [];
67
+ var columnOptions = {
68
+ label: '',
69
+ value: '',
70
+ children: options
71
+ };
72
+ var columnIndex = 0;
73
+ while(columnOptions && columnOptions.children){
74
+ var _ret = _loop();
75
+ if (_ret === "break") break;
76
+ }
77
+ return formatted;
78
+ };
79
+ var formatOptions = useMemo(function() {
80
+ if (columnsType === 'cascade') {
81
+ var _props_options;
82
+ return formatCascadeOptions(props === null || props === void 0 ? void 0 : (_props_options = props.options) === null || _props_options === void 0 ? void 0 : _props_options[0], innerValue);
83
+ }
84
+ return props.options;
85
+ }, [
86
+ innerValue,
87
+ options,
88
+ columnsType
89
+ ]);
90
+ useEffect(function() {
91
+ var options = props.options;
92
+ if (Array.isArray(options) && options.length && options !== innerOptions) {
93
+ setInnerOptions(formatOptions);
94
+ }
95
+ }, [
96
+ props.options,
97
+ innerValue
98
+ ]);
99
+ useEffect(function() {
100
+ if (selectedValue !== innerValue) {
101
+ setInnerValue(selectedValue);
102
+ }
103
+ }, [
104
+ selectedValue
105
+ ]);
106
+ var handleSelect = useCallback(function(option, index) {
107
+ var newValue = option === null || option === void 0 ? void 0 : option.value;
108
+ if (!newValue || innerValue[index] === newValue) return;
109
+ changeIndex.current = index;
110
+ if (columnsType === 'multiple') {
111
+ setInnerValue(function(prev) {
112
+ var next = _to_consumable_array(prev);
113
+ next[index] = newValue;
114
+ return next;
115
+ });
116
+ } else {
117
+ var _option_children, _option_children1, _props_options;
118
+ var startIndex = index;
119
+ var values = [];
120
+ values[index] = option.value;
121
+ while(option === null || option === void 0 ? void 0 : (_option_children = option.children) === null || _option_children === void 0 ? void 0 : _option_children[0]){
122
+ values[index + 1] = option.children[0].value;
123
+ index++;
124
+ option = option.children[0];
125
+ }
126
+ // 当前改变列的下一列 children 值为空
127
+ if (option === null || option === void 0 ? void 0 : (_option_children1 = option.children) === null || _option_children1 === void 0 ? void 0 : _option_children1.length) {
128
+ values[index + 1] = '';
129
+ }
130
+ var combineResult = _to_consumable_array(innerValue.slice(0, startIndex)).concat(_to_consumable_array(values.splice(startIndex)));
131
+ setInnerValue(_to_consumable_array(combineResult));
132
+ var optionFirst = props === null || props === void 0 ? void 0 : (_props_options = props.options) === null || _props_options === void 0 ? void 0 : _props_options[0];
133
+ if (!isEqual(formatCascadeOptions(optionFirst, combineResult), innerOptions)) {
134
+ setInnerOptions(formatCascadeOptions(optionFirst, combineResult));
135
+ }
136
+ }
137
+ }, [
138
+ innerValue,
139
+ props.options,
140
+ columnsType,
141
+ innerOptions
142
+ ]);
143
+ var selectedOptions = useMemo(function() {
144
+ return innerOptions.map(function(columnOptions, index) {
145
+ var selectedOption = columnOptions.find(function(item) {
146
+ return item.value === innerValue[index];
147
+ });
148
+ return selectedOption;
149
+ // return selectedOption || columnOptions[0]
150
+ }).filter(Boolean);
151
+ }, [
152
+ innerOptions,
153
+ innerValue
154
+ ]);
155
+ useEffect(function() {
156
+ onChange === null || onChange === void 0 ? void 0 : onChange({
157
+ value: innerValue,
158
+ index: changeIndex.current,
159
+ selectedOptions: selectedOptions
160
+ });
161
+ }, [
162
+ innerValue,
163
+ selectedOptions,
164
+ onChange
165
+ ]);
166
+ return /*#__PURE__*/ React.createElement(View, {
167
+ className: cls,
168
+ style: style
169
+ }, innerOptions.map(function(item, index) {
170
+ var _props_setRefs;
171
+ return /*#__PURE__*/ React.createElement(PickerRoller, {
172
+ ref: props === null || props === void 0 ? void 0 : (_props_setRefs = props.setRefs) === null || _props_setRefs === void 0 ? void 0 : _props_setRefs.call(props, index),
173
+ key: index,
174
+ keyIndex: index,
175
+ value: innerValue[index],
176
+ options: item,
177
+ renderLabel: renderLabel,
178
+ onSelect: handleSelect,
179
+ duration: duration,
180
+ threeDimensional: threeDimensional
181
+ });
182
+ }), (innerOptions === null || innerOptions === void 0 ? void 0 : innerOptions.length) ? /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(View, {
183
+ className: "nut-pickerview-mask"
184
+ }), /*#__PURE__*/ React.createElement(View, {
185
+ className: "nut-pickerview-indicator"
186
+ })) : null);
187
+ };
188
+ var PickerView = /*#__PURE__*/ React.forwardRef(InternalPickerView);
189
+ export default PickerView;
@@ -0,0 +1 @@
1
+ import './style.css'
@@ -0,0 +1 @@
1
+ import './pickerview.scss';
@@ -0,0 +1,79 @@
1
+ .nut-pickerview {
2
+ --nutui-picker-item-height: 36px;
3
+ position: relative;
4
+ display: flex;
5
+ width: 100%;
6
+ height: $picker-list-height;
7
+ $pickerview-top: calc(($picker-list-height - $picker-item-height) / 2);
8
+ overflow: hidden;
9
+
10
+ &-mask,
11
+ &-indicator {
12
+ position: absolute;
13
+ left: 0;
14
+ right: 0;
15
+ z-index: 3;
16
+ pointer-events: none;
17
+ }
18
+
19
+ &-mask {
20
+ top: 0;
21
+ bottom: 0;
22
+ background-image: $picker-mask-background;
23
+ background-position: top, bottom;
24
+ background-size: 100% $pickerview-top;
25
+ background-repeat: no-repeat;
26
+ transform: translateZ(0);
27
+ }
28
+
29
+ &-indicator {
30
+ top: $pickerview-top;
31
+ height: $picker-item-height;
32
+ border: $picker-item-active-line-border;
33
+ border-left: 0;
34
+ border-right: 0;
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ &-list {
39
+ position: relative;
40
+ flex: 1;
41
+ height: $picker-list-height;
42
+ overflow: hidden;
43
+ touch-action: none;
44
+ }
45
+
46
+ &-roller {
47
+ position: absolute;
48
+ top: $pickerview-top;
49
+ width: 100%;
50
+ height: $picker-item-height;
51
+ z-index: 1;
52
+ transform-style: preserve-3d;
53
+ }
54
+
55
+ &-roller-item {
56
+ position: absolute;
57
+ top: 0;
58
+ backface-visibility: hidden;
59
+ -moz-backface-visibility: hidden;
60
+ -webkit-backface-visibility: hidden;
61
+ &-hidden {
62
+ visibility: hidden;
63
+ opacity: 0;
64
+ }
65
+ }
66
+
67
+ &-roller-item,
68
+ &-roller-item-tiled {
69
+ width: 100%;
70
+ height: $picker-item-height;
71
+ line-height: $picker-item-height;
72
+ color: $picker-item-text-color;
73
+ font-size: $picker-item-text-font-size;
74
+ text-align: center;
75
+ overflow: hidden;
76
+ text-overflow: ellipsis;
77
+ white-space: nowrap;
78
+ }
79
+ }
@@ -0,0 +1,73 @@
1
+ /* #ifdef harmony */
2
+ /* #endif */
3
+ /* #ifndef harmony */
4
+ /* #endif */
5
+ .nut-pickerview {
6
+ --nutui-picker-item-height: 36px;
7
+ position: relative;
8
+ display: flex;
9
+ width: 100%;
10
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
11
+ overflow: hidden;
12
+ }
13
+ .nut-pickerview-mask, .nut-pickerview-indicator {
14
+ position: absolute;
15
+ left: 0;
16
+ right: 0;
17
+ z-index: 3;
18
+ pointer-events: none;
19
+ }
20
+ .nut-pickerview-mask {
21
+ top: 0;
22
+ bottom: 0;
23
+ background-image: var(--picker-mask-background, linear-gradient(180deg, var(--nutui-white-12), var(--nutui-white-7)), linear-gradient(0deg, var(--nutui-white-12), var(--nutui-white-7)));
24
+ background-position: top, bottom;
25
+ background-size: 100% calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
26
+ background-repeat: no-repeat;
27
+ transform: translateZ(0);
28
+ }
29
+ .nut-pickerview-indicator {
30
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
31
+ height: var(--nutui-picker-item-height, 36px);
32
+ border: var(--nutui-picker-item-active-line-border, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
33
+ border-left: 0;
34
+ border-right: 0;
35
+ box-sizing: border-box;
36
+ }
37
+ .nut-pickerview-list {
38
+ position: relative;
39
+ flex: 1;
40
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
41
+ overflow: hidden;
42
+ touch-action: none;
43
+ }
44
+ .nut-pickerview-roller {
45
+ position: absolute;
46
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
47
+ width: 100%;
48
+ height: var(--nutui-picker-item-height, 36px);
49
+ z-index: 1;
50
+ transform-style: preserve-3d;
51
+ }
52
+ .nut-pickerview-roller-item {
53
+ position: absolute;
54
+ top: 0;
55
+ backface-visibility: hidden;
56
+ -moz-backface-visibility: hidden;
57
+ -webkit-backface-visibility: hidden;
58
+ }
59
+ .nut-pickerview-roller-item-hidden {
60
+ visibility: hidden;
61
+ opacity: 0;
62
+ }
63
+ .nut-pickerview-roller-item, .nut-pickerview-roller-item-tiled {
64
+ width: 100%;
65
+ height: var(--nutui-picker-item-height, 36px);
66
+ line-height: var(--nutui-picker-item-height, 36px);
67
+ color: var(--nutui-picker-item-text-color, var(--nutui-color-title, #1a1a1a));
68
+ font-size: var(--nutui-picker-item-text-font-size, var(--nutui-font-size-base, 14px));
69
+ text-align: center;
70
+ overflow: hidden;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
@@ -0,0 +1,83 @@
1
+ /* #ifdef harmony */
2
+ /* #endif */
3
+ /* #ifndef harmony */
4
+ /* #endif */
5
+ .nut-pickerview {
6
+ position: relative;
7
+ display: flex;
8
+ width: 100%;
9
+ height: calc(36px * 7);
10
+ overflow: hidden;
11
+ }
12
+ .nut-pickerview-mask, .nut-pickerview-indicator {
13
+ position: absolute;
14
+ left: 0;
15
+ right: 0;
16
+ z-index: 3;
17
+ pointer-events: none;
18
+ }
19
+ .nut-pickerview-mask {
20
+ top: 0;
21
+ bottom: 0;
22
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)), linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4));
23
+ background-position: top, bottom;
24
+ background-size: 100% calc((36px * 7 - 36px) / 2);
25
+ background-repeat: no-repeat;
26
+ transform: translateZ(0);
27
+ }
28
+ .nut-pickerview-indicator {
29
+ top: calc((36px * 7 - 36px) / 2);
30
+ height: 36px;
31
+ border: 1px solid rgba(0, 0, 0, 0.06);
32
+ border-left: 0;
33
+ border-right: 0;
34
+ box-sizing: border-box;
35
+ }
36
+ .nut-pickerview-list {
37
+ position: relative;
38
+ flex: 1;
39
+ height: calc(36px * 7);
40
+ overflow: hidden;
41
+ touch-action: none;
42
+ }
43
+ .nut-pickerview-roller {
44
+ position: absolute;
45
+ top: calc((36px * 7 - 36px) / 2);
46
+ width: 100%;
47
+ height: 36px;
48
+ z-index: 1;
49
+ transform-style: preserve-3d;
50
+ }
51
+ .nut-pickerview-roller-item {
52
+ position: absolute;
53
+ top: 0;
54
+ backface-visibility: hidden;
55
+ -moz-backface-visibility: hidden;
56
+ -webkit-backface-visibility: hidden;
57
+ }
58
+ .nut-pickerview-roller-item-hidden {
59
+ visibility: hidden;
60
+ opacity: 0;
61
+ }
62
+ .nut-pickerview-roller-item {
63
+ width: 100%;
64
+ height: 36px;
65
+ line-height: 36px;
66
+ color: #1a1a1a;
67
+ font-size: 14px;
68
+ text-align: center;
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ }
73
+ .nut-pickerview-roller-item-tiled {
74
+ width: 100%;
75
+ height: 36px;
76
+ line-height: 36px;
77
+ color: #1a1a1a;
78
+ font-size: 14px;
79
+ text-align: center;
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ white-space: nowrap;
83
+ }