@entur/datepicker 9.1.6 → 9.2.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/DatePicker/Calendar.d.ts +19 -3
- package/dist/DatePicker/CalendarCell.d.ts +3 -1
- package/dist/DatePicker/CalendarGrid.d.ts +4 -1
- package/dist/DatePicker/DatePicker.d.ts +18 -2
- package/dist/datepicker.cjs.development.js +27 -15
- 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 +27 -15
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/styles.css +45 -45
- package/package.json +10 -10
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { DateValue } from '@internationalized/date';
|
|
2
|
+
import { CalendarDate, DateValue } from '@internationalized/date';
|
|
3
3
|
import './Calendar.scss';
|
|
4
|
-
type CalendarProps = {
|
|
4
|
+
export type CalendarProps = {
|
|
5
5
|
selectedDate: DateValue | null;
|
|
6
6
|
onChange: (SelectedDate: DateValue | null) => void;
|
|
7
7
|
navigationDescription?: string;
|
|
8
8
|
style?: React.CSSProperties;
|
|
9
|
+
/** Ekstra klassenavn */
|
|
10
|
+
className?: string;
|
|
9
11
|
onSelectedCellClick?: () => void;
|
|
10
12
|
/** Tidligste gyldige datovalg.
|
|
11
13
|
* Eks: today(getLocalTimeZone()) == i dag i lokal tidssone.
|
|
@@ -21,7 +23,21 @@ type CalendarProps = {
|
|
|
21
23
|
* Gyldig til og med den tiden som legges inn som maxDate.
|
|
22
24
|
* Dato uten tid vil være gyldig hele maxDate-dagen */
|
|
23
25
|
maxDate?: DateValue;
|
|
26
|
+
/** Brukes for å legge til klassenavn på spesifikke datoer i kalenderen.
|
|
27
|
+
* Tar inn en dato og skal returnere klassenavnet som skal legges til den datoen.
|
|
28
|
+
* @default undefined
|
|
29
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'weekend' : ''
|
|
30
|
+
*
|
|
31
|
+
* OBS: hvis stylingen er meningsbærende bør du bruke ariaLabelForDate i tillegg for å beskrive
|
|
32
|
+
* meningen til skjermlesere o.l.
|
|
33
|
+
*/
|
|
34
|
+
classNameForDate?: (date: CalendarDate) => string;
|
|
35
|
+
/** Legger til teksten som returneres på datoen i kalenderen sin aria-label.
|
|
36
|
+
* Bør brukes sammen med classNameForDate hvis styling-endringene gjort der er meningsbærende.
|
|
37
|
+
* @default undefined
|
|
38
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'helgedag' : ''
|
|
39
|
+
*/
|
|
40
|
+
ariaLabelForDate?: (date: CalendarDate) => string;
|
|
24
41
|
[key: string]: any;
|
|
25
42
|
};
|
|
26
43
|
export declare const Calendar: React.ForwardRefExoticComponent<Omit<CalendarProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
27
|
-
export {};
|
|
@@ -5,6 +5,8 @@ type CalendarCellProps = {
|
|
|
5
5
|
state: CalendarState;
|
|
6
6
|
date: CalendarDate;
|
|
7
7
|
onSelectedCellClick?: () => void;
|
|
8
|
+
classNameForDate?: (date: CalendarDate) => string;
|
|
9
|
+
ariaLabelForDate?: (date: CalendarDate) => string;
|
|
8
10
|
};
|
|
9
|
-
export declare const CalendarCell: ({ state, date, onSelectedCellClick, ...rest }: CalendarCellProps) => React.JSX.Element;
|
|
11
|
+
export declare const CalendarCell: ({ state, date, onSelectedCellClick, classNameForDate, ariaLabelForDate, ...rest }: CalendarCellProps) => React.JSX.Element;
|
|
10
12
|
export {};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CalendarState } from '@react-stately/calendar';
|
|
3
|
+
import { CalendarDate } from '@internationalized/date';
|
|
3
4
|
type CalendarGridProps = {
|
|
4
5
|
state: CalendarState;
|
|
5
6
|
navigationDescription?: string;
|
|
6
7
|
onSelectedCellClick?: () => void;
|
|
8
|
+
classNameForDate?: (date: CalendarDate) => string;
|
|
9
|
+
ariaLabelForDate?: (date: CalendarDate) => string;
|
|
7
10
|
};
|
|
8
|
-
export declare const CalendarGrid: ({ state, navigationDescription, onSelectedCellClick, ...rest }: CalendarGridProps) => React.JSX.Element;
|
|
11
|
+
export declare const CalendarGrid: ({ state, navigationDescription, onSelectedCellClick, classNameForDate, ariaLabelForDate, ...rest }: CalendarGridProps) => React.JSX.Element;
|
|
9
12
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { CalendarDate, DateValue } from '@internationalized/date';
|
|
3
|
+
import type { AriaDatePickerProps, MappedDateValue } from '@react-types/datepicker';
|
|
3
4
|
import type { VariantType } from '@entur/form';
|
|
4
5
|
import './DatePicker.scss';
|
|
5
6
|
export type DatePickerProps<DateType extends DateValue> = {
|
|
@@ -74,8 +75,23 @@ export type DatePickerProps<DateType extends DateValue> = {
|
|
|
74
75
|
* @default undefined
|
|
75
76
|
*/
|
|
76
77
|
forcedReturnType?: 'CalendarDate' | 'CalendarDateTime' | 'ZonedDateTime';
|
|
78
|
+
/** Brukes for å legge til klassenavn på spesifikke datoer i kalenderen.
|
|
79
|
+
* Tar inn en dato og skal returnere klassenavnet som skal legges til den datoen.
|
|
80
|
+
* @default undefined
|
|
81
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'weekend' : ''
|
|
82
|
+
*
|
|
83
|
+
* OBS: hvis stylingen er meningsbærende bør du bruke ariaLabelForDate i tillegg for å beskrive
|
|
84
|
+
* meningen til skjermlesere o.l.
|
|
85
|
+
*/
|
|
86
|
+
classNameForDate?: (date: CalendarDate) => string;
|
|
87
|
+
/** Legger til teksten som returneres på datoen i kalenderen sin aria-label.
|
|
88
|
+
* Bør brukes sammen med classNameForDate hvis styling-endringene gjort der er meningsbærende.
|
|
89
|
+
* @default undefined
|
|
90
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'helgedag' : ''
|
|
91
|
+
*/
|
|
92
|
+
ariaLabelForDate?: (date: CalendarDate) => string;
|
|
77
93
|
/** Ekstra klassenavn */
|
|
78
94
|
className?: string;
|
|
79
95
|
style?: React.CSSProperties;
|
|
80
96
|
} & Omit<AriaDatePickerProps<DateType>, 'value' | 'onChange' | 'label' | 'hideTimeZone' | 'placeholder' | 'minValue' | 'maxValue'>;
|
|
81
|
-
export declare const DatePicker: <DateType extends DateValue>({ selectedDate, onChange, locale, disabled, showTime, showTimeZone, className, style, variant, feedback, validationVariant, validationFeedback, disableModal, labelTooltip, navigationDescription, minDate, maxDate, modalTreshold, forcedReturnType, ...rest }: DatePickerProps<DateType>) => React.JSX.Element;
|
|
97
|
+
export declare const DatePicker: <DateType extends DateValue>({ selectedDate, onChange, locale, disabled, showTime, showTimeZone, classNameForDate, className, style, variant, feedback, validationVariant, validationFeedback, disableModal, labelTooltip, navigationDescription, minDate, maxDate, modalTreshold, forcedReturnType, ariaLabelForDate, ...rest }: DatePickerProps<DateType>) => React.JSX.Element;
|
|
@@ -293,15 +293,17 @@ var CalendarButton = function CalendarButton(_ref) {
|
|
|
293
293
|
}), children);
|
|
294
294
|
};
|
|
295
295
|
|
|
296
|
-
var _excluded$8 = ["state", "date", "onSelectedCellClick"];
|
|
296
|
+
var _excluded$8 = ["state", "date", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
297
297
|
var CalendarCell = function CalendarCell(_ref) {
|
|
298
|
-
var _state$timeZone;
|
|
298
|
+
var _ariaLabelForDate, _classNameForDate, _state$timeZone, _classNames;
|
|
299
299
|
var state = _ref.state,
|
|
300
300
|
date$1 = _ref.date,
|
|
301
301
|
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
302
302
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
303
303
|
return;
|
|
304
304
|
} : _ref$onSelectedCellCl,
|
|
305
|
+
classNameForDate = _ref.classNameForDate,
|
|
306
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
305
307
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
306
308
|
var cellRef = React.useRef(null);
|
|
307
309
|
var _useCalendarCell = calendar.useCalendarCell({
|
|
@@ -314,17 +316,14 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
314
316
|
isDisabled = _useCalendarCell.isDisabled,
|
|
315
317
|
isUnavailable = _useCalendarCell.isUnavailable,
|
|
316
318
|
formattedDate = _useCalendarCell.formattedDate;
|
|
319
|
+
var ariaLabel = buttonProps['aria-label'] + " " + ((_ariaLabelForDate = ariaLabelForDate == null ? void 0 : ariaLabelForDate(date$1)) != null ? _ariaLabelForDate : '');
|
|
317
320
|
return React.createElement("td", _extends({}, cellProps, {
|
|
318
321
|
className: "eds-datepicker__calendar__grid__cell__td"
|
|
319
322
|
}), React.createElement("div", _extends({}, buttonProps, {
|
|
323
|
+
"aria-label": ariaLabel,
|
|
320
324
|
ref: cellRef,
|
|
321
325
|
hidden: isOutsideVisibleRange,
|
|
322
|
-
className: classNames('eds-datepicker__calendar__grid__cell', {
|
|
323
|
-
'eds-datepicker__calendar__grid__cell--selected': isSelected,
|
|
324
|
-
'eds-datepicker__calendar__grid__cell--disabled': isDisabled || isUnavailable,
|
|
325
|
-
'eds-datepicker__calendar__grid__cell--outside-month': isOutsideVisibleRange,
|
|
326
|
-
'eds-datepicker__calendar__grid__cell--today': date.isEqualDay(date$1, date.now((_state$timeZone = state.timeZone) != null ? _state$timeZone : date.getLocalTimeZone()))
|
|
327
|
-
})
|
|
326
|
+
className: classNames('eds-datepicker__calendar__grid__cell', (_classNames = {}, _classNames[(_classNameForDate = classNameForDate == null ? void 0 : classNameForDate(date$1)) != 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'] = date.isEqualDay(date$1, date.now((_state$timeZone = state.timeZone) != null ? _state$timeZone : date.getLocalTimeZone())), _classNames))
|
|
328
327
|
}, rest, {
|
|
329
328
|
onClick: function onClick(e) {
|
|
330
329
|
buttonProps.onClick && buttonProps.onClick(e);
|
|
@@ -337,7 +336,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
337
336
|
}), formattedDate));
|
|
338
337
|
};
|
|
339
338
|
|
|
340
|
-
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick"];
|
|
339
|
+
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
341
340
|
var CalendarGrid = function CalendarGrid(_ref) {
|
|
342
341
|
var state = _ref.state,
|
|
343
342
|
navigationDescription = _ref.navigationDescription,
|
|
@@ -345,6 +344,8 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
345
344
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
346
345
|
return;
|
|
347
346
|
} : _ref$onSelectedCellCl,
|
|
347
|
+
classNameForDate = _ref.classNameForDate,
|
|
348
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
348
349
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
349
350
|
var calendarGridId = utils.useRandomId('eds-calendar');
|
|
350
351
|
var _useLocale = i18n.useLocale(),
|
|
@@ -386,7 +387,9 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
386
387
|
state: state,
|
|
387
388
|
date: date,
|
|
388
389
|
"aria-describedby": calendarGridId + 'description',
|
|
389
|
-
onSelectedCellClick: onSelectedCellClick
|
|
390
|
+
onSelectedCellClick: onSelectedCellClick,
|
|
391
|
+
classNameForDate: classNameForDate,
|
|
392
|
+
ariaLabelForDate: ariaLabelForDate
|
|
390
393
|
}) : React.createElement("td", {
|
|
391
394
|
key: i
|
|
392
395
|
});
|
|
@@ -396,7 +399,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
396
399
|
}, getNavigationDescription()));
|
|
397
400
|
};
|
|
398
401
|
|
|
399
|
-
var _excluded$6 = ["selectedDate", "onChange", "locale", "minDate", "maxDate", "style", "children", "navigationDescription", "onSelectedCellClick"];
|
|
402
|
+
var _excluded$6 = ["selectedDate", "onChange", "locale", "minDate", "maxDate", "style", "className", "children", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
400
403
|
var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
401
404
|
var selectedDate = _ref.selectedDate,
|
|
402
405
|
onChange = _ref.onChange,
|
|
@@ -404,11 +407,14 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
404
407
|
minDate = _ref.minDate,
|
|
405
408
|
maxDate = _ref.maxDate,
|
|
406
409
|
style = _ref.style,
|
|
410
|
+
className = _ref.className,
|
|
407
411
|
navigationDescription = _ref.navigationDescription,
|
|
408
412
|
_ref$onSelectedCellCl = _ref.onSelectedCellClick,
|
|
409
413
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
410
414
|
return;
|
|
411
415
|
} : _ref$onSelectedCellCl,
|
|
416
|
+
classNameForDate = _ref.classNameForDate,
|
|
417
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
412
418
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
413
419
|
var _useLocale = i18n.useLocale(),
|
|
414
420
|
locale = _useLocale.locale;
|
|
@@ -435,7 +441,7 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
435
441
|
}
|
|
436
442
|
}, React.createElement("div", _extends({}, calendarProps, {
|
|
437
443
|
ref: ref,
|
|
438
|
-
className:
|
|
444
|
+
className: classNames('eds-datepicker__calendar', className),
|
|
439
445
|
style: style
|
|
440
446
|
}), React.createElement("div", {
|
|
441
447
|
className: "eds-datepicker__calendar__header"
|
|
@@ -450,11 +456,13 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
450
456
|
}))), React.createElement(CalendarGrid, {
|
|
451
457
|
state: state,
|
|
452
458
|
navigationDescription: navigationDescription,
|
|
453
|
-
onSelectedCellClick: onSelectedCellClick
|
|
459
|
+
onSelectedCellClick: onSelectedCellClick,
|
|
460
|
+
classNameForDate: classNameForDate,
|
|
461
|
+
ariaLabelForDate: ariaLabelForDate
|
|
454
462
|
})));
|
|
455
463
|
});
|
|
456
464
|
|
|
457
|
-
var _excluded$5 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType"];
|
|
465
|
+
var _excluded$5 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "classNameForDate", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType", "ariaLabelForDate"];
|
|
458
466
|
var DatePicker = function DatePicker(_ref) {
|
|
459
467
|
var selectedDate = _ref.selectedDate,
|
|
460
468
|
onChange = _ref.onChange,
|
|
@@ -463,6 +471,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
463
471
|
showTime = _ref.showTime,
|
|
464
472
|
_ref$showTimeZone = _ref.showTimeZone,
|
|
465
473
|
showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
|
|
474
|
+
classNameForDate = _ref.classNameForDate,
|
|
466
475
|
className = _ref.className,
|
|
467
476
|
variant = _ref.variant,
|
|
468
477
|
feedback = _ref.feedback,
|
|
@@ -477,6 +486,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
477
486
|
_ref$modalTreshold = _ref.modalTreshold,
|
|
478
487
|
modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
|
|
479
488
|
forcedReturnType = _ref.forcedReturnType,
|
|
489
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
480
490
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
481
491
|
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
|
|
482
492
|
var datePickerRef = React.useRef(null);
|
|
@@ -539,7 +549,9 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
539
549
|
onChange: handleOnChange,
|
|
540
550
|
minDate: minDate,
|
|
541
551
|
maxDate: maxDate,
|
|
542
|
-
ref: calendarRef
|
|
552
|
+
ref: calendarRef,
|
|
553
|
+
classNameForDate: classNameForDate,
|
|
554
|
+
ariaLabelForDate: ariaLabelForDate
|
|
543
555
|
});
|
|
544
556
|
var useModal = typeof width !== 'undefined' && width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
|
|
545
557
|
var popoverCalendar = React.createElement("div", {
|