@acusti/date-picker 0.14.1 → 0.15.0
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/README.md +119 -31
- package/dist/DatePicker.d.ts +3 -3
- package/dist/index.js +159 -195
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@acusti/date-picker)
|
|
4
4
|
[](https://www.npmjs.com/package/@acusti/date-picker)
|
|
5
5
|
[](https://bundlejs.com/?q=%40acusti%2Fdate-picker)
|
|
6
|
-
[](https://socket.dev/npm/package/@acusti/date-picker/overview/0.14.1)
|
|
7
7
|
|
|
8
8
|
A comprehensive React date picker library with support for single date
|
|
9
9
|
selection, date ranges, and two-up month calendar views. Built with
|
|
@@ -49,7 +49,7 @@ function SimpleDatePicker() {
|
|
|
49
49
|
return (
|
|
50
50
|
<DatePicker
|
|
51
51
|
onChange={({ dateStart }) => setSelectedDate(dateStart)}
|
|
52
|
-
|
|
52
|
+
defaultDateStart={selectedDate}
|
|
53
53
|
/>
|
|
54
54
|
);
|
|
55
55
|
}
|
|
@@ -59,7 +59,7 @@ function DateRangePicker() {
|
|
|
59
59
|
const [dateRange, setDateRange] = useState({ start: '', end: '' });
|
|
60
60
|
|
|
61
61
|
const handleChange = ({ dateStart, dateEnd }) => {
|
|
62
|
-
setDateRange({ start: dateStart, end: dateEnd
|
|
62
|
+
setDateRange({ start: dateStart, end: dateEnd ?? '' });
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
return (
|
|
@@ -67,14 +67,57 @@ function DateRangePicker() {
|
|
|
67
67
|
isRange
|
|
68
68
|
isTwoUp
|
|
69
69
|
onChange={handleChange}
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
defaultDateStart={dateRange.start}
|
|
71
|
+
defaultDateEnd={dateRange.end}
|
|
72
72
|
useMonthAbbreviations
|
|
73
73
|
/>
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
## Component Behavior
|
|
79
|
+
|
|
80
|
+
The `DatePicker` component is **uncontrolled**, meaning it manages its own
|
|
81
|
+
internal state. The `defaultDateStart` and `defaultDateEnd` props are used
|
|
82
|
+
only to set the default state when the component first mounts.
|
|
83
|
+
|
|
84
|
+
### Resetting State
|
|
85
|
+
|
|
86
|
+
To reset the date picker’s internal state (for example, to clear selected
|
|
87
|
+
dates), change the component’s `key` prop:
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
function DatePickerWithReset() {
|
|
91
|
+
const [resetKey, setResetKey] = useState(0);
|
|
92
|
+
const [selectedDates, setSelectedDates] = useState({
|
|
93
|
+
start: '',
|
|
94
|
+
end: '',
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const handleReset = () => {
|
|
98
|
+
setResetKey((prev) => prev + 1); // This will reset the DatePicker
|
|
99
|
+
setSelectedDates({ start: '', end: '' });
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div>
|
|
104
|
+
<DatePicker
|
|
105
|
+
key={resetKey} // Changing this resets all internal state
|
|
106
|
+
defaultDateStart={selectedDates.start}
|
|
107
|
+
defaultDateEnd={selectedDates.end}
|
|
108
|
+
onChange={({ dateStart, dateEnd }) => {
|
|
109
|
+
setSelectedDates({
|
|
110
|
+
start: dateStart,
|
|
111
|
+
end: dateEnd ?? '',
|
|
112
|
+
});
|
|
113
|
+
}}
|
|
114
|
+
/>
|
|
115
|
+
<button onClick={handleReset}>Reset Dates</button>
|
|
116
|
+
</div>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
78
121
|
## API Reference
|
|
79
122
|
|
|
80
123
|
### DatePicker Component
|
|
@@ -84,11 +127,11 @@ type Props = {
|
|
|
84
127
|
/** Additional CSS class name for styling */
|
|
85
128
|
className?: string;
|
|
86
129
|
|
|
87
|
-
/**
|
|
88
|
-
|
|
130
|
+
/** Default end date for range selection (Date object, ISO string, timestamp, or null) */
|
|
131
|
+
defaultDateEnd?: Date | string | number | null;
|
|
89
132
|
|
|
90
|
-
/**
|
|
91
|
-
|
|
133
|
+
/** Default start date for single or range selection (Date object, ISO string, timestamp, or null) */
|
|
134
|
+
defaultDateStart?: Date | string | number | null;
|
|
92
135
|
|
|
93
136
|
/** Initial month to display (number of months since January 1970) */
|
|
94
137
|
initialMonth?: number;
|
|
@@ -173,6 +216,7 @@ import { DatePicker } from '@acusti/date-picker';
|
|
|
173
216
|
import { useState } from 'react';
|
|
174
217
|
|
|
175
218
|
function BookingDatePicker() {
|
|
219
|
+
const [resetKey, setResetKey] = useState(0);
|
|
176
220
|
const [checkIn, setCheckIn] = useState('');
|
|
177
221
|
const [checkOut, setCheckOut] = useState('');
|
|
178
222
|
const isValid = checkIn && checkOut;
|
|
@@ -182,11 +226,20 @@ function BookingDatePicker() {
|
|
|
182
226
|
const monthLimitFirst = getMonthFromDate(today);
|
|
183
227
|
const monthLimitLast = monthLimitFirst + 12;
|
|
184
228
|
|
|
229
|
+
const handleClearDates = () => {
|
|
230
|
+
setResetKey((prev) => prev + 1);
|
|
231
|
+
setCheckIn('');
|
|
232
|
+
setCheckOut('');
|
|
233
|
+
};
|
|
234
|
+
|
|
185
235
|
return (
|
|
186
236
|
<div className="booking-date-picker">
|
|
187
237
|
<h3>Select Your Stay</h3>
|
|
188
238
|
<DatePicker
|
|
189
|
-
|
|
239
|
+
key={resetKey}
|
|
240
|
+
className="booking-calendar"
|
|
241
|
+
defaultDateStart={checkIn}
|
|
242
|
+
defaultDateEnd={checkOut}
|
|
190
243
|
isRange
|
|
191
244
|
isTwoUp
|
|
192
245
|
monthLimitFirst={monthLimitFirst}
|
|
@@ -195,11 +248,22 @@ function BookingDatePicker() {
|
|
|
195
248
|
setCheckIn(dateStart);
|
|
196
249
|
setCheckOut(dateEnd ?? '');
|
|
197
250
|
}}
|
|
198
|
-
dateStart={checkIn}
|
|
199
|
-
dateEnd={checkOut}
|
|
200
251
|
useMonthAbbreviations
|
|
201
252
|
/>
|
|
202
253
|
|
|
254
|
+
<button
|
|
255
|
+
onClick={handleClearDates}
|
|
256
|
+
style={{
|
|
257
|
+
marginTop: '12px',
|
|
258
|
+
padding: '8px 16px',
|
|
259
|
+
border: '1px solid #ccc',
|
|
260
|
+
borderRadius: '4px',
|
|
261
|
+
cursor: 'pointer',
|
|
262
|
+
}}
|
|
263
|
+
>
|
|
264
|
+
Clear Dates
|
|
265
|
+
</button>
|
|
266
|
+
|
|
203
267
|
{isValid ? (
|
|
204
268
|
<div
|
|
205
269
|
className="booking-summary"
|
|
@@ -415,6 +479,7 @@ import { DatePicker, getMonthFromDate } from '@acusti/date-picker';
|
|
|
415
479
|
import { useState } from 'react';
|
|
416
480
|
|
|
417
481
|
function BirthdayPicker() {
|
|
482
|
+
const [resetKey, setResetKey] = useState(0);
|
|
418
483
|
const [birthday, setBirthday] = useState('');
|
|
419
484
|
|
|
420
485
|
// Reasonable age limits: 13 to 120 years ago
|
|
@@ -442,36 +507,59 @@ function BirthdayPicker() {
|
|
|
442
507
|
),
|
|
443
508
|
);
|
|
444
509
|
|
|
510
|
+
const handleClear = () => {
|
|
511
|
+
setResetKey((prev) => prev + 1);
|
|
512
|
+
setBirthday('');
|
|
513
|
+
};
|
|
514
|
+
|
|
445
515
|
return (
|
|
446
516
|
<div className="birthday-picker">
|
|
447
517
|
<h3>Enter Your Birthday</h3>
|
|
448
518
|
<DatePicker
|
|
519
|
+
key={resetKey}
|
|
449
520
|
initialMonth={defaultMonth}
|
|
450
521
|
monthLimitFirst={monthLimitFirst}
|
|
451
522
|
monthLimitLast={monthLimitLast}
|
|
452
523
|
onChange={({ dateStart }) => setBirthday(dateStart)}
|
|
453
|
-
|
|
524
|
+
defaultDateStart={birthday}
|
|
454
525
|
/>
|
|
455
526
|
|
|
456
527
|
{birthday ? (
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
528
|
+
<>
|
|
529
|
+
<button
|
|
530
|
+
onClick={handleClear}
|
|
531
|
+
style={{
|
|
532
|
+
marginTop: '12px',
|
|
533
|
+
padding: '6px 12px',
|
|
534
|
+
border: '1px solid #dc3545',
|
|
535
|
+
borderRadius: '4px',
|
|
536
|
+
cursor: 'pointer',
|
|
537
|
+
backgroundColor: '#fff',
|
|
538
|
+
color: '#dc3545',
|
|
539
|
+
fontSize: '14px',
|
|
540
|
+
}}
|
|
541
|
+
>
|
|
542
|
+
Clear Birthday
|
|
543
|
+
</button>
|
|
544
|
+
<p
|
|
545
|
+
style={{
|
|
546
|
+
marginTop: '12px',
|
|
547
|
+
padding: '12px',
|
|
548
|
+
backgroundColor: '#e3f2fd',
|
|
549
|
+
borderRadius: '6px',
|
|
550
|
+
}}
|
|
551
|
+
>
|
|
552
|
+
<strong>
|
|
553
|
+
You are{' '}
|
|
554
|
+
{Math.floor(
|
|
555
|
+
(today.getTime() -
|
|
556
|
+
new Date(birthday).getTime()) /
|
|
557
|
+
(1000 * 60 * 60 * 24 * 365.25),
|
|
558
|
+
)}{' '}
|
|
559
|
+
years old
|
|
560
|
+
</strong>
|
|
561
|
+
</p>
|
|
562
|
+
</>
|
|
475
563
|
) : null}
|
|
476
564
|
</div>
|
|
477
565
|
);
|
package/dist/DatePicker.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type Props = {
|
|
2
2
|
className?: string;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
defaultDateEnd?: Date | null | number | string;
|
|
4
|
+
defaultDateStart?: Date | null | number | string;
|
|
5
5
|
initialMonth?: number;
|
|
6
6
|
isRange?: boolean;
|
|
7
7
|
isTwoUp?: boolean;
|
|
@@ -19,4 +19,4 @@ export type Props = {
|
|
|
19
19
|
showEndInitially?: boolean;
|
|
20
20
|
useMonthAbbreviations?: boolean;
|
|
21
21
|
};
|
|
22
|
-
export default function DatePicker({ className,
|
|
22
|
+
export default function DatePicker({ className, defaultDateEnd, defaultDateStart, initialMonth, isRange: _isRange, isTwoUp, monthLimitFirst, monthLimitLast: _monthLimitLast, onChange, showEndInitially, useMonthAbbreviations, }: Props): import("react/jsx-runtime").JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Style } from "@acusti/styling";
|
|
4
4
|
import clsx from "clsx";
|
|
5
|
-
import { Fragment, useState, useRef
|
|
5
|
+
import { Fragment, useState, useRef } from "react";
|
|
6
6
|
const ROOT_CLASS_NAME$1 = "uktmonthcalendar";
|
|
7
7
|
const STYLES$1 = `
|
|
8
8
|
.${ROOT_CLASS_NAME$1} {
|
|
@@ -515,11 +515,11 @@ const normalizeDate = (date) => {
|
|
|
515
515
|
return typeof date === "string" ? date : new Date(date).toISOString();
|
|
516
516
|
};
|
|
517
517
|
function DatePicker(t0) {
|
|
518
|
-
const $ = c(
|
|
518
|
+
const $ = c(62);
|
|
519
519
|
let {
|
|
520
520
|
className,
|
|
521
|
-
|
|
522
|
-
|
|
521
|
+
defaultDateEnd,
|
|
522
|
+
defaultDateStart,
|
|
523
523
|
initialMonth,
|
|
524
524
|
isRange: _isRange,
|
|
525
525
|
isTwoUp,
|
|
@@ -529,77 +529,41 @@ function DatePicker(t0) {
|
|
|
529
529
|
showEndInitially,
|
|
530
530
|
useMonthAbbreviations
|
|
531
531
|
} = t0;
|
|
532
|
-
const isRange = _isRange ??
|
|
532
|
+
const isRange = _isRange ?? defaultDateEnd != null;
|
|
533
533
|
const monthLimitLast = isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;
|
|
534
534
|
let t1;
|
|
535
|
-
if ($[0] !==
|
|
536
|
-
t1 = normalizeDate(
|
|
537
|
-
$[0] =
|
|
535
|
+
if ($[0] !== defaultDateEnd) {
|
|
536
|
+
t1 = normalizeDate(defaultDateEnd);
|
|
537
|
+
$[0] = defaultDateEnd;
|
|
538
538
|
$[1] = t1;
|
|
539
539
|
} else {
|
|
540
540
|
t1 = $[1];
|
|
541
541
|
}
|
|
542
|
-
const
|
|
542
|
+
const defaultDateEndNormalized = t1;
|
|
543
543
|
let t2;
|
|
544
|
-
if ($[2] !==
|
|
545
|
-
t2 = normalizeDate(
|
|
546
|
-
$[2] =
|
|
544
|
+
if ($[2] !== defaultDateStart) {
|
|
545
|
+
t2 = normalizeDate(defaultDateStart);
|
|
546
|
+
$[2] = defaultDateStart;
|
|
547
547
|
$[3] = t2;
|
|
548
548
|
} else {
|
|
549
549
|
t2 = $[3];
|
|
550
550
|
}
|
|
551
|
-
const
|
|
552
|
-
const [dateEnd, setDateEnd] = useState(
|
|
553
|
-
const [dateStart, setDateStart] = useState(
|
|
551
|
+
const defaultDateStartNormalized = t2;
|
|
552
|
+
const [dateEnd, setDateEnd] = useState(defaultDateEndNormalized);
|
|
553
|
+
const [dateStart, setDateStart] = useState(defaultDateStartNormalized);
|
|
554
554
|
const updatingDateEndRef = useRef(false);
|
|
555
|
-
let t3;
|
|
556
|
-
let t4;
|
|
557
|
-
if ($[4] !== dateEndFromProps) {
|
|
558
|
-
t3 = () => {
|
|
559
|
-
if (dateEndFromProps == null) {
|
|
560
|
-
return;
|
|
561
|
-
}
|
|
562
|
-
setDateEnd(dateEndFromProps);
|
|
563
|
-
};
|
|
564
|
-
t4 = [dateEndFromProps];
|
|
565
|
-
$[4] = dateEndFromProps;
|
|
566
|
-
$[5] = t3;
|
|
567
|
-
$[6] = t4;
|
|
568
|
-
} else {
|
|
569
|
-
t3 = $[5];
|
|
570
|
-
t4 = $[6];
|
|
571
|
-
}
|
|
572
|
-
useEffect(t3, t4);
|
|
573
|
-
let t5;
|
|
574
|
-
let t6;
|
|
575
|
-
if ($[7] !== dateStartFromProps) {
|
|
576
|
-
t5 = () => {
|
|
577
|
-
if (dateStartFromProps == null) {
|
|
578
|
-
return;
|
|
579
|
-
}
|
|
580
|
-
setDateStart(dateStartFromProps);
|
|
581
|
-
};
|
|
582
|
-
t6 = [dateStartFromProps];
|
|
583
|
-
$[7] = dateStartFromProps;
|
|
584
|
-
$[8] = t5;
|
|
585
|
-
$[9] = t6;
|
|
586
|
-
} else {
|
|
587
|
-
t5 = $[8];
|
|
588
|
-
t6 = $[9];
|
|
589
|
-
}
|
|
590
|
-
useEffect(t5, t6);
|
|
591
555
|
if (initialMonth == null) {
|
|
592
556
|
const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);
|
|
593
557
|
const initialDate = useDateEnd ? dateEnd : dateStart;
|
|
594
|
-
let
|
|
595
|
-
if ($[
|
|
596
|
-
|
|
597
|
-
$[
|
|
598
|
-
$[
|
|
558
|
+
let t32;
|
|
559
|
+
if ($[4] !== initialDate) {
|
|
560
|
+
t32 = getMonthFromDate(initialDate == null ? /* @__PURE__ */ new Date() : new Date(initialDate));
|
|
561
|
+
$[4] = initialDate;
|
|
562
|
+
$[5] = t32;
|
|
599
563
|
} else {
|
|
600
|
-
|
|
564
|
+
t32 = $[5];
|
|
601
565
|
}
|
|
602
|
-
initialMonth =
|
|
566
|
+
initialMonth = t32;
|
|
603
567
|
if (useDateEnd && isTwoUp) {
|
|
604
568
|
initialMonth = initialMonth - 1;
|
|
605
569
|
}
|
|
@@ -609,33 +573,33 @@ function DatePicker(t0) {
|
|
|
609
573
|
const [month, setMonth] = useState(initialMonth);
|
|
610
574
|
const [dateEndPreview, setDateEndPreview] = useState(null);
|
|
611
575
|
const delta = isTwoUp ? 2 : 1;
|
|
612
|
-
let
|
|
613
|
-
if ($[
|
|
614
|
-
|
|
576
|
+
let t3;
|
|
577
|
+
if ($[6] !== delta || $[7] !== monthLimitFirst) {
|
|
578
|
+
t3 = () => {
|
|
615
579
|
setMonth((existingMonth) => Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity));
|
|
616
580
|
};
|
|
617
|
-
$[
|
|
618
|
-
$[
|
|
619
|
-
$[
|
|
581
|
+
$[6] = delta;
|
|
582
|
+
$[7] = monthLimitFirst;
|
|
583
|
+
$[8] = t3;
|
|
620
584
|
} else {
|
|
621
|
-
|
|
585
|
+
t3 = $[8];
|
|
622
586
|
}
|
|
623
|
-
const handleClickLeftArrow =
|
|
624
|
-
let
|
|
625
|
-
if ($[
|
|
626
|
-
|
|
587
|
+
const handleClickLeftArrow = t3;
|
|
588
|
+
let t4;
|
|
589
|
+
if ($[9] !== delta || $[10] !== monthLimitLast) {
|
|
590
|
+
t4 = () => {
|
|
627
591
|
setMonth((existingMonth_0) => Math.min(existingMonth_0 + delta, monthLimitLast ?? Infinity));
|
|
628
592
|
};
|
|
629
|
-
$[
|
|
630
|
-
$[
|
|
631
|
-
$[
|
|
593
|
+
$[9] = delta;
|
|
594
|
+
$[10] = monthLimitLast;
|
|
595
|
+
$[11] = t4;
|
|
632
596
|
} else {
|
|
633
|
-
|
|
597
|
+
t4 = $[11];
|
|
634
598
|
}
|
|
635
|
-
const handleClickRightArrow =
|
|
636
|
-
let
|
|
637
|
-
if ($[
|
|
638
|
-
|
|
599
|
+
const handleClickRightArrow = t4;
|
|
600
|
+
let t5;
|
|
601
|
+
if ($[12] !== dateEnd || $[13] !== dateStart || $[14] !== isRange || $[15] !== onChange) {
|
|
602
|
+
t5 = (date) => {
|
|
639
603
|
if (isRange && dateStart != null && (updatingDateEndRef.current || dateEnd == null)) {
|
|
640
604
|
if (date < dateStart) {
|
|
641
605
|
setDateStart(date);
|
|
@@ -668,162 +632,162 @@ function DatePicker(t0) {
|
|
|
668
632
|
}
|
|
669
633
|
}
|
|
670
634
|
};
|
|
671
|
-
$[
|
|
672
|
-
$[
|
|
673
|
-
$[
|
|
674
|
-
$[
|
|
675
|
-
$[
|
|
635
|
+
$[12] = dateEnd;
|
|
636
|
+
$[13] = dateStart;
|
|
637
|
+
$[14] = isRange;
|
|
638
|
+
$[15] = onChange;
|
|
639
|
+
$[16] = t5;
|
|
676
640
|
} else {
|
|
677
|
-
|
|
641
|
+
t5 = $[16];
|
|
678
642
|
}
|
|
679
|
-
const handleChange =
|
|
680
|
-
let
|
|
681
|
-
if ($[
|
|
682
|
-
|
|
643
|
+
const handleChange = t5;
|
|
644
|
+
let t6;
|
|
645
|
+
if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
|
|
646
|
+
t6 = (date_0) => {
|
|
683
647
|
setDateEndPreview(date_0);
|
|
684
648
|
};
|
|
685
|
-
$[
|
|
649
|
+
$[17] = t6;
|
|
686
650
|
} else {
|
|
687
|
-
|
|
651
|
+
t6 = $[17];
|
|
688
652
|
}
|
|
689
|
-
const handleChangeEndPreview =
|
|
690
|
-
let
|
|
691
|
-
if ($[
|
|
692
|
-
|
|
693
|
-
$[
|
|
653
|
+
const handleChangeEndPreview = t6;
|
|
654
|
+
let t7;
|
|
655
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
656
|
+
t7 = /* @__PURE__ */ jsx(Style, { href: "@acusti/date-picker/DatePicker", children: STYLES });
|
|
657
|
+
$[18] = t7;
|
|
694
658
|
} else {
|
|
695
|
-
|
|
659
|
+
t7 = $[18];
|
|
696
660
|
}
|
|
697
|
-
let
|
|
698
|
-
if ($[
|
|
699
|
-
|
|
661
|
+
let t8;
|
|
662
|
+
if ($[19] !== className || $[20] !== isTwoUp) {
|
|
663
|
+
t8 = clsx(ROOT_CLASS_NAME, className, {
|
|
700
664
|
"two-up": isTwoUp
|
|
701
665
|
});
|
|
702
|
-
$[
|
|
703
|
-
$[
|
|
704
|
-
$[
|
|
666
|
+
$[19] = className;
|
|
667
|
+
$[20] = isTwoUp;
|
|
668
|
+
$[21] = t8;
|
|
705
669
|
} else {
|
|
706
|
-
|
|
670
|
+
t8 = $[21];
|
|
707
671
|
}
|
|
708
|
-
const
|
|
709
|
-
let
|
|
710
|
-
if ($[
|
|
711
|
-
|
|
712
|
-
disabled:
|
|
672
|
+
const t9 = monthLimitFirst != null && month <= monthLimitFirst;
|
|
673
|
+
let t10;
|
|
674
|
+
if ($[22] !== t9) {
|
|
675
|
+
t10 = clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {
|
|
676
|
+
disabled: t9
|
|
713
677
|
});
|
|
714
|
-
$[
|
|
715
|
-
$[
|
|
678
|
+
$[22] = t9;
|
|
679
|
+
$[23] = t10;
|
|
716
680
|
} else {
|
|
717
|
-
|
|
681
|
+
t10 = $[23];
|
|
718
682
|
}
|
|
719
|
-
let
|
|
720
|
-
if ($[
|
|
721
|
-
|
|
722
|
-
$[
|
|
723
|
-
$[
|
|
724
|
-
$[
|
|
683
|
+
let t11;
|
|
684
|
+
if ($[24] !== handleClickLeftArrow || $[25] !== t10) {
|
|
685
|
+
t11 = /* @__PURE__ */ jsx("button", { "aria-label": "Previous Month", className: t10, onClick: handleClickLeftArrow, type: "button" });
|
|
686
|
+
$[24] = handleClickLeftArrow;
|
|
687
|
+
$[25] = t10;
|
|
688
|
+
$[26] = t11;
|
|
725
689
|
} else {
|
|
726
|
-
|
|
690
|
+
t11 = $[26];
|
|
727
691
|
}
|
|
728
|
-
const
|
|
729
|
-
let
|
|
730
|
-
if ($[
|
|
731
|
-
|
|
732
|
-
disabled:
|
|
692
|
+
const t12 = monthLimitLast != null && month >= monthLimitLast;
|
|
693
|
+
let t13;
|
|
694
|
+
if ($[27] !== t12) {
|
|
695
|
+
t13 = clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {
|
|
696
|
+
disabled: t12
|
|
733
697
|
});
|
|
734
|
-
$[
|
|
735
|
-
$[
|
|
698
|
+
$[27] = t12;
|
|
699
|
+
$[28] = t13;
|
|
736
700
|
} else {
|
|
737
|
-
|
|
701
|
+
t13 = $[28];
|
|
738
702
|
}
|
|
739
|
-
let
|
|
740
|
-
if ($[
|
|
741
|
-
|
|
742
|
-
$[
|
|
743
|
-
$[
|
|
744
|
-
$[
|
|
703
|
+
let t14;
|
|
704
|
+
if ($[29] !== handleClickRightArrow || $[30] !== t13) {
|
|
705
|
+
t14 = /* @__PURE__ */ jsx("button", { "aria-label": "Next Month", className: t13, onClick: handleClickRightArrow, type: "button" });
|
|
706
|
+
$[29] = handleClickRightArrow;
|
|
707
|
+
$[30] = t13;
|
|
708
|
+
$[31] = t14;
|
|
745
709
|
} else {
|
|
746
|
-
|
|
710
|
+
t14 = $[31];
|
|
747
711
|
}
|
|
748
|
-
let
|
|
749
|
-
if ($[
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
712
|
+
let t15;
|
|
713
|
+
if ($[32] !== t11 || $[33] !== t14) {
|
|
714
|
+
t15 = /* @__PURE__ */ jsxs("div", { className: `${ROOT_CLASS_NAME}-range-arrow-wrap`, children: [
|
|
715
|
+
t11,
|
|
716
|
+
t14
|
|
753
717
|
] });
|
|
754
|
-
$[
|
|
755
|
-
$[
|
|
756
|
-
$[
|
|
718
|
+
$[32] = t11;
|
|
719
|
+
$[33] = t14;
|
|
720
|
+
$[34] = t15;
|
|
757
721
|
} else {
|
|
758
|
-
|
|
722
|
+
t15 = $[34];
|
|
759
723
|
}
|
|
760
|
-
let
|
|
761
|
-
if ($[
|
|
762
|
-
|
|
763
|
-
$[
|
|
764
|
-
$[
|
|
765
|
-
$[
|
|
724
|
+
let t16;
|
|
725
|
+
if ($[35] !== month || $[36] !== useMonthAbbreviations) {
|
|
726
|
+
t16 = useMonthAbbreviations ? getAbbreviatedMonthTitle(month) : void 0;
|
|
727
|
+
$[35] = month;
|
|
728
|
+
$[36] = useMonthAbbreviations;
|
|
729
|
+
$[37] = t16;
|
|
766
730
|
} else {
|
|
767
|
-
|
|
731
|
+
t16 = $[37];
|
|
768
732
|
}
|
|
769
|
-
let
|
|
770
|
-
if ($[
|
|
771
|
-
|
|
772
|
-
$[
|
|
773
|
-
$[
|
|
774
|
-
$[
|
|
775
|
-
$[
|
|
776
|
-
$[
|
|
777
|
-
$[
|
|
778
|
-
$[
|
|
779
|
-
$[
|
|
733
|
+
let t17;
|
|
734
|
+
if ($[38] !== dateEnd || $[39] !== dateEndPreview || $[40] !== dateStart || $[41] !== handleChange || $[42] !== isRange || $[43] !== month || $[44] !== t16) {
|
|
735
|
+
t17 = /* @__PURE__ */ jsx(MonthCalendar, { dateEnd, dateEndPreview, dateStart, isRange, month, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: t16 });
|
|
736
|
+
$[38] = dateEnd;
|
|
737
|
+
$[39] = dateEndPreview;
|
|
738
|
+
$[40] = dateStart;
|
|
739
|
+
$[41] = handleChange;
|
|
740
|
+
$[42] = isRange;
|
|
741
|
+
$[43] = month;
|
|
742
|
+
$[44] = t16;
|
|
743
|
+
$[45] = t17;
|
|
780
744
|
} else {
|
|
781
|
-
|
|
745
|
+
t17 = $[45];
|
|
782
746
|
}
|
|
783
|
-
let
|
|
784
|
-
if ($[
|
|
785
|
-
|
|
786
|
-
$[
|
|
787
|
-
$[
|
|
788
|
-
$[
|
|
789
|
-
$[
|
|
790
|
-
$[
|
|
791
|
-
$[
|
|
792
|
-
$[
|
|
793
|
-
$[
|
|
794
|
-
$[
|
|
747
|
+
let t18;
|
|
748
|
+
if ($[46] !== dateEnd || $[47] !== dateEndPreview || $[48] !== dateStart || $[49] !== handleChange || $[50] !== isRange || $[51] !== isTwoUp || $[52] !== month || $[53] !== useMonthAbbreviations) {
|
|
749
|
+
t18 = isTwoUp ? /* @__PURE__ */ jsx(MonthCalendar, { dateEnd, dateEndPreview, dateStart, isRange, month: month + 1, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: useMonthAbbreviations ? getAbbreviatedMonthTitle(month + 1) : void 0 }) : null;
|
|
750
|
+
$[46] = dateEnd;
|
|
751
|
+
$[47] = dateEndPreview;
|
|
752
|
+
$[48] = dateStart;
|
|
753
|
+
$[49] = handleChange;
|
|
754
|
+
$[50] = isRange;
|
|
755
|
+
$[51] = isTwoUp;
|
|
756
|
+
$[52] = month;
|
|
757
|
+
$[53] = useMonthAbbreviations;
|
|
758
|
+
$[54] = t18;
|
|
795
759
|
} else {
|
|
796
|
-
|
|
760
|
+
t18 = $[54];
|
|
797
761
|
}
|
|
798
|
-
let
|
|
799
|
-
if ($[
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
762
|
+
let t19;
|
|
763
|
+
if ($[55] !== t17 || $[56] !== t18) {
|
|
764
|
+
t19 = /* @__PURE__ */ jsxs("div", { className: `${ROOT_CLASS_NAME}-month-container`, children: [
|
|
765
|
+
t17,
|
|
766
|
+
t18
|
|
803
767
|
] });
|
|
804
|
-
$[
|
|
805
|
-
$[
|
|
806
|
-
$[
|
|
768
|
+
$[55] = t17;
|
|
769
|
+
$[56] = t18;
|
|
770
|
+
$[57] = t19;
|
|
807
771
|
} else {
|
|
808
|
-
|
|
772
|
+
t19 = $[57];
|
|
809
773
|
}
|
|
810
|
-
let
|
|
811
|
-
if ($[
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
/* @__PURE__ */ jsxs("div", { className:
|
|
815
|
-
|
|
816
|
-
|
|
774
|
+
let t20;
|
|
775
|
+
if ($[58] !== t15 || $[59] !== t19 || $[60] !== t8) {
|
|
776
|
+
t20 = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
777
|
+
t7,
|
|
778
|
+
/* @__PURE__ */ jsxs("div", { className: t8, children: [
|
|
779
|
+
t15,
|
|
780
|
+
t19
|
|
817
781
|
] })
|
|
818
782
|
] });
|
|
819
|
-
$[
|
|
820
|
-
$[
|
|
821
|
-
$[
|
|
822
|
-
$[
|
|
783
|
+
$[58] = t15;
|
|
784
|
+
$[59] = t19;
|
|
785
|
+
$[60] = t8;
|
|
786
|
+
$[61] = t20;
|
|
823
787
|
} else {
|
|
824
|
-
|
|
788
|
+
t20 = $[61];
|
|
825
789
|
}
|
|
826
|
-
return
|
|
790
|
+
return t20;
|
|
827
791
|
}
|
|
828
792
|
export {
|
|
829
793
|
DatePicker,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/styles/month-calendar.ts","../src/utils.ts","../src/MonthCalendar.tsx","../src/styles/date-picker.ts","../src/DatePicker.tsx"],"sourcesContent":["export const ROOT_CLASS_NAME = 'uktmonthcalendar';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n box-sizing: border-box;\n max-width: 325px;\n}\n\n.${ROOT_CLASS_NAME}-month-title {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n padding-bottom: 25px;\n}\n\nh3.${ROOT_CLASS_NAME}-month-title-text {\n font-size: 18px;\n line-height: 23px;\n font-weight: 600;\n color: #000;\n margin: 0px;\n text-align: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week {\n flex: 0 0 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n box-sizing: border-box;\n padding-bottom: 12px;\n}\n\n.${ROOT_CLASS_NAME}-month-week .week-day-item {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week span.week-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #9a9a9a;\n}\n\n.${ROOT_CLASS_NAME}-month-days {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n}\n\n.${ROOT_CLASS_NAME}-month-row {\n flex: 1 1 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n margin-bottom: 1px;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n height: 46px;\n width: 46px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:disabled {\n cursor: auto;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-today span.month-day-item-text {\n color: #eb4e3d;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.is-selected {\n background-color: #f6f6f6;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.start-date {\n background-color: #f6f6f6;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.end-date {\n background-color: #f6f6f6;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:hover:after,\n.${ROOT_CLASS_NAME}-month-day-item.is-today:hover:after {\n border-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n border-radius: 50%;\n border: 1px solid #000;\n width: 43px;\n height: 43px;\n transition: opacity 0.25s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-empty:after {\n content: none;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item span.month-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #000;\n position: relative;\n z-index: 1;\n}\n`;\n","// The following utils work on a “month” as a unique numerical value\n// representing the number of months since the unix epoch (jan 1970)\nconst START_YEAR = 1970;\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst getYearFromDate = (date: Date, asUTC?: boolean) =>\n (asUTC ? date.getUTCFullYear() : date.getFullYear()) - START_YEAR;\n\nexport const getMonthFromDate = (date: Date, asUTC?: boolean) => {\n const yearAsMonths = getYearFromDate(date, asUTC) * 12;\n return yearAsMonths + (asUTC ? date.getUTCMonth() : date.getMonth());\n};\n\nexport const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;\n\nexport const getMonthNameFromMonth = (month: number): string => {\n let index = month % 12;\n if (Number.isNaN(index)) return '';\n if (index < 0) index = 12 + index;\n return MONTH_NAMES[index];\n};\n\nexport const getMonthAbbreviationFromMonth = (month: number) => {\n const monthName = getMonthNameFromMonth(month);\n if (monthName === 'September') return 'Sept';\n return monthName.substring(0, 3);\n};\n\nexport const getDateFromMonthAndDay = (month: number, day: number, asUTC?: boolean) => {\n const monthIn12 = month < 0 ? (12 - Math.abs(month % 12)) % 12 : month % 12;\n const year = getYearFromMonth(month);\n return asUTC\n ? new Date(Date.UTC(year, monthIn12, day))\n : new Date(year, monthIn12, day);\n};\n\nexport const getLastDateFromMonth = (month: number, asUTC?: boolean) => {\n // day 0 of the next month is the last day of the current month\n return getDateFromMonthAndDay(month + 1, 0, asUTC);\n};\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment } from 'react';\n\nimport { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';\nimport {\n getDateFromMonthAndDay,\n getLastDateFromMonth,\n getMonthFromDate,\n getMonthNameFromMonth,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateEndPreview?: null | string;\n dateStart?: Date | null | number | string;\n isRange?: boolean;\n month: number; // a unique numerical value representing the number of months since jan 1970\n onChange?: (date: string) => void;\n onChangeEndPreview?: (date: string) => void;\n title?: string;\n};\n\ntype DateRangeDays = [null | number, null | number, null | number];\n\nconst DAYS = Array(7).fill(null);\n\nexport default function MonthCalendar({\n className,\n dateEnd,\n dateEndPreview,\n dateStart,\n isRange,\n month: _month,\n onChange,\n onChangeEndPreview,\n title,\n}: Props) {\n const today = new Date();\n // props.month must be a finite number within safe integer range\n const month = Number.isFinite(_month)\n ? Math.max(Number.MIN_SAFE_INTEGER, Math.min(Number.MAX_SAFE_INTEGER, _month))\n : getMonthFromDate(today);\n const year = getYearFromMonth(month);\n title = title ?? `${getMonthNameFromMonth(month)} ${year}`;\n const firstDate = getDateFromMonthAndDay(month, 1);\n const lastDate = getLastDateFromMonth(month);\n const totalDays = lastDate.getDate();\n const firstDay = firstDate.getDay();\n const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore\n const daySpaces = totalDays + firstDay + spacesAfterLastDay;\n\n const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay]: DateRangeDays = [\n dateStart,\n dateEnd,\n dateEndPreview,\n ].reduce(\n (acc: DateRangeDays, date, index) => {\n if (date != null && !(date instanceof Date)) {\n date = new Date(date);\n }\n if (date == null || Number.isNaN(date.getTime())) return acc;\n\n const dateMonth = getMonthFromDate(date);\n if (dateMonth < month) acc[index] = -1;\n else if (dateMonth > month) acc[index] = totalDays + 1;\n else acc[index] = date.getDate();\n if (index === 1) {\n const startDay = acc[index - 1];\n const endDay = acc[index];\n // Ensure that end date is after start date and swap them if not\n if (startDay != null && endDay != null && startDay > endDay) {\n acc[index - 1] = endDay;\n acc[index] = startDay;\n }\n }\n\n return acc;\n },\n [null, null, null],\n );\n\n const handleClickDay = (event: React.SyntheticEvent<HTMLElement>) => {\n const { date } = event.currentTarget.dataset;\n if (date && onChange) onChange(date);\n };\n\n const handleMouseEnterDay = (event: React.SyntheticEvent<HTMLElement>) => {\n if (isRange && onChangeEndPreview) {\n const { date } = event.currentTarget.dataset;\n if (date) onChangeEndPreview(date);\n }\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/MonthCalendar\">{STYLES}</Style>\n <div className={clsx(ROOT_CLASS_NAME, className, { 'is-range': isRange })}>\n <div className={`${ROOT_CLASS_NAME}-month-title`}>\n <h3 className={`${ROOT_CLASS_NAME}-month-title-text`}>{title}</h3>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-week`}>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Su</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Mo</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Tu</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">We</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Th</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Fr</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Sa</span>\n </div>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-days`}>\n {Array(Math.floor(daySpaces / 7))\n .fill(null)\n .map((_, weekIndex) => (\n <div\n className={`${ROOT_CLASS_NAME}-month-row`}\n key={`MonthRow-${weekIndex}`}\n >\n {DAYS.map((__, dayIndex) => {\n dayIndex += weekIndex * 7;\n const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore\n const isEmpty =\n dayNumber < 1 || dayNumber > totalDays;\n const date = isEmpty\n ? null\n : getDateFromMonthAndDay(month, dayNumber);\n const isAfterDateRangeStart =\n dateRangeStartDay != null &&\n dayNumber > dateRangeStartDay;\n const isBeforeDateRangeEnd =\n (dateRangeEndDay == null &&\n dateRangeEndPreviewDay != null &&\n dayNumber < dateRangeEndPreviewDay) ||\n (dateRangeEndDay != null &&\n dayNumber < dateRangeEndDay);\n\n return (\n <button\n className={clsx(\n `${ROOT_CLASS_NAME}-month-day-item`,\n {\n 'end-date':\n !isEmpty &&\n dayNumber === dateRangeEndDay,\n 'is-empty': isEmpty,\n 'is-selected':\n !isEmpty &&\n isAfterDateRangeStart &&\n isBeforeDateRangeEnd,\n 'is-today':\n !isEmpty &&\n month ===\n getMonthFromDate(today) &&\n dayNumber === today.getDate(),\n 'start-date':\n !isEmpty &&\n dayNumber === dateRangeStartDay,\n },\n )}\n data-date={date?.toISOString()}\n disabled={isEmpty}\n key={`MonthDayItem-${dayNumber}`}\n onClick={handleClickDay}\n onMouseEnter={handleMouseEnterDay}\n type=\"button\"\n >\n {isEmpty ? null : (\n <span className=\"month-day-item-text\">\n {dayNumber}\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Fragment>\n );\n}\n","export const ROOT_CLASS_NAME = 'uktdatepicker';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n box-sizing: border-box;\n padding: 40px 60px 60px;\n flex: 1 1 auto;\n position: relative;\n max-width: 450px;\n}\n\n.${ROOT_CLASS_NAME}.two-up {\n max-width: 820px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow-wrap {\n position: absolute;\n top: 30px;\n left: 0px;\n display: flex;\n justify-content: space-between;\n height: 0px;\n width: 100%;\n padding: 0px 60px;\n box-sizing: border-box;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow {\n background-color: transparent;\n border: 0;\n width: 35px;\n height: 35px;\n text-align: center;\n cursor: pointer;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.disabled {\n color: #ccc;\n cursor: default;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow:active {\n transform: translateY(1px);\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"‹\";\n font-size: 24px;\n line-height: 35px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"›\";\n}\n\n.${ROOT_CLASS_NAME}-month-container {\n display: flex;\n flex: 1 1 auto;\n justify-content: space-between;\n}\n`;\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment, useEffect, useRef, useState } from 'react';\n\nimport MonthCalendar from './MonthCalendar.js';\nimport { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';\nimport {\n getMonthAbbreviationFromMonth,\n getMonthFromDate,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateStart?: Date | null | number | string;\n initialMonth?: number;\n isRange?: boolean;\n isTwoUp?: boolean;\n monthLimitFirst?: number;\n monthLimitLast?: number;\n onChange: (payload: { dateEnd?: null | string; dateStart: string }) => void;\n /**\n * Boolean to specify that date picker should initially render with the\n * end date’s month visible. The default behavior is to initially render\n * with the start date’s month visible.\n */\n showEndInitially?: boolean;\n useMonthAbbreviations?: boolean;\n};\n\nconst getAbbreviatedMonthTitle = (month: number) =>\n `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;\n\nconst normalizeDate = (date: Date | null | number | string | undefined) => {\n if (date == null || date === '') return null;\n return typeof date === 'string' ? date : new Date(date).toISOString();\n};\n\nexport default function DatePicker({\n className,\n dateEnd: _dateEnd,\n dateStart: _dateStart,\n initialMonth,\n isRange: _isRange,\n isTwoUp,\n monthLimitFirst,\n monthLimitLast: _monthLimitLast,\n onChange,\n showEndInitially,\n useMonthAbbreviations,\n}: Props) {\n const isRange = _isRange ?? _dateEnd != null;\n // In two-up view we see 1 more month, so monthLimitLast needs to be 1 less\n const monthLimitLast =\n isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;\n const dateEndFromProps = normalizeDate(_dateEnd);\n const dateStartFromProps = normalizeDate(_dateStart);\n const [dateEnd, setDateEnd] = useState(dateEndFromProps);\n const [dateStart, setDateStart] = useState(dateStartFromProps);\n const updatingDateEndRef = useRef(false);\n\n useEffect(() => {\n if (dateEndFromProps == null) return;\n setDateEnd(dateEndFromProps);\n }, [dateEndFromProps]);\n\n useEffect(() => {\n if (dateStartFromProps == null) return;\n setDateStart(dateStartFromProps);\n }, [dateStartFromProps]);\n\n if (initialMonth == null) {\n // if no valid initial date, initially show present month as date end\n const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);\n // use date from props if set\n const initialDate = useDateEnd ? dateEnd : dateStart;\n initialMonth = getMonthFromDate(\n initialDate == null ? new Date() : new Date(initialDate),\n );\n if (useDateEnd && isTwoUp) {\n initialMonth -= 1;\n }\n }\n\n // clamp initial month to monthLimit bounds\n const maxInitialMonth =\n (monthLimitLast ?? Number.MAX_SAFE_INTEGER) + (isTwoUp ? -1 : 0);\n initialMonth = Math.max(\n Math.min(initialMonth, maxInitialMonth),\n monthLimitFirst ?? Number.MIN_SAFE_INTEGER,\n );\n const [month, setMonth] = useState<number>(initialMonth);\n const [dateEndPreview, setDateEndPreview] = useState<null | string>(null);\n\n const delta = isTwoUp ? 2 : 1;\n\n const handleClickLeftArrow = () => {\n setMonth((existingMonth: number) =>\n Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity),\n );\n };\n\n const handleClickRightArrow = () => {\n setMonth((existingMonth: number) =>\n Math.min(existingMonth + delta, monthLimitLast ?? Infinity),\n );\n };\n\n const handleChange = (date: string) => {\n // If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd\n if (\n isRange &&\n dateStart != null &&\n (updatingDateEndRef.current || dateEnd == null)\n ) {\n // Ensure that dateEnd is after dateStart; if not, swap them\n if (date < dateStart) {\n setDateStart(date);\n setDateEnd(dateStart);\n onChange({ dateEnd: dateStart, dateStart: date });\n } else {\n setDateEnd(date);\n onChange({ dateEnd: date, dateStart });\n }\n updatingDateEndRef.current = false;\n } else {\n setDateStart(date);\n setDateEnd(null);\n if (isRange) {\n onChange({ dateEnd: null, dateStart: date });\n updatingDateEndRef.current = true;\n } else {\n onChange({ dateStart: date });\n }\n }\n };\n\n const handleChangeEndPreview = (date: string) => {\n setDateEndPreview(date);\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/DatePicker\">{STYLES}</Style>\n <div\n className={clsx(ROOT_CLASS_NAME, className, {\n 'two-up': isTwoUp,\n })}\n >\n <div className={`${ROOT_CLASS_NAME}-range-arrow-wrap`}>\n <button\n aria-label=\"Previous Month\"\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {\n disabled: monthLimitFirst != null && month <= monthLimitFirst,\n })}\n onClick={handleClickLeftArrow}\n type=\"button\"\n />\n <button\n aria-label=\"Next Month\"\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {\n disabled: monthLimitLast != null && month >= monthLimitLast,\n })}\n onClick={handleClickRightArrow}\n type=\"button\"\n />\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-container`}>\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month)\n : undefined\n }\n />\n {isTwoUp ? (\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month + 1}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month + 1)\n : undefined\n }\n />\n ) : null}\n </div>\n </div>\n </Fragment>\n );\n}\n"],"names":["ROOT_CLASS_NAME","STYLES","START_YEAR","MONTH_NAMES","getYearFromDate","date","asUTC","getUTCFullYear","getFullYear","getMonthFromDate","yearAsMonths","getUTCMonth","getMonth","getYearFromMonth","month","Math","floor","getMonthNameFromMonth","index","Number","isNaN","getMonthAbbreviationFromMonth","monthName","substring","getDateFromMonthAndDay","day","monthIn12","abs","year","Date","UTC","getLastDateFromMonth","DAYS","Array","fill","MonthCalendar","t0","$","_c","className","dateEnd","dateEndPreview","dateStart","isRange","_month","onChange","onChangeEndPreview","title","T0","t1","t2","t3","t4","t5","t6","today","isFinite","max","MIN_SAFE_INTEGER","min","MAX_SAFE_INTEGER","firstDate","lastDate","totalDays","getDate","firstDay","getDay","spacesAfterLastDay","daySpaces","dateRangeStartDay","dateRangeEndDay","dateRangeEndPreviewDay","reduce","acc","getTime","dateMonth","startDay","endDay","t7","event","date_0","currentTarget","dataset","handleClickDay","t8","event_0","date_1","handleMouseEnterDay","Fragment","Symbol","for","clsx","t9","t10","t11","t12","t13","t14","map","_","weekIndex","__","dayIndex","dayNumber","isEmpty","date_2","isAfterDateRangeStart","isBeforeDateRangeEnd","toISOString","getAbbreviatedMonthTitle","normalizeDate","DatePicker","_dateEnd","_dateStart","initialMonth","_isRange","isTwoUp","monthLimitFirst","monthLimitLast","_monthLimitLast","showEndInitially","useMonthAbbreviations","dateEndFromProps","dateStartFromProps","setDateEnd","useState","setDateStart","updatingDateEndRef","useRef","useEffect","useDateEnd","Boolean","initialDate","maxInitialMonth","setMonth","setDateEndPreview","delta","existingMonth","handleClickLeftArrow","existingMonth_0","Infinity","handleClickRightArrow","current","handleChange","handleChangeEndPreview","disabled","t15","t16","t17","t18","t19","t20","undefined","t21","t22","t23","t24"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/styles/month-calendar.ts","../src/utils.ts","../src/MonthCalendar.tsx","../src/styles/date-picker.ts","../src/DatePicker.tsx"],"sourcesContent":["export const ROOT_CLASS_NAME = 'uktmonthcalendar';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n box-sizing: border-box;\n max-width: 325px;\n}\n\n.${ROOT_CLASS_NAME}-month-title {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n padding-bottom: 25px;\n}\n\nh3.${ROOT_CLASS_NAME}-month-title-text {\n font-size: 18px;\n line-height: 23px;\n font-weight: 600;\n color: #000;\n margin: 0px;\n text-align: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week {\n flex: 0 0 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n box-sizing: border-box;\n padding-bottom: 12px;\n}\n\n.${ROOT_CLASS_NAME}-month-week .week-day-item {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week span.week-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #9a9a9a;\n}\n\n.${ROOT_CLASS_NAME}-month-days {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n}\n\n.${ROOT_CLASS_NAME}-month-row {\n flex: 1 1 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n margin-bottom: 1px;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n height: 46px;\n width: 46px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:disabled {\n cursor: auto;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-today span.month-day-item-text {\n color: #eb4e3d;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.is-selected {\n background-color: #f6f6f6;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.start-date {\n background-color: #f6f6f6;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}.is-range .${ROOT_CLASS_NAME}-month-day-item.end-date {\n background-color: #f6f6f6;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:hover:after,\n.${ROOT_CLASS_NAME}-month-day-item.is-today:hover:after {\n border-color: #000;\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n border-radius: 50%;\n border: 1px solid #000;\n width: 43px;\n height: 43px;\n transition: opacity 0.25s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-empty:after {\n content: none;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item span.month-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #000;\n position: relative;\n z-index: 1;\n}\n`;\n","// The following utils work on a “month” as a unique numerical value\n// representing the number of months since the unix epoch (jan 1970)\nconst START_YEAR = 1970;\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst getYearFromDate = (date: Date, asUTC?: boolean) =>\n (asUTC ? date.getUTCFullYear() : date.getFullYear()) - START_YEAR;\n\nexport const getMonthFromDate = (date: Date, asUTC?: boolean) => {\n const yearAsMonths = getYearFromDate(date, asUTC) * 12;\n return yearAsMonths + (asUTC ? date.getUTCMonth() : date.getMonth());\n};\n\nexport const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;\n\nexport const getMonthNameFromMonth = (month: number): string => {\n let index = month % 12;\n if (Number.isNaN(index)) return '';\n if (index < 0) index = 12 + index;\n return MONTH_NAMES[index];\n};\n\nexport const getMonthAbbreviationFromMonth = (month: number) => {\n const monthName = getMonthNameFromMonth(month);\n if (monthName === 'September') return 'Sept';\n return monthName.substring(0, 3);\n};\n\nexport const getDateFromMonthAndDay = (month: number, day: number, asUTC?: boolean) => {\n const monthIn12 = month < 0 ? (12 - Math.abs(month % 12)) % 12 : month % 12;\n const year = getYearFromMonth(month);\n return asUTC\n ? new Date(Date.UTC(year, monthIn12, day))\n : new Date(year, monthIn12, day);\n};\n\nexport const getLastDateFromMonth = (month: number, asUTC?: boolean) => {\n // day 0 of the next month is the last day of the current month\n return getDateFromMonthAndDay(month + 1, 0, asUTC);\n};\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment } from 'react';\n\nimport { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';\nimport {\n getDateFromMonthAndDay,\n getLastDateFromMonth,\n getMonthFromDate,\n getMonthNameFromMonth,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateEndPreview?: null | string;\n dateStart?: Date | null | number | string;\n isRange?: boolean;\n month: number; // a unique numerical value representing the number of months since jan 1970\n onChange?: (date: string) => void;\n onChangeEndPreview?: (date: string) => void;\n title?: string;\n};\n\ntype DateRangeDays = [null | number, null | number, null | number];\n\nconst DAYS = Array(7).fill(null);\n\nexport default function MonthCalendar({\n className,\n dateEnd,\n dateEndPreview,\n dateStart,\n isRange,\n month: _month,\n onChange,\n onChangeEndPreview,\n title,\n}: Props) {\n const today = new Date();\n // props.month must be a finite number within safe integer range\n const month = Number.isFinite(_month)\n ? Math.max(Number.MIN_SAFE_INTEGER, Math.min(Number.MAX_SAFE_INTEGER, _month))\n : getMonthFromDate(today);\n const year = getYearFromMonth(month);\n title = title ?? `${getMonthNameFromMonth(month)} ${year}`;\n const firstDate = getDateFromMonthAndDay(month, 1);\n const lastDate = getLastDateFromMonth(month);\n const totalDays = lastDate.getDate();\n const firstDay = firstDate.getDay();\n const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore\n const daySpaces = totalDays + firstDay + spacesAfterLastDay;\n\n const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay]: DateRangeDays = [\n dateStart,\n dateEnd,\n dateEndPreview,\n ].reduce(\n (acc: DateRangeDays, date, index) => {\n if (date != null && !(date instanceof Date)) {\n date = new Date(date);\n }\n if (date == null || Number.isNaN(date.getTime())) return acc;\n\n const dateMonth = getMonthFromDate(date);\n if (dateMonth < month) acc[index] = -1;\n else if (dateMonth > month) acc[index] = totalDays + 1;\n else acc[index] = date.getDate();\n if (index === 1) {\n const startDay = acc[index - 1];\n const endDay = acc[index];\n // Ensure that end date is after start date and swap them if not\n if (startDay != null && endDay != null && startDay > endDay) {\n acc[index - 1] = endDay;\n acc[index] = startDay;\n }\n }\n\n return acc;\n },\n [null, null, null],\n );\n\n const handleClickDay = (event: React.SyntheticEvent<HTMLElement>) => {\n const { date } = event.currentTarget.dataset;\n if (date && onChange) onChange(date);\n };\n\n const handleMouseEnterDay = (event: React.SyntheticEvent<HTMLElement>) => {\n if (isRange && onChangeEndPreview) {\n const { date } = event.currentTarget.dataset;\n if (date) onChangeEndPreview(date);\n }\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/MonthCalendar\">{STYLES}</Style>\n <div className={clsx(ROOT_CLASS_NAME, className, { 'is-range': isRange })}>\n <div className={`${ROOT_CLASS_NAME}-month-title`}>\n <h3 className={`${ROOT_CLASS_NAME}-month-title-text`}>{title}</h3>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-week`}>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Su</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Mo</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Tu</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">We</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Th</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Fr</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Sa</span>\n </div>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-days`}>\n {Array(Math.floor(daySpaces / 7))\n .fill(null)\n .map((_, weekIndex) => (\n <div\n className={`${ROOT_CLASS_NAME}-month-row`}\n key={`MonthRow-${weekIndex}`}\n >\n {DAYS.map((__, dayIndex) => {\n dayIndex += weekIndex * 7;\n const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore\n const isEmpty =\n dayNumber < 1 || dayNumber > totalDays;\n const date = isEmpty\n ? null\n : getDateFromMonthAndDay(month, dayNumber);\n const isAfterDateRangeStart =\n dateRangeStartDay != null &&\n dayNumber > dateRangeStartDay;\n const isBeforeDateRangeEnd =\n (dateRangeEndDay == null &&\n dateRangeEndPreviewDay != null &&\n dayNumber < dateRangeEndPreviewDay) ||\n (dateRangeEndDay != null &&\n dayNumber < dateRangeEndDay);\n\n return (\n <button\n className={clsx(\n `${ROOT_CLASS_NAME}-month-day-item`,\n {\n 'end-date':\n !isEmpty &&\n dayNumber === dateRangeEndDay,\n 'is-empty': isEmpty,\n 'is-selected':\n !isEmpty &&\n isAfterDateRangeStart &&\n isBeforeDateRangeEnd,\n 'is-today':\n !isEmpty &&\n month ===\n getMonthFromDate(today) &&\n dayNumber === today.getDate(),\n 'start-date':\n !isEmpty &&\n dayNumber === dateRangeStartDay,\n },\n )}\n data-date={date?.toISOString()}\n disabled={isEmpty}\n key={`MonthDayItem-${dayNumber}`}\n onClick={handleClickDay}\n onMouseEnter={handleMouseEnterDay}\n type=\"button\"\n >\n {isEmpty ? null : (\n <span className=\"month-day-item-text\">\n {dayNumber}\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Fragment>\n );\n}\n","export const ROOT_CLASS_NAME = 'uktdatepicker';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n box-sizing: border-box;\n padding: 40px 60px 60px;\n flex: 1 1 auto;\n position: relative;\n max-width: 450px;\n}\n\n.${ROOT_CLASS_NAME}.two-up {\n max-width: 820px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow-wrap {\n position: absolute;\n top: 30px;\n left: 0px;\n display: flex;\n justify-content: space-between;\n height: 0px;\n width: 100%;\n padding: 0px 60px;\n box-sizing: border-box;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow {\n background-color: transparent;\n border: 0;\n width: 35px;\n height: 35px;\n text-align: center;\n cursor: pointer;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.disabled {\n color: #ccc;\n cursor: default;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow:active {\n transform: translateY(1px);\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"‹\";\n font-size: 24px;\n line-height: 35px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"›\";\n}\n\n.${ROOT_CLASS_NAME}-month-container {\n display: flex;\n flex: 1 1 auto;\n justify-content: space-between;\n}\n`;\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport { Fragment, useRef, useState } from 'react';\n\nimport MonthCalendar from './MonthCalendar.js';\nimport { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';\nimport {\n getMonthAbbreviationFromMonth,\n getMonthFromDate,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n defaultDateEnd?: Date | null | number | string;\n defaultDateStart?: Date | null | number | string;\n initialMonth?: number;\n isRange?: boolean;\n isTwoUp?: boolean;\n monthLimitFirst?: number;\n monthLimitLast?: number;\n onChange: (payload: { dateEnd?: null | string; dateStart: string }) => void;\n /**\n * Boolean to specify that date picker should initially render with the\n * end date’s month visible. The default behavior is to initially render\n * with the start date’s month visible.\n */\n showEndInitially?: boolean;\n useMonthAbbreviations?: boolean;\n};\n\nconst getAbbreviatedMonthTitle = (month: number) =>\n `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;\n\nconst normalizeDate = (date: Date | null | number | string | undefined) => {\n if (date == null || date === '') return null;\n return typeof date === 'string' ? date : new Date(date).toISOString();\n};\n\nexport default function DatePicker({\n className,\n defaultDateEnd,\n defaultDateStart,\n initialMonth,\n isRange: _isRange,\n isTwoUp,\n monthLimitFirst,\n monthLimitLast: _monthLimitLast,\n onChange,\n showEndInitially,\n useMonthAbbreviations,\n}: Props) {\n const isRange = _isRange ?? defaultDateEnd != null;\n // In two-up view we see 1 more month, so monthLimitLast needs to be 1 less\n const monthLimitLast =\n isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;\n const defaultDateEndNormalized = normalizeDate(defaultDateEnd);\n const defaultDateStartNormalized = normalizeDate(defaultDateStart);\n const [dateEnd, setDateEnd] = useState(defaultDateEndNormalized);\n const [dateStart, setDateStart] = useState(defaultDateStartNormalized);\n const updatingDateEndRef = useRef(false);\n\n if (initialMonth == null) {\n // if no valid initial date, initially show present month as date end\n const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);\n // use date from props if set\n const initialDate = useDateEnd ? dateEnd : dateStart;\n initialMonth = getMonthFromDate(\n initialDate == null ? new Date() : new Date(initialDate),\n );\n if (useDateEnd && isTwoUp) {\n initialMonth -= 1;\n }\n }\n\n // clamp initial month to monthLimit bounds\n const maxInitialMonth =\n (monthLimitLast ?? Number.MAX_SAFE_INTEGER) + (isTwoUp ? -1 : 0);\n initialMonth = Math.max(\n Math.min(initialMonth, maxInitialMonth),\n monthLimitFirst ?? Number.MIN_SAFE_INTEGER,\n );\n const [month, setMonth] = useState<number>(initialMonth);\n const [dateEndPreview, setDateEndPreview] = useState<null | string>(null);\n\n const delta = isTwoUp ? 2 : 1;\n\n const handleClickLeftArrow = () => {\n setMonth((existingMonth: number) =>\n Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity),\n );\n };\n\n const handleClickRightArrow = () => {\n setMonth((existingMonth: number) =>\n Math.min(existingMonth + delta, monthLimitLast ?? Infinity),\n );\n };\n\n const handleChange = (date: string) => {\n // If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd\n if (\n isRange &&\n dateStart != null &&\n (updatingDateEndRef.current || dateEnd == null)\n ) {\n // Ensure that dateEnd is after dateStart; if not, swap them\n if (date < dateStart) {\n setDateStart(date);\n setDateEnd(dateStart);\n onChange({ dateEnd: dateStart, dateStart: date });\n } else {\n setDateEnd(date);\n onChange({ dateEnd: date, dateStart });\n }\n updatingDateEndRef.current = false;\n } else {\n setDateStart(date);\n setDateEnd(null);\n if (isRange) {\n onChange({ dateEnd: null, dateStart: date });\n updatingDateEndRef.current = true;\n } else {\n onChange({ dateStart: date });\n }\n }\n };\n\n const handleChangeEndPreview = (date: string) => {\n setDateEndPreview(date);\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/DatePicker\">{STYLES}</Style>\n <div\n className={clsx(ROOT_CLASS_NAME, className, {\n 'two-up': isTwoUp,\n })}\n >\n <div className={`${ROOT_CLASS_NAME}-range-arrow-wrap`}>\n <button\n aria-label=\"Previous Month\"\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {\n disabled: monthLimitFirst != null && month <= monthLimitFirst,\n })}\n onClick={handleClickLeftArrow}\n type=\"button\"\n />\n <button\n aria-label=\"Next Month\"\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {\n disabled: monthLimitLast != null && month >= monthLimitLast,\n })}\n onClick={handleClickRightArrow}\n type=\"button\"\n />\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-container`}>\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month)\n : undefined\n }\n />\n {isTwoUp ? (\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month + 1}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month + 1)\n : undefined\n }\n />\n ) : null}\n </div>\n </div>\n </Fragment>\n );\n}\n"],"names":["ROOT_CLASS_NAME","STYLES","START_YEAR","MONTH_NAMES","getYearFromDate","date","asUTC","getUTCFullYear","getFullYear","getMonthFromDate","yearAsMonths","getUTCMonth","getMonth","getYearFromMonth","month","Math","floor","getMonthNameFromMonth","index","Number","isNaN","getMonthAbbreviationFromMonth","monthName","substring","getDateFromMonthAndDay","day","monthIn12","abs","year","Date","UTC","getLastDateFromMonth","DAYS","Array","fill","MonthCalendar","t0","$","_c","className","dateEnd","dateEndPreview","dateStart","isRange","_month","onChange","onChangeEndPreview","title","T0","t1","t2","t3","t4","t5","t6","today","isFinite","max","MIN_SAFE_INTEGER","min","MAX_SAFE_INTEGER","firstDate","lastDate","totalDays","getDate","firstDay","getDay","spacesAfterLastDay","daySpaces","dateRangeStartDay","dateRangeEndDay","dateRangeEndPreviewDay","reduce","acc","getTime","dateMonth","startDay","endDay","t7","event","date_0","currentTarget","dataset","handleClickDay","t8","event_0","date_1","handleMouseEnterDay","Fragment","Symbol","for","clsx","t9","t10","t11","t12","t13","t14","map","_","weekIndex","__","dayIndex","dayNumber","isEmpty","date_2","isAfterDateRangeStart","isBeforeDateRangeEnd","toISOString","getAbbreviatedMonthTitle","normalizeDate","DatePicker","defaultDateEnd","defaultDateStart","initialMonth","_isRange","isTwoUp","monthLimitFirst","monthLimitLast","_monthLimitLast","showEndInitially","useMonthAbbreviations","defaultDateEndNormalized","defaultDateStartNormalized","setDateEnd","useState","setDateStart","updatingDateEndRef","useRef","useDateEnd","Boolean","initialDate","maxInitialMonth","setMonth","setDateEndPreview","delta","existingMonth","handleClickLeftArrow","existingMonth_0","Infinity","handleClickRightArrow","current","handleChange","handleChangeEndPreview","disabled","t15","t16","undefined","t17","t18","t19","t20"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acusti/date-picker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -47,21 +47,21 @@
|
|
|
47
47
|
"homepage": "https://github.com/acusti/uikit/tree/main/packages/date-picker#readme",
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@testing-library/dom": "^10.4.1",
|
|
50
|
-
"@testing-library/react": "^16.3.
|
|
50
|
+
"@testing-library/react": "^16.3.2",
|
|
51
51
|
"@testing-library/user-event": "^14.6.1",
|
|
52
|
-
"@types/react": "^19.
|
|
53
|
-
"@vitejs/plugin-react": "^5.0.
|
|
54
|
-
"babel-plugin-react-compiler": "
|
|
55
|
-
"happy-dom": "^
|
|
56
|
-
"react": "^19.
|
|
57
|
-
"react-dom": "^19.
|
|
52
|
+
"@types/react": "^19.2.10",
|
|
53
|
+
"@vitejs/plugin-react": "^5.0.4",
|
|
54
|
+
"babel-plugin-react-compiler": "^1",
|
|
55
|
+
"happy-dom": "^20.4.0",
|
|
56
|
+
"react": "^19.2.4",
|
|
57
|
+
"react-dom": "^19.2.4",
|
|
58
58
|
"typescript": "5.9.2",
|
|
59
59
|
"unplugin-dts": "^1.0.0-beta.6",
|
|
60
|
-
"vite": "^7.1.
|
|
60
|
+
"vite": "^7.1.10",
|
|
61
61
|
"vitest": "^3.2.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@acusti/styling": "^2.1.
|
|
64
|
+
"@acusti/styling": "^2.1.1",
|
|
65
65
|
"clsx": "^2"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|