@nutui/nutui-react-taro 2.0.0-alpha.15 → 2.0.0-alpha.17

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 (159) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/esm/ActionSheet/style/style.css +1 -1
  3. package/dist/esm/ActionSheet.js +2 -2
  4. package/dist/esm/Address.js +2 -2
  5. package/dist/esm/Avatar.js +2 -2
  6. package/dist/esm/Calendar.js +2 -2
  7. package/dist/esm/Cascader.js +2 -2
  8. package/dist/esm/DatePicker.js +3 -3
  9. package/dist/esm/Dialog/style/index.js +1 -0
  10. package/dist/esm/Dialog/style/style.css +1 -1
  11. package/dist/esm/Divider/style/style.css +1 -1
  12. package/dist/esm/Form/style/index.js +3 -1
  13. package/dist/esm/Form/style/style.css +1 -1
  14. package/dist/esm/Form.js +4 -4
  15. package/dist/esm/FormItem/style/index.js +1 -1
  16. package/dist/esm/FormItem/style/style.css +1 -1
  17. package/dist/esm/FormItem.js +1 -1
  18. package/dist/esm/ImagePreview.js +2 -2
  19. package/dist/esm/InputNumber.js +1 -1
  20. package/dist/esm/Menu/style/style.css +1 -1
  21. package/dist/esm/MenuItem/style/style.css +1 -1
  22. package/dist/esm/MenuItem.js +1 -1
  23. package/dist/esm/NoticeBar.js +1 -1
  24. package/dist/esm/NumberKeyboard.js +2 -2
  25. package/dist/esm/Pagination/style/style.css +1 -1
  26. package/dist/esm/Picker.js +2 -2
  27. package/dist/esm/Popover.js +3 -3
  28. package/dist/esm/Popup.js +1 -1
  29. package/dist/esm/SearchBar.js +1 -1
  30. package/dist/esm/ShortPassword.js +2 -2
  31. package/dist/esm/SideNavBar.js +2 -2
  32. package/dist/esm/Skeleton.js +3 -3
  33. package/dist/esm/Swipe.js +2 -3
  34. package/dist/esm/TimeSelect.js +2 -2
  35. package/dist/esm/{actionsheet.taro-697a594b.js → actionsheet.taro-8e7cbd0f.js} +1 -1
  36. package/dist/esm/{address.taro-cc879a1d.js → address.taro-3cfe1767.js} +1 -1
  37. package/dist/esm/{calendar.taro-02195ddb.js → calendar.taro-3568a214.js} +1 -1
  38. package/dist/esm/{cascader.taro-fb7a0230.js → cascader.taro-91cf3ca6.js} +1 -1
  39. package/dist/esm/{datepicker.taro-8c9230b6.js → datepicker.taro-108eb7c8.js} +43 -45
  40. package/dist/esm/form.taro-a348734b.js +1274 -0
  41. package/dist/esm/formitem.taro-c9ded1ef.js +139 -0
  42. package/dist/esm/{imagepreview.taro-cfe0a4cc.js → imagepreview.taro-29717406.js} +1 -1
  43. package/dist/esm/{inputnumber.taro-6657d2c1.js → inputnumber.taro-788b1cd3.js} +5 -5
  44. package/dist/esm/{menuitem.taro-6aa35a00.js → menuitem.taro-7f8c12cf.js} +11 -8
  45. package/dist/esm/{noticebar.taro-8d496dd6.js → noticebar.taro-dc895cc5.js} +1 -1
  46. package/dist/esm/{numberkeyboard.taro-18879f04.js → numberkeyboard.taro-ee984036.js} +1 -1
  47. package/dist/esm/nutui-react.es.js +22 -22
  48. package/dist/esm/{picker.taro-6b672469.js → picker.taro-9ca039c4.js} +54 -27
  49. package/dist/esm/{popover.taro-ba6c323a.js → popover.taro-52c02926.js} +12 -12
  50. package/dist/esm/{popup.taro-e756f3fc.js → popup.taro-687437a0.js} +1 -0
  51. package/dist/esm/{searchbar.taro-39351331.js → searchbar.taro-b2d6eff2.js} +2 -2
  52. package/dist/esm/{shortpassword.taro-cff61e4e.js → shortpassword.taro-4f714afb.js} +1 -1
  53. package/dist/esm/{sidenavbar.taro-1aefdd3c.js → sidenavbar.taro-03fb1fc6.js} +1 -1
  54. package/dist/esm/{skeleton.taro-ce714b06.js → skeleton.taro-e29f9f0c.js} +1 -1
  55. package/dist/esm/{swipe.taro-966af6d3.js → swipe.taro-4eb0cc9a.js} +6 -5
  56. package/dist/esm/{timeselect.taro-9e37e648.js → timeselect.taro-9de6ab39.js} +1 -1
  57. package/dist/esm/types/src/packages/button/button.d.ts +1 -0
  58. package/dist/esm/types/src/packages/datepicker/datepicker.d.ts +11 -17
  59. package/dist/esm/types/src/packages/datepicker/datepicker.taro.d.ts +11 -17
  60. package/dist/esm/types/src/packages/datepicker/index.d.ts +1 -0
  61. package/dist/esm/types/src/packages/datepicker/index.taro.d.ts +1 -0
  62. package/dist/esm/types/src/packages/elevator/elevator.d.ts +0 -1
  63. package/dist/esm/types/src/packages/elevator/elevator.taro.d.ts +0 -1
  64. package/dist/esm/types/src/packages/form/__tests__/form.spec.d.ts +1 -0
  65. package/dist/esm/types/src/packages/form/context.d.ts +4 -0
  66. package/dist/esm/types/src/packages/form/form.d.ts +11 -4
  67. package/dist/esm/types/src/packages/form/form.taro.d.ts +14 -4
  68. package/dist/esm/types/src/packages/form/index.d.ts +1 -0
  69. package/dist/esm/types/src/packages/form/index.taro.d.ts +1 -0
  70. package/dist/esm/types/src/packages/form/types.d.ts +4 -52
  71. package/dist/esm/types/src/packages/formitem/formitem.d.ts +16 -15
  72. package/dist/esm/types/src/packages/formitem/formitem.taro.d.ts +16 -12
  73. package/dist/esm/types/src/packages/formitem/index.d.ts +1 -0
  74. package/dist/esm/types/src/packages/formitem/index.taro.d.ts +1 -0
  75. package/dist/esm/types/src/packages/formitem/types.d.ts +1 -31
  76. package/dist/esm/types/src/packages/inputnumber/inputnumber.d.ts +1 -1
  77. package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +1 -1
  78. package/dist/esm/types/src/packages/picker/picker.d.ts +7 -2
  79. package/dist/esm/types/src/packages/picker/picker.taro.d.ts +7 -2
  80. package/dist/esm/types/src/packages/sticky/sticky.d.ts +0 -1
  81. package/dist/esm/types/src/packages/swipe/swipe.d.ts +2 -6
  82. package/dist/esm/types/src/packages/swipe/swipe.taro.d.ts +2 -6
  83. package/dist/esm/types/src/packages/toast/Notification.d.ts +4 -1
  84. package/dist/esm/types/src/utils/is-forward-ref-component.d.ts +1 -0
  85. package/dist/locales/base.js +1 -1
  86. package/dist/locales/en-US.js +1 -1
  87. package/dist/locales/id-ID.js +1 -1
  88. package/dist/locales/tr-TR.js +1 -1
  89. package/dist/locales/zh-CN.js +1 -1
  90. package/dist/locales/zh-TW.js +1 -1
  91. package/dist/locales/zh-UG.js +1 -1
  92. package/dist/nutui.react.es.js +1851 -676
  93. package/dist/nutui.react.umd.js +1832 -657
  94. package/dist/packages/actionsheet/actionsheet.scss +6 -6
  95. package/dist/packages/divider/divider.scss +8 -7
  96. package/dist/packages/formitem/formitem.scss +1 -13
  97. package/dist/packages/layout/layout.scss +0 -2
  98. package/dist/packages/menuitem/menuitem.scss +1 -1
  99. package/dist/packages/noticebar/noticebar.scss +0 -3
  100. package/dist/packages/pagination/pagination.scss +8 -30
  101. package/dist/style.css +1 -1
  102. package/dist/style.mjs +1 -1
  103. package/dist/types/packages/animate/animate.taro.d.ts +3 -3
  104. package/dist/types/packages/audio/audio.taro.d.ts +28 -8
  105. package/dist/types/packages/avatar/avatar.taro.d.ts +4 -4
  106. package/dist/types/packages/avatargroup/avatargroup.taro.d.ts +5 -5
  107. package/dist/types/packages/button/button.taro.d.ts +4 -4
  108. package/dist/types/packages/cascader/cascader.taro.d.ts +4 -4
  109. package/dist/types/packages/checkboxgroup/checkboxgroup.taro.d.ts +3 -3
  110. package/dist/types/packages/datepicker/datepicker.taro.d.ts +79 -25
  111. package/dist/types/packages/datepicker/index.taro.d.ts +1 -0
  112. package/dist/types/packages/divider/divider.taro.d.ts +2 -2
  113. package/dist/types/packages/drag/drag.taro.d.ts +1 -1
  114. package/dist/types/packages/elevator/elevator.taro.d.ts +0 -1
  115. package/dist/types/packages/empty/empty.taro.d.ts +3 -3
  116. package/dist/types/packages/fixednav/fixednav.taro.d.ts +3 -3
  117. package/dist/types/packages/form/context.d.ts +3 -0
  118. package/dist/types/packages/form/form.taro.d.ts +46 -4
  119. package/dist/types/packages/form/index.taro.d.ts +1 -0
  120. package/dist/types/packages/form/types.d.ts +4 -52
  121. package/dist/types/packages/formitem/formitem.taro.d.ts +45 -13
  122. package/dist/types/packages/formitem/index.taro.d.ts +1 -0
  123. package/dist/types/packages/formitem/types.d.ts +1 -31
  124. package/dist/types/packages/grid/grid.taro.d.ts +1 -1
  125. package/dist/types/packages/infiniteloading/infiniteloading.taro.d.ts +1 -1
  126. package/dist/types/packages/inputnumber/inputnumber.taro.d.ts +1 -1
  127. package/dist/types/packages/noticebar/noticebar.taro.d.ts +3 -3
  128. package/dist/types/packages/overlay/overlay.taro.d.ts +1 -1
  129. package/dist/types/packages/picker/index.d.ts +4 -0
  130. package/dist/types/packages/picker/picker.d.ts +23 -0
  131. package/dist/types/packages/picker/picker.taro.d.ts +7 -2
  132. package/dist/types/packages/picker/pickerpanel.d.ts +15 -0
  133. package/dist/types/packages/popover/popover.taro.d.ts +5 -5
  134. package/dist/types/packages/popup/index.d.ts +3 -0
  135. package/dist/types/packages/popup/popup.d.ts +22 -0
  136. package/dist/types/packages/popup/popup.taro.d.ts +2 -2
  137. package/dist/types/packages/radio/radio.taro.d.ts +2 -2
  138. package/dist/types/packages/range/range.taro.d.ts +3 -3
  139. package/dist/types/packages/searchbar/searchbar.taro.d.ts +5 -5
  140. package/dist/types/packages/step/step.taro.d.ts +3 -3
  141. package/dist/types/packages/steps/steps.taro.d.ts +1 -1
  142. package/dist/types/packages/sticky/sticky.taro.d.ts +1 -1
  143. package/dist/types/packages/swipe/swipe.taro.d.ts +2 -6
  144. package/dist/types/packages/swiper/swiper.taro.d.ts +1 -1
  145. package/dist/types/packages/tabs/tabs.taro.d.ts +1 -1
  146. package/dist/types/packages/tag/tag.taro.d.ts +1 -1
  147. package/dist/types/packages/timeselect/timeselect.taro.d.ts +2 -2
  148. package/dist/types/packages/toast/toast.taro.d.ts +4 -4
  149. package/dist/types/packages/uploader/uploader.taro.d.ts +18 -18
  150. package/dist/types/utils/is-forward-ref-component.d.ts +1 -0
  151. package/package.json +1 -1
  152. package/dist/esm/form.taro-b06754e8.js +0 -182
  153. package/dist/esm/formitem.taro-b326809d.js +0 -108
  154. package/dist/esm/types/src/packages/formitem/formitemcontext.d.ts +0 -6
  155. package/dist/types/packages/formitem/formitemcontext.d.ts +0 -5
  156. package/dist/esm/{avatar.taro-8a26cd6c.js → avatar.taro-9ab097d0.js} +1 -1
  157. /package/dist/esm/types/src/packages/form/{useForm.d.ts → useform.d.ts} +0 -0
  158. /package/dist/esm/types/src/packages/form/{useForm.taro.d.ts → useform.taro.d.ts} +0 -0
  159. /package/dist/types/packages/form/{useForm.taro.d.ts → useform.taro.d.ts} +0 -0
@@ -1,33 +1,27 @@
1
- import React, { useState, useRef, useEffect } from "react";
1
+ import React, { useState, useEffect } from "react";
2
2
  import { View } from "@tarojs/components";
3
- import { P as Picker } from "./picker.taro-6b672469.js";
3
+ import { P as Picker } from "./picker.taro-9ca039c4.js";
4
4
  import { u as useConfig } from "./configprovider.taro-372b1525.js";
5
+ import { u as usePropsValue } from "./use-props-value-7ac1b1b5.js";
6
+ import { C as ComponentDefaults } from "./typings-11d83a22.js";
5
7
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
6
8
  const defaultProps = {
7
- modelValue: null,
9
+ ...ComponentDefaults,
8
10
  visible: false,
9
11
  title: "",
10
12
  type: "date",
11
- isShowChinese: false,
13
+ showChinese: false,
12
14
  threeDimensional: true,
13
15
  minuteStep: 1,
14
- minDate: new Date(currentYear - 10, 0, 1),
15
- maxDate: new Date(currentYear + 10, 11, 31)
16
+ startDate: new Date(currentYear - 10, 0, 1),
17
+ endDate: new Date(currentYear + 10, 11, 31)
16
18
  };
17
19
  const DatePicker = (props) => {
18
- const { minDate, maxDate, type, isShowChinese, minuteStep, modelValue, visible, title, formatter, onCloseDatePicker, onConfirmDatePicker, filter, onChange, threeDimensional, className, style, ...rest } = {
20
+ const { startDate, endDate, type, showChinese, minuteStep, visible, title, defaultValue, formatter, onClose, onConfirm, filter, onChange, threeDimensional, className, style, ...rest } = {
19
21
  ...defaultProps,
20
22
  ...props
21
23
  };
22
24
  const { locale } = useConfig();
23
- const [show, setShow] = useState(false);
24
- const [currentDate, setCurrentDate] = useState(modelValue);
25
- const [defaultValue, setDefaultValue] = useState([]);
26
- const [options, setListData] = useState([]);
27
- const pickerRef = useRef(null);
28
- const isDate = (val) => {
29
- return Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
30
- };
31
25
  const datepickerLang = locale.datepicker;
32
26
  const zhCNType = {
33
27
  day: datepickerLang.day,
@@ -37,20 +31,32 @@ const DatePicker = (props) => {
37
31
  minute: datepickerLang.min,
38
32
  seconds: datepickerLang.seconds
39
33
  };
34
+ const [defaultValueOfPicker, setDefaultValueOfPicker] = useState([]);
35
+ const [options, setOptions] = useState([]);
36
+ const isDate = (val) => {
37
+ return Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
38
+ };
40
39
  const formatValue = (value) => {
41
40
  let cvalue = value;
42
41
  if (!cvalue || cvalue && !isDate(cvalue)) {
43
- cvalue = minDate;
42
+ cvalue = startDate;
44
43
  }
45
- let timestmp = Math.max(cvalue.getTime(), minDate.getTime());
46
- timestmp = Math.min(timestmp, maxDate.getTime());
44
+ let timestmp = Math.max(cvalue.getTime(), startDate.getTime());
45
+ timestmp = Math.min(timestmp, endDate.getTime());
47
46
  return new Date(timestmp);
48
47
  };
48
+ const [currentDate, setCurrentDate] = usePropsValue({
49
+ value: props.value && formatValue(props.value),
50
+ defaultValue: formatValue(props.defaultValue || null),
51
+ finalValue: null,
52
+ onChange: (val) => {
53
+ }
54
+ });
49
55
  function getMonthEndDay(year, month) {
50
56
  return new Date(year, month, 0).getDate();
51
57
  }
52
58
  const getBoundary = (type2, value) => {
53
- const boundary = type2 === "min" ? minDate : maxDate;
59
+ const boundary = type2 === "min" ? startDate : endDate;
54
60
  const year = boundary.getFullYear();
55
61
  let month = 1;
56
62
  let date = 1;
@@ -84,12 +90,12 @@ const DatePicker = (props) => {
84
90
  [`${type2}Seconds`]: seconds
85
91
  };
86
92
  };
87
- const ranges = (date) => {
88
- const curDate = date || currentDate;
93
+ const ranges = () => {
94
+ const curDate = currentDate;
89
95
  if (!curDate)
90
96
  return [];
91
- const { maxYear, maxDate: maxDate2, maxMonth, maxHour, maxMinute, maxSeconds } = getBoundary("max", curDate);
92
- const { minYear, minDate: minDate2, minMonth, minHour, minMinute, minSeconds } = getBoundary("min", curDate);
97
+ const { maxYear, maxDate, maxMonth, maxHour, maxMinute, maxSeconds } = getBoundary("max", curDate);
98
+ const { minYear, minDate, minMonth, minHour, minMinute, minSeconds } = getBoundary("min", curDate);
93
99
  let result = [
94
100
  {
95
101
  type: "year",
@@ -101,7 +107,7 @@ const DatePicker = (props) => {
101
107
  },
102
108
  {
103
109
  type: "day",
104
- range: [minDate2, maxDate2]
110
+ range: [minDate, maxDate]
105
111
  },
106
112
  {
107
113
  type: "hour",
@@ -141,17 +147,17 @@ const DatePicker = (props) => {
141
147
  }
142
148
  return result;
143
149
  };
144
- const updateChooseValueCustmer = (cacheValueData, selectedValue, index) => {
150
+ const updateChooseValueCustmer = (selectedOptions, selectedValue, index) => {
145
151
  if (["date", "datetime", "datehour", "month-day", "year-month"].includes(type.toLocaleLowerCase())) {
146
152
  const formatDate = [];
147
153
  selectedValue.forEach((item) => {
148
154
  formatDate.push(item);
149
155
  });
150
156
  if (type.toLocaleLowerCase() === "month-day" && formatDate.length < 3) {
151
- formatDate.unshift(new Date(modelValue || minDate || maxDate).getFullYear());
157
+ formatDate.unshift(new Date(defaultValue || startDate || endDate).getFullYear());
152
158
  }
153
159
  if (type.toLocaleLowerCase() === "year-month" && formatDate.length < 3) {
154
- formatDate.push(new Date(modelValue || minDate || maxDate).getDate());
160
+ formatDate.push(new Date(defaultValue || startDate || endDate).getDate());
155
161
  }
156
162
  const year = Number(formatDate[0]);
157
163
  const month = Number(formatDate[1]) - 1;
@@ -167,7 +173,7 @@ const DatePicker = (props) => {
167
173
  const isEqual = (currentDate == null ? void 0 : currentDate.getTime()) === (date == null ? void 0 : date.getTime());
168
174
  date && isDate(date) && !isEqual && setCurrentDate(formatValue(date));
169
175
  }
170
- props.onChange && props.onChange(cacheValueData, selectedValue, index);
176
+ props.onChange && props.onChange(selectedOptions, selectedValue, index);
171
177
  };
172
178
  const padZero = (num, targetLength = 2) => {
173
179
  let str = `${num}`;
@@ -185,12 +191,13 @@ const DatePicker = (props) => {
185
191
  });
186
192
  } else {
187
193
  const padMin = padZero(value, 2);
188
- const fatter = isShowChinese ? zhCNType[type2] : "";
194
+ const fatter = showChinese ? zhCNType[type2] : "";
189
195
  fOption = { text: padMin + fatter, value: padMin };
190
196
  }
191
197
  return fOption;
192
198
  };
193
199
  const generateValue = (min, max, val, type2, columnIndex) => {
200
+ var _a;
194
201
  let cmin = min;
195
202
  const arr = [];
196
203
  let index = 0;
@@ -205,8 +212,8 @@ const DatePicker = (props) => {
205
212
  index++;
206
213
  }
207
214
  }
208
- defaultValue[columnIndex] = arr[index].value;
209
- setDefaultValue([...defaultValue]);
215
+ defaultValueOfPicker[columnIndex] = (_a = arr[index]) == null ? void 0 : _a.value;
216
+ setDefaultValueOfPicker([...defaultValueOfPicker]);
210
217
  if (props.filter && props.filter(type2, arr)) {
211
218
  return props.filter(type2, arr);
212
219
  }
@@ -231,27 +238,18 @@ const DatePicker = (props) => {
231
238
  }
232
239
  return d;
233
240
  };
234
- const columns = (date) => {
235
- const val = ranges(date).map((res, columnIndex) => {
241
+ const columns = () => {
242
+ const val = ranges().map((res, columnIndex) => {
236
243
  return generateValue(res.range[0], res.range[1], getDateIndex(res.type), res.type, columnIndex);
237
244
  });
238
245
  return val || [];
239
246
  };
240
- useEffect(() => {
241
- setCurrentDate(formatValue(modelValue));
242
- }, []);
243
- useEffect(() => {
244
- setCurrentDate(formatValue(modelValue));
245
- }, [modelValue]);
246
- useEffect(() => {
247
- setShow(visible);
248
- }, [visible]);
249
247
  useEffect(() => {
250
248
  if (currentDate) {
251
- setListData(columns());
249
+ setOptions(columns());
252
250
  }
253
- }, [currentDate]);
254
- return React.createElement(View, { className: `nut-datepicker ${className || ""}`, style, catchMove: true, ...rest }, options.length > 0 && React.createElement(Picker, { title, visible: show, options, onClose: onCloseDatePicker, defaultValue, onConfirm: (options2, values) => onConfirmDatePicker && onConfirmDatePicker(options2, values), onChange: (list, value, index) => updateChooseValueCustmer(list, value, index), threeDimensional, ref: pickerRef }));
251
+ }, []);
252
+ return React.createElement(View, { className: `nut-datepicker ${className}`, style, catchMove: true, ...rest }, options.length && React.createElement(Picker, { title, visible, options, onClose, defaultValue: defaultValueOfPicker, onConfirm: (options2, value) => onConfirm && onConfirm(options2, value), onChange: (options2, value, index) => updateChooseValueCustmer(options2, value, index), threeDimensional }));
255
253
  };
256
254
  DatePicker.defaultProps = defaultProps;
257
255
  DatePicker.displayName = "NutDatePicker";