@nutui/nutui-react 1.3.5 → 1.3.7

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 (110) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/ActionSheet.js +15 -25
  3. package/dist/esm/Address.js +151 -221
  4. package/dist/esm/AnimatingNumbers.js +7 -31
  5. package/dist/esm/Audio.js +31 -66
  6. package/dist/esm/Avatar.js +25 -51
  7. package/dist/esm/AvatarGroup.js +2 -9
  8. package/dist/esm/BackTop.js +29 -55
  9. package/dist/esm/Badge.js +9 -20
  10. package/dist/esm/Barrage.js +8 -20
  11. package/dist/esm/Button.js +22 -37
  12. package/dist/esm/Calendar.js +23 -37
  13. package/dist/esm/CalendarItem.js +86 -186
  14. package/dist/esm/Card.js +14 -20
  15. package/dist/esm/Cascader.js +77 -197
  16. package/dist/esm/Cell.js +20 -30
  17. package/dist/esm/CellGroup.js +6 -12
  18. package/dist/esm/Checkbox.js +27 -48
  19. package/dist/esm/CheckboxGroup.js +12 -30
  20. package/dist/esm/CircleProgress.js +11 -28
  21. package/dist/esm/Col.js +11 -22
  22. package/dist/esm/Collapse.js +11 -27
  23. package/dist/esm/CollapseItem.js +33 -47
  24. package/dist/esm/ConfigProvider.js +4 -15
  25. package/dist/esm/CountDown.js +37 -74
  26. package/dist/esm/DatePicker.js +44 -106
  27. package/dist/esm/Dialog.js +31 -89
  28. package/dist/esm/Divider.js +8 -15
  29. package/dist/esm/Drag.js +30 -45
  30. package/dist/esm/Elevator.js +37 -74
  31. package/dist/esm/Empty.js +11 -24
  32. package/dist/esm/FixedNav.js +18 -29
  33. package/dist/esm/Grid.js +13 -28
  34. package/dist/esm/GridItem.js +18 -34
  35. package/dist/esm/ImagePreview.js +36 -71
  36. package/dist/esm/Indicator.js +9 -20
  37. package/dist/esm/Infiniteloading.js +26 -55
  38. package/dist/esm/Input.js +62 -106
  39. package/dist/esm/InputNumber.js +25 -52
  40. package/dist/esm/Layout.js +0 -6
  41. package/dist/esm/Menu.js +27 -49
  42. package/dist/esm/MenuItem.js +32 -56
  43. package/dist/esm/NavBar.js +18 -34
  44. package/dist/esm/NoticeBar.js +54 -102
  45. package/dist/esm/Notify.js +9 -38
  46. package/dist/esm/NumberKeyboard.js +21 -52
  47. package/dist/esm/Pagination.js +38 -71
  48. package/dist/esm/Picker.js +91 -178
  49. package/dist/esm/Popover.js +32 -72
  50. package/dist/esm/Popup.js +40 -72
  51. package/dist/esm/Price.js +7 -24
  52. package/dist/esm/Progress.js +35 -50
  53. package/dist/esm/PullToRefresh.js +28 -83
  54. package/dist/esm/Radio.js +24 -47
  55. package/dist/esm/RadioGroup.js +14 -24
  56. package/dist/esm/Range.js +44 -116
  57. package/dist/esm/Rate.js +21 -39
  58. package/dist/esm/Row.js +7 -16
  59. package/dist/esm/SearchBar.js +47 -68
  60. package/dist/esm/ShortPassword.js +29 -56
  61. package/dist/esm/SideNavBar.js +9 -16
  62. package/dist/esm/SideNavBarItem.js +4 -11
  63. package/dist/esm/Signature.js +13 -43
  64. package/dist/esm/Skeleton.js +13 -23
  65. package/dist/esm/Step.js +12 -28
  66. package/dist/esm/Steps.js +6 -14
  67. package/dist/esm/Sticky.js +24 -52
  68. package/dist/esm/SubSideNavBar.js +7 -22
  69. package/dist/esm/Swipe.js +15 -54
  70. package/dist/esm/Swiper.js +102 -186
  71. package/dist/esm/SwiperItem.js +2 -12
  72. package/dist/esm/Switch.js +13 -27
  73. package/dist/esm/Tabbar.js +13 -25
  74. package/dist/esm/TabbarItem.js +15 -23
  75. package/dist/esm/Table.js +19 -39
  76. package/dist/esm/Tag.js +19 -36
  77. package/dist/esm/TextArea.js +19 -43
  78. package/dist/esm/TimeDetail.js +15 -28
  79. package/dist/esm/TimePannel.js +5 -12
  80. package/dist/esm/TimeSelect.js +35 -59
  81. package/dist/esm/Toast.js +16 -49
  82. package/dist/esm/Uploader.js +57 -152
  83. package/dist/esm/Video.js +8 -19
  84. package/dist/esm/VirtualList.js +84 -118
  85. package/dist/esm/date-710f8c7c.js +9 -33
  86. package/dist/esm/get-scroll-parent-3dcd3f53.js +1 -9
  87. package/dist/esm/icon-8dc4de10.js +11 -21
  88. package/dist/esm/offsetContext-0e3d04b3.js +0 -3
  89. package/dist/esm/overlay-ed3eb37d.js +12 -23
  90. package/dist/esm/render-18227751.js +0 -11
  91. package/dist/esm/tabpane-c957ab14.js +4 -10
  92. package/dist/esm/tabs-0896a61b.js +28 -56
  93. package/dist/esm/types/src/packages/elevator/demo.d.ts +1 -0
  94. package/dist/esm/types/src/packages/searchbar/searchbar.d.ts +2 -0
  95. package/dist/esm/useClientRect-839d18c5.js +0 -5
  96. package/dist/esm/useTouch-a2ea68c6.js +27 -47
  97. package/dist/locales/base.js +1 -1
  98. package/dist/locales/en-US.js +1 -1
  99. package/dist/locales/id-ID.js +1 -1
  100. package/dist/locales/zh-CN.js +1 -1
  101. package/dist/locales/zh-TW.js +1 -1
  102. package/dist/nutui.react.es.js +429 -413
  103. package/dist/nutui.react.umd.js +421 -405
  104. package/dist/packages/menu/menu.scss +4 -0
  105. package/dist/packages/menuitem/menuitem.scss +27 -2
  106. package/dist/packages/searchbar/searchbar.scss +20 -3
  107. package/dist/style.css +1 -1
  108. package/dist/style.es.js +1 -1
  109. package/dist/types/index.d.ts +2 -0
  110. package/package.json +1 -1
@@ -3,164 +3,135 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
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
-
7
6
  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; }
8
-
9
7
  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; }
10
-
11
8
  import React__default, { useState, useRef, useEffect, useImperativeHandle } from 'react';
12
9
  import Popup from './Popup.js';
13
10
  import { u as useTouch } from './useTouch-a2ea68c6.js';
14
11
  import { useConfig } from './ConfigProvider.js';
15
12
  import { c as cn } from './bem-893ad28d.js';
16
13
  import '@bem-react/classname';
17
-
18
14
  var InternalPickerSlot = function InternalPickerSlot(props, ref) {
19
15
  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;
16
+ keyIndex = _props$keyIndex === void 0 ? 0 : _props$keyIndex,
17
+ defaultValue = props.defaultValue,
18
+ _props$listData = props.listData,
19
+ listData = _props$listData === void 0 ? [] : _props$listData,
20
+ _props$threeDimension = props.threeDimensional,
21
+ threeDimensional = _props$threeDimension === void 0 ? true : _props$threeDimension,
22
+ _props$swipeDuration = props.swipeDuration,
23
+ swipeDuration = _props$swipeDuration === void 0 ? 1000 : _props$swipeDuration,
24
+ chooseItem = props.chooseItem;
29
25
  var touch = useTouch();
30
- var DEFAULT_DURATION = 200; // 触发惯性滑动条件:
26
+ var DEFAULT_DURATION = 200;
27
+ // 触发惯性滑动条件:
31
28
  // 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_TIME` 且 move
32
29
  // 距离大于 `MOMENTUM_DISTANCE` 时,执行惯性滑动
33
-
34
30
  var INERTIA_TIME = 300;
35
31
  var INERTIA_DISTANCE = 15;
36
-
37
32
  var _useState = useState(1),
38
- _useState2 = _slicedToArray(_useState, 2),
39
- currIndex = _useState2[0],
40
- setCurrIndex = _useState2[1];
41
-
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ currIndex = _useState2[0],
35
+ setCurrIndex = _useState2[1];
42
36
  var lineSpacing = 36;
43
-
44
37
  var _useState3 = useState(0),
45
- _useState4 = _slicedToArray(_useState3, 2),
46
- touchTime = _useState4[0],
47
- setTouchTime = _useState4[1];
48
-
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ touchTime = _useState4[0],
40
+ setTouchTime = _useState4[1];
49
41
  var _useState5 = useState('0deg'),
50
- _useState6 = _slicedToArray(_useState5, 2),
51
- touchDeg = _useState6[0],
52
- setTouchDeg = _useState6[1];
53
-
42
+ _useState6 = _slicedToArray(_useState5, 2),
43
+ touchDeg = _useState6[0],
44
+ setTouchDeg = _useState6[1];
54
45
  var rotation = 20;
55
46
  var moving = useRef(false);
56
47
  var timer;
57
48
  useRef(null);
58
49
  var rollerRef = useRef(null);
59
50
  var pickerSlotRef = useRef(null);
60
-
61
51
  var _useState7 = useState(0),
62
- _useState8 = _slicedToArray(_useState7, 2),
63
- startTime = _useState8[0],
64
- setStartTime = _useState8[1];
65
-
52
+ _useState8 = _slicedToArray(_useState7, 2),
53
+ startTime = _useState8[0],
54
+ setStartTime = _useState8[1];
66
55
  var _useState9 = useState(0),
67
- _useState10 = _slicedToArray(_useState9, 2),
68
- startY = _useState10[0],
69
- setStartY = _useState10[1];
70
-
56
+ _useState10 = _slicedToArray(_useState9, 2),
57
+ startY = _useState10[0],
58
+ setStartY = _useState10[1];
71
59
  var transformY = useRef(0);
72
-
73
60
  var _useState11 = useState(0),
74
- _useState12 = _slicedToArray(_useState11, 2),
75
- scrollDistance = _useState12[0],
76
- setScrollDistance = _useState12[1];
77
-
61
+ _useState12 = _slicedToArray(_useState11, 2),
62
+ scrollDistance = _useState12[0],
63
+ setScrollDistance = _useState12[1];
78
64
  var isHidden = function isHidden(index) {
79
65
  if (index >= currIndex + 8 || index <= currIndex - 8) {
80
66
  return true;
81
67
  }
82
-
83
68
  return false;
84
69
  };
85
-
86
70
  var setTransform = function setTransform() {
87
71
  var translateY = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
88
72
  var type = arguments.length > 1 ? arguments[1] : undefined;
89
73
  var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_DURATION;
90
74
  var deg = arguments.length > 3 ? arguments[3] : undefined;
91
75
  var nTime = time;
92
-
93
76
  if (type !== 'end') {
94
77
  nTime = 0;
95
78
  }
96
-
97
79
  setTouchTime(nTime);
98
80
  setTouchDeg(deg);
99
81
  setScrollDistance(translateY);
100
82
  };
101
-
102
83
  var setMove = function setMove(move, type, time) {
103
84
  var updateMove = move + transformY.current;
104
-
105
85
  if (type === 'end') {
106
86
  // 限定滚动距离
107
87
  if (updateMove > 0) {
108
88
  updateMove = 0;
109
89
  }
110
-
111
90
  if (updateMove < -(listData.length - 1) * lineSpacing) {
112
91
  updateMove = -(listData.length - 1) * lineSpacing;
113
- } // 设置滚动距离为lineSpacing的倍数值
114
-
115
-
92
+ }
93
+ // 设置滚动距离为lineSpacing的倍数值
116
94
  var endMove = Math.round(updateMove / lineSpacing) * lineSpacing;
117
95
  var deg = "".concat((Math.abs(Math.round(endMove / lineSpacing)) + 1) * rotation, "deg");
118
96
  setTransform(endMove, type, time, deg);
119
97
  setCurrIndex(Math.abs(Math.round(endMove / lineSpacing)) + 1);
120
98
  } else {
121
99
  var _deg = 0;
122
- var currentDeg = (-updateMove / lineSpacing + 1) * rotation; // picker 滚动的最大角度
123
-
100
+ var currentDeg = (-updateMove / lineSpacing + 1) * rotation;
101
+ // picker 滚动的最大角度
124
102
  var maxDeg = (listData.length + 1) * rotation;
125
103
  var minDeg = 0;
126
104
  _deg = Math.min(Math.max(currentDeg, minDeg), maxDeg);
127
-
128
105
  if (minDeg < _deg && _deg < maxDeg) {
129
106
  setTransform(updateMove, '', undefined, "".concat(_deg, "deg"));
130
107
  setCurrIndex(Math.abs(Math.round(updateMove / lineSpacing)) + 1);
131
108
  }
132
109
  }
133
110
  };
134
-
135
111
  var setChooseValue = function setChooseValue(move) {
136
112
  chooseItem && chooseItem(listData === null || listData === void 0 ? void 0 : listData[Math.round(-move / lineSpacing)], keyIndex);
137
- }; // 开始滚动
138
-
139
-
113
+ };
114
+ // 开始滚动
140
115
  var touchStart = function touchStart(event) {
141
116
  touch.start(event);
142
117
  setStartY(touch.deltaY);
143
118
  setStartTime(Date.now());
144
119
  transformY.current = scrollDistance;
145
120
  };
146
-
147
121
  var touchMove = function touchMove(event) {
148
122
  touch.move(event);
149
-
150
123
  if (touch.isVertical) {
151
124
  moving.current = true;
152
125
  preventDefault(event, true);
153
126
  }
154
-
155
127
  var move = touch.deltaY - startY;
156
128
  setMove(move);
157
129
  };
158
-
159
130
  var touchEnd = function touchEnd(event) {
160
131
  if (!moving.current) return;
161
132
  var move = touch.deltaY - startY;
162
- var moveTime = Date.now() - startTime; // 区分是否为惯性滚动
163
-
133
+ var moveTime = Date.now() - startTime;
134
+ // 区分是否为惯性滚动
164
135
  if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {
165
136
  // 惯性滚动
166
137
  var distance = momentum(move, moveTime);
@@ -168,34 +139,29 @@ var InternalPickerSlot = function InternalPickerSlot(props, ref) {
168
139
  } else {
169
140
  setMove(move, 'end');
170
141
  }
171
-
172
142
  setTimeout(function () {
173
143
  // moving.current = false
174
144
  touch.reset();
175
145
  }, 0);
176
- }; // 惯性滚动 距离
177
-
178
-
146
+ };
147
+ // 惯性滚动 距离
179
148
  var momentum = function momentum(distance, duration) {
180
- var nDistance = distance; // 惯性滚动的速度
181
-
182
- var speed = Math.abs(nDistance / duration); // 惯性滚动的距离
183
-
149
+ var nDistance = distance;
150
+ // 惯性滚动的速度
151
+ var speed = Math.abs(nDistance / duration);
152
+ // 惯性滚动的距离
184
153
  nDistance = speed / 0.003 * (nDistance < 0 ? -1 : 1);
185
154
  return nDistance;
186
155
  };
187
-
188
156
  var modifyStatus = function modifyStatus(type, val) {
189
157
  var value = val || defaultValue;
190
158
  var index = -1;
191
-
192
159
  if (value) {
193
160
  listData.some(function (item, idx) {
194
161
  if (item.value === value) {
195
162
  index = idx;
196
163
  return true;
197
164
  }
198
-
199
165
  return false;
200
166
  });
201
167
  } else {
@@ -205,46 +171,39 @@ var InternalPickerSlot = function InternalPickerSlot(props, ref) {
205
171
  }
206
172
  });
207
173
  }
208
-
209
174
  setCurrIndex(index === -1 ? 1 : index + 1);
210
175
  var move = index === -1 ? 0 : index * lineSpacing;
211
176
  type && setChooseValue(-move);
212
177
  setMove(-move);
213
- }; // 惯性滚动结束
214
-
215
-
178
+ };
179
+ // 惯性滚动结束
216
180
  var stopMomentum = function stopMomentum() {
217
181
  moving.current = false;
218
182
  setTouchTime(0);
219
183
  setChooseValue(scrollDistance);
220
- }; // 阻止默认事件
221
-
222
-
184
+ };
185
+ // 阻止默认事件
223
186
  var preventDefault = function preventDefault(event, isStopPropagation) {
224
187
  /* istanbul ignore else */
225
188
  if (typeof event.cancelable !== 'boolean' || event.cancelable) {
226
189
  event.preventDefault();
227
190
  }
228
-
229
191
  if (isStopPropagation) {
230
192
  event.stopPropagation();
231
193
  }
232
194
  };
233
-
234
195
  var touchRollerStyle = function touchRollerStyle() {
235
196
  return {
236
197
  transition: "transform ".concat(touchTime, "ms cubic-bezier(0.17, 0.89, 0.45, 1)"),
237
198
  transform: "rotate3d(1, 0, 0, ".concat(touchDeg, ")")
238
199
  };
239
200
  };
240
-
241
201
  var touchTileStyle = function touchTileStyle() {
242
202
  return {
243
203
  transition: "transform ".concat(touchTime, "ms cubic-bezier(0.17, 0.89, 0.45, 1)"),
244
204
  transform: "translate3d(0, ".concat(scrollDistance, "px, 0)")
245
205
  };
246
206
  };
247
-
248
207
  useEffect(function () {
249
208
  setScrollDistance(0);
250
209
  transformY.current = 0;
@@ -289,9 +248,7 @@ var InternalPickerSlot = function InternalPickerSlot(props, ref) {
289
248
  className: "nut-picker-indicator"
290
249
  }));
291
250
  };
292
-
293
251
  var PickerSlot = React__default.forwardRef(InternalPickerSlot);
294
-
295
252
  function useRefs() {
296
253
  var refs = React__default.useRef([]);
297
254
  var setRefs = React__default.useCallback(function (index) {
@@ -304,103 +261,84 @@ function useRefs() {
304
261
  }, []);
305
262
  return [refs.current, setRefs, reset];
306
263
  }
307
-
308
264
  var InternalPicker = function InternalPicker(props, ref) {
309
265
  var _useConfig = useConfig(),
310
- locale = _useConfig.locale;
311
-
266
+ locale = _useConfig.locale;
312
267
  var isVisible = props.isVisible,
313
- title = props.title,
314
- _props$listData2 = props.listData,
315
- listData = _props$listData2 === void 0 ? [] : _props$listData2,
316
- defaultValueData = props.defaultValueData,
317
- onConfirm = props.onConfirm,
318
- onClose = props.onClose,
319
- onCloseUpdate = props.onCloseUpdate,
320
- onChange = props.onChange,
321
- className = props.className,
322
- style = props.style,
323
- threeDimensional = props.threeDimensional,
324
- swipeDuration = props.swipeDuration,
325
- rest = _objectWithoutProperties(props, _excluded);
326
-
268
+ title = props.title,
269
+ _props$listData2 = props.listData,
270
+ listData = _props$listData2 === void 0 ? [] : _props$listData2,
271
+ defaultValueData = props.defaultValueData,
272
+ onConfirm = props.onConfirm,
273
+ onClose = props.onClose,
274
+ onCloseUpdate = props.onCloseUpdate,
275
+ onChange = props.onChange,
276
+ className = props.className,
277
+ style = props.style,
278
+ threeDimensional = props.threeDimensional,
279
+ swipeDuration = props.swipeDuration,
280
+ rest = _objectWithoutProperties(props, _excluded);
327
281
  var _useState13 = useState([]),
328
- _useState14 = _slicedToArray(_useState13, 2),
329
- chooseValueData = _useState14[0],
330
- setchooseValueData = _useState14[1]; // 选择的数据的 value 值, 每一条数据的 value 值
331
-
332
-
282
+ _useState14 = _slicedToArray(_useState13, 2),
283
+ chooseValueData = _useState14[0],
284
+ setchooseValueData = _useState14[1]; // 选择的数据的 value 值, 每一条数据的 value 值
333
285
  var _useState15 = useState(0),
334
- _useState16 = _slicedToArray(_useState15, 2),
335
- columnIndex = _useState16[0],
336
- setcolumnIndex = _useState16[1]; // 选中列
337
-
338
-
286
+ _useState16 = _slicedToArray(_useState15, 2),
287
+ columnIndex = _useState16[0],
288
+ setcolumnIndex = _useState16[1]; // 选中列
339
289
  var pickerRef = useRef(null);
340
-
341
290
  var _useRefs = useRefs(),
342
- _useRefs2 = _slicedToArray(_useRefs, 2),
343
- refs = _useRefs2[0],
344
- setRefs = _useRefs2[1];
345
-
291
+ _useRefs2 = _slicedToArray(_useRefs, 2),
292
+ refs = _useRefs2[0],
293
+ setRefs = _useRefs2[1];
346
294
  var _useState17 = useState([]),
347
- _useState18 = _slicedToArray(_useState17, 2),
348
- columnsList = _useState18[0],
349
- setColumnsList = _useState18[1]; // 格式化后每一列的数据
350
-
351
-
295
+ _useState18 = _slicedToArray(_useState17, 2),
296
+ columnsList = _useState18[0],
297
+ setColumnsList = _useState18[1]; // 格式化后每一列的数据
352
298
  var b = cn('picker');
353
- var isConfirmEvent = useRef(false); // 默认值修改
354
-
299
+ var isConfirmEvent = useRef(false);
300
+ // 默认值修改
355
301
  useEffect(function () {
356
302
  if (defaultValueData && defaultValueData.length !== 0 && defaultValueData.toString() !== chooseValueData.toString()) {
357
303
  var data = _toConsumableArray(defaultValueData);
358
-
359
304
  setchooseValueData(data);
360
305
  setColumnsList(normalListData());
361
306
  }
362
- }, [defaultValueData]); // 选中值进行修改
363
-
307
+ }, [defaultValueData]);
308
+ // 选中值进行修改
364
309
  useEffect(function () {
365
310
  console.log('修改');
366
311
  onChange && onChange(columnIndex, chooseValueData, selectedOptions());
367
-
368
312
  if (isConfirmEvent.current) {
369
313
  isConfirmEvent.current = false;
370
314
  onConfirm && onConfirm(chooseValueData, selectedOptions());
371
315
  }
372
- }, [chooseValueData]); // 列表格式修改
373
-
316
+ }, [chooseValueData]);
317
+ // 列表格式修改
374
318
  useEffect(function () {
375
319
  init();
376
320
  }, [listData]);
377
-
378
321
  var closeActionSheet = function closeActionSheet() {
379
322
  onClose && onClose(chooseValueData, selectedOptions());
380
323
  onCloseUpdate && onCloseUpdate(chooseValueData, selectedOptions(), pickerRef);
381
- }; // 点击确定
382
-
383
-
324
+ };
325
+ // 点击确定
384
326
  var confirm = function confirm() {
385
327
  var movings = false;
386
328
  refs.forEach(function (_ref) {
387
329
  if (_ref.moving) movings = true;
388
-
389
330
  _ref.stopMomentum();
390
331
  });
391
-
392
332
  if (movings) {
393
333
  isConfirmEvent.current = true;
394
334
  } else {
395
335
  onConfirm && onConfirm(chooseValueData, selectedOptions());
396
336
  }
397
-
398
337
  onClose && onClose(chooseValueData, selectedOptions());
399
338
  setTimeout(function () {
400
339
  isConfirmEvent.current = false;
401
340
  }, 0);
402
341
  };
403
-
404
342
  var selectedOptions = function selectedOptions() {
405
343
  var optins = [];
406
344
  columnsList.map(function (column, index) {
@@ -408,19 +346,16 @@ var InternalPicker = function InternalPicker(props, ref) {
408
346
  currOptions = column.filter(function (item) {
409
347
  return item.value === chooseValueData[index];
410
348
  });
411
-
412
349
  if (currOptions[0]) {
413
350
  optins.push(currOptions[0]);
414
351
  } else {
415
352
  column[0] && optins.push(column[0]);
416
353
  }
417
-
418
354
  return column;
419
355
  });
420
356
  return optins;
421
- }; // 选择每一列的数据
422
-
423
-
357
+ };
358
+ // 选择每一列的数据
424
359
  var _chooseItem = function chooseItem(option, columnIndex) {
425
360
  if (option && Object.keys(option).length) {
426
361
  // 是否移动后是否与之前有差异
@@ -430,71 +365,57 @@ var InternalPicker = function InternalPicker(props, ref) {
430
365
  setchooseValueData(_toConsumableArray(chooseValueData));
431
366
  var index = columnIndex;
432
367
  var cursor = option;
433
-
434
368
  while (cursor && cursor.children && cursor.children[0]) {
435
369
  chooseValueData[index + 1] = cursor.children[0].value;
436
370
  setchooseValueData(_toConsumableArray(chooseValueData));
437
371
  index++;
438
372
  var cc = cursor.children[0];
439
373
  cursor = cc;
440
- } // 当前改变列的下一列 children 值为空
441
-
442
-
374
+ }
375
+ // 当前改变列的下一列 children 值为空
443
376
  if (cursor && cursor.children) {
444
377
  chooseValueData[index + 1] = '';
445
378
  setchooseValueData(_toConsumableArray(chooseValueData));
446
379
  }
447
-
448
380
  setColumnsList(normalListData());
449
381
  } else {
450
382
  setchooseValueData(function (data) {
451
383
  var cdata = _toConsumableArray(data);
452
-
453
384
  cdata[columnIndex] = Object.prototype.hasOwnProperty.call(option, 'value') ? option.value : '';
454
385
  return cdata;
455
386
  });
456
387
  }
457
-
458
388
  setcolumnIndex(columnIndex);
459
389
  }
460
390
  }
461
- }; // 传入的数据格式化
462
-
463
-
391
+ };
392
+ // 传入的数据格式化
464
393
  var normalListData = function normalListData() {
465
394
  var type = columnsType();
466
-
467
395
  switch (type) {
468
396
  case 'multiple':
469
397
  return listData;
470
-
471
398
  case 'cascade':
472
399
  // 级联数据处理
473
400
  return formatCascade(listData, chooseValueData);
474
-
475
401
  default:
476
402
  return [listData];
477
403
  }
478
- }; // 每一列的类型
479
-
480
-
404
+ };
405
+ // 每一列的类型
481
406
  var columnsType = function columnsType() {
482
407
  var firstColumn = listData[0];
483
-
484
408
  if (firstColumn) {
485
409
  if (Array.isArray(firstColumn)) {
486
410
  return 'multiple';
487
411
  }
488
-
489
412
  if ('children' in firstColumn) {
490
413
  return 'cascade';
491
414
  }
492
415
  }
493
-
494
416
  return 'single';
495
- }; // 级联数据格式化
496
-
497
-
417
+ };
418
+ // 级联数据格式化
498
419
  var formatCascade = function formatCascade(columns, defaultValues) {
499
420
  var formatted = [];
500
421
  var cursor = {
@@ -503,7 +424,6 @@ var InternalPicker = function InternalPicker(props, ref) {
503
424
  children: columns
504
425
  };
505
426
  var columnIndex = 0;
506
-
507
427
  var _loop = function _loop() {
508
428
  var options = cursor.children;
509
429
  var value = defaultValues[columnIndex];
@@ -515,14 +435,11 @@ var InternalPicker = function InternalPicker(props, ref) {
515
435
  columnIndex++;
516
436
  formatted.push(options);
517
437
  };
518
-
519
438
  while (cursor && cursor.children) {
520
439
  _loop();
521
440
  }
522
-
523
441
  return formatted;
524
442
  };
525
-
526
443
  var init = function init() {
527
444
  var data = [];
528
445
  var normalData = normalListData();
@@ -531,12 +448,10 @@ var InternalPicker = function InternalPicker(props, ref) {
531
448
  item[0] && data.push(item[0].value);
532
449
  return item;
533
450
  });
534
-
535
451
  if (!defaultValueData && chooseValueData.length === 0) {
536
452
  setchooseValueData([].concat(data));
537
453
  }
538
454
  };
539
-
540
455
  var renderToolbar = function renderToolbar() {
541
456
  return React__default.createElement("div", {
542
457
  className: b('control')
@@ -552,7 +467,6 @@ var InternalPicker = function InternalPicker(props, ref) {
552
467
  onClick: confirm
553
468
  }, locale.confirm));
554
469
  };
555
-
556
470
  return React__default.createElement(Popup, {
557
471
  visible: isVisible,
558
472
  position: "bottom",
@@ -580,6 +494,5 @@ var InternalPicker = function InternalPicker(props, ref) {
580
494
  });
581
495
  }))));
582
496
  };
583
-
584
497
  var Picker = React__default.forwardRef(InternalPicker);
585
498
  export { Picker as default };