@basic-ui/dates 0.0.46 → 0.0.49
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/build/cjs/index.js +27 -50
- package/build/cjs/index.js.map +1 -1
- package/build/esm/DatePicker/DatePicker.d.ts +10 -10
- package/build/esm/DatePicker/DatePicker.js +50 -66
- package/build/esm/DatePicker/DatePicker.js.map +1 -1
- package/build/esm/DatePicker/DatePickerSelect.js +87 -110
- package/build/esm/DatePicker/DatePickerSelect.js.map +1 -1
- package/build/esm/DatePicker/RangeDatePicker.d.ts +10 -10
- package/build/esm/DatePicker/RangeDatePicker.js +54 -71
- package/build/esm/DatePicker/RangeDatePicker.js.map +1 -1
- package/build/esm/DatePicker/adjustDates.js +2 -3
- package/build/esm/DatePicker/adjustDates.js.map +1 -1
- package/build/esm/DatePicker/contexts.js +16 -13
- package/build/esm/DatePicker/contexts.js.map +1 -1
- package/build/esm/DatePicker/dateTypes.d.ts +2 -2
- package/build/esm/DatePicker/dateTypes.js.map +1 -1
- package/build/esm/DatePicker/hooks.d.ts +2 -2
- package/build/esm/DatePicker/hooks.js +44 -40
- package/build/esm/DatePicker/hooks.js.map +1 -1
- package/build/esm/DatePicker/index.js.map +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/build/tsconfig.tsbuildinfo +0 -8086
|
@@ -1,144 +1,127 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["as", "type", "onFocus", "onBlur", "onChange", "children", "emptyOption"];
|
|
5
1
|
import { forwardRef, memo } from 'react';
|
|
6
2
|
import { wrapEvent } from '@basic-ui/core';
|
|
7
3
|
import { differenceInCalendarMonths, addMonths, getDaysInMonth, setDate } from 'date-fns';
|
|
8
4
|
import { useInnerFocus, SET_DATE, NAVIGATE } from './hooks';
|
|
9
5
|
import { useDatePickerContext } from './contexts';
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const MonthYearOptions = /*#__PURE__*/memo(_ref => {
|
|
8
|
+
let {
|
|
9
|
+
minDate,
|
|
10
|
+
maxDate,
|
|
11
|
+
monthNames,
|
|
12
|
+
emptyOption
|
|
13
|
+
} = _ref;
|
|
14
|
+
const ret = [/*#__PURE__*/_jsx("option", {
|
|
19
15
|
value: "",
|
|
20
16
|
disabled: true,
|
|
21
17
|
children: emptyOption
|
|
22
18
|
}, 'empty')];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
value: "".concat(year, "-").concat(month),
|
|
19
|
+
const diff = differenceInCalendarMonths(maxDate, minDate);
|
|
20
|
+
for (let i = 0; i <= diff; i++) {
|
|
21
|
+
const date = addMonths(minDate, i);
|
|
22
|
+
const year = date.getFullYear();
|
|
23
|
+
const month = date.getMonth();
|
|
24
|
+
ret.push(/*#__PURE__*/_jsxs("option", {
|
|
25
|
+
value: `${year}-${month}`,
|
|
31
26
|
children: [monthNames[month], " ", year]
|
|
32
|
-
},
|
|
27
|
+
}, `${year}_${month}`));
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
36
30
|
children: ret
|
|
37
31
|
});
|
|
38
32
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
const DayOptions = /*#__PURE__*/memo(_ref2 => {
|
|
34
|
+
let {
|
|
35
|
+
date = new Date(0),
|
|
36
|
+
dayNames,
|
|
37
|
+
minDate,
|
|
38
|
+
emptyOption
|
|
39
|
+
} = _ref2;
|
|
46
40
|
if (!date) {
|
|
47
41
|
return null;
|
|
48
42
|
}
|
|
49
|
-
|
|
50
|
-
var ret = [/*#__PURE__*/_jsx("option", {
|
|
43
|
+
const ret = [/*#__PURE__*/_jsx("option", {
|
|
51
44
|
value: "",
|
|
52
45
|
disabled: true,
|
|
53
46
|
children: emptyOption
|
|
54
47
|
}, 'empty')];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
value: "".concat(day),
|
|
48
|
+
for (let day = 1; day <= getDaysInMonth(date); day++) {
|
|
49
|
+
const newDate = setDate(date, day);
|
|
50
|
+
ret.push(/*#__PURE__*/_jsxs("option", {
|
|
51
|
+
value: `${day}`,
|
|
60
52
|
disabled: newDate.valueOf() < minDate.valueOf(),
|
|
61
53
|
children: [(newDate.getDay(), dayNames[newDate.getDay()]), " ", day]
|
|
62
|
-
},
|
|
54
|
+
}, `day_${day}`));
|
|
63
55
|
}
|
|
64
|
-
|
|
65
56
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
66
57
|
children: ret
|
|
67
58
|
});
|
|
68
59
|
});
|
|
69
|
-
export
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
60
|
+
export const DatePickerSelect = /*#__PURE__*/forwardRef(function DatePicker(_ref3, ref) {
|
|
61
|
+
let {
|
|
62
|
+
as: Comp = 'select',
|
|
63
|
+
type,
|
|
64
|
+
onFocus,
|
|
65
|
+
onBlur,
|
|
66
|
+
onChange,
|
|
67
|
+
children,
|
|
68
|
+
emptyOption = '',
|
|
69
|
+
...rest
|
|
70
|
+
} = _ref3;
|
|
71
|
+
const {
|
|
72
|
+
minDate,
|
|
73
|
+
maxDate,
|
|
74
|
+
monthNames,
|
|
75
|
+
onChangeRef,
|
|
76
|
+
dayNames,
|
|
77
|
+
dispatch,
|
|
78
|
+
controlledValueRef,
|
|
79
|
+
state: data
|
|
80
|
+
} = useDatePickerContext();
|
|
81
|
+
const {
|
|
82
|
+
handleFocus,
|
|
83
|
+
handleBlur
|
|
84
|
+
} = useInnerFocus();
|
|
85
|
+
const {
|
|
86
|
+
selectedDate: stateSelectedDate
|
|
87
|
+
} = data;
|
|
88
|
+
let {
|
|
89
|
+
navigationYear: year,
|
|
90
|
+
navigationMonth: month,
|
|
91
|
+
navigationDay: day
|
|
92
|
+
} = data;
|
|
93
|
+
const selectedDate = controlledValueRef.current !== undefined ? controlledValueRef.current : stateSelectedDate;
|
|
94
|
+
const handleChange = e => {
|
|
95
|
+
const nextState = {
|
|
96
|
+
year,
|
|
97
|
+
month,
|
|
98
|
+
day
|
|
106
99
|
};
|
|
107
|
-
|
|
108
100
|
switch (type) {
|
|
109
101
|
case 'month_year':
|
|
110
102
|
{
|
|
111
103
|
nextState.year = -1;
|
|
112
104
|
nextState.month = -1;
|
|
113
105
|
nextState.day = -1;
|
|
114
|
-
|
|
115
106
|
if (e.target.value) {
|
|
116
|
-
|
|
117
|
-
_e$target$value$split2 = _slicedToArray(_e$target$value$split, 2),
|
|
118
|
-
yearStr = _e$target$value$split2[0],
|
|
119
|
-
monthStr = _e$target$value$split2[1];
|
|
120
|
-
|
|
107
|
+
const [yearStr, monthStr] = e.target.value.split('-');
|
|
121
108
|
nextState.year = parseInt(yearStr, 10);
|
|
122
109
|
nextState.month = parseInt(monthStr, 10);
|
|
123
110
|
nextState.day = -1;
|
|
124
111
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
112
|
+
dispatch({
|
|
113
|
+
type: NAVIGATE,
|
|
114
|
+
...nextState
|
|
115
|
+
});
|
|
129
116
|
break;
|
|
130
117
|
}
|
|
131
|
-
|
|
132
118
|
case 'day':
|
|
133
119
|
{
|
|
134
120
|
nextState.day = -1;
|
|
135
|
-
|
|
136
121
|
if (e.target.value) {
|
|
137
122
|
nextState.day = parseInt(e.target.value, 10);
|
|
138
123
|
}
|
|
139
|
-
|
|
140
|
-
var nextDate = undefined;
|
|
141
|
-
|
|
124
|
+
let nextDate = undefined;
|
|
142
125
|
if (nextState.day !== -1) {
|
|
143
126
|
if (nextState.year >= 0 && nextState.month >= 0) {
|
|
144
127
|
nextDate = new Date(Date.UTC(nextState.year, nextState.month, nextState.day));
|
|
@@ -146,7 +129,6 @@ export var DatePickerSelect = /*#__PURE__*/forwardRef(function DatePicker(_ref3,
|
|
|
146
129
|
nextDate = new Date(Date.UTC(selectedDate.getFullYear(), selectedDate.getMonth(), nextState.day));
|
|
147
130
|
}
|
|
148
131
|
}
|
|
149
|
-
|
|
150
132
|
if (nextDate !== undefined) {
|
|
151
133
|
onChangeRef.current && onChangeRef.current(nextDate);
|
|
152
134
|
dispatch({
|
|
@@ -154,46 +136,41 @@ export var DatePickerSelect = /*#__PURE__*/forwardRef(function DatePicker(_ref3,
|
|
|
154
136
|
selectedDate: nextDate
|
|
155
137
|
});
|
|
156
138
|
} else {
|
|
157
|
-
dispatch(
|
|
158
|
-
type: NAVIGATE
|
|
159
|
-
|
|
139
|
+
dispatch({
|
|
140
|
+
type: NAVIGATE,
|
|
141
|
+
...nextState
|
|
142
|
+
});
|
|
160
143
|
}
|
|
161
|
-
|
|
162
144
|
break;
|
|
163
145
|
}
|
|
164
146
|
}
|
|
165
147
|
};
|
|
166
|
-
|
|
167
148
|
if (year < 0 && month < 0 && day <= 0 && selectedDate !== null) {
|
|
168
149
|
year = selectedDate.getFullYear();
|
|
169
150
|
month = selectedDate.getMonth();
|
|
170
151
|
day = selectedDate.getDate();
|
|
171
152
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
var disabled = false;
|
|
175
|
-
|
|
153
|
+
let value = '';
|
|
154
|
+
let disabled = false;
|
|
176
155
|
if (type === 'month_year') {
|
|
177
156
|
if (month >= 0 && year >= 0) {
|
|
178
|
-
value =
|
|
157
|
+
value = `${year}-${month}`;
|
|
179
158
|
}
|
|
180
159
|
} else if (type === 'day') {
|
|
181
160
|
disabled = month < 0 || year < 0;
|
|
182
|
-
|
|
183
161
|
if (day > 0) {
|
|
184
|
-
value =
|
|
162
|
+
value = `${day}`;
|
|
185
163
|
}
|
|
186
164
|
}
|
|
187
|
-
|
|
188
|
-
return /*#__PURE__*/_jsx(Comp, _extends(_extends({
|
|
165
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
189
166
|
ref: ref,
|
|
190
167
|
onFocus: wrapEvent(onFocus, handleFocus),
|
|
191
168
|
onBlur: wrapEvent(onBlur, handleBlur),
|
|
192
169
|
onChange: wrapEvent(onChange, handleChange),
|
|
193
170
|
value: value,
|
|
194
171
|
disabled: disabled,
|
|
195
|
-
"data-has-selected": value !== '' ? '' : undefined
|
|
196
|
-
|
|
172
|
+
"data-has-selected": value !== '' ? '' : undefined,
|
|
173
|
+
...rest,
|
|
197
174
|
children: type === 'month_year' ? /*#__PURE__*/_jsx(MonthYearOptions, {
|
|
198
175
|
minDate: minDate,
|
|
199
176
|
maxDate: maxDate,
|
|
@@ -205,6 +182,6 @@ export var DatePickerSelect = /*#__PURE__*/forwardRef(function DatePicker(_ref3,
|
|
|
205
182
|
minDate: minDate,
|
|
206
183
|
emptyOption: emptyOption
|
|
207
184
|
}) : null
|
|
208
|
-
})
|
|
185
|
+
});
|
|
209
186
|
});
|
|
210
187
|
//# sourceMappingURL=DatePickerSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerSelect.js","names":["forwardRef","memo","wrapEvent","differenceInCalendarMonths","addMonths","getDaysInMonth","setDate","useInnerFocus","SET_DATE","NAVIGATE","useDatePickerContext","MonthYearOptions","minDate","maxDate","monthNames","emptyOption","ret","diff","i","date","year","getFullYear","month","getMonth","push","DayOptions","Date","dayNames","day","newDate","valueOf","getDay","DatePickerSelect","DatePicker","ref","as","Comp","type","onFocus","onBlur","onChange","children","rest","onChangeRef","dispatch","controlledValueRef","data","state","handleFocus","handleBlur","stateSelectedDate","selectedDate","navigationYear","navigationMonth","navigationDay","current","undefined","handleChange","e","nextState","target","value","split","yearStr","monthStr","parseInt","nextDate","UTC","getDate","disabled"],"sources":["../../../src/DatePicker/DatePickerSelect.tsx"],"sourcesContent":["import type { ChangeEvent, ElementType, SelectHTMLAttributes } from 'react';\nimport { forwardRef, memo } from 'react';\nimport { wrapEvent } from '@basic-ui/core';\nimport {\n differenceInCalendarMonths,\n addMonths,\n getDaysInMonth,\n setDate,\n} from 'date-fns';\n\nimport { useInnerFocus, SET_DATE, NAVIGATE } from './hooks';\nimport type { DayNames, MonthNames } from './dateTypes';\nimport { useDatePickerContext } from './contexts';\n\nexport interface DatePickerSelectProps\n extends SelectHTMLAttributes<HTMLSelectElement> {\n groupType?: 'from' | 'to';\n type: 'month_year' | 'day';\n emptyOption?: string;\n\n as?: ElementType<any>;\n}\n\nconst MonthYearOptions = memo(\n ({\n minDate,\n maxDate,\n monthNames,\n emptyOption,\n }: {\n minDate: Date;\n maxDate: Date;\n monthNames: MonthNames;\n emptyOption: string;\n }) => {\n const ret = [\n <option key={'empty'} value=\"\" disabled>\n {emptyOption}\n </option>,\n ];\n\n const diff = differenceInCalendarMonths(maxDate, minDate);\n for (let i = 0; i <= diff; i++) {\n const date = addMonths(minDate, i);\n const year = date.getFullYear();\n const month = date.getMonth();\n\n ret.push(\n <option key={`${year}_${month}`} value={`${year}-${month}`}>\n {monthNames[month]} {year}\n </option>\n );\n }\n\n return <>{ret}</>;\n }\n);\n\nconst DayOptions = memo(\n ({\n date = new Date(0),\n dayNames,\n minDate,\n emptyOption,\n }: {\n date: Date | undefined;\n dayNames: DayNames;\n minDate: Date;\n emptyOption: string;\n }) => {\n if (!date) {\n return null;\n }\n\n const ret = [\n <option key={'empty'} value=\"\" disabled>\n {emptyOption}\n </option>,\n ];\n\n for (let day = 1; day <= getDaysInMonth(date); day++) {\n const newDate = setDate(date, day);\n ret.push(\n <option\n key={`day_${day}`}\n value={`${day}`}\n disabled={newDate.valueOf() < minDate.valueOf()}\n >\n {(newDate.getDay(), dayNames[newDate.getDay()])} {day}\n </option>\n );\n }\n\n return <>{ret}</>;\n }\n);\n\nexport const DatePickerSelect = forwardRef(function DatePicker(\n {\n as: Comp = 'select',\n type,\n onFocus,\n onBlur,\n onChange,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n emptyOption = '',\n ...rest\n }: DatePickerSelectProps,\n ref\n) {\n const {\n minDate,\n maxDate,\n monthNames,\n onChangeRef,\n dayNames,\n dispatch,\n controlledValueRef,\n state: data,\n } = useDatePickerContext();\n const { handleFocus, handleBlur } = useInnerFocus();\n\n const { selectedDate: stateSelectedDate } = data;\n let {\n navigationYear: year,\n navigationMonth: month,\n navigationDay: day,\n } = data;\n\n const selectedDate =\n controlledValueRef.current !== undefined\n ? controlledValueRef.current\n : stateSelectedDate;\n\n const handleChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const nextState = {\n year,\n month,\n day,\n };\n\n switch (type) {\n case 'month_year': {\n nextState.year = -1;\n nextState.month = -1;\n nextState.day = -1;\n\n if (e.target.value) {\n const [yearStr, monthStr] = e.target.value.split('-');\n nextState.year = parseInt(yearStr, 10);\n nextState.month = parseInt(monthStr, 10);\n nextState.day = -1;\n }\n\n dispatch({ type: NAVIGATE, ...nextState });\n break;\n }\n case 'day': {\n nextState.day = -1;\n if (e.target.value) {\n nextState.day = parseInt(e.target.value, 10);\n }\n\n let nextDate: Date | undefined = undefined;\n if (nextState.day !== -1) {\n if (nextState.year >= 0 && nextState.month >= 0) {\n nextDate = new Date(\n Date.UTC(nextState.year, nextState.month, nextState.day)\n );\n } else if (selectedDate !== null) {\n nextDate = new Date(\n Date.UTC(\n selectedDate.getFullYear(),\n selectedDate.getMonth(),\n nextState.day\n )\n );\n }\n }\n\n if (nextDate !== undefined) {\n onChangeRef.current && onChangeRef.current(nextDate);\n dispatch({ type: SET_DATE, selectedDate: nextDate });\n } else {\n dispatch({ type: NAVIGATE, ...nextState });\n }\n break;\n }\n }\n };\n\n if (year < 0 && month < 0 && day <= 0 && selectedDate !== null) {\n year = selectedDate.getFullYear();\n month = selectedDate.getMonth();\n day = selectedDate.getDate();\n }\n\n let value = '';\n let disabled = false;\n if (type === 'month_year') {\n if (month >= 0 && year >= 0) {\n value = `${year}-${month}`;\n }\n } else if (type === 'day') {\n disabled = month < 0 || year < 0;\n if (day > 0) {\n value = `${day}`;\n }\n }\n\n return (\n <Comp\n ref={ref}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onChange={wrapEvent(onChange, handleChange)}\n value={value}\n disabled={disabled}\n data-has-selected={value !== '' ? '' : undefined}\n {...rest}\n >\n {type === 'month_year' ? (\n <MonthYearOptions\n minDate={minDate}\n maxDate={maxDate}\n monthNames={monthNames}\n emptyOption={emptyOption}\n />\n ) : type === 'day' ? (\n <DayOptions\n date={\n month >= 0 && year >= 0\n ? new Date(Date.UTC(year, month, 15))\n : undefined\n }\n dayNames={dayNames}\n minDate={minDate}\n emptyOption={emptyOption}\n />\n ) : null}\n </Comp>\n );\n});\n"],"mappings":";;;;AACA,SAASA,UAAT,EAAqBC,IAArB,QAAiC,OAAjC;AACA,SAASC,SAAT,QAA0B,gBAA1B;AACA,SACEC,0BADF,EAEEC,SAFF,EAGEC,cAHF,EAIEC,OAJF,QAKO,UALP;AAOA,SAASC,aAAT,EAAwBC,QAAxB,EAAkCC,QAAlC,QAAkD,SAAlD;AAEA,SAASC,oBAAT,QAAqC,YAArC;;;;AAWA,IAAMC,gBAAgB,gBAAGV,IAAI,CAC3B,gBAUM;EAAA,IATJW,OASI,QATJA,OASI;EAAA,IARJC,OAQI,QARJA,OAQI;EAAA,IAPJC,UAOI,QAPJA,UAOI;EAAA,IANJC,WAMI,QANJA,WAMI;EACJ,IAAMC,GAAG,GAAG,cACV;IAAsB,KAAK,EAAC,EAA5B;IAA+B,QAAQ,MAAvC;IAAA,UACGD;EADH,GAAa,OAAb,CADU,CAAZ;EAMA,IAAME,IAAI,GAAGd,0BAA0B,CAACU,OAAD,EAAUD,OAAV,CAAvC;;EACA,KAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAID,IAArB,EAA2BC,CAAC,EAA5B,EAAgC;IAC9B,IAAMC,IAAI,GAAGf,SAAS,CAACQ,OAAD,EAAUM,CAAV,CAAtB;IACA,IAAME,IAAI,GAAGD,IAAI,CAACE,WAAL,EAAb;IACA,IAAMC,KAAK,GAAGH,IAAI,CAACI,QAAL,EAAd;IAEAP,GAAG,CAACQ,IAAJ,eACE;MAAiC,KAAK,YAAKJ,IAAL,cAAaE,KAAb,CAAtC;MAAA,WACGR,UAAU,CAACQ,KAAD,CADb,OACuBF,IADvB;IAAA,aAAgBA,IAAhB,cAAwBE,KAAxB,EADF;EAKD;;EAED,oBAAO;IAAA,UAAGN;EAAH,EAAP;AACD,CAhC0B,CAA7B;AAmCA,IAAMS,UAAU,gBAAGxB,IAAI,CACrB,iBAUM;EAAA,uBATJkB,IASI;EAAA,IATJA,IASI,2BATG,IAAIO,IAAJ,CAAS,CAAT,CASH;EAAA,IARJC,QAQI,SARJA,QAQI;EAAA,IAPJf,OAOI,SAPJA,OAOI;EAAA,IANJG,WAMI,SANJA,WAMI;;EACJ,IAAI,CAACI,IAAL,EAAW;IACT,OAAO,IAAP;EACD;;EAED,IAAMH,GAAG,GAAG,cACV;IAAsB,KAAK,EAAC,EAA5B;IAA+B,QAAQ,MAAvC;IAAA,UACGD;EADH,GAAa,OAAb,CADU,CAAZ;;EAMA,KAAK,IAAIa,GAAG,GAAG,CAAf,EAAkBA,GAAG,IAAIvB,cAAc,CAACc,IAAD,CAAvC,EAA+CS,GAAG,EAAlD,EAAsD;IACpD,IAAMC,OAAO,GAAGvB,OAAO,CAACa,IAAD,EAAOS,GAAP,CAAvB;IACAZ,GAAG,CAACQ,IAAJ,eACE;MAEE,KAAK,YAAKI,GAAL,CAFP;MAGE,QAAQ,EAAEC,OAAO,CAACC,OAAR,KAAoBlB,OAAO,CAACkB,OAAR,EAHhC;MAAA,YAKID,OAAO,CAACE,MAAR,IAAkBJ,QAAQ,CAACE,OAAO,CAACE,MAAR,EAAD,CAL9B,QAKoDH,GALpD;IAAA,iBACcA,GADd,EADF;EASD;;EAED,oBAAO;IAAA,UAAGZ;EAAH,EAAP;AACD,CApCoB,CAAvB;AAuCA,OAAO,IAAMgB,gBAAgB,gBAAGhC,UAAU,CAAC,SAASiC,UAAT,QAYzCC,GAZyC,EAazC;EAAA,qBAXEC,EAWF;EAAA,IAXMC,IAWN,yBAXa,QAWb;EAAA,IAVEC,IAUF,SAVEA,IAUF;EAAA,IATEC,OASF,SATEA,OASF;EAAA,IAREC,MAQF,SAREA,MAQF;EAAA,IAPEC,QAOF,SAPEA,QAOF;EAAA,IALEC,QAKF,SALEA,QAKF;EAAA,8BAJE1B,WAIF;EAAA,IAJEA,WAIF,kCAJgB,EAIhB;EAAA,IAHK2B,IAGL;;EACA,4BASIhC,oBAAoB,EATxB;EAAA,IACEE,OADF,yBACEA,OADF;EAAA,IAEEC,OAFF,yBAEEA,OAFF;EAAA,IAGEC,UAHF,yBAGEA,UAHF;EAAA,IAIE6B,WAJF,yBAIEA,WAJF;EAAA,IAKEhB,QALF,yBAKEA,QALF;EAAA,IAMEiB,QANF,yBAMEA,QANF;EAAA,IAOEC,kBAPF,yBAOEA,kBAPF;EAAA,IAQSC,IART,yBAQEC,KARF;;EAUA,qBAAoCxC,aAAa,EAAjD;EAAA,IAAQyC,WAAR,kBAAQA,WAAR;EAAA,IAAqBC,UAArB,kBAAqBA,UAArB;;EAEA,IAAsBC,iBAAtB,GAA4CJ,IAA5C,CAAQK,YAAR;EACA,IACkB/B,IADlB,GAII0B,IAJJ,CACEM,cADF;EAAA,IAEmB9B,KAFnB,GAIIwB,IAJJ,CAEEO,eAFF;EAAA,IAGiBzB,GAHjB,GAIIkB,IAJJ,CAGEQ,aAHF;EAMA,IAAMH,YAAY,GAChBN,kBAAkB,CAACU,OAAnB,KAA+BC,SAA/B,GACIX,kBAAkB,CAACU,OADvB,GAEIL,iBAHN;;EAKA,IAAMO,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAuC;IAC1D,IAAMC,SAAS,GAAG;MAChBvC,IAAI,EAAJA,IADgB;MAEhBE,KAAK,EAALA,KAFgB;MAGhBM,GAAG,EAAHA;IAHgB,CAAlB;;IAMA,QAAQS,IAAR;MACE,KAAK,YAAL;QAAmB;UACjBsB,SAAS,CAACvC,IAAV,GAAiB,CAAC,CAAlB;UACAuC,SAAS,CAACrC,KAAV,GAAkB,CAAC,CAAnB;UACAqC,SAAS,CAAC/B,GAAV,GAAgB,CAAC,CAAjB;;UAEA,IAAI8B,CAAC,CAACE,MAAF,CAASC,KAAb,EAAoB;YAClB,4BAA4BH,CAAC,CAACE,MAAF,CAASC,KAAT,CAAeC,KAAf,CAAqB,GAArB,CAA5B;YAAA;YAAA,IAAOC,OAAP;YAAA,IAAgBC,QAAhB;;YACAL,SAAS,CAACvC,IAAV,GAAiB6C,QAAQ,CAACF,OAAD,EAAU,EAAV,CAAzB;YACAJ,SAAS,CAACrC,KAAV,GAAkB2C,QAAQ,CAACD,QAAD,EAAW,EAAX,CAA1B;YACAL,SAAS,CAAC/B,GAAV,GAAgB,CAAC,CAAjB;UACD;;UAEDgB,QAAQ;YAAGP,IAAI,EAAE5B;UAAT,GAAsBkD,SAAtB,EAAR;UACA;QACD;;MACD,KAAK,KAAL;QAAY;UACVA,SAAS,CAAC/B,GAAV,GAAgB,CAAC,CAAjB;;UACA,IAAI8B,CAAC,CAACE,MAAF,CAASC,KAAb,EAAoB;YAClBF,SAAS,CAAC/B,GAAV,GAAgBqC,QAAQ,CAACP,CAAC,CAACE,MAAF,CAASC,KAAV,EAAiB,EAAjB,CAAxB;UACD;;UAED,IAAIK,QAA0B,GAAGV,SAAjC;;UACA,IAAIG,SAAS,CAAC/B,GAAV,KAAkB,CAAC,CAAvB,EAA0B;YACxB,IAAI+B,SAAS,CAACvC,IAAV,IAAkB,CAAlB,IAAuBuC,SAAS,CAACrC,KAAV,IAAmB,CAA9C,EAAiD;cAC/C4C,QAAQ,GAAG,IAAIxC,IAAJ,CACTA,IAAI,CAACyC,GAAL,CAASR,SAAS,CAACvC,IAAnB,EAAyBuC,SAAS,CAACrC,KAAnC,EAA0CqC,SAAS,CAAC/B,GAApD,CADS,CAAX;YAGD,CAJD,MAIO,IAAIuB,YAAY,KAAK,IAArB,EAA2B;cAChCe,QAAQ,GAAG,IAAIxC,IAAJ,CACTA,IAAI,CAACyC,GAAL,CACEhB,YAAY,CAAC9B,WAAb,EADF,EAEE8B,YAAY,CAAC5B,QAAb,EAFF,EAGEoC,SAAS,CAAC/B,GAHZ,CADS,CAAX;YAOD;UACF;;UAED,IAAIsC,QAAQ,KAAKV,SAAjB,EAA4B;YAC1Bb,WAAW,CAACY,OAAZ,IAAuBZ,WAAW,CAACY,OAAZ,CAAoBW,QAApB,CAAvB;YACAtB,QAAQ,CAAC;cAAEP,IAAI,EAAE7B,QAAR;cAAkB2C,YAAY,EAAEe;YAAhC,CAAD,CAAR;UACD,CAHD,MAGO;YACLtB,QAAQ;cAAGP,IAAI,EAAE5B;YAAT,GAAsBkD,SAAtB,EAAR;UACD;;UACD;QACD;IA9CH;EAgDD,CAvDD;;EAyDA,IAAIvC,IAAI,GAAG,CAAP,IAAYE,KAAK,GAAG,CAApB,IAAyBM,GAAG,IAAI,CAAhC,IAAqCuB,YAAY,KAAK,IAA1D,EAAgE;IAC9D/B,IAAI,GAAG+B,YAAY,CAAC9B,WAAb,EAAP;IACAC,KAAK,GAAG6B,YAAY,CAAC5B,QAAb,EAAR;IACAK,GAAG,GAAGuB,YAAY,CAACiB,OAAb,EAAN;EACD;;EAED,IAAIP,KAAK,GAAG,EAAZ;EACA,IAAIQ,QAAQ,GAAG,KAAf;;EACA,IAAIhC,IAAI,KAAK,YAAb,EAA2B;IACzB,IAAIf,KAAK,IAAI,CAAT,IAAcF,IAAI,IAAI,CAA1B,EAA6B;MAC3ByC,KAAK,aAAMzC,IAAN,cAAcE,KAAd,CAAL;IACD;EACF,CAJD,MAIO,IAAIe,IAAI,KAAK,KAAb,EAAoB;IACzBgC,QAAQ,GAAG/C,KAAK,GAAG,CAAR,IAAaF,IAAI,GAAG,CAA/B;;IACA,IAAIQ,GAAG,GAAG,CAAV,EAAa;MACXiC,KAAK,aAAMjC,GAAN,CAAL;IACD;EACF;;EAED,oBACE,KAAC,IAAD;IACE,GAAG,EAAEM,GADP;IAEE,OAAO,EAAEhC,SAAS,CAACoC,OAAD,EAAUU,WAAV,CAFpB;IAGE,MAAM,EAAE9C,SAAS,CAACqC,MAAD,EAASU,UAAT,CAHnB;IAIE,QAAQ,EAAE/C,SAAS,CAACsC,QAAD,EAAWiB,YAAX,CAJrB;IAKE,KAAK,EAAEI,KALT;IAME,QAAQ,EAAEQ,QANZ;IAOE,qBAAmBR,KAAK,KAAK,EAAV,GAAe,EAAf,GAAoBL;EAPzC,GAQMd,IARN;IAAA,UAUGL,IAAI,KAAK,YAAT,gBACC,KAAC,gBAAD;MACE,OAAO,EAAEzB,OADX;MAEE,OAAO,EAAEC,OAFX;MAGE,UAAU,EAAEC,UAHd;MAIE,WAAW,EAAEC;IAJf,EADD,GAOGsB,IAAI,KAAK,KAAT,gBACF,KAAC,UAAD;MACE,IAAI,EACFf,KAAK,IAAI,CAAT,IAAcF,IAAI,IAAI,CAAtB,GACI,IAAIM,IAAJ,CAASA,IAAI,CAACyC,GAAL,CAAS/C,IAAT,EAAeE,KAAf,EAAsB,EAAtB,CAAT,CADJ,GAEIkC,SAJR;MAME,QAAQ,EAAE7B,QANZ;MAOE,OAAO,EAAEf,OAPX;MAQE,WAAW,EAAEG;IARf,EADE,GAWA;EA5BN,GADF;AAgCD,CAlJyC,CAAnC"}
|
|
1
|
+
{"version":3,"file":"DatePickerSelect.js","names":["forwardRef","memo","wrapEvent","differenceInCalendarMonths","addMonths","getDaysInMonth","setDate","useInnerFocus","SET_DATE","NAVIGATE","useDatePickerContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MonthYearOptions","_ref","minDate","maxDate","monthNames","emptyOption","ret","value","disabled","children","diff","i","date","year","getFullYear","month","getMonth","push","DayOptions","_ref2","Date","dayNames","day","newDate","valueOf","getDay","DatePickerSelect","DatePicker","_ref3","ref","as","Comp","type","onFocus","onBlur","onChange","rest","onChangeRef","dispatch","controlledValueRef","state","data","handleFocus","handleBlur","selectedDate","stateSelectedDate","navigationYear","navigationMonth","navigationDay","current","undefined","handleChange","e","nextState","target","yearStr","monthStr","split","parseInt","nextDate","UTC","getDate"],"sources":["../../../src/DatePicker/DatePickerSelect.tsx"],"sourcesContent":["import type { ChangeEvent, ElementType, SelectHTMLAttributes } from 'react';\nimport { forwardRef, memo } from 'react';\nimport { wrapEvent } from '@basic-ui/core';\nimport {\n differenceInCalendarMonths,\n addMonths,\n getDaysInMonth,\n setDate,\n} from 'date-fns';\n\nimport { useInnerFocus, SET_DATE, NAVIGATE } from './hooks';\nimport type { DayNames, MonthNames } from './dateTypes';\nimport { useDatePickerContext } from './contexts';\n\nexport interface DatePickerSelectProps\n extends SelectHTMLAttributes<HTMLSelectElement> {\n groupType?: 'from' | 'to';\n type: 'month_year' | 'day';\n emptyOption?: string;\n\n as?: ElementType<any>;\n}\n\nconst MonthYearOptions = memo(\n ({\n minDate,\n maxDate,\n monthNames,\n emptyOption,\n }: {\n minDate: Date;\n maxDate: Date;\n monthNames: MonthNames;\n emptyOption: string;\n }) => {\n const ret = [\n <option key={'empty'} value=\"\" disabled>\n {emptyOption}\n </option>,\n ];\n\n const diff = differenceInCalendarMonths(maxDate, minDate);\n for (let i = 0; i <= diff; i++) {\n const date = addMonths(minDate, i);\n const year = date.getFullYear();\n const month = date.getMonth();\n\n ret.push(\n <option key={`${year}_${month}`} value={`${year}-${month}`}>\n {monthNames[month]} {year}\n </option>\n );\n }\n\n return <>{ret}</>;\n }\n);\n\nconst DayOptions = memo(\n ({\n date = new Date(0),\n dayNames,\n minDate,\n emptyOption,\n }: {\n date: Date | undefined;\n dayNames: DayNames;\n minDate: Date;\n emptyOption: string;\n }) => {\n if (!date) {\n return null;\n }\n\n const ret = [\n <option key={'empty'} value=\"\" disabled>\n {emptyOption}\n </option>,\n ];\n\n for (let day = 1; day <= getDaysInMonth(date); day++) {\n const newDate = setDate(date, day);\n ret.push(\n <option\n key={`day_${day}`}\n value={`${day}`}\n disabled={newDate.valueOf() < minDate.valueOf()}\n >\n {(newDate.getDay(), dayNames[newDate.getDay()])} {day}\n </option>\n );\n }\n\n return <>{ret}</>;\n }\n);\n\nexport const DatePickerSelect = forwardRef(function DatePicker(\n {\n as: Comp = 'select',\n type,\n onFocus,\n onBlur,\n onChange,\n children,\n emptyOption = '',\n ...rest\n }: DatePickerSelectProps,\n ref\n) {\n const {\n minDate,\n maxDate,\n monthNames,\n onChangeRef,\n dayNames,\n dispatch,\n controlledValueRef,\n state: data,\n } = useDatePickerContext();\n const { handleFocus, handleBlur } = useInnerFocus();\n\n const { selectedDate: stateSelectedDate } = data;\n let {\n navigationYear: year,\n navigationMonth: month,\n navigationDay: day,\n } = data;\n\n const selectedDate =\n controlledValueRef.current !== undefined\n ? controlledValueRef.current\n : stateSelectedDate;\n\n const handleChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const nextState = {\n year,\n month,\n day,\n };\n\n switch (type) {\n case 'month_year': {\n nextState.year = -1;\n nextState.month = -1;\n nextState.day = -1;\n\n if (e.target.value) {\n const [yearStr, monthStr] = e.target.value.split('-');\n nextState.year = parseInt(yearStr, 10);\n nextState.month = parseInt(monthStr, 10);\n nextState.day = -1;\n }\n\n dispatch({ type: NAVIGATE, ...nextState });\n break;\n }\n case 'day': {\n nextState.day = -1;\n if (e.target.value) {\n nextState.day = parseInt(e.target.value, 10);\n }\n\n let nextDate: Date | undefined = undefined;\n if (nextState.day !== -1) {\n if (nextState.year >= 0 && nextState.month >= 0) {\n nextDate = new Date(\n Date.UTC(nextState.year, nextState.month, nextState.day)\n );\n } else if (selectedDate !== null) {\n nextDate = new Date(\n Date.UTC(\n selectedDate.getFullYear(),\n selectedDate.getMonth(),\n nextState.day\n )\n );\n }\n }\n\n if (nextDate !== undefined) {\n onChangeRef.current && onChangeRef.current(nextDate);\n dispatch({ type: SET_DATE, selectedDate: nextDate });\n } else {\n dispatch({ type: NAVIGATE, ...nextState });\n }\n break;\n }\n }\n };\n\n if (year < 0 && month < 0 && day <= 0 && selectedDate !== null) {\n year = selectedDate.getFullYear();\n month = selectedDate.getMonth();\n day = selectedDate.getDate();\n }\n\n let value = '';\n let disabled = false;\n if (type === 'month_year') {\n if (month >= 0 && year >= 0) {\n value = `${year}-${month}`;\n }\n } else if (type === 'day') {\n disabled = month < 0 || year < 0;\n if (day > 0) {\n value = `${day}`;\n }\n }\n\n return (\n <Comp\n ref={ref}\n onFocus={wrapEvent(onFocus, handleFocus)}\n onBlur={wrapEvent(onBlur, handleBlur)}\n onChange={wrapEvent(onChange, handleChange)}\n value={value}\n disabled={disabled}\n data-has-selected={value !== '' ? '' : undefined}\n {...rest}\n >\n {type === 'month_year' ? (\n <MonthYearOptions\n minDate={minDate}\n maxDate={maxDate}\n monthNames={monthNames}\n emptyOption={emptyOption}\n />\n ) : type === 'day' ? (\n <DayOptions\n date={\n month >= 0 && year >= 0\n ? new Date(Date.UTC(year, month, 15))\n : undefined\n }\n dayNames={dayNames}\n minDate={minDate}\n emptyOption={emptyOption}\n />\n ) : null}\n </Comp>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
import type { MonthNames, DayNames } from './dateTypes';
|
|
3
|
-
export
|
|
3
|
+
export type RangeDatePickerProps = Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> & {
|
|
4
4
|
as?: ElementType<any>;
|
|
5
5
|
minDate?: Date;
|
|
6
6
|
maxDate?: Date;
|
|
@@ -14,15 +14,15 @@ export declare type RangeDatePickerProps = Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
14
14
|
defaultTo?: Date | null;
|
|
15
15
|
};
|
|
16
16
|
export declare const RangeDatePicker: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
17
|
-
as?: ElementType<any
|
|
18
|
-
minDate?: Date
|
|
19
|
-
maxDate?: Date
|
|
17
|
+
as?: ElementType<any>;
|
|
18
|
+
minDate?: Date;
|
|
19
|
+
maxDate?: Date;
|
|
20
20
|
dayNames: DayNames;
|
|
21
21
|
monthNames: MonthNames;
|
|
22
|
-
children?: ReactNode[]
|
|
23
|
-
onChange?: (
|
|
24
|
-
from?: Date | null
|
|
25
|
-
to?: Date | null
|
|
26
|
-
defaultFrom?: Date | null
|
|
27
|
-
defaultTo?: Date | null
|
|
22
|
+
children?: ReactNode[];
|
|
23
|
+
onChange?: (from: Date | null, to: Date | null) => void;
|
|
24
|
+
from?: Date | null;
|
|
25
|
+
to?: Date | null;
|
|
26
|
+
defaultFrom?: Date | null;
|
|
27
|
+
defaultTo?: Date | null;
|
|
28
28
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,97 +1,80 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["as", "minDate", "maxDate", "dayNames", "monthNames", "onChange", "from", "to", "defaultFrom", "defaultTo"];
|
|
5
1
|
import { forwardRef, useRef, useState } from 'react';
|
|
6
2
|
import { assignMultipleRefs } from '@basic-ui/core';
|
|
7
3
|
import { adjustDates } from './adjustDates';
|
|
8
4
|
import { RangeDatePickerProvider } from './contexts';
|
|
9
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
6
|
+
export const RangeDatePicker = /*#__PURE__*/forwardRef(function RangeDatePicker(_ref, ref) {
|
|
7
|
+
let {
|
|
8
|
+
as: Comp = 'div',
|
|
9
|
+
minDate: propMinDate = new Date(0),
|
|
10
|
+
maxDate: propMaxDate = new Date(),
|
|
11
|
+
dayNames,
|
|
12
|
+
monthNames,
|
|
13
|
+
onChange,
|
|
14
|
+
from: controlledFrom,
|
|
15
|
+
to: controlledTo,
|
|
16
|
+
defaultFrom,
|
|
17
|
+
defaultTo,
|
|
18
|
+
...rest
|
|
19
|
+
} = _ref;
|
|
20
|
+
const isControlled = controlledFrom !== undefined && controlledTo !== undefined;
|
|
21
|
+
const minDate = propMinDate,
|
|
22
|
+
maxDate = propMaxDate;
|
|
23
|
+
const rangeDatePickerRef = useRef(null);
|
|
24
|
+
const [{
|
|
25
|
+
from: stateFrom,
|
|
26
|
+
to: stateTo
|
|
27
|
+
}, setDates] = useState({
|
|
32
28
|
from: defaultFrom || null,
|
|
33
29
|
to: defaultTo || null
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
43
|
-
innerHasFocus = _useState4[0],
|
|
44
|
-
setInnerHasFocus = _useState4[1];
|
|
45
|
-
|
|
46
|
-
var onChangeFrom = function onChangeFrom(from) {
|
|
47
|
-
var to = stateTo;
|
|
48
|
-
|
|
49
|
-
var _adjustDates = adjustDates(from, to, 'from'),
|
|
50
|
-
nextFrom = _adjustDates.from,
|
|
51
|
-
nextTo = _adjustDates.to;
|
|
52
|
-
|
|
30
|
+
});
|
|
31
|
+
const [innerHasFocus, setInnerHasFocus] = useState(false);
|
|
32
|
+
const onChangeFrom = from => {
|
|
33
|
+
const to = stateTo;
|
|
34
|
+
const {
|
|
35
|
+
from: nextFrom,
|
|
36
|
+
to: nextTo
|
|
37
|
+
} = adjustDates(from, to, 'from');
|
|
53
38
|
onChange && onChange(nextFrom, nextTo);
|
|
54
39
|
setDates({
|
|
55
40
|
from: nextFrom,
|
|
56
41
|
to: nextTo
|
|
57
42
|
});
|
|
58
43
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
nextTo = _adjustDates2.to;
|
|
66
|
-
|
|
44
|
+
const onChangeTo = to => {
|
|
45
|
+
const from = stateFrom;
|
|
46
|
+
const {
|
|
47
|
+
from: nextFrom,
|
|
48
|
+
to: nextTo
|
|
49
|
+
} = adjustDates(from, to, 'to');
|
|
67
50
|
onChange && onChange(nextFrom, nextTo);
|
|
68
51
|
setDates({
|
|
69
52
|
from: nextFrom,
|
|
70
53
|
to: nextTo
|
|
71
54
|
});
|
|
72
55
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
onChangeTo: onChangeTo
|
|
56
|
+
const from = isControlled ? controlledFrom : stateFrom;
|
|
57
|
+
const to = isControlled ? controlledTo : stateTo;
|
|
58
|
+
const contextValue = {
|
|
59
|
+
rangeDatePickerRef,
|
|
60
|
+
innerHasFocus,
|
|
61
|
+
setInnerHasFocus,
|
|
62
|
+
minDate,
|
|
63
|
+
maxDate,
|
|
64
|
+
from,
|
|
65
|
+
to,
|
|
66
|
+
dayNames,
|
|
67
|
+
monthNames,
|
|
68
|
+
onChangeFrom,
|
|
69
|
+
onChangeTo
|
|
88
70
|
};
|
|
89
71
|
return /*#__PURE__*/_jsx(RangeDatePickerProvider, {
|
|
90
72
|
value: contextValue,
|
|
91
|
-
children: /*#__PURE__*/_jsx(Comp,
|
|
73
|
+
children: /*#__PURE__*/_jsx(Comp, {
|
|
92
74
|
ref: assignMultipleRefs(ref, rangeDatePickerRef),
|
|
93
|
-
"data-has-focus": innerHasFocus ? '' : undefined
|
|
94
|
-
|
|
75
|
+
"data-has-focus": innerHasFocus ? '' : undefined,
|
|
76
|
+
...rest
|
|
77
|
+
})
|
|
95
78
|
});
|
|
96
79
|
});
|
|
97
80
|
//# sourceMappingURL=RangeDatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeDatePicker.js","names":["forwardRef","useRef","useState","assignMultipleRefs","adjustDates","RangeDatePickerProvider","RangeDatePicker","ref","as","Comp","minDate","propMinDate","Date","maxDate","propMaxDate","dayNames","monthNames","onChange","
|
|
1
|
+
{"version":3,"file":"RangeDatePicker.js","names":["forwardRef","useRef","useState","assignMultipleRefs","adjustDates","RangeDatePickerProvider","jsx","_jsx","RangeDatePicker","_ref","ref","as","Comp","minDate","propMinDate","Date","maxDate","propMaxDate","dayNames","monthNames","onChange","from","controlledFrom","to","controlledTo","defaultFrom","defaultTo","rest","isControlled","undefined","rangeDatePickerRef","stateFrom","stateTo","setDates","innerHasFocus","setInnerHasFocus","onChangeFrom","nextFrom","nextTo","onChangeTo","contextValue","value","children"],"sources":["../../../src/DatePicker/RangeDatePicker.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from 'react';\nimport { forwardRef, useRef, useState } from 'react';\nimport { assignMultipleRefs } from '@basic-ui/core';\n\nimport type { MonthNames, DayNames } from './dateTypes';\nimport { adjustDates } from './adjustDates';\nimport type { RangeDatePickerContextProps } from './contexts';\nimport { RangeDatePickerProvider } from './contexts';\n\nexport type RangeDatePickerProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange'\n> & {\n as?: ElementType<any>;\n minDate?: Date;\n maxDate?: Date;\n dayNames: DayNames;\n monthNames: MonthNames;\n children?: ReactNode[];\n onChange?: (from: Date | null, to: Date | null) => void;\n from?: Date | null;\n to?: Date | null;\n defaultFrom?: Date | null;\n defaultTo?: Date | null;\n};\n\nexport const RangeDatePicker = forwardRef<HTMLDivElement, RangeDatePickerProps>(\n function RangeDatePicker(\n {\n as: Comp = 'div',\n minDate: propMinDate = new Date(0),\n maxDate: propMaxDate = new Date(),\n dayNames,\n monthNames,\n onChange,\n from: controlledFrom,\n to: controlledTo,\n defaultFrom,\n defaultTo,\n ...rest\n },\n ref\n ) {\n const isControlled =\n controlledFrom !== undefined && controlledTo !== undefined;\n\n const minDate = propMinDate,\n maxDate = propMaxDate;\n\n const rangeDatePickerRef = useRef<HTMLDivElement | null>(null);\n const [{ from: stateFrom, to: stateTo }, setDates] = useState({\n from: (defaultFrom || null) as Date | null,\n to: (defaultTo || null) as Date | null,\n });\n const [innerHasFocus, setInnerHasFocus] = useState(false);\n\n const onChangeFrom = (from: Date | null) => {\n const to = stateTo;\n const { from: nextFrom, to: nextTo } = adjustDates(from, to, 'from');\n\n onChange && onChange(nextFrom, nextTo);\n setDates({ from: nextFrom, to: nextTo });\n };\n\n const onChangeTo = (to: Date | null) => {\n const from = stateFrom;\n const { from: nextFrom, to: nextTo } = adjustDates(from, to, 'to');\n\n onChange && onChange(nextFrom, nextTo);\n setDates({ from: nextFrom, to: nextTo });\n };\n\n const from = isControlled ? controlledFrom : stateFrom;\n const to = isControlled ? controlledTo : stateTo;\n\n const contextValue: RangeDatePickerContextProps = {\n rangeDatePickerRef,\n innerHasFocus,\n setInnerHasFocus,\n minDate,\n maxDate,\n from,\n to,\n dayNames,\n monthNames,\n onChangeFrom,\n onChangeTo,\n };\n\n return (\n <RangeDatePickerProvider value={contextValue}>\n <Comp\n ref={assignMultipleRefs(ref, rangeDatePickerRef)}\n data-has-focus={innerHasFocus ? '' : undefined}\n {...rest}\n />\n </RangeDatePickerProvider>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adjustDates.js","names":["addDays","isValid","differenceInDays","adjustDates","from","to","frozenParam"],"sources":["../../../src/DatePicker/adjustDates.ts"],"sourcesContent":["import { addDays, isValid, differenceInDays } from 'date-fns';\n\nexport function adjustDates(\n from: Date | null,\n to: Date | null,\n frozenParam: 'from' | 'to'\n) {\n if (to && isValid(to) && from && isValid(from)) {\n if (differenceInDays(to, from) < 1) {\n if (frozenParam === 'from') {\n to = addDays(from, 1); // add one day\n } else {\n from = addDays(from, -1); // remove one day\n }\n }\n }\n\n return { from, to };\n}\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"file":"adjustDates.js","names":["addDays","isValid","differenceInDays","adjustDates","from","to","frozenParam"],"sources":["../../../src/DatePicker/adjustDates.ts"],"sourcesContent":["import { addDays, isValid, differenceInDays } from 'date-fns';\n\nexport function adjustDates(\n from: Date | null,\n to: Date | null,\n frozenParam: 'from' | 'to'\n) {\n if (to && isValid(to) && from && isValid(from)) {\n if (differenceInDays(to, from) < 1) {\n if (frozenParam === 'from') {\n to = addDays(from, 1); // add one day\n } else {\n from = addDays(from, -1); // remove one day\n }\n }\n }\n\n return { from, to };\n}\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,OAAO,EAAEC,gBAAgB,QAAQ,UAAU;AAE7D,OAAO,SAASC,WAAWA,CACzBC,IAAiB,EACjBC,EAAe,EACfC,WAA0B,EAC1B;EACA,IAAID,EAAE,IAAIJ,OAAO,CAACI,EAAE,CAAC,IAAID,IAAI,IAAIH,OAAO,CAACG,IAAI,CAAC,EAAE;IAC9C,IAAIF,gBAAgB,CAACG,EAAE,EAAED,IAAI,CAAC,GAAG,CAAC,EAAE;MAClC,IAAIE,WAAW,KAAK,MAAM,EAAE;QAC1BD,EAAE,GAAGL,OAAO,CAACI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;MACzB,CAAC,MAAM;QACLA,IAAI,GAAGJ,OAAO,CAACI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;MAC5B;IACF;EACF;EAEA,OAAO;IAAEA,IAAI;IAAEC;EAAG,CAAC;AACrB","ignoreList":[]}
|