@react-stately/datepicker 3.0.0-nightly.3173 → 3.0.0-rc.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/dist/main.js +66 -61
- package/dist/main.js.map +1 -1
- package/dist/module.js +63 -46
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +148 -35
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +9 -4
- package/src/{useDatePickerFieldState.ts → useDateFieldState.ts} +79 -17
- package/src/useDatePickerState.ts +35 -12
- package/src/useDateRangePickerState.ts +79 -20
- package/src/useTimeFieldState.ts +10 -4
package/dist/main.js
CHANGED
|
@@ -1,29 +1,16 @@
|
|
|
1
1
|
var $h2qOe$internationalizeddate = require("@internationalized/date");
|
|
2
2
|
var $h2qOe$reactstatelyutils = require("@react-stately/utils");
|
|
3
|
+
var $h2qOe$reactstatelyoverlays = require("@react-stately/overlays");
|
|
3
4
|
var $h2qOe$react = require("react");
|
|
4
5
|
|
|
5
|
-
function $parcel$exportWildcard(dest, source) {
|
|
6
|
-
Object.keys(source).forEach(function(key) {
|
|
7
|
-
if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
Object.defineProperty(dest, key, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function get() {
|
|
14
|
-
return source[key];
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
return dest;
|
|
20
|
-
}
|
|
21
6
|
function $parcel$export(e, n, v, s) {
|
|
22
7
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
23
8
|
}
|
|
24
|
-
var $aaab7a647e17e1fd$exports = {};
|
|
25
9
|
|
|
26
|
-
$parcel$export(
|
|
10
|
+
$parcel$export(module.exports, "useDatePickerState", () => $aaab7a647e17e1fd$export$87194bb378cc3ac2);
|
|
11
|
+
$parcel$export(module.exports, "useDateFieldState", () => $596a1f0f523d6752$export$60e84778edff6d26);
|
|
12
|
+
$parcel$export(module.exports, "useDateRangePickerState", () => $7072d26f58deb33b$export$e50a61c1de9f574);
|
|
13
|
+
$parcel$export(module.exports, "useTimeFieldState", () => $2654e87be0231a69$export$fd53cef0cc796101);
|
|
27
14
|
|
|
28
15
|
|
|
29
16
|
|
|
@@ -102,9 +89,10 @@ function $50d5d6a623389320$export$2440da353cedad43(v, granularity) {
|
|
|
102
89
|
|
|
103
90
|
|
|
104
91
|
|
|
92
|
+
|
|
105
93
|
function $aaab7a647e17e1fd$export$87194bb378cc3ac2(props) {
|
|
106
94
|
var ref;
|
|
107
|
-
let
|
|
95
|
+
let overlayState = $h2qOe$reactstatelyoverlays.useOverlayTriggerState(props);
|
|
108
96
|
let [value, setValue] = $h2qOe$reactstatelyutils.useControlledState(props.value, props.defaultValue || null, props.onChange);
|
|
109
97
|
let v = value || props.placeholderValue;
|
|
110
98
|
let [granularity, defaultTimeZone] = $50d5d6a623389320$export$2440da353cedad43(v, props.granularity);
|
|
@@ -130,7 +118,7 @@ function $aaab7a647e17e1fd$export$87194bb378cc3ac2(props) {
|
|
|
130
118
|
if (selectedTime || shouldClose) commitValue(newValue, selectedTime || $50d5d6a623389320$export$c5221a78ef73c5e9(props.placeholderValue));
|
|
131
119
|
else setSelectedDate(newValue);
|
|
132
120
|
} else setValue(newValue);
|
|
133
|
-
if (shouldClose) setOpen(false);
|
|
121
|
+
if (shouldClose) overlayState.setOpen(false);
|
|
134
122
|
};
|
|
135
123
|
let selectTime = (newValue)=>{
|
|
136
124
|
if (selectedDate) commitValue(selectedDate, newValue);
|
|
@@ -146,13 +134,13 @@ function $aaab7a647e17e1fd$export$87194bb378cc3ac2(props) {
|
|
|
146
134
|
setTimeValue: selectTime,
|
|
147
135
|
granularity: granularity,
|
|
148
136
|
hasTime: hasTime,
|
|
149
|
-
isOpen:
|
|
137
|
+
isOpen: overlayState.isOpen,
|
|
150
138
|
setOpen (isOpen) {
|
|
151
139
|
// Commit the selected date when the calendar is closed. Use a placeholder time if one wasn't set.
|
|
152
140
|
// If only the time was set and not the date, don't commit. The state will be preserved until
|
|
153
141
|
// the user opens the popover again.
|
|
154
142
|
if (!isOpen && !value && selectedDate && hasTime) commitValue(selectedDate, selectedTime || $50d5d6a623389320$export$c5221a78ef73c5e9(props.placeholderValue));
|
|
155
|
-
setOpen(isOpen);
|
|
143
|
+
overlayState.setOpen(isOpen);
|
|
156
144
|
},
|
|
157
145
|
validationState: validationState,
|
|
158
146
|
formatValue (locale, fieldOptions) {
|
|
@@ -170,14 +158,11 @@ function $aaab7a647e17e1fd$export$87194bb378cc3ac2(props) {
|
|
|
170
158
|
}
|
|
171
159
|
|
|
172
160
|
|
|
173
|
-
var $6d4e641deb83cb9e$exports = {};
|
|
174
|
-
|
|
175
|
-
$parcel$export($6d4e641deb83cb9e$exports, "useDatePickerFieldState", () => $6d4e641deb83cb9e$export$714a241b39a650d6);
|
|
176
161
|
|
|
177
162
|
|
|
178
163
|
|
|
179
164
|
|
|
180
|
-
const $
|
|
165
|
+
const $596a1f0f523d6752$var$EDITABLE_SEGMENTS = {
|
|
181
166
|
year: true,
|
|
182
167
|
month: true,
|
|
183
168
|
day: true,
|
|
@@ -187,7 +172,7 @@ const $6d4e641deb83cb9e$var$EDITABLE_SEGMENTS = {
|
|
|
187
172
|
dayPeriod: true,
|
|
188
173
|
era: true
|
|
189
174
|
};
|
|
190
|
-
const $
|
|
175
|
+
const $596a1f0f523d6752$var$PAGE_STEP = {
|
|
191
176
|
year: 5,
|
|
192
177
|
month: 2,
|
|
193
178
|
day: 7,
|
|
@@ -196,10 +181,10 @@ const $6d4e641deb83cb9e$var$PAGE_STEP = {
|
|
|
196
181
|
second: 15
|
|
197
182
|
};
|
|
198
183
|
// Node seems to convert everything to lowercase...
|
|
199
|
-
const $
|
|
184
|
+
const $596a1f0f523d6752$var$TYPE_MAPPING = {
|
|
200
185
|
dayperiod: 'dayPeriod'
|
|
201
186
|
};
|
|
202
|
-
function $
|
|
187
|
+
function $596a1f0f523d6752$export$60e84778edff6d26(props) {
|
|
203
188
|
let { locale: locale , createCalendar: createCalendar , hideTimeZone: hideTimeZone , isDisabled: isDisabled , isReadOnly: isReadOnly , isRequired: isRequired } = props;
|
|
204
189
|
let v1 = props.value || props.defaultValue || props.placeholderValue;
|
|
205
190
|
let [granularity, defaultTimeZone] = $50d5d6a623389320$export$2440da353cedad43(v1, props.granularity);
|
|
@@ -242,7 +227,7 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
242
227
|
]);
|
|
243
228
|
// Determine how many editable segments there are for validation purposes.
|
|
244
229
|
// The result is cached for performance.
|
|
245
|
-
let allSegments = $h2qOe$react.useMemo(()=>dateFormatter.formatToParts(new Date()).filter((seg)=>$
|
|
230
|
+
let allSegments = $h2qOe$react.useMemo(()=>dateFormatter.formatToParts(new Date()).filter((seg)=>$596a1f0f523d6752$var$EDITABLE_SEGMENTS[seg.type]
|
|
246
231
|
).reduce((p, seg)=>(p[seg.type] = true, p)
|
|
247
232
|
, {
|
|
248
233
|
})
|
|
@@ -312,13 +297,13 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
312
297
|
timeZone
|
|
313
298
|
]);
|
|
314
299
|
let segments = $h2qOe$react.useMemo(()=>dateFormatter.formatToParts(dateValue).map((segment)=>{
|
|
315
|
-
let isEditable = $
|
|
300
|
+
let isEditable = $596a1f0f523d6752$var$EDITABLE_SEGMENTS[segment.type];
|
|
316
301
|
if (segment.type === 'era' && calendar.getEras().length === 1) isEditable = false;
|
|
317
302
|
return {
|
|
318
|
-
type: $
|
|
303
|
+
type: $596a1f0f523d6752$var$TYPE_MAPPING[segment.type] || segment.type,
|
|
319
304
|
text: segment.value,
|
|
320
|
-
...$
|
|
321
|
-
isPlaceholder: $
|
|
305
|
+
...$596a1f0f523d6752$var$getSegmentLimits(displayValue, segment.type, resolvedOptions),
|
|
306
|
+
isPlaceholder: $596a1f0f523d6752$var$EDITABLE_SEGMENTS[segment.type] && !validSegments[segment.type],
|
|
322
307
|
isEditable: isEditable
|
|
323
308
|
};
|
|
324
309
|
})
|
|
@@ -344,9 +329,10 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
344
329
|
};
|
|
345
330
|
let adjustSegment = (type, amount)=>{
|
|
346
331
|
markValid(type);
|
|
347
|
-
setValue($
|
|
332
|
+
setValue($596a1f0f523d6752$var$addSegment(displayValue, type, amount, resolvedOptions));
|
|
348
333
|
};
|
|
349
334
|
let validationState = props.validationState || ($50d5d6a623389320$export$eac50920cf2fd59a(calendarValue, props.minValue, props.maxValue) ? 'invalid' : null);
|
|
335
|
+
var _maxGranularity1;
|
|
350
336
|
return {
|
|
351
337
|
value: calendarValue,
|
|
352
338
|
dateValue: dateValue,
|
|
@@ -355,6 +341,7 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
355
341
|
dateFormatter: dateFormatter,
|
|
356
342
|
validationState: validationState,
|
|
357
343
|
granularity: granularity,
|
|
344
|
+
maxGranularity: (_maxGranularity1 = props.maxGranularity) !== null && _maxGranularity1 !== void 0 ? _maxGranularity1 : 'year',
|
|
358
345
|
isDisabled: isDisabled,
|
|
359
346
|
isReadOnly: isReadOnly,
|
|
360
347
|
isRequired: isRequired,
|
|
@@ -365,14 +352,14 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
365
352
|
adjustSegment(part, -1);
|
|
366
353
|
},
|
|
367
354
|
incrementPage (part) {
|
|
368
|
-
adjustSegment(part, $
|
|
355
|
+
adjustSegment(part, $596a1f0f523d6752$var$PAGE_STEP[part] || 1);
|
|
369
356
|
},
|
|
370
357
|
decrementPage (part) {
|
|
371
|
-
adjustSegment(part, -($
|
|
358
|
+
adjustSegment(part, -($596a1f0f523d6752$var$PAGE_STEP[part] || 1));
|
|
372
359
|
},
|
|
373
360
|
setSegment (part, v) {
|
|
374
361
|
markValid(part);
|
|
375
|
-
setValue($
|
|
362
|
+
setValue($596a1f0f523d6752$var$setSegment(displayValue, part, v, resolvedOptions));
|
|
376
363
|
},
|
|
377
364
|
confirmPlaceholder (part) {
|
|
378
365
|
if (props.isDisabled || props.isReadOnly) return;
|
|
@@ -414,12 +401,15 @@ function $6d4e641deb83cb9e$export$714a241b39a650d6(props) {
|
|
|
414
401
|
setDate(null);
|
|
415
402
|
setValue(value);
|
|
416
403
|
},
|
|
417
|
-
|
|
418
|
-
|
|
404
|
+
formatValue (fieldOptions) {
|
|
405
|
+
if (!calendarValue) return '';
|
|
406
|
+
let formatOptions = $50d5d6a623389320$export$7e319ea407e63bc0(fieldOptions, formatOpts);
|
|
407
|
+
let formatter = new $h2qOe$internationalizeddate.DateFormatter(locale, formatOptions);
|
|
408
|
+
return formatter.format(dateValue);
|
|
419
409
|
}
|
|
420
410
|
};
|
|
421
411
|
}
|
|
422
|
-
function $
|
|
412
|
+
function $596a1f0f523d6752$var$getSegmentLimits(date, type, options) {
|
|
423
413
|
switch(type){
|
|
424
414
|
case 'era':
|
|
425
415
|
{
|
|
@@ -486,7 +476,7 @@ function $6d4e641deb83cb9e$var$getSegmentLimits(date, type, options) {
|
|
|
486
476
|
return {
|
|
487
477
|
};
|
|
488
478
|
}
|
|
489
|
-
function $
|
|
479
|
+
function $596a1f0f523d6752$var$addSegment(value, part, amount, options) {
|
|
490
480
|
switch(part){
|
|
491
481
|
case 'era':
|
|
492
482
|
case 'year':
|
|
@@ -514,7 +504,7 @@ function $6d4e641deb83cb9e$var$addSegment(value, part, amount, options) {
|
|
|
514
504
|
});
|
|
515
505
|
}
|
|
516
506
|
}
|
|
517
|
-
function $
|
|
507
|
+
function $596a1f0f523d6752$var$setSegment(value, part, segmentValue, options) {
|
|
518
508
|
switch(part){
|
|
519
509
|
case 'day':
|
|
520
510
|
case 'month':
|
|
@@ -552,16 +542,14 @@ function $6d4e641deb83cb9e$var$setSegment(value, part, segmentValue, options) {
|
|
|
552
542
|
}
|
|
553
543
|
|
|
554
544
|
|
|
555
|
-
var $7072d26f58deb33b$exports = {};
|
|
556
545
|
|
|
557
|
-
$parcel$export($7072d26f58deb33b$exports, "useDateRangePickerState", () => $7072d26f58deb33b$export$e50a61c1de9f574);
|
|
558
546
|
|
|
559
547
|
|
|
560
548
|
|
|
561
549
|
|
|
562
550
|
function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
563
551
|
var ref, ref1;
|
|
564
|
-
let
|
|
552
|
+
let overlayState = $h2qOe$reactstatelyoverlays.useOverlayTriggerState(props);
|
|
565
553
|
let [controlledValue, setControlledValue] = $h2qOe$reactstatelyutils.useControlledState(props.value, props.defaultValue || null, props.onChange);
|
|
566
554
|
let [placeholderValue, setPlaceholderValue] = $h2qOe$react.useState(()=>controlledValue || {
|
|
567
555
|
start: null,
|
|
@@ -613,7 +601,7 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
613
601
|
else setSelectedDateRange(range);
|
|
614
602
|
} else if (range.start && range.end) setValue(range);
|
|
615
603
|
else setSelectedDateRange(range);
|
|
616
|
-
if (shouldClose) setOpen(false);
|
|
604
|
+
if (shouldClose) overlayState.setOpen(false);
|
|
617
605
|
};
|
|
618
606
|
let setTimeRange = (range)=>{
|
|
619
607
|
if ((dateRange1 === null || dateRange1 === void 0 ? void 0 : dateRange1.start) && (dateRange1 === null || dateRange1 === void 0 ? void 0 : dateRange1.end) && range.start && range.end) commitValue(dateRange1, range);
|
|
@@ -647,7 +635,7 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
647
635
|
},
|
|
648
636
|
setDateRange: setDateRange,
|
|
649
637
|
setTimeRange: setTimeRange,
|
|
650
|
-
isOpen:
|
|
638
|
+
isOpen: overlayState.isOpen,
|
|
651
639
|
setOpen (isOpen) {
|
|
652
640
|
// Commit the selected date range when the calendar is closed. Use a placeholder time if one wasn't set.
|
|
653
641
|
// If only the time range was set and not the date range, don't commit. The state will be preserved until
|
|
@@ -656,11 +644,11 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
656
644
|
start: (timeRange1 === null || timeRange1 === void 0 ? void 0 : timeRange1.start) || $50d5d6a623389320$export$c5221a78ef73c5e9(props.placeholderValue),
|
|
657
645
|
end: (timeRange1 === null || timeRange1 === void 0 ? void 0 : timeRange1.end) || $50d5d6a623389320$export$c5221a78ef73c5e9(props.placeholderValue)
|
|
658
646
|
});
|
|
659
|
-
setOpen(isOpen);
|
|
647
|
+
overlayState.setOpen(isOpen);
|
|
660
648
|
},
|
|
661
649
|
validationState: validationState,
|
|
662
650
|
formatValue (locale, fieldOptions) {
|
|
663
|
-
if (!value1 || !value1.start || !value1.end) return
|
|
651
|
+
if (!value1 || !value1.start || !value1.end) return null;
|
|
664
652
|
let startTimeZone = 'timeZone' in value1.start ? value1.start.timeZone : undefined;
|
|
665
653
|
let startGranularity = props.granularity || (value1.start && 'minute' in value1.start ? 'minute' : 'day');
|
|
666
654
|
let endTimeZone = 'timeZone' in value1.end ? value1.end.timeZone : undefined;
|
|
@@ -671,14 +659,35 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
671
659
|
hideTimeZone: props.hideTimeZone,
|
|
672
660
|
hourCycle: props.hourCycle
|
|
673
661
|
});
|
|
662
|
+
let startDate = value1.start.toDate(startTimeZone || 'UTC');
|
|
663
|
+
let endDate = value1.end.toDate(endTimeZone || 'UTC');
|
|
674
664
|
let startFormatter = new $h2qOe$internationalizeddate.DateFormatter(locale, startOptions);
|
|
675
665
|
let endFormatter;
|
|
676
|
-
if (startTimeZone === endTimeZone && startGranularity === endGranularity) {
|
|
666
|
+
if (startTimeZone === endTimeZone && startGranularity === endGranularity && value1.start.compare(value1.end) !== 0) {
|
|
677
667
|
// Use formatRange, as it results in shorter output when some of the fields
|
|
678
668
|
// are shared between the start and end dates (e.g. the same month).
|
|
679
669
|
// Formatting will fail if the end date is before the start date. Fall back below when that happens.
|
|
680
670
|
try {
|
|
681
|
-
|
|
671
|
+
let parts = startFormatter.formatRangeToParts(startDate, endDate);
|
|
672
|
+
// Find the separator between the start and end date. This is determined
|
|
673
|
+
// by finding the last shared literal before the end range.
|
|
674
|
+
let separatorIndex = -1;
|
|
675
|
+
for(let i = 0; i < parts.length; i++){
|
|
676
|
+
let part = parts[i];
|
|
677
|
+
if (part.source === 'shared' && part.type === 'literal') separatorIndex = i;
|
|
678
|
+
else if (part.source === 'endRange') break;
|
|
679
|
+
}
|
|
680
|
+
// Now we can combine the parts into start and end strings.
|
|
681
|
+
let start = '';
|
|
682
|
+
let end = '';
|
|
683
|
+
for(let i1 = 0; i1 < parts.length; i1++){
|
|
684
|
+
if (i1 < separatorIndex) start += parts[i1].value;
|
|
685
|
+
else if (i1 > separatorIndex) end += parts[i1].value;
|
|
686
|
+
}
|
|
687
|
+
return {
|
|
688
|
+
start: start,
|
|
689
|
+
end: end
|
|
690
|
+
};
|
|
682
691
|
} catch (e) {
|
|
683
692
|
// ignore
|
|
684
693
|
}
|
|
@@ -692,7 +701,10 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
692
701
|
});
|
|
693
702
|
endFormatter = new $h2qOe$internationalizeddate.DateFormatter(locale, endOptions);
|
|
694
703
|
}
|
|
695
|
-
return
|
|
704
|
+
return {
|
|
705
|
+
start: startFormatter.format(startDate),
|
|
706
|
+
end: endFormatter.format(endDate)
|
|
707
|
+
};
|
|
696
708
|
},
|
|
697
709
|
confirmPlaceholder () {
|
|
698
710
|
// Need to use ref value here because the value can be set in the same tick as
|
|
@@ -711,9 +723,6 @@ function $7072d26f58deb33b$export$e50a61c1de9f574(props) {
|
|
|
711
723
|
}
|
|
712
724
|
|
|
713
725
|
|
|
714
|
-
var $2654e87be0231a69$exports = {};
|
|
715
|
-
|
|
716
|
-
$parcel$export($2654e87be0231a69$exports, "useTimeFieldState", () => $2654e87be0231a69$export$fd53cef0cc796101);
|
|
717
726
|
|
|
718
727
|
|
|
719
728
|
|
|
@@ -744,7 +753,7 @@ function $2654e87be0231a69$export$fd53cef0cc796101(props) {
|
|
|
744
753
|
let onChange = (newValue)=>{
|
|
745
754
|
setValue(v && 'day' in v ? newValue : newValue && $h2qOe$internationalizeddate.toTime(newValue));
|
|
746
755
|
};
|
|
747
|
-
return $
|
|
756
|
+
return $596a1f0f523d6752$export$60e84778edff6d26({
|
|
748
757
|
...props,
|
|
749
758
|
value: dateTime,
|
|
750
759
|
defaultValue: undefined,
|
|
@@ -765,10 +774,6 @@ function $2654e87be0231a69$var$convertValue(value, date = $h2qOe$internationaliz
|
|
|
765
774
|
}
|
|
766
775
|
|
|
767
776
|
|
|
768
|
-
$parcel$exportWildcard(module.exports, $aaab7a647e17e1fd$exports);
|
|
769
|
-
$parcel$exportWildcard(module.exports, $6d4e641deb83cb9e$exports);
|
|
770
|
-
$parcel$exportWildcard(module.exports, $7072d26f58deb33b$exports);
|
|
771
|
-
$parcel$exportWildcard(module.exports, $2654e87be0231a69$exports);
|
|
772
777
|
|
|
773
778
|
|
|
774
779
|
//# sourceMappingURL=main.js.map
|