@pisell/date-picker 1.0.88 → 1.0.90
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.
|
@@ -141,6 +141,12 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
|
|
|
141
141
|
setCurrentShortcut(lastConfirmShortcut.current);
|
|
142
142
|
};
|
|
143
143
|
var handleOk = function handleOk() {
|
|
144
|
+
var val = getVal();
|
|
145
|
+
if (val.some(function (item) {
|
|
146
|
+
return !item;
|
|
147
|
+
})) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
144
150
|
setOpen(false);
|
|
145
151
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
146
152
|
propsOnChange === null || propsOnChange === void 0 ? void 0 : propsOnChange(getVal());
|
|
@@ -310,7 +316,9 @@ var PisellDateRangePicker = function PisellDateRangePicker(props) {
|
|
|
310
316
|
locale: locale,
|
|
311
317
|
onChange: handleChange,
|
|
312
318
|
currentShortcut: currentShortcut,
|
|
313
|
-
setCurrentShortcut: setCurrentShortcut
|
|
319
|
+
setCurrentShortcut: setCurrentShortcut,
|
|
320
|
+
disabledDate: disabledDate,
|
|
321
|
+
value: _value
|
|
314
322
|
},
|
|
315
323
|
layout: {
|
|
316
324
|
orientation: "portrait"
|
package/es/Toolbar/index.js
CHANGED
|
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
8
8
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
9
9
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
10
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
-
import React, { useMemo, useState, useEffect } from 'react';
|
|
11
|
+
import React, { useMemo, useState, useEffect, useRef } from 'react';
|
|
12
12
|
import { Input } from 'antd';
|
|
13
13
|
import dayjs from 'dayjs';
|
|
14
14
|
import BrowserSelect from "../browserSelect";
|
|
@@ -25,7 +25,8 @@ var Toolbar = function Toolbar(props) {
|
|
|
25
25
|
locale = props.locale,
|
|
26
26
|
onChange = props.onChange,
|
|
27
27
|
currentShortcut = props.currentShortcut,
|
|
28
|
-
setCurrentShortcut = props.setCurrentShortcut
|
|
28
|
+
setCurrentShortcut = props.setCurrentShortcut,
|
|
29
|
+
disabledDate = props.disabledDate;
|
|
29
30
|
var format = locale === 'en' || locale === 'en-US' ? 'DD/MM/YYYY' : 'YYYY/MM/DD';
|
|
30
31
|
var _useState = useState(''),
|
|
31
32
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -43,6 +44,8 @@ var Toolbar = function Toolbar(props) {
|
|
|
43
44
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
44
45
|
endError = _useState8[0],
|
|
45
46
|
setEndError = _useState8[1];
|
|
47
|
+
var valueRef = useRef(value);
|
|
48
|
+
valueRef.current = value;
|
|
46
49
|
useEffect(function () {
|
|
47
50
|
if (value !== null && value !== void 0 && value[0]) {
|
|
48
51
|
setStartStr(value[0].format(format));
|
|
@@ -57,10 +60,22 @@ var Toolbar = function Toolbar(props) {
|
|
|
57
60
|
setEndStr('');
|
|
58
61
|
}
|
|
59
62
|
}, [value]);
|
|
63
|
+
var checkDateDisabled = function checkDateDisabled(position) {
|
|
64
|
+
var val = valueRef.current;
|
|
65
|
+
if (position === 'start' && val[0] && disabledDate !== null && disabledDate !== void 0 && disabledDate(val[1], position, val)) {
|
|
66
|
+
setStartError(true);
|
|
67
|
+
onChange([null, val[1]], 'write');
|
|
68
|
+
}
|
|
69
|
+
if (position === 'end' && val[1] && disabledDate !== null && disabledDate !== void 0 && disabledDate(val[1], position, val)) {
|
|
70
|
+
setEndError(true);
|
|
71
|
+
onChange([val[0], null], 'write');
|
|
72
|
+
}
|
|
73
|
+
};
|
|
60
74
|
var handleStartChange = function handleStartChange(e) {
|
|
61
75
|
var val = e.target.value;
|
|
62
76
|
setStartStr(val);
|
|
63
|
-
|
|
77
|
+
var objValue = dayjs(val, format);
|
|
78
|
+
if (isValidDate(val, format) && (value[1] ? objValue <= value[1] : true) && !(disabledDate !== null && disabledDate !== void 0 && disabledDate(objValue, 'start', value))) {
|
|
64
79
|
var _start$set, _start$set$set;
|
|
65
80
|
setStartError(false);
|
|
66
81
|
var valDate = dayjs(val, format);
|
|
@@ -71,11 +86,15 @@ var Toolbar = function Toolbar(props) {
|
|
|
71
86
|
} else {
|
|
72
87
|
setStartError(true);
|
|
73
88
|
}
|
|
89
|
+
setTimeout(function () {
|
|
90
|
+
checkDateDisabled('end');
|
|
91
|
+
}, 200);
|
|
74
92
|
};
|
|
75
93
|
var handleEndChange = function handleEndChange(e) {
|
|
76
94
|
var val = e.target.value;
|
|
77
95
|
setEndStr(val);
|
|
78
|
-
|
|
96
|
+
var objValue = dayjs(val, format);
|
|
97
|
+
if (isValidDate(val, format) && (value[0] ? objValue >= value[0] : true) && !(disabledDate !== null && disabledDate !== void 0 && disabledDate(objValue, 'end', value))) {
|
|
79
98
|
var _end$set, _end$set$set;
|
|
80
99
|
setEndError(false);
|
|
81
100
|
var valDate = dayjs(val, format);
|
|
@@ -86,6 +105,9 @@ var Toolbar = function Toolbar(props) {
|
|
|
86
105
|
} else {
|
|
87
106
|
setEndError(true);
|
|
88
107
|
}
|
|
108
|
+
setTimeout(function () {
|
|
109
|
+
checkDateDisabled('start');
|
|
110
|
+
}, 200);
|
|
89
111
|
};
|
|
90
112
|
var handleSelectChange = function handleSelectChange(e) {
|
|
91
113
|
var val = e.target.value;
|
|
@@ -122,7 +144,7 @@ var Toolbar = function Toolbar(props) {
|
|
|
122
144
|
}, /*#__PURE__*/React.createElement("div", {
|
|
123
145
|
className: "date-picker-toolbar-start-wrap"
|
|
124
146
|
}, /*#__PURE__*/React.createElement("span", null, getText('toolbar-date-range-shortcut-starting', pLocaleMap[locale])), /*#__PURE__*/React.createElement(Input, {
|
|
125
|
-
status: startError ?
|
|
147
|
+
status: startError ? 'error' : '',
|
|
126
148
|
size: "large",
|
|
127
149
|
value: startStr,
|
|
128
150
|
onChange: handleStartChange,
|
|
@@ -132,7 +154,7 @@ var Toolbar = function Toolbar(props) {
|
|
|
132
154
|
}, getText('toolbar-date-range-invalid-start-date', pLocaleMap[locale]))), /*#__PURE__*/React.createElement("div", {
|
|
133
155
|
className: "date-picker-toolbar-end-wrap"
|
|
134
156
|
}, /*#__PURE__*/React.createElement("span", null, getText('toolbar-date-range-shortcut-ending', pLocaleMap[locale])), /*#__PURE__*/React.createElement(Input, {
|
|
135
|
-
status: endError ?
|
|
157
|
+
status: endError ? 'error' : '',
|
|
136
158
|
size: "large",
|
|
137
159
|
value: endStr,
|
|
138
160
|
onChange: handleEndChange,
|
|
@@ -144,6 +144,10 @@ var PisellDateRangePicker = (props) => {
|
|
|
144
144
|
setCurrentShortcut(lastConfirmShortcut.current);
|
|
145
145
|
};
|
|
146
146
|
const handleOk = () => {
|
|
147
|
+
const val = getVal();
|
|
148
|
+
if (val.some((item) => !item)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
147
151
|
setOpen(false);
|
|
148
152
|
onClose == null ? void 0 : onClose();
|
|
149
153
|
propsOnChange == null ? void 0 : propsOnChange(getVal());
|
|
@@ -305,7 +309,9 @@ var PisellDateRangePicker = (props) => {
|
|
|
305
309
|
locale,
|
|
306
310
|
onChange: handleChange,
|
|
307
311
|
currentShortcut,
|
|
308
|
-
setCurrentShortcut
|
|
312
|
+
setCurrentShortcut,
|
|
313
|
+
disabledDate,
|
|
314
|
+
value: _value
|
|
309
315
|
},
|
|
310
316
|
layout: {
|
|
311
317
|
orientation: "portrait"
|
package/lib/Toolbar/index.js
CHANGED
|
@@ -49,13 +49,16 @@ var Toolbar = (props) => {
|
|
|
49
49
|
locale,
|
|
50
50
|
onChange,
|
|
51
51
|
currentShortcut,
|
|
52
|
-
setCurrentShortcut
|
|
52
|
+
setCurrentShortcut,
|
|
53
|
+
disabledDate
|
|
53
54
|
} = props;
|
|
54
55
|
const format = locale === "en" || locale === "en-US" ? "DD/MM/YYYY" : "YYYY/MM/DD";
|
|
55
56
|
const [startStr, setStartStr] = (0, import_react.useState)("");
|
|
56
57
|
const [endStr, setEndStr] = (0, import_react.useState)("");
|
|
57
58
|
const [startError, setStartError] = (0, import_react.useState)(false);
|
|
58
59
|
const [endError, setEndError] = (0, import_react.useState)(false);
|
|
60
|
+
const valueRef = (0, import_react.useRef)(value);
|
|
61
|
+
valueRef.current = value;
|
|
59
62
|
(0, import_react.useEffect)(() => {
|
|
60
63
|
if (value == null ? void 0 : value[0]) {
|
|
61
64
|
setStartStr(value[0].format(format));
|
|
@@ -70,11 +73,23 @@ var Toolbar = (props) => {
|
|
|
70
73
|
setEndStr("");
|
|
71
74
|
}
|
|
72
75
|
}, [value]);
|
|
76
|
+
const checkDateDisabled = (position) => {
|
|
77
|
+
const val = valueRef.current;
|
|
78
|
+
if (position === "start" && val[0] && (disabledDate == null ? void 0 : disabledDate(val[1], position, val))) {
|
|
79
|
+
setStartError(true);
|
|
80
|
+
onChange([null, val[1]], "write");
|
|
81
|
+
}
|
|
82
|
+
if (position === "end" && val[1] && (disabledDate == null ? void 0 : disabledDate(val[1], position, val))) {
|
|
83
|
+
setEndError(true);
|
|
84
|
+
onChange([val[0], null], "write");
|
|
85
|
+
}
|
|
86
|
+
};
|
|
73
87
|
const handleStartChange = (e) => {
|
|
74
88
|
var _a, _b;
|
|
75
89
|
const val = e.target.value;
|
|
76
90
|
setStartStr(val);
|
|
77
|
-
|
|
91
|
+
const objValue = (0, import_dayjs.default)(val, format);
|
|
92
|
+
if (isValidDate(val, format) && (value[1] ? objValue <= value[1] : true) && !(disabledDate == null ? void 0 : disabledDate(objValue, "start", value))) {
|
|
78
93
|
setStartError(false);
|
|
79
94
|
const valDate = (0, import_dayjs.default)(val, format);
|
|
80
95
|
const newValue = [...value];
|
|
@@ -84,12 +99,16 @@ var Toolbar = (props) => {
|
|
|
84
99
|
} else {
|
|
85
100
|
setStartError(true);
|
|
86
101
|
}
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
checkDateDisabled("end");
|
|
104
|
+
}, 200);
|
|
87
105
|
};
|
|
88
106
|
const handleEndChange = (e) => {
|
|
89
107
|
var _a, _b;
|
|
90
108
|
const val = e.target.value;
|
|
91
109
|
setEndStr(val);
|
|
92
|
-
|
|
110
|
+
const objValue = (0, import_dayjs.default)(val, format);
|
|
111
|
+
if (isValidDate(val, format) && (value[0] ? objValue >= value[0] : true) && !(disabledDate == null ? void 0 : disabledDate(objValue, "end", value))) {
|
|
93
112
|
setEndError(false);
|
|
94
113
|
const valDate = (0, import_dayjs.default)(val, format);
|
|
95
114
|
const newValue = [...value];
|
|
@@ -99,6 +118,9 @@ var Toolbar = (props) => {
|
|
|
99
118
|
} else {
|
|
100
119
|
setEndError(true);
|
|
101
120
|
}
|
|
121
|
+
setTimeout(() => {
|
|
122
|
+
checkDateDisabled("start");
|
|
123
|
+
}, 200);
|
|
102
124
|
};
|
|
103
125
|
const handleSelectChange = (e) => {
|
|
104
126
|
const val = e.target.value;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/date-picker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.90",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.less"
|
|
6
6
|
],
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"antd": "^5.5.0",
|
|
27
27
|
"react": "^18.0.0",
|
|
28
28
|
"react-dom": "^18.0.0",
|
|
29
|
-
"@pisell/utils": "1.0.
|
|
29
|
+
"@pisell/utils": "1.0.28"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"es",
|