@entur/datepicker 9.1.6 → 9.2.0-beta.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 +17 -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 +25 -9
- 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 +25 -9
- package/dist/datepicker.esm.js.map +1 -1
- package/dist/styles.css +45 -45
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
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;
|
|
@@ -21,7 +21,21 @@ type CalendarProps = {
|
|
|
21
21
|
* Gyldig til og med den tiden som legges inn som maxDate.
|
|
22
22
|
* Dato uten tid vil være gyldig hele maxDate-dagen */
|
|
23
23
|
maxDate?: DateValue;
|
|
24
|
+
/** Brukes for å legge til klassenavn på spesifikke datoer i kalenderen.
|
|
25
|
+
* Tar inn en dato og skal returnere klassenavnet som skal legges til den datoen.
|
|
26
|
+
* @default undefined
|
|
27
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'weekend' : ''
|
|
28
|
+
*
|
|
29
|
+
* OBS: hvis stylingen er meningsbærende bør du bruke ariaLabelForDate i tillegg for å beskrive
|
|
30
|
+
* meningen til skjermlesere o.l.
|
|
31
|
+
*/
|
|
32
|
+
classNameForDate?: (date: CalendarDate) => string;
|
|
33
|
+
/** Legger til teksten som returneres på datoen i kalenderen sin aria-label.
|
|
34
|
+
* Bør brukes sammen med classNameForDate hvis styling-endringene gjort der er meningsbærende.
|
|
35
|
+
* @default undefined
|
|
36
|
+
* @example (date) => isWeekend(date, 'no-NO') ? 'helgedag' : ''
|
|
37
|
+
*/
|
|
38
|
+
ariaLabelForDate?: (date: CalendarDate) => string;
|
|
24
39
|
[key: string]: any;
|
|
25
40
|
};
|
|
26
41
|
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;
|
|
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,12 +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', {
|
|
326
|
+
className: classNames('eds-datepicker__calendar__grid__cell', [(_classNameForDate = classNameForDate == null ? void 0 : classNameForDate(date$1)) != null ? _classNameForDate : ''], {
|
|
323
327
|
'eds-datepicker__calendar__grid__cell--selected': isSelected,
|
|
324
328
|
'eds-datepicker__calendar__grid__cell--disabled': isDisabled || isUnavailable,
|
|
325
329
|
'eds-datepicker__calendar__grid__cell--outside-month': isOutsideVisibleRange,
|
|
@@ -337,7 +341,7 @@ var CalendarCell = function CalendarCell(_ref) {
|
|
|
337
341
|
}), formattedDate));
|
|
338
342
|
};
|
|
339
343
|
|
|
340
|
-
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick"];
|
|
344
|
+
var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
341
345
|
var CalendarGrid = function CalendarGrid(_ref) {
|
|
342
346
|
var state = _ref.state,
|
|
343
347
|
navigationDescription = _ref.navigationDescription,
|
|
@@ -345,6 +349,8 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
345
349
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
346
350
|
return;
|
|
347
351
|
} : _ref$onSelectedCellCl,
|
|
352
|
+
classNameForDate = _ref.classNameForDate,
|
|
353
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
348
354
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
349
355
|
var calendarGridId = utils.useRandomId('eds-calendar');
|
|
350
356
|
var _useLocale = i18n.useLocale(),
|
|
@@ -386,7 +392,9 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
386
392
|
state: state,
|
|
387
393
|
date: date,
|
|
388
394
|
"aria-describedby": calendarGridId + 'description',
|
|
389
|
-
onSelectedCellClick: onSelectedCellClick
|
|
395
|
+
onSelectedCellClick: onSelectedCellClick,
|
|
396
|
+
classNameForDate: classNameForDate,
|
|
397
|
+
ariaLabelForDate: ariaLabelForDate
|
|
390
398
|
}) : React.createElement("td", {
|
|
391
399
|
key: i
|
|
392
400
|
});
|
|
@@ -396,7 +404,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
|
|
|
396
404
|
}, getNavigationDescription()));
|
|
397
405
|
};
|
|
398
406
|
|
|
399
|
-
var _excluded$6 = ["selectedDate", "onChange", "locale", "minDate", "maxDate", "style", "children", "navigationDescription", "onSelectedCellClick"];
|
|
407
|
+
var _excluded$6 = ["selectedDate", "onChange", "locale", "minDate", "maxDate", "style", "children", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate"];
|
|
400
408
|
var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
401
409
|
var selectedDate = _ref.selectedDate,
|
|
402
410
|
onChange = _ref.onChange,
|
|
@@ -409,6 +417,8 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
409
417
|
onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
|
|
410
418
|
return;
|
|
411
419
|
} : _ref$onSelectedCellCl,
|
|
420
|
+
classNameForDate = _ref.classNameForDate,
|
|
421
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
412
422
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
413
423
|
var _useLocale = i18n.useLocale(),
|
|
414
424
|
locale = _useLocale.locale;
|
|
@@ -450,11 +460,13 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
450
460
|
}))), React.createElement(CalendarGrid, {
|
|
451
461
|
state: state,
|
|
452
462
|
navigationDescription: navigationDescription,
|
|
453
|
-
onSelectedCellClick: onSelectedCellClick
|
|
463
|
+
onSelectedCellClick: onSelectedCellClick,
|
|
464
|
+
classNameForDate: classNameForDate,
|
|
465
|
+
ariaLabelForDate: ariaLabelForDate
|
|
454
466
|
})));
|
|
455
467
|
});
|
|
456
468
|
|
|
457
|
-
var _excluded$5 = ["selectedDate", "onChange", "locale", "disabled", "showTime", "showTimeZone", "className", "style", "variant", "feedback", "validationVariant", "validationFeedback", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType"];
|
|
469
|
+
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
470
|
var DatePicker = function DatePicker(_ref) {
|
|
459
471
|
var selectedDate = _ref.selectedDate,
|
|
460
472
|
onChange = _ref.onChange,
|
|
@@ -463,6 +475,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
463
475
|
showTime = _ref.showTime,
|
|
464
476
|
_ref$showTimeZone = _ref.showTimeZone,
|
|
465
477
|
showTimeZone = _ref$showTimeZone === void 0 ? false : _ref$showTimeZone,
|
|
478
|
+
classNameForDate = _ref.classNameForDate,
|
|
466
479
|
className = _ref.className,
|
|
467
480
|
variant = _ref.variant,
|
|
468
481
|
feedback = _ref.feedback,
|
|
@@ -477,6 +490,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
477
490
|
_ref$modalTreshold = _ref.modalTreshold,
|
|
478
491
|
modalTreshold = _ref$modalTreshold === void 0 ? 1000 : _ref$modalTreshold,
|
|
479
492
|
forcedReturnType = _ref.forcedReturnType,
|
|
493
|
+
ariaLabelForDate = _ref.ariaLabelForDate,
|
|
480
494
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
481
495
|
var CALENDAR_MODAL_MAX_SCREEN_WIDTH = modalTreshold;
|
|
482
496
|
var datePickerRef = React.useRef(null);
|
|
@@ -539,7 +553,9 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
539
553
|
onChange: handleOnChange,
|
|
540
554
|
minDate: minDate,
|
|
541
555
|
maxDate: maxDate,
|
|
542
|
-
ref: calendarRef
|
|
556
|
+
ref: calendarRef,
|
|
557
|
+
classNameForDate: classNameForDate,
|
|
558
|
+
ariaLabelForDate: ariaLabelForDate
|
|
543
559
|
});
|
|
544
560
|
var useModal = typeof width !== 'undefined' && width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
|
|
545
561
|
var popoverCalendar = React.createElement("div", {
|