@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.
- package/CHANGELOG.md +26 -0
- package/dist/esm/ActionSheet/style/style.css +1 -1
- package/dist/esm/ActionSheet.js +2 -2
- package/dist/esm/Address.js +2 -2
- package/dist/esm/Avatar.js +2 -2
- package/dist/esm/Calendar.js +2 -2
- package/dist/esm/Cascader.js +2 -2
- package/dist/esm/DatePicker.js +3 -3
- package/dist/esm/Dialog/style/index.js +1 -0
- package/dist/esm/Dialog/style/style.css +1 -1
- package/dist/esm/Divider/style/style.css +1 -1
- package/dist/esm/Form/style/index.js +3 -1
- package/dist/esm/Form/style/style.css +1 -1
- package/dist/esm/Form.js +4 -4
- package/dist/esm/FormItem/style/index.js +1 -1
- package/dist/esm/FormItem/style/style.css +1 -1
- package/dist/esm/FormItem.js +1 -1
- package/dist/esm/ImagePreview.js +2 -2
- package/dist/esm/InputNumber.js +1 -1
- package/dist/esm/Menu/style/style.css +1 -1
- package/dist/esm/MenuItem/style/style.css +1 -1
- package/dist/esm/MenuItem.js +1 -1
- package/dist/esm/NoticeBar.js +1 -1
- package/dist/esm/NumberKeyboard.js +2 -2
- package/dist/esm/Pagination/style/style.css +1 -1
- package/dist/esm/Picker.js +2 -2
- package/dist/esm/Popover.js +3 -3
- package/dist/esm/Popup.js +1 -1
- package/dist/esm/SearchBar.js +1 -1
- package/dist/esm/ShortPassword.js +2 -2
- package/dist/esm/SideNavBar.js +2 -2
- package/dist/esm/Skeleton.js +3 -3
- package/dist/esm/Swipe.js +2 -3
- package/dist/esm/TimeSelect.js +2 -2
- package/dist/esm/{actionsheet.taro-697a594b.js → actionsheet.taro-8e7cbd0f.js} +1 -1
- package/dist/esm/{address.taro-cc879a1d.js → address.taro-3cfe1767.js} +1 -1
- package/dist/esm/{calendar.taro-02195ddb.js → calendar.taro-3568a214.js} +1 -1
- package/dist/esm/{cascader.taro-fb7a0230.js → cascader.taro-91cf3ca6.js} +1 -1
- package/dist/esm/{datepicker.taro-8c9230b6.js → datepicker.taro-108eb7c8.js} +43 -45
- package/dist/esm/form.taro-a348734b.js +1274 -0
- package/dist/esm/formitem.taro-c9ded1ef.js +139 -0
- package/dist/esm/{imagepreview.taro-cfe0a4cc.js → imagepreview.taro-29717406.js} +1 -1
- package/dist/esm/{inputnumber.taro-6657d2c1.js → inputnumber.taro-788b1cd3.js} +5 -5
- package/dist/esm/{menuitem.taro-6aa35a00.js → menuitem.taro-7f8c12cf.js} +11 -8
- package/dist/esm/{noticebar.taro-8d496dd6.js → noticebar.taro-dc895cc5.js} +1 -1
- package/dist/esm/{numberkeyboard.taro-18879f04.js → numberkeyboard.taro-ee984036.js} +1 -1
- package/dist/esm/nutui-react.es.js +22 -22
- package/dist/esm/{picker.taro-6b672469.js → picker.taro-9ca039c4.js} +54 -27
- package/dist/esm/{popover.taro-ba6c323a.js → popover.taro-52c02926.js} +12 -12
- package/dist/esm/{popup.taro-e756f3fc.js → popup.taro-687437a0.js} +1 -0
- package/dist/esm/{searchbar.taro-39351331.js → searchbar.taro-b2d6eff2.js} +2 -2
- package/dist/esm/{shortpassword.taro-cff61e4e.js → shortpassword.taro-4f714afb.js} +1 -1
- package/dist/esm/{sidenavbar.taro-1aefdd3c.js → sidenavbar.taro-03fb1fc6.js} +1 -1
- package/dist/esm/{skeleton.taro-ce714b06.js → skeleton.taro-e29f9f0c.js} +1 -1
- package/dist/esm/{swipe.taro-966af6d3.js → swipe.taro-4eb0cc9a.js} +6 -5
- package/dist/esm/{timeselect.taro-9e37e648.js → timeselect.taro-9de6ab39.js} +1 -1
- package/dist/esm/types/src/packages/button/button.d.ts +1 -0
- package/dist/esm/types/src/packages/datepicker/datepicker.d.ts +11 -17
- package/dist/esm/types/src/packages/datepicker/datepicker.taro.d.ts +11 -17
- package/dist/esm/types/src/packages/datepicker/index.d.ts +1 -0
- package/dist/esm/types/src/packages/datepicker/index.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/elevator/elevator.d.ts +0 -1
- package/dist/esm/types/src/packages/elevator/elevator.taro.d.ts +0 -1
- package/dist/esm/types/src/packages/form/__tests__/form.spec.d.ts +1 -0
- package/dist/esm/types/src/packages/form/context.d.ts +4 -0
- package/dist/esm/types/src/packages/form/form.d.ts +11 -4
- package/dist/esm/types/src/packages/form/form.taro.d.ts +14 -4
- package/dist/esm/types/src/packages/form/index.d.ts +1 -0
- package/dist/esm/types/src/packages/form/index.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/form/types.d.ts +4 -52
- package/dist/esm/types/src/packages/formitem/formitem.d.ts +16 -15
- package/dist/esm/types/src/packages/formitem/formitem.taro.d.ts +16 -12
- package/dist/esm/types/src/packages/formitem/index.d.ts +1 -0
- package/dist/esm/types/src/packages/formitem/index.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/formitem/types.d.ts +1 -31
- package/dist/esm/types/src/packages/inputnumber/inputnumber.d.ts +1 -1
- package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +1 -1
- package/dist/esm/types/src/packages/picker/picker.d.ts +7 -2
- package/dist/esm/types/src/packages/picker/picker.taro.d.ts +7 -2
- package/dist/esm/types/src/packages/sticky/sticky.d.ts +0 -1
- package/dist/esm/types/src/packages/swipe/swipe.d.ts +2 -6
- package/dist/esm/types/src/packages/swipe/swipe.taro.d.ts +2 -6
- package/dist/esm/types/src/packages/toast/Notification.d.ts +4 -1
- package/dist/esm/types/src/utils/is-forward-ref-component.d.ts +1 -0
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/tr-TR.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.es.js +1851 -676
- package/dist/nutui.react.umd.js +1832 -657
- package/dist/packages/actionsheet/actionsheet.scss +6 -6
- package/dist/packages/divider/divider.scss +8 -7
- package/dist/packages/formitem/formitem.scss +1 -13
- package/dist/packages/layout/layout.scss +0 -2
- package/dist/packages/menuitem/menuitem.scss +1 -1
- package/dist/packages/noticebar/noticebar.scss +0 -3
- package/dist/packages/pagination/pagination.scss +8 -30
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/types/packages/animate/animate.taro.d.ts +3 -3
- package/dist/types/packages/audio/audio.taro.d.ts +28 -8
- package/dist/types/packages/avatar/avatar.taro.d.ts +4 -4
- package/dist/types/packages/avatargroup/avatargroup.taro.d.ts +5 -5
- package/dist/types/packages/button/button.taro.d.ts +4 -4
- package/dist/types/packages/cascader/cascader.taro.d.ts +4 -4
- package/dist/types/packages/checkboxgroup/checkboxgroup.taro.d.ts +3 -3
- package/dist/types/packages/datepicker/datepicker.taro.d.ts +79 -25
- package/dist/types/packages/datepicker/index.taro.d.ts +1 -0
- package/dist/types/packages/divider/divider.taro.d.ts +2 -2
- package/dist/types/packages/drag/drag.taro.d.ts +1 -1
- package/dist/types/packages/elevator/elevator.taro.d.ts +0 -1
- package/dist/types/packages/empty/empty.taro.d.ts +3 -3
- package/dist/types/packages/fixednav/fixednav.taro.d.ts +3 -3
- package/dist/types/packages/form/context.d.ts +3 -0
- package/dist/types/packages/form/form.taro.d.ts +46 -4
- package/dist/types/packages/form/index.taro.d.ts +1 -0
- package/dist/types/packages/form/types.d.ts +4 -52
- package/dist/types/packages/formitem/formitem.taro.d.ts +45 -13
- package/dist/types/packages/formitem/index.taro.d.ts +1 -0
- package/dist/types/packages/formitem/types.d.ts +1 -31
- package/dist/types/packages/grid/grid.taro.d.ts +1 -1
- package/dist/types/packages/infiniteloading/infiniteloading.taro.d.ts +1 -1
- package/dist/types/packages/inputnumber/inputnumber.taro.d.ts +1 -1
- package/dist/types/packages/noticebar/noticebar.taro.d.ts +3 -3
- package/dist/types/packages/overlay/overlay.taro.d.ts +1 -1
- package/dist/types/packages/picker/index.d.ts +4 -0
- package/dist/types/packages/picker/picker.d.ts +23 -0
- package/dist/types/packages/picker/picker.taro.d.ts +7 -2
- package/dist/types/packages/picker/pickerpanel.d.ts +15 -0
- package/dist/types/packages/popover/popover.taro.d.ts +5 -5
- package/dist/types/packages/popup/index.d.ts +3 -0
- package/dist/types/packages/popup/popup.d.ts +22 -0
- package/dist/types/packages/popup/popup.taro.d.ts +2 -2
- package/dist/types/packages/radio/radio.taro.d.ts +2 -2
- package/dist/types/packages/range/range.taro.d.ts +3 -3
- package/dist/types/packages/searchbar/searchbar.taro.d.ts +5 -5
- package/dist/types/packages/step/step.taro.d.ts +3 -3
- package/dist/types/packages/steps/steps.taro.d.ts +1 -1
- package/dist/types/packages/sticky/sticky.taro.d.ts +1 -1
- package/dist/types/packages/swipe/swipe.taro.d.ts +2 -6
- package/dist/types/packages/swiper/swiper.taro.d.ts +1 -1
- package/dist/types/packages/tabs/tabs.taro.d.ts +1 -1
- package/dist/types/packages/tag/tag.taro.d.ts +1 -1
- package/dist/types/packages/timeselect/timeselect.taro.d.ts +2 -2
- package/dist/types/packages/toast/toast.taro.d.ts +4 -4
- package/dist/types/packages/uploader/uploader.taro.d.ts +18 -18
- package/dist/types/utils/is-forward-ref-component.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/form.taro-b06754e8.js +0 -182
- package/dist/esm/formitem.taro-b326809d.js +0 -108
- package/dist/esm/types/src/packages/formitem/formitemcontext.d.ts +0 -6
- package/dist/types/packages/formitem/formitemcontext.d.ts +0 -5
- package/dist/esm/{avatar.taro-8a26cd6c.js → avatar.taro-9ab097d0.js} +1 -1
- /package/dist/esm/types/src/packages/form/{useForm.d.ts → useform.d.ts} +0 -0
- /package/dist/esm/types/src/packages/form/{useForm.taro.d.ts → useform.taro.d.ts} +0 -0
- /package/dist/types/packages/form/{useForm.taro.d.ts → useform.taro.d.ts} +0 -0
|
@@ -1,33 +1,27 @@
|
|
|
1
|
-
import React, { useState,
|
|
1
|
+
import React, { useState, useEffect } from "react";
|
|
2
2
|
import { View } from "@tarojs/components";
|
|
3
|
-
import { P as Picker } from "./picker.taro-
|
|
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
|
-
|
|
9
|
+
...ComponentDefaults,
|
|
8
10
|
visible: false,
|
|
9
11
|
title: "",
|
|
10
12
|
type: "date",
|
|
11
|
-
|
|
13
|
+
showChinese: false,
|
|
12
14
|
threeDimensional: true,
|
|
13
15
|
minuteStep: 1,
|
|
14
|
-
|
|
15
|
-
|
|
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 {
|
|
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 =
|
|
42
|
+
cvalue = startDate;
|
|
44
43
|
}
|
|
45
|
-
let timestmp = Math.max(cvalue.getTime(),
|
|
46
|
-
timestmp = Math.min(timestmp,
|
|
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" ?
|
|
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 = (
|
|
88
|
-
const curDate =
|
|
93
|
+
const ranges = () => {
|
|
94
|
+
const curDate = currentDate;
|
|
89
95
|
if (!curDate)
|
|
90
96
|
return [];
|
|
91
|
-
const { maxYear, maxDate
|
|
92
|
-
const { minYear, minDate
|
|
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: [
|
|
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 = (
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
209
|
-
|
|
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 = (
|
|
235
|
-
const val = ranges(
|
|
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
|
-
|
|
249
|
+
setOptions(columns());
|
|
252
250
|
}
|
|
253
|
-
}, [
|
|
254
|
-
return React.createElement(View, { className: `nut-datepicker ${className
|
|
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";
|