@nutui/nutui-react-taro 1.3.1 → 1.3.2-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 (160) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/ActionSheet.js +5 -5
  3. package/dist/esm/Address.js +11 -7
  4. package/dist/esm/Audio.js +7 -8
  5. package/dist/esm/Avatar.js +3 -3
  6. package/dist/esm/AvatarGroup.js +4 -4
  7. package/dist/esm/BackTop.js +3 -3
  8. package/dist/esm/Badge.js +3 -3
  9. package/dist/esm/Button.js +3 -3
  10. package/dist/esm/Calendar.js +8 -8
  11. package/dist/esm/CalendarItem.js +4 -4
  12. package/dist/esm/Card.js +5 -3
  13. package/dist/esm/Cascader.js +6 -7
  14. package/dist/esm/Cell.js +3 -3
  15. package/dist/esm/Checkbox.js +4 -3
  16. package/dist/esm/ConfigProvider.js +3 -3
  17. package/dist/esm/CountDown.js +4 -4
  18. package/dist/esm/DatePicker.js +5 -7
  19. package/dist/esm/Dialog.js +7 -6
  20. package/dist/esm/Elevator.js +4 -2
  21. package/dist/esm/Empty.js +4 -4
  22. package/dist/esm/FixedNav.js +6 -6
  23. package/dist/esm/Grid.js +4 -4
  24. package/dist/esm/GridItem.js +5 -5
  25. package/dist/esm/ImagePreview.js +7 -6
  26. package/dist/esm/Infiniteloading.js +5 -5
  27. package/dist/esm/Input.js +5 -5
  28. package/dist/esm/InputNumber.js +3 -3
  29. package/dist/esm/MenuItem.js +5 -5
  30. package/dist/esm/NavBar.js +3 -3
  31. package/dist/esm/NoticeBar.js +3 -3
  32. package/dist/esm/NumberKeyboard.js +7 -7
  33. package/dist/esm/Overlay.js +2 -2
  34. package/dist/esm/Pagination.js +4 -4
  35. package/dist/esm/Picker.js +6 -7
  36. package/dist/esm/Popover.js +4 -4
  37. package/dist/esm/Popup.js +4 -4
  38. package/dist/esm/Progress.js +3 -3
  39. package/dist/esm/PullToRefresh/style/index.js +2 -0
  40. package/dist/esm/PullToRefresh.js +7 -0
  41. package/dist/esm/Radio.js +4 -4
  42. package/dist/esm/RadioGroup.js +2 -2
  43. package/dist/esm/Range.js +5 -5
  44. package/dist/esm/Rate.js +3 -3
  45. package/dist/esm/SearchBar.js +5 -5
  46. package/dist/esm/ShortPassword.js +7 -7
  47. package/dist/esm/SideNavBar.js +7 -7
  48. package/dist/esm/Signature.js +6 -6
  49. package/dist/esm/Skeleton.js +4 -3
  50. package/dist/esm/Swiper.js +3 -3
  51. package/dist/esm/TabbarItem.js +3 -3
  52. package/dist/esm/Table.js +5 -5
  53. package/dist/esm/Tabs.js +3 -3
  54. package/dist/esm/Tag.js +3 -3
  55. package/dist/esm/TextArea.js +4 -4
  56. package/dist/esm/TimeDetail.js +4 -4
  57. package/dist/esm/TimePannel.js +4 -4
  58. package/dist/esm/TimeSelect.js +9 -7
  59. package/dist/esm/Toast.js +2 -3
  60. package/dist/esm/Uploader.js +4 -4
  61. package/dist/esm/VirtualList.js +4 -4
  62. package/dist/esm/{actionsheet.taro-f4d407b0.js → actionsheet.taro-1b3e7972.js} +9 -9
  63. package/dist/esm/{address.taro-4765a826.js → address.taro-f045886a.js} +48 -60
  64. package/dist/esm/{audio.taro-cd6cc93b.js → audio.taro-b34a1eb6.js} +3 -3
  65. package/dist/esm/{avatar.taro-0a0472fd.js → avatar.taro-c3a605b9.js} +1 -1
  66. package/dist/esm/{avatargroup-1ca79066.js → avatargroup-5b2584d9.js} +1 -1
  67. package/dist/esm/{backtop.taro-0e2e3946.js → backtop.taro-eb9359e8.js} +1 -1
  68. package/dist/esm/{badge.taro-eeac9de8.js → badge.taro-e6c4fe5f.js} +4 -4
  69. package/dist/esm/{button-521a516b.js → button.taro-bffc9543.js} +1 -1
  70. package/dist/esm/{calendar.taro-1abb1925.js → calendar.taro-1fc76ba0.js} +3 -3
  71. package/dist/esm/{calendaritem.taro-3c06a809.js → calendaritem.taro-11333579.js} +1 -1
  72. package/dist/esm/card.taro-2fbfbf59.js +67 -0
  73. package/dist/esm/{cascader.taro-31dbc60e.js → cascader.taro-d7e71bdf.js} +2 -2
  74. package/dist/esm/{cell.taro-3bb1b0f2.js → cell.taro-263a8927.js} +1 -1
  75. package/dist/esm/checkbox.taro-9d05ae76.js +140 -0
  76. package/dist/esm/{configprovider-9c393a29.js → configprovider-3e87d67a.js} +1 -1
  77. package/dist/esm/{configprovider.taro-1ff7f150.js → configprovider.taro-6c7b3056.js} +1 -1
  78. package/dist/esm/{countdown.taro-b00d0d46.js → countdown.taro-5d5df894.js} +1 -1
  79. package/dist/esm/{datepicker.taro-e385849d.js → datepicker.taro-440e6da6.js} +361 -54
  80. package/dist/esm/{dialog.taro-c80b7b5f.js → dialog.taro-0e53ade9.js} +109 -9
  81. package/dist/esm/{elevator.taro-15b0d8c2.js → elevator.taro-8e385785.js} +39 -47
  82. package/dist/esm/{empty.taro-20b8adac.js → empty.taro-ab9c4f03.js} +1 -1
  83. package/dist/esm/{fixednav.taro-75e35339.js → fixednav.taro-6c0279ba.js} +3 -3
  84. package/dist/esm/{grid.taro-7fb43d02.js → grid.taro-5d75c0ad.js} +1 -1
  85. package/dist/esm/{griditem.taro-8020b409.js → griditem.taro-edb212e3.js} +2 -2
  86. package/dist/esm/imagepreview.taro-dae0757b.js +257 -0
  87. package/dist/esm/{infiniteloading.taro-0a86819e.js → infiniteloading.taro-067759de.js} +2 -2
  88. package/dist/esm/{input.taro-1d23861d.js → input.taro-505632ac.js} +2 -2
  89. package/dist/esm/{inputnumber.taro-75662231.js → inputnumber.taro-102203f3.js} +1 -1
  90. package/dist/esm/{menuitem.taro-56bf3205.js → menuitem.taro-0d8f50f9.js} +7 -7
  91. package/dist/esm/{navbar.taro-f2eae6a6.js → navbar.taro-2e969a0f.js} +1 -1
  92. package/dist/esm/{noticebar.taro-1890c693.js → noticebar.taro-f8bb6ae8.js} +1 -1
  93. package/dist/esm/{numberkeyboard.taro-5d685c76.js → numberkeyboard.taro-cf7d06f4.js} +2 -2
  94. package/dist/esm/nutui-react.es.js +67 -70
  95. package/dist/esm/{overlay-ed3eb37d.js → overlay.taro-be45fed5.js} +0 -0
  96. package/dist/esm/{pagination.taro-10449c4a.js → pagination.taro-62bbd23f.js} +1 -1
  97. package/dist/esm/picker.taro-6b663b69.js +620 -0
  98. package/dist/esm/{popover.taro-9b3da0fa.js → popover.taro-0afa7cfa.js} +2 -2
  99. package/dist/esm/{popup.taro-a89dd3a1.js → popup.taro-8363fbae.js} +2 -2
  100. package/dist/esm/{progress.taro-dd93ac38.js → progress.taro-32ca3a69.js} +1 -1
  101. package/dist/esm/pulltorefresh.taro-8846f019.js +366 -0
  102. package/dist/esm/{radio.taro-32cb0172.js → radio.taro-1c63512f.js} +2 -2
  103. package/dist/esm/{radiogroup-e698d3df.js → radiogroup.taro-b5dad516.js} +0 -0
  104. package/dist/esm/{range.taro-fe08c5f4.js → range.taro-ef3b30f0.js} +2 -119
  105. package/dist/esm/{rate.taro-a0b21714.js → rate.taro-bb2e6c87.js} +1 -1
  106. package/dist/esm/{searchbar.taro-450d2f88.js → searchbar.taro-81867286.js} +2 -2
  107. package/dist/esm/{shortpassword.taro-08a05360.js → shortpassword.taro-2db97cc8.js} +3 -3
  108. package/dist/esm/{sidenavbar.taro-dd471476.js → sidenavbar.taro-e243b626.js} +2 -2
  109. package/dist/esm/{signature.taro-7cb77bab.js → signature.taro-e7369db8.js} +2 -2
  110. package/dist/esm/skeleton.taro-c19acc4e.js +109 -0
  111. package/dist/esm/{swiper.taro-7a2ef124.js → swiper.taro-448cd0ad.js} +56 -41
  112. package/dist/esm/{tabbaritem.taro-a88d3ae7.js → tabbaritem.taro-d0f2cec9.js} +1 -1
  113. package/dist/esm/{table.taro-305e0317.js → table.taro-25aeccba.js} +2 -2
  114. package/dist/esm/{tabs.taro-d1e85ea5.js → tabs.taro-d6006610.js} +1 -1
  115. package/dist/esm/{tag.taro-3bbbb557.js → tag.taro-ce9c52cd.js} +1 -1
  116. package/dist/esm/{textarea.taro-700b04c2.js → textarea.taro-388d1f90.js} +1 -1
  117. package/dist/esm/{timedetail.taro-7cc00243.js → timedetail.taro-519808cf.js} +1 -1
  118. package/dist/esm/{timepannel.taro-e24537e4.js → timepannel.taro-9904f6e6.js} +1 -1
  119. package/dist/esm/{timeselect.taro-210fd548.js → timeselect.taro-eea8d569.js} +16 -111
  120. package/dist/esm/{Notification-422905bd.js → toast.taro-d4ecd6af.js} +115 -1
  121. package/dist/esm/{uploader.taro-f7528535.js → uploader.taro-b232b2d3.js} +1 -1
  122. package/dist/esm/{popup-67173ec6.js → useRefs-032cf186.js} +114 -18
  123. package/dist/esm/{virtuallist.taro-ce9619f9.js → virtuallist.taro-6858f690.js} +1 -1
  124. package/dist/esm/{zh-CN-91090ae2.js → zh-CN-14165629.js} +6 -0
  125. package/dist/locales/base.d.ts +6 -0
  126. package/dist/locales/base.js +1 -1
  127. package/dist/locales/en-US.js +7 -1
  128. package/dist/locales/id-ID.js +7 -1
  129. package/dist/locales/zh-CN.js +7 -1
  130. package/dist/locales/zh-TW.js +7 -1
  131. package/dist/nutui.react.es.js +14924 -14838
  132. package/dist/nutui.react.umd.js +14929 -14842
  133. package/dist/packages/actionsheet/actionsheet.scss +2 -0
  134. package/dist/packages/elevator/elevator.scss +1 -0
  135. package/dist/packages/pulltorefresh/pulltorefresh.scss +18 -0
  136. package/dist/style.css +1 -1
  137. package/dist/style.es.js +1 -1
  138. package/dist/styles/themes/default.scss +1 -0
  139. package/dist/types/actionsheet/actionsheet.taro.d.ts +2 -2
  140. package/dist/types/checkbox/checkbox.taro.d.ts +1 -1
  141. package/dist/types/elevator/elevator.taro.d.ts +2 -2
  142. package/dist/types/nutui.react.d.ts +3 -1
  143. package/dist/types/picker/pickerSlot.taro.d.ts +16 -0
  144. package/dist/types/popup/popup.taro.d.ts +1 -1
  145. package/dist/types/pulltorefresh/index.taro.d.ts +2 -0
  146. package/dist/types/pulltorefresh/pulltorefresh.taro.d.ts +18 -0
  147. package/dist/types/radio/radio.taro.d.ts +1 -1
  148. package/dist/types/radiogroup/index.taro.d.ts +1 -1
  149. package/dist/types/radiogroup/radiogroup.taro.d.ts +11 -0
  150. package/dist/types/timeselect/timeselect.taro.d.ts +1 -1
  151. package/package.json +2 -3
  152. package/dist/esm/button.taro-d5968f9d.js +0 -109
  153. package/dist/esm/card.taro-0861c7b3.js +0 -265
  154. package/dist/esm/checkbox.taro-6fbc4b3c.js +0 -255
  155. package/dist/esm/imagepreview.taro-a0ddd8a2.js +0 -813
  156. package/dist/esm/overlay.taro-a784329e.js +0 -94
  157. package/dist/esm/picker.taro-216cc3cb.js +0 -264
  158. package/dist/esm/pickerSlot-f8e4e542.js +0 -248
  159. package/dist/esm/skeleton.taro-5934c7d7.js +0 -245
  160. package/dist/esm/toast.taro-bb181833.js +0 -122
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  var _excluded = ["isVisible", "title", "listData", "defaultValueData", "onConfirm", "onClose", "onCloseUpdate", "onChange", "className", "style", "threeDimensional", "swipeDuration"],
6
6
  _excluded2 = ["minDate", "maxDate", "type", "isShowChinese", "minuteStep", "modelValue", "visible", "title", "formatter", "onCloseDatePicker", "onConfirmDatePicker", "filter", "threeDimensional", "className", "style"];
7
7
 
@@ -9,20 +9,297 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
9
9
 
10
10
  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; }
11
11
 
12
- import React__default, { useState, useRef, useEffect } from 'react';
13
- import { P as Popup } from './popup-67173ec6.js';
14
- import { P as PickerSlot } from './pickerSlot-f8e4e542.js';
15
- import { u as useConfig } from './configprovider-9c393a29.js';
12
+ import React__default, { useState, useRef, useEffect, useImperativeHandle } from 'react';
13
+ import { u as useRefs, P as Popup } from './useRefs-032cf186.js';
14
+ import { u as useTouch } from './useTouch-a2ea68c6.js';
15
+ import { u as useConfig } from './configprovider-3e87d67a.js';
16
16
  import { c as cn } from './bem-893ad28d.js';
17
17
 
18
+ var InternalPickerSlot = function InternalPickerSlot(props, ref) {
19
+ var _props$keyIndex = props.keyIndex,
20
+ keyIndex = _props$keyIndex === void 0 ? 0 : _props$keyIndex,
21
+ defaultValue = props.defaultValue,
22
+ _props$listData = props.listData,
23
+ listData = _props$listData === void 0 ? [] : _props$listData,
24
+ _props$threeDimension = props.threeDimensional,
25
+ threeDimensional = _props$threeDimension === void 0 ? true : _props$threeDimension,
26
+ _props$swipeDuration = props.swipeDuration,
27
+ swipeDuration = _props$swipeDuration === void 0 ? 1000 : _props$swipeDuration,
28
+ chooseItem = props.chooseItem;
29
+ var touch = useTouch();
30
+ var DEFAULT_DURATION = 200; // 触发惯性滑动条件:
31
+ // 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_TIME` 且 move
32
+ // 距离大于 `MOMENTUM_DISTANCE` 时,执行惯性滑动
33
+
34
+ var INERTIA_TIME = 300;
35
+ var INERTIA_DISTANCE = 15;
36
+
37
+ var _useState = useState(1),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ currIndex = _useState2[0],
40
+ setCurrIndex = _useState2[1];
41
+
42
+ var lineSpacing = 36;
43
+
44
+ var _useState3 = useState(0),
45
+ _useState4 = _slicedToArray(_useState3, 2),
46
+ touchTime = _useState4[0],
47
+ setTouchTime = _useState4[1];
48
+
49
+ var _useState5 = useState('0deg'),
50
+ _useState6 = _slicedToArray(_useState5, 2),
51
+ touchDeg = _useState6[0],
52
+ setTouchDeg = _useState6[1];
53
+
54
+ var rotation = 20;
55
+ var moving = useRef(false);
56
+ var timer;
57
+ useRef(null);
58
+ var rollerRef = useRef(null);
59
+ var pickerSlotRef = useRef(null);
60
+
61
+ var _useState7 = useState(0),
62
+ _useState8 = _slicedToArray(_useState7, 2),
63
+ startTime = _useState8[0],
64
+ setStartTime = _useState8[1];
65
+
66
+ var _useState9 = useState(0),
67
+ _useState10 = _slicedToArray(_useState9, 2),
68
+ startY = _useState10[0],
69
+ setStartY = _useState10[1];
70
+
71
+ var transformY = useRef(0);
72
+
73
+ var _useState11 = useState(0),
74
+ _useState12 = _slicedToArray(_useState11, 2),
75
+ scrollDistance = _useState12[0],
76
+ setScrollDistance = _useState12[1];
77
+
78
+ var isHidden = function isHidden(index) {
79
+ if (index >= currIndex + 8 || index <= currIndex - 8) {
80
+ return true;
81
+ }
82
+
83
+ return false;
84
+ };
85
+
86
+ var setTransform = function setTransform() {
87
+ var translateY = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
88
+ var type = arguments.length > 1 ? arguments[1] : undefined;
89
+ var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_DURATION;
90
+ var deg = arguments.length > 3 ? arguments[3] : undefined;
91
+ var nTime = time;
92
+
93
+ if (type !== 'end') {
94
+ nTime = 0;
95
+ }
96
+
97
+ setTouchTime(nTime);
98
+ setTouchDeg(deg);
99
+ setScrollDistance(translateY);
100
+ };
101
+
102
+ var setMove = function setMove(move, type, time) {
103
+ var updateMove = move + transformY.current;
104
+
105
+ if (type === 'end') {
106
+ // 限定滚动距离
107
+ if (updateMove > 0) {
108
+ updateMove = 0;
109
+ }
110
+
111
+ if (updateMove < -(listData.length - 1) * lineSpacing) {
112
+ updateMove = -(listData.length - 1) * lineSpacing;
113
+ } // 设置滚动距离为lineSpacing的倍数值
114
+
115
+
116
+ var endMove = Math.round(updateMove / lineSpacing) * lineSpacing;
117
+ var deg = "".concat((Math.abs(Math.round(endMove / lineSpacing)) + 1) * rotation, "deg");
118
+ setTransform(endMove, type, time, deg);
119
+ setCurrIndex(Math.abs(Math.round(endMove / lineSpacing)) + 1);
120
+ } else {
121
+ var _deg = 0;
122
+ var currentDeg = (-updateMove / lineSpacing + 1) * rotation; // picker 滚动的最大角度
123
+
124
+ var maxDeg = (listData.length + 1) * rotation;
125
+ var minDeg = 0;
126
+ _deg = Math.min(Math.max(currentDeg, minDeg), maxDeg);
127
+
128
+ if (minDeg < _deg && _deg < maxDeg) {
129
+ setTransform(updateMove, '', undefined, "".concat(_deg, "deg"));
130
+ setCurrIndex(Math.abs(Math.round(updateMove / lineSpacing)) + 1);
131
+ }
132
+ }
133
+ };
134
+
135
+ var setChooseValue = function setChooseValue(move) {
136
+ chooseItem && chooseItem(listData === null || listData === void 0 ? void 0 : listData[Math.round(-move / lineSpacing)], keyIndex);
137
+ }; // 开始滚动
138
+
139
+
140
+ var touchStart = function touchStart(event) {
141
+ touch.start(event);
142
+ setStartY(touch.deltaY);
143
+ setStartTime(Date.now());
144
+ transformY.current = scrollDistance;
145
+ };
146
+
147
+ var touchMove = function touchMove(event) {
148
+ touch.move(event);
149
+
150
+ if (touch.isVertical) {
151
+ moving.current = true;
152
+ preventDefault(event, true);
153
+ }
154
+
155
+ var move = touch.deltaY - startY;
156
+ setMove(move);
157
+ };
158
+
159
+ var touchEnd = function touchEnd(event) {
160
+ if (!moving.current) return;
161
+ var move = touch.deltaY - startY;
162
+ var moveTime = Date.now() - startTime; // 区分是否为惯性滚动
163
+
164
+ if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {
165
+ // 惯性滚动
166
+ var distance = momentum(move, moveTime);
167
+ setMove(distance, 'end', +swipeDuration);
168
+ } else {
169
+ setMove(move, 'end');
170
+ }
171
+
172
+ setTimeout(function () {
173
+ // moving.current = false
174
+ touch.reset();
175
+ }, 0);
176
+ }; // 惯性滚动 距离
177
+
178
+
179
+ var momentum = function momentum(distance, duration) {
180
+ var nDistance = distance; // 惯性滚动的速度
181
+
182
+ var speed = Math.abs(nDistance / duration); // 惯性滚动的距离
183
+
184
+ nDistance = speed / 0.003 * (nDistance < 0 ? -1 : 1);
185
+ return nDistance;
186
+ };
187
+
188
+ var modifyStatus = function modifyStatus(type, val) {
189
+ var value = val || defaultValue;
190
+ var index = -1;
191
+
192
+ if (value) {
193
+ listData.some(function (item, idx) {
194
+ if (item.value === value) {
195
+ index = idx;
196
+ return true;
197
+ }
198
+
199
+ return false;
200
+ });
201
+ } else {
202
+ listData.forEach(function (item, i) {
203
+ if (item.value === defaultValue) {
204
+ index = i;
205
+ }
206
+ });
207
+ }
208
+
209
+ setCurrIndex(index === -1 ? 1 : index + 1);
210
+ var move = index === -1 ? 0 : index * lineSpacing;
211
+ type && setChooseValue(-move);
212
+ setMove(-move);
213
+ }; // 惯性滚动结束
214
+
215
+
216
+ var stopMomentum = function stopMomentum() {
217
+ moving.current = false;
218
+ setTouchTime(0);
219
+ setChooseValue(scrollDistance);
220
+ }; // 阻止默认事件
221
+
222
+
223
+ var preventDefault = function preventDefault(event, isStopPropagation) {
224
+ /* istanbul ignore else */
225
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
226
+ event.preventDefault();
227
+ }
228
+
229
+ if (isStopPropagation) {
230
+ event.stopPropagation();
231
+ }
232
+ };
233
+
234
+ var touchRollerStyle = function touchRollerStyle() {
235
+ return {
236
+ transition: "transform ".concat(touchTime, "ms cubic-bezier(0.17, 0.89, 0.45, 1)"),
237
+ transform: "rotate3d(1, 0, 0, ".concat(touchDeg, ")")
238
+ };
239
+ };
240
+
241
+ var touchTileStyle = function touchTileStyle() {
242
+ return {
243
+ transition: "transform ".concat(touchTime, "ms cubic-bezier(0.17, 0.89, 0.45, 1)"),
244
+ transform: "translate3d(0, ".concat(scrollDistance, "px, 0)")
245
+ };
246
+ };
247
+
248
+ useEffect(function () {
249
+ setScrollDistance(0);
250
+ transformY.current = 0;
251
+ modifyStatus(false);
252
+ return function () {
253
+ clearTimeout(timer);
254
+ };
255
+ }, [listData]);
256
+ useImperativeHandle(ref, function () {
257
+ return {
258
+ stopMomentum: stopMomentum,
259
+ moving: moving.current
260
+ };
261
+ });
262
+ return React__default.createElement("div", {
263
+ className: "nut-picker-list",
264
+ ref: pickerSlotRef,
265
+ onTouchStart: touchStart,
266
+ onTouchMove: touchMove,
267
+ onTouchEnd: touchEnd
268
+ }, React__default.createElement("div", {
269
+ className: "nut-picker-roller",
270
+ ref: rollerRef,
271
+ style: threeDimensional ? touchRollerStyle() : touchTileStyle(),
272
+ onTransitionEnd: stopMomentum
273
+ }, threeDimensional && listData.map(function (item, index) {
274
+ return React__default.createElement("div", {
275
+ className: "nut-picker-roller-item ".concat(isHidden(index + 1) && 'nut-picker-roller-item-hidden'),
276
+ style: {
277
+ transform: "rotate3d(1, 0, 0, ".concat(-rotation * (index + 1), "deg) translate3d(0px, 0px, 104px)")
278
+ },
279
+ key: item.value ? item.value : index
280
+ }, React__default.createElement(React__default.Fragment, null, item.text ? item.text : item));
281
+ }), !threeDimensional && listData.map(function (item, index) {
282
+ return React__default.createElement("div", {
283
+ className: "nut-picker-roller-item-tile",
284
+ key: item.value ? item.value : index
285
+ }, React__default.createElement(React__default.Fragment, null, item.text ? item.text : item));
286
+ })), React__default.createElement("div", {
287
+ className: "nut-picker-mask"
288
+ }), React__default.createElement("div", {
289
+ className: "nut-picker-indicator"
290
+ }));
291
+ };
292
+
293
+ var PickerSlot = React__default.forwardRef(InternalPickerSlot);
294
+
18
295
  var InternalPicker = function InternalPicker(props, ref) {
19
296
  var _useConfig = useConfig(),
20
297
  locale = _useConfig.locale;
21
298
 
22
299
  var isVisible = props.isVisible,
23
300
  title = props.title,
24
- _props$listData = props.listData,
25
- listData = _props$listData === void 0 ? [] : _props$listData,
301
+ _props$listData2 = props.listData,
302
+ listData = _props$listData2 === void 0 ? [] : _props$listData2,
26
303
  defaultValueData = props.defaultValueData,
27
304
  onConfirm = props.onConfirm,
28
305
  onClose = props.onClose,
@@ -34,27 +311,33 @@ var InternalPicker = function InternalPicker(props, ref) {
34
311
  swipeDuration = props.swipeDuration,
35
312
  rest = _objectWithoutProperties(props, _excluded);
36
313
 
37
- var _useState = useState([]),
38
- _useState2 = _slicedToArray(_useState, 2),
39
- chooseValueData = _useState2[0],
40
- setchooseValueData = _useState2[1]; // 选择的数据的 value 值, 每一条数据的 value 值
314
+ var _useState13 = useState([]),
315
+ _useState14 = _slicedToArray(_useState13, 2),
316
+ chooseValueData = _useState14[0],
317
+ setchooseValueData = _useState14[1]; // 选择的数据的 value 值, 每一条数据的 value 值
41
318
 
42
319
 
43
- var _useState3 = useState(0),
44
- _useState4 = _slicedToArray(_useState3, 2),
45
- columnIndex = _useState4[0],
46
- setcolumnIndex = _useState4[1]; // 选中列
320
+ var _useState15 = useState(0),
321
+ _useState16 = _slicedToArray(_useState15, 2),
322
+ columnIndex = _useState16[0],
323
+ setcolumnIndex = _useState16[1]; // 选中列
47
324
 
48
325
 
49
326
  var pickerRef = useRef(null);
50
327
 
51
- var _useState5 = useState([]),
52
- _useState6 = _slicedToArray(_useState5, 2),
53
- columnsList = _useState6[0],
54
- setColumnsList = _useState6[1]; // 格式化后每一列的数据
328
+ var _useRefs = useRefs(),
329
+ _useRefs2 = _slicedToArray(_useRefs, 2),
330
+ refs = _useRefs2[0],
331
+ setRefs = _useRefs2[1];
332
+
333
+ var _useState17 = useState([]),
334
+ _useState18 = _slicedToArray(_useState17, 2),
335
+ columnsList = _useState18[0],
336
+ setColumnsList = _useState18[1]; // 格式化后每一列的数据
55
337
 
56
338
 
57
- var b = cn('picker'); // 默认值修改
339
+ var b = cn('picker');
340
+ var isConfirmEvent = useRef(false); // 默认值修改
58
341
 
59
342
  useEffect(function () {
60
343
  if (defaultValueData && defaultValueData.length !== 0 && defaultValueData.toString() !== chooseValueData.toString()) {
@@ -66,7 +349,13 @@ var InternalPicker = function InternalPicker(props, ref) {
66
349
  }, [defaultValueData]); // 选中值进行修改
67
350
 
68
351
  useEffect(function () {
352
+ console.log('修改');
69
353
  onChange && onChange(columnIndex, chooseValueData, selectedOptions());
354
+
355
+ if (isConfirmEvent.current) {
356
+ isConfirmEvent.current = false;
357
+ onConfirm && onConfirm(chooseValueData, selectedOptions());
358
+ }
70
359
  }, [chooseValueData]); // 列表格式修改
71
360
 
72
361
  useEffect(function () {
@@ -80,8 +369,23 @@ var InternalPicker = function InternalPicker(props, ref) {
80
369
 
81
370
 
82
371
  var confirm = function confirm() {
83
- onConfirm && onConfirm(chooseValueData, selectedOptions());
372
+ var movings = false;
373
+ refs.forEach(function (_ref) {
374
+ if (_ref.moving) movings = true;
375
+
376
+ _ref.stopMomentum();
377
+ });
378
+
379
+ if (movings) {
380
+ isConfirmEvent.current = true;
381
+ } else {
382
+ onConfirm && onConfirm(chooseValueData, selectedOptions());
383
+ }
384
+
84
385
  onClose && onClose(chooseValueData, selectedOptions());
386
+ setTimeout(function () {
387
+ isConfirmEvent.current = false;
388
+ }, 0);
85
389
  };
86
390
 
87
391
  var selectedOptions = function selectedOptions() {
@@ -220,6 +524,22 @@ var InternalPicker = function InternalPicker(props, ref) {
220
524
  }
221
525
  };
222
526
 
527
+ var renderToolbar = function renderToolbar() {
528
+ return React__default.createElement("div", {
529
+ className: b('control')
530
+ }, React__default.createElement("span", {
531
+ className: b('cancel-btn'),
532
+ onClick: function onClick() {
533
+ return closeActionSheet();
534
+ }
535
+ }, locale.cancel), React__default.createElement("div", {
536
+ className: b('title')
537
+ }, title || ''), React__default.createElement("span", {
538
+ className: b('confirm-btn'),
539
+ onClick: confirm
540
+ }, locale.confirm));
541
+ };
542
+
223
543
  return React__default.createElement(Popup, {
224
544
  visible: isVisible,
225
545
  position: "bottom",
@@ -229,25 +549,12 @@ var InternalPicker = function InternalPicker(props, ref) {
229
549
  }, React__default.createElement("div", _objectSpread({
230
550
  className: "".concat(b(), " ").concat(className || ''),
231
551
  style: style
232
- }, rest), React__default.createElement("div", {
233
- className: b('control')
234
- }, React__default.createElement("span", {
235
- className: b('cancel-btn'),
236
- onClick: function onClick() {
237
- return closeActionSheet();
238
- }
239
- }, locale.cancel), React__default.createElement("div", {
240
- className: b('title')
241
- }, title || ''), React__default.createElement("span", {
242
- className: b('confirm-btn'),
243
- onClick: function onClick() {
244
- return confirm();
245
- }
246
- }, locale.confirm)), React__default.createElement("div", {
552
+ }, rest), renderToolbar(), React__default.createElement("div", {
247
553
  className: b('panel'),
248
554
  ref: pickerRef
249
555
  }, columnsList === null || columnsList === void 0 ? void 0 : columnsList.map(function (item, index) {
250
556
  return React__default.createElement(PickerSlot, {
557
+ ref: setRefs(index),
251
558
  defaultValue: chooseValueData === null || chooseValueData === void 0 ? void 0 : chooseValueData[index],
252
559
  listData: item,
253
560
  threeDimensional: threeDimensional,
@@ -294,25 +601,25 @@ var DatePicker = function DatePicker(props) {
294
601
  style = _defaultProps$props.style,
295
602
  rest = _objectWithoutProperties(_defaultProps$props, _excluded2);
296
603
 
297
- var _useState7 = useState(false),
298
- _useState8 = _slicedToArray(_useState7, 2),
299
- show = _useState8[0],
300
- setShow = _useState8[1];
604
+ var _useState19 = useState(false),
605
+ _useState20 = _slicedToArray(_useState19, 2),
606
+ show = _useState20[0],
607
+ setShow = _useState20[1];
301
608
 
302
- var _useState9 = useState(modelValue),
303
- _useState10 = _slicedToArray(_useState9, 2),
304
- currentDate = _useState10[0],
305
- setCurrentDate = _useState10[1];
609
+ var _useState21 = useState(modelValue),
610
+ _useState22 = _slicedToArray(_useState21, 2),
611
+ currentDate = _useState22[0],
612
+ setCurrentDate = _useState22[1];
306
613
 
307
- var _useState11 = useState([]),
308
- _useState12 = _slicedToArray(_useState11, 2),
309
- defaultValue = _useState12[0],
310
- setDefaultValue = _useState12[1];
614
+ var _useState23 = useState([]),
615
+ _useState24 = _slicedToArray(_useState23, 2),
616
+ defaultValue = _useState24[0],
617
+ setDefaultValue = _useState24[1];
311
618
 
312
- var _useState13 = useState([]),
313
- _useState14 = _slicedToArray(_useState13, 2),
314
- listData = _useState14[0],
315
- setListData = _useState14[1];
619
+ var _useState25 = useState([]),
620
+ _useState26 = _slicedToArray(_useState25, 2),
621
+ listData = _useState26[0],
622
+ setListData = _useState26[1];
316
623
 
317
624
  var pickerRef = useRef(null);
318
625
 
@@ -346,7 +653,7 @@ var DatePicker = function DatePicker(props) {
346
653
  }
347
654
 
348
655
  var getBoundary = function getBoundary(type, value) {
349
- var _ref;
656
+ var _ref2;
350
657
 
351
658
  var boundary = type === 'min' ? minDate : maxDate;
352
659
  var year = boundary.getFullYear();
@@ -380,7 +687,7 @@ var DatePicker = function DatePicker(props) {
380
687
  }
381
688
  }
382
689
 
383
- return _ref = {}, _defineProperty(_ref, "".concat(type, "Year"), year), _defineProperty(_ref, "".concat(type, "Month"), month), _defineProperty(_ref, "".concat(type, "Date"), date), _defineProperty(_ref, "".concat(type, "Hour"), hour), _defineProperty(_ref, "".concat(type, "Minute"), minute), _defineProperty(_ref, "".concat(type, "Seconds"), seconds), _ref;
690
+ return _ref2 = {}, _defineProperty(_ref2, "".concat(type, "Year"), year), _defineProperty(_ref2, "".concat(type, "Month"), month), _defineProperty(_ref2, "".concat(type, "Date"), date), _defineProperty(_ref2, "".concat(type, "Hour"), hour), _defineProperty(_ref2, "".concat(type, "Minute"), minute), _defineProperty(_ref2, "".concat(type, "Seconds"), seconds), _ref2;
384
691
  };
385
692
 
386
693
  var ranges = function ranges(date) {
@@ -1,19 +1,22 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- var _excluded = ["visible", "footer", "noFooter", "noOkBtn", "noCancelBtn", "lockScroll", "okBtnDisabled", "cancelAutoClose", "okText", "cancelText", "onClosed", "onCancel", "onOk"],
4
- _excluded2 = ["visible", "footer", "noOkBtn", "noCancelBtn", "lockScroll", "okBtnDisabled", "cancelAutoClose", "okText", "cancelText", "onClosed", "onCancel", "onOk"];
4
+ var _excluded = ["color", "shape", "plain", "loading", "disabled", "type", "size", "block", "icon", "children", "onClick", "className", "style"],
5
+ _excluded2 = ["visible", "footer", "noFooter", "noOkBtn", "noCancelBtn", "lockScroll", "okBtnDisabled", "cancelAutoClose", "okText", "cancelText", "onClosed", "onCancel", "onOk"],
6
+ _excluded3 = ["visible", "footer", "noOkBtn", "noCancelBtn", "lockScroll", "okBtnDisabled", "cancelAutoClose", "okText", "cancelText", "onClosed", "onCancel", "onOk"];
5
7
 
6
8
  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; }
7
9
 
8
10
  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; }
9
11
 
10
12
  import * as React from 'react';
11
- import React__default, { forwardRef } from 'react';
13
+ import React__default, { useCallback, useState, useEffect, forwardRef } from 'react';
12
14
  import classNames from 'classnames';
13
- import { B as Button } from './button-521a516b.js';
15
+ import { B as Button$1 } from './button.taro-bffc9543.js';
14
16
  import { CSSTransition } from 'react-transition-group';
15
17
  import ReactDOM__default from 'react-dom';
16
- import { u as useConfig } from './configprovider-9c393a29.js';
18
+ import { I as Icon } from './icon-8dc4de10.js';
19
+ import { u as useConfig } from './configprovider.taro-6c7b3056.js';
17
20
 
18
21
  var Content = function Content(props) {
19
22
  var visible = props.visible,
@@ -126,6 +129,103 @@ var DialogWrapper = function DialogWrapper(props) {
126
129
  };
127
130
 
128
131
  DialogWrapper.displayName = 'NutDialogWrapper';
132
+ var defaultProps$2 = {
133
+ className: '',
134
+ color: '',
135
+ shape: 'round',
136
+ plain: false,
137
+ loading: false,
138
+ disabled: false,
139
+ type: 'default',
140
+ size: 'normal',
141
+ block: false,
142
+ icon: '',
143
+ style: {},
144
+ children: undefined,
145
+ onClick: function onClick(e) {}
146
+ };
147
+
148
+ var Button = function Button(props) {
149
+ var _defaultProps$2$props = _objectSpread(_objectSpread({}, defaultProps$2), props),
150
+ color = _defaultProps$2$props.color,
151
+ shape = _defaultProps$2$props.shape,
152
+ plain = _defaultProps$2$props.plain,
153
+ loading = _defaultProps$2$props.loading,
154
+ disabled = _defaultProps$2$props.disabled,
155
+ type = _defaultProps$2$props.type,
156
+ size = _defaultProps$2$props.size,
157
+ block = _defaultProps$2$props.block,
158
+ icon = _defaultProps$2$props.icon,
159
+ children = _defaultProps$2$props.children,
160
+ onClick = _defaultProps$2$props.onClick,
161
+ className = _defaultProps$2$props.className,
162
+ style = _defaultProps$2$props.style,
163
+ rest = _objectWithoutProperties(_defaultProps$2$props, _excluded);
164
+
165
+ var getStyle = useCallback(function () {
166
+ var style = {};
167
+
168
+ if (color) {
169
+ if (plain) {
170
+ style.color = color;
171
+ style.background = '#fff';
172
+
173
+ if (!(color !== null && color !== void 0 && color.includes('gradient'))) {
174
+ style.borderColor = color;
175
+ }
176
+ } else {
177
+ style.color = '#fff';
178
+ style.background = color;
179
+ }
180
+ }
181
+
182
+ return style;
183
+ }, [color, plain]);
184
+ var classes = useCallback(function () {
185
+ var prefixCls = 'nut-button';
186
+ return [prefixCls, "".concat(type ? "".concat(prefixCls, "--").concat(type) : ''), "".concat(size ? "".concat(prefixCls, "--").concat(size) : ''), "".concat(shape ? "".concat(prefixCls, "--").concat(shape) : ''), "".concat(plain ? "".concat(prefixCls, "--plain") : ''), "".concat(block ? "".concat(prefixCls, "--block") : ''), "".concat(disabled ? "".concat(prefixCls, "--disabled") : ''), "".concat(loading ? "".concat(prefixCls, "--loading") : '')].filter(Boolean).join(' ');
187
+ }, [block, disabled, loading, plain, shape, size, type]);
188
+
189
+ var _useState = useState(classes()),
190
+ _useState2 = _slicedToArray(_useState, 2),
191
+ btnName = _useState2[0],
192
+ setBtnName = _useState2[1];
193
+
194
+ var _useState3 = useState(getStyle()),
195
+ _useState4 = _slicedToArray(_useState3, 2),
196
+ btnStyle = _useState4[0],
197
+ setBtnStyle = _useState4[1];
198
+
199
+ useEffect(function () {
200
+ setBtnName(classes());
201
+ setBtnStyle(getStyle());
202
+ }, [className, color, shape, plain, loading, disabled, style, type, size, block, icon, children, onClick, classes, getStyle]);
203
+
204
+ var handleClick = function handleClick(e) {
205
+ if (!loading && !disabled && onClick) {
206
+ onClick(e);
207
+ }
208
+ };
209
+
210
+ return React__default.createElement("div", _objectSpread(_objectSpread({
211
+ className: "".concat(btnName, " ").concat(className),
212
+ style: _objectSpread(_objectSpread({}, btnStyle), style)
213
+ }, rest), {}, {
214
+ onClick: function onClick(e) {
215
+ return handleClick(e);
216
+ }
217
+ }), React__default.createElement("div", {
218
+ className: "nut-button__warp",
219
+ style: getStyle()
220
+ }, loading && React__default.createElement(Icon, {
221
+ name: "loading"
222
+ }), !loading && icon ? React__default.createElement(Icon, {
223
+ name: icon
224
+ }) : '', children));
225
+ };
226
+
227
+ Button.defaultProps = defaultProps$2;
228
+ Button.displayName = 'NutButton';
129
229
  var defaultProps$1 = {
130
230
  okText: '确认',
131
231
  cancelText: '取消',
@@ -155,7 +255,7 @@ var BaseDialog$1 = function BaseDialog$1(props, ref) {
155
255
  onClosed = props.onClosed,
156
256
  onCancel = props.onCancel,
157
257
  onOk = props.onOk,
158
- restProps = _objectWithoutProperties(props, _excluded);
258
+ restProps = _objectWithoutProperties(props, _excluded2);
159
259
 
160
260
  var renderFooter = function renderFooter() {
161
261
  if (footer === null || noFooter) return '';
@@ -370,7 +470,7 @@ var BaseDialog = function BaseDialog(props, ref) {
370
470
  onClosed = props.onClosed,
371
471
  onCancel = props.onCancel,
372
472
  onOk = props.onOk,
373
- restProps = _objectWithoutProperties(props, _excluded2);
473
+ restProps = _objectWithoutProperties(props, _excluded3);
374
474
 
375
475
  var renderFooter = function renderFooter() {
376
476
  if (footer === null) return '';
@@ -396,7 +496,7 @@ var BaseDialog = function BaseDialog(props, ref) {
396
496
  }
397
497
  };
398
498
 
399
- var footerContent = footer || React__default.createElement(React__default.Fragment, null, !noCancelBtn && React__default.createElement(Button, {
499
+ var footerContent = footer || React__default.createElement(React__default.Fragment, null, !noCancelBtn && React__default.createElement(Button$1, {
400
500
  size: "small",
401
501
  plain: true,
402
502
  type: "primary",
@@ -404,7 +504,7 @@ var BaseDialog = function BaseDialog(props, ref) {
404
504
  onClick: function onClick(e) {
405
505
  return handleCancel(e);
406
506
  }
407
- }, cancelText || locale.cancel), !noOkBtn && React__default.createElement(Button, {
507
+ }, cancelText || locale.cancel), !noOkBtn && React__default.createElement(Button$1, {
408
508
  size: "small",
409
509
  type: "primary",
410
510
  className: classNames('nut-dialog__footer-ok', {