@entur/datepicker 9.2.0 → 9.3.1
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/DatePicker/Calendar.d.ts +14 -5
- package/dist/DatePicker/CalendarCell.d.ts +2 -1
- package/dist/DatePicker/CalendarGrid.d.ts +3 -1
- package/dist/DatePicker/DatePicker.d.ts +8 -1
- package/dist/datepicker.cjs.development.js +77 -37
- package/dist/datepicker.cjs.development.js.map +1 -1
- package/dist/datepicker.cjs.production.min.js +1 -1
- package/dist/datepicker.cjs.production.min.js.map +1 -1
- package/dist/datepicker.esm.js +78 -39
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/shared/utils.d.ts +2 -0
- package/dist/styles.css +240 -46
- package/package.json +10 -10
package/dist/datepicker.esm.js
CHANGED
|
@@ -5,7 +5,7 @@ import { useDateSegment, useDateField, useDatePicker, useTimeField } from '@reac
|
|
|
5
5
|
import { useLocale, I18nProvider } from '@react-aria/i18n';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
7
|
import { BaseFormControl, useVariant, useInputGroupContext, isFilled, TextField } from '@entur/form';
|
|
8
|
-
import { CalendarDate, Time, getLocalTimeZone, GregorianCalendar, toCalendarDateTime, toTime, now, toZoned, today, toCalendarDate, ZonedDateTime, parseAbsolute, CalendarDateTime, isEqualDay, getWeeksInMonth, parseTime } from '@internationalized/date';
|
|
8
|
+
import { CalendarDate, Time, getLocalTimeZone, GregorianCalendar, toCalendarDateTime, toTime, now, toZoned, today, toCalendarDate, startOfWeek, startOfYear, ZonedDateTime, parseAbsolute, CalendarDateTime, isEqualDay, getWeeksInMonth, parseTime } from '@internationalized/date';
|
|
9
9
|
export { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from '@internationalized/date';
|
|
10
10
|
import { useCalendarCell, useCalendarGrid, useCalendar } from '@react-aria/calendar';
|
|
11
11
|
import { useCalendarState } from '@react-stately/calendar';
|
|
@@ -194,6 +194,21 @@ var focusSegment = function focusSegment(ref, segment) {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
};
|
|
197
|
+
/** Based on code from https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php */
|
|
198
|
+
function getWeekNumberForDate(date) {
|
|
199
|
+
if (date === null) return -1;
|
|
200
|
+
var calendarDate = convertValueToType({
|
|
201
|
+
value: date,
|
|
202
|
+
type: 'CalendarDate'
|
|
203
|
+
});
|
|
204
|
+
var firstDayOfWeek = startOfWeek(calendarDate, 'no-NO');
|
|
205
|
+
var thursdayOfWeek = firstDayOfWeek.add({
|
|
206
|
+
days: 3
|
|
207
|
+
});
|
|
208
|
+
var firstDayOfYearForThursday = startOfYear(thursdayOfWeek);
|
|
209
|
+
var weekNumber = Math.ceil((thursdayOfWeek.compare(firstDayOfYearForThursday) + 1) / 7);
|
|
210
|
+
return weekNumber;
|
|
211
|
+
}
|
|
197
212
|
|
|
198
213
|
var _excluded$a = ["selectedDate", "onChange", "label", "locale", "showTimeZone", "showTime", "granularity", "disabled", "isDisabled", "variant", "feedback", "validationVariant", "validationFeedback", "labelTooltip", "minDate", "maxDate", "style", "className", "labelProps", "append"];
|
|
199
214
|
var DateField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
@@ -290,7 +305,7 @@ var CalendarButton = function CalendarButton(_ref) {
|
|
|
290
305
|
}), children);
|
|
291
306
|
};
|
|
292
307
|
|
|
293
|
-
var _excluded$8 = ["state", "date", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
308
|
+
var _excluded$8 = ["state", "date", "onSelectedCellClick", "weekNumberString", "classNameForDate", "ariaLabelForDate"];
|
|
294
309
|
var CalendarCell = function CalendarCell(_ref) {
|
|
295
310
|
var _ariaLabelForDate, _classNameForDate, _state$timeZone, _classNames;
|
|
296
311
|
var state = _ref.state,
|
|
@@ -299,6 +314,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
299
314
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
300
315
|
return;
|
|
301
316
|
} : _ref$onSelectedCellCl,
|
|
317
|
+
weekNumberString = _ref.weekNumberString,
|
|
302
318
|
classNameForDate = _ref.classNameForDate,
|
|
303
319
|
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
304
320
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
@@ -313,11 +329,12 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
313
329
|
isDisabled = _useCalendarCell.isDisabled,
|
|
314
330
|
isUnavailable = _useCalendarCell.isUnavailable,
|
|
315
331
|
formattedDate = _useCalendarCell.formattedDate;
|
|
316
|
-
var ariaLabel = buttonProps['aria-label'] + " " + ((_ariaLabelForDate = ariaLabelForDate == null ? void 0 : ariaLabelForDate(date)) != null ? _ariaLabelForDate : '');
|
|
332
|
+
var ariaLabel = "" + buttonProps['aria-label'] + weekNumberString + " " + ((_ariaLabelForDate = ariaLabelForDate == null ? void 0 : ariaLabelForDate(date)) != null ? _ariaLabelForDate : '');
|
|
317
333
|
return React.createElement("td", _extends({}, cellProps, {
|
|
318
334
|
className: "eds-datepicker__calendar__grid__cell__td"
|
|
319
335
|
}), React.createElement("div", _extends({}, buttonProps, {
|
|
320
336
|
"aria-label": ariaLabel,
|
|
337
|
+
"aria-hidden": isOutsideVisibleRange,
|
|
321
338
|
ref: cellRef,
|
|
322
339
|
hidden: isOutsideVisibleRange,
|
|
323
340
|
className: classNames('eds-datepicker__calendar__grid__cell', (_classNames = {}, _classNames[(_classNameForDate = classNameForDate == null ? void 0 : classNameForDate(date)) != null ? _classNameForDate : ''] = !isOutsideVisibleRange, _classNames['eds-datepicker__calendar__grid__cell--selected'] = isSelected, _classNames['eds-datepicker__calendar__grid__cell--disabled'] = isDisabled || isUnavailable, _classNames['eds-datepicker__calendar__grid__cell--outside-month'] = isOutsideVisibleRange, _classNames['eds-datepicker__calendar__grid__cell--today'] = isEqualDay(date, now((_state$timeZone = state.timeZone) != null ? _state$timeZone : getLocalTimeZone())), _classNames))
|
|
@@ -333,7 +350,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
333
350
|
}), formattedDate));
|
|
334
351
|
};
|
|
335
352
|
|
|
336
|
-
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
353
|
+
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "showWeekNumbers", "weekNumberHeader", "classNameForDate", "ariaLabelForDate"];
|
|
337
354
|
var CalendarGrid = function CalendarGrid(_ref) {
|
|
338
355
|
var state = _ref.state,
|
|
339
356
|
navigationDescription = _ref.navigationDescription,
|
|
@@ -341,6 +358,8 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
341
358
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
342
359
|
return;
|
|
343
360
|
} : _ref$onSelectedCellCl,
|
|
361
|
+
showWeekNumbers = _ref.showWeekNumbers,
|
|
362
|
+
weekNumberHeader = _ref.weekNumberHeader,
|
|
344
363
|
classNameForDate = _ref.classNameForDate,
|
|
345
364
|
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
346
365
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
@@ -371,19 +390,26 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
371
390
|
return React.createElement(React.Fragment, null, React.createElement("table", _extends({}, gridProps, {
|
|
372
391
|
cellSpacing: "0",
|
|
373
392
|
className: "eds-datepicker__calendar__grid"
|
|
374
|
-
}), React.createElement("thead", _extends({}, headerProps), React.createElement("tr", null,
|
|
393
|
+
}), React.createElement("thead", _extends({}, headerProps), React.createElement("tr", null, showWeekNumbers && React.createElement("th", {
|
|
394
|
+
className: "eds-datepicker__calendar__grid__weeknumber-header"
|
|
395
|
+
}, weekNumberHeader), weekDaysMapped().map(function (day, index) {
|
|
375
396
|
return React.createElement("th", {
|
|
376
397
|
key: index
|
|
377
398
|
}, day);
|
|
378
399
|
}))), React.createElement("tbody", null, weeksArray.map(function (weekIndex) {
|
|
400
|
+
var weekNumber = getWeekNumberForDate(state.getDatesInWeek(weekIndex)[0]);
|
|
379
401
|
return React.createElement("tr", {
|
|
380
402
|
key: weekIndex
|
|
381
|
-
},
|
|
403
|
+
}, showWeekNumbers && React.createElement("th", {
|
|
404
|
+
"aria-hidden": true,
|
|
405
|
+
className: "eds-datepicker__calendar__grid__weeknumber"
|
|
406
|
+
}, weekNumber), state.getDatesInWeek(weekIndex).map(function (date, i) {
|
|
382
407
|
return date ? React.createElement(CalendarCell, {
|
|
383
408
|
key: i,
|
|
384
409
|
state: state,
|
|
385
410
|
date: date,
|
|
386
411
|
"aria-describedby": calendarGridId + 'description',
|
|
412
|
+
weekNumberString: showWeekNumbers ? ", " + weekNumberHeader + " " + weekNumber + "," : '',
|
|
387
413
|
onSelectedCellClick: onSelectedCellClick,
|
|
388
414
|
classNameForDate: classNameForDate,
|
|
389
415
|
ariaLabelForDate: ariaLabelForDate
|
|
@@ -396,29 +422,43 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
396
422
|
}, getNavigationDescription()));
|
|
397
423
|
};
|
|
398
424
|
|
|
399
|
-
var _excluded$6 = ["
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
customLocale = _ref.locale,
|
|
404
|
-
minDate = _ref.minDate,
|
|
405
|
-
maxDate = _ref.maxDate,
|
|
406
|
-
style = _ref.style,
|
|
407
|
-
className = _ref.className,
|
|
408
|
-
navigationDescription = _ref.navigationDescription,
|
|
409
|
-
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
410
|
-
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
411
|
-
return;
|
|
412
|
-
} : _ref$onSelectedCellCl,
|
|
413
|
-
classNameForDate = _ref.classNameForDate,
|
|
414
|
-
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
425
|
+
var _excluded$6 = ["locale"],
|
|
426
|
+
_excluded2$3 = ["selectedDate", "onChange", "minDate", "maxDate", "showWeekNumbers", "weekNumberHeader", "style", "className", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate", "calendarRef"];
|
|
427
|
+
var Calendar = function Calendar(_ref) {
|
|
428
|
+
var localOverride = _ref.locale,
|
|
415
429
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
416
430
|
var _useLocale = useLocale(),
|
|
417
431
|
locale = _useLocale.locale;
|
|
432
|
+
return React.createElement(I18nProvider, {
|
|
433
|
+
locale: localOverride != null ? localOverride : locale
|
|
434
|
+
}, React.createElement(CalendarBase, _extends({}, rest)));
|
|
435
|
+
};
|
|
436
|
+
var CalendarBase = function CalendarBase(_ref2) {
|
|
437
|
+
var selectedDate = _ref2.selectedDate,
|
|
438
|
+
onChange = _ref2.onChange,
|
|
439
|
+
minDate = _ref2.minDate,
|
|
440
|
+
maxDate = _ref2.maxDate,
|
|
441
|
+
_ref2$showWeekNumbers = _ref2.showWeekNumbers,
|
|
442
|
+
showWeekNumbers = _ref2$showWeekNumbers === void 0 ? false : _ref2$showWeekNumbers,
|
|
443
|
+
_ref2$weekNumberHeade = _ref2.weekNumberHeader,
|
|
444
|
+
weekNumberHeader = _ref2$weekNumberHeade === void 0 ? 'uke' : _ref2$weekNumberHeade,
|
|
445
|
+
style = _ref2.style,
|
|
446
|
+
className = _ref2.className,
|
|
447
|
+
navigationDescription = _ref2.navigationDescription,
|
|
448
|
+
_ref2$onSelectedCellC = _ref2.onSelectedCellClick,
|
|
449
|
+
onSelectedCellClick = _ref2$onSelectedCellC === void 0 ? function () {
|
|
450
|
+
return;
|
|
451
|
+
} : _ref2$onSelectedCellC,
|
|
452
|
+
classNameForDate = _ref2.classNameForDate,
|
|
453
|
+
ariaLabelForDate = _ref2.ariaLabelForDate,
|
|
454
|
+
calendarRef = _ref2.calendarRef,
|
|
455
|
+
rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$3);
|
|
456
|
+
var _useLocale2 = useLocale(),
|
|
457
|
+
locale = _useLocale2.locale;
|
|
418
458
|
var allProps = _extends({}, rest, {
|
|
419
459
|
value: selectedDate,
|
|
420
460
|
onChange: onChange,
|
|
421
|
-
locale:
|
|
461
|
+
locale: locale,
|
|
422
462
|
createCalendar: createCalendar,
|
|
423
463
|
minValue: minDate,
|
|
424
464
|
maxValue: maxDate
|
|
@@ -429,15 +469,8 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
429
469
|
prevButtonProps = _useCalendar.prevButtonProps,
|
|
430
470
|
nextButtonProps = _useCalendar.nextButtonProps,
|
|
431
471
|
title = _useCalendar.title;
|
|
432
|
-
return React.createElement(
|
|
433
|
-
|
|
434
|
-
wrapper: function wrapper(child) {
|
|
435
|
-
return React.createElement(I18nProvider, {
|
|
436
|
-
locale: customLocale
|
|
437
|
-
}, child);
|
|
438
|
-
}
|
|
439
|
-
}, React.createElement("div", _extends({}, calendarProps, {
|
|
440
|
-
ref: ref,
|
|
472
|
+
return React.createElement("div", _extends({}, calendarProps, {
|
|
473
|
+
ref: calendarRef,
|
|
441
474
|
className: classNames('eds-datepicker__calendar', className),
|
|
442
475
|
style: style
|
|
443
476
|
}), React.createElement("div", {
|
|
@@ -455,11 +488,13 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
455
488
|
navigationDescription: navigationDescription,
|
|
456
489
|
onSelectedCellClick: onSelectedCellClick,
|
|
457
490
|
classNameForDate: classNameForDate,
|
|
458
|
-
ariaLabelForDate: ariaLabelForDate
|
|
459
|
-
|
|
460
|
-
|
|
491
|
+
ariaLabelForDate: ariaLabelForDate,
|
|
492
|
+
showWeekNumbers: showWeekNumbers,
|
|
493
|
+
weekNumberHeader: weekNumberHeader
|
|
494
|
+
}));
|
|
495
|
+
};
|
|
461
496
|
|
|
462
|
-
var _excluded$5 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "classNameForDate", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType", "ariaLabelForDate"];
|
|
497
|
+
var _excluded$5 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "classNameForDate", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "showWeekNumbers", "weekNumberHeader", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType", "ariaLabelForDate"];
|
|
463
498
|
var DatePicker = function DatePicker(_ref) {
|
|
464
499
|
var selectedDate = _ref.selectedDate,
|
|
465
500
|
onChange = _ref.onChange,
|
|
@@ -474,6 +509,8 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
474
509
|
feedback = _ref.feedback,
|
|
475
510
|
validationVariant = _ref.validationVariant,
|
|
476
511
|
validationFeedback = _ref.validationFeedback,
|
|
512
|
+
showWeekNumbers = _ref.showWeekNumbers,
|
|
513
|
+
weekNumberHeader = _ref.weekNumberHeader,
|
|
477
514
|
_ref$disableModal = _ref.disableModal,
|
|
478
515
|
disableModal = _ref$disableModal === void 0 ? false : _ref$disableModal,
|
|
479
516
|
labelTooltip = _ref.labelTooltip,
|
|
@@ -546,9 +583,11 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
546
583
|
onChange: handleOnChange,
|
|
547
584
|
minDate: minDate,
|
|
548
585
|
maxDate: maxDate,
|
|
549
|
-
|
|
586
|
+
calendarRef: calendarRef,
|
|
550
587
|
classNameForDate: classNameForDate,
|
|
551
|
-
ariaLabelForDate: ariaLabelForDate
|
|
588
|
+
ariaLabelForDate: ariaLabelForDate,
|
|
589
|
+
showWeekNumbers: showWeekNumbers,
|
|
590
|
+
weekNumberHeader: weekNumberHeader
|
|
552
591
|
});
|
|
553
592
|
var useModal = typeof width !== 'undefined' && width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
|
|
554
593
|
var popoverCalendar = React.createElement("div", {
|
|
@@ -1105,5 +1144,5 @@ var SimpleTimePicker = function SimpleTimePicker(_ref) {
|
|
|
1105
1144
|
|
|
1106
1145
|
warnAboutMissingStyles('datepicker', 'form', 'icons');
|
|
1107
1146
|
|
|
1108
|
-
export { Calendar, DateField, DatePicker, NativeDatePicker, NativeTimePicker, SimpleTimePicker, TimePicker, ariaLabelIfNorwegian, convertValueToType, createCalendar, focusSegment, lastMillisecondOfDay, modulo, nativeDateToDateValue, nativeDateToTimeValue, timeOrDateValueToNativeDate };
|
|
1147
|
+
export { Calendar, DateField, DatePicker, NativeDatePicker, NativeTimePicker, SimpleTimePicker, TimePicker, ariaLabelIfNorwegian, convertValueToType, createCalendar, focusSegment, getWeekNumberForDate, lastMillisecondOfDay, modulo, nativeDateToDateValue, nativeDateToTimeValue, timeOrDateValueToNativeDate };
|
|
1109
1148
|
//# sourceMappingURL=datepicker.esm.js.map
|