@entur/datepicker 11.0.6 → 11.1.1-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.
@@ -326,7 +326,7 @@ var CalendarButton = function CalendarButton(_ref) {
326
326
  }), children);
327
327
  };
328
328
 
329
- var _excluded$8 = ["state", "date", "onSelectedCellClick", "weekNumberString", "classNameForDate", "ariaLabelForDate"];
329
+ var _excluded$8 = ["state", "date", "onSelectedCellClick", "onCellClick", "weekNumberString", "classNameForDate", "ariaLabelForDate"];
330
330
  var CalendarCell = function CalendarCell(_ref) {
331
331
  var _ariaLabelForDate, _classNameForDate, _state$timeZone, _classNames;
332
332
  var state = _ref.state,
@@ -335,6 +335,10 @@ var CalendarCell = function CalendarCell(_ref) {
335
335
  onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
336
336
  return;
337
337
  } : _ref$onSelectedCellCl,
338
+ _ref$onCellClick = _ref.onCellClick,
339
+ onCellClick = _ref$onCellClick === void 0 ? function () {
340
+ return;
341
+ } : _ref$onCellClick,
338
342
  weekNumberString = _ref.weekNumberString,
339
343
  classNameForDate = _ref.classNameForDate,
340
344
  ariaLabelForDate = _ref.ariaLabelForDate,
@@ -351,6 +355,7 @@ var CalendarCell = function CalendarCell(_ref) {
351
355
  isUnavailable = _useCalendarCell.isUnavailable,
352
356
  formattedDate = _useCalendarCell.formattedDate;
353
357
  var ariaLabel = "" + buttonProps['aria-label'] + weekNumberString + " " + ((_ariaLabelForDate = ariaLabelForDate == null ? void 0 : ariaLabelForDate(date)) != null ? _ariaLabelForDate : '');
358
+ var cellCanBeSelected = !(isOutsideVisibleRange || isDisabled || isUnavailable);
354
359
  return React.createElement("td", _extends({}, cellProps, {
355
360
  className: "eds-datepicker__calendar__grid__cell__td"
356
361
  }), React.createElement("div", _extends({}, buttonProps, {
@@ -363,15 +368,19 @@ var CalendarCell = function CalendarCell(_ref) {
363
368
  onClick: function onClick(e) {
364
369
  buttonProps.onClick && buttonProps.onClick(e);
365
370
  isSelected && onSelectedCellClick();
371
+ cellCanBeSelected && onCellClick();
366
372
  },
367
373
  onKeyDown: function onKeyDown(e) {
368
374
  buttonProps.onKeyDown && buttonProps.onKeyDown(e);
369
- if (e.key === 'Enter' || e.key === ' ') isSelected && onSelectedCellClick();
375
+ if (e.key === 'Enter' || e.key === ' ') {
376
+ isSelected && onSelectedCellClick();
377
+ cellCanBeSelected && onCellClick();
378
+ }
370
379
  }
371
380
  }), formattedDate));
372
381
  };
373
382
 
374
- var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "showWeekNumbers", "weekNumberHeader", "classNameForDate", "ariaLabelForDate"];
383
+ var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "onCellClick", "showWeekNumbers", "weekNumberHeader", "classNameForDate", "ariaLabelForDate"];
375
384
  var CalendarGrid = function CalendarGrid(_ref) {
376
385
  var state = _ref.state,
377
386
  navigationDescription = _ref.navigationDescription,
@@ -379,6 +388,10 @@ var CalendarGrid = function CalendarGrid(_ref) {
379
388
  onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
380
389
  return;
381
390
  } : _ref$onSelectedCellCl,
391
+ _ref$onCellClick = _ref.onCellClick,
392
+ onCellClick = _ref$onCellClick === void 0 ? function () {
393
+ return;
394
+ } : _ref$onCellClick,
382
395
  showWeekNumbers = _ref.showWeekNumbers,
383
396
  weekNumberHeader = _ref.weekNumberHeader,
384
397
  classNameForDate = _ref.classNameForDate,
@@ -432,6 +445,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
432
445
  "aria-describedby": calendarGridId + 'description',
433
446
  weekNumberString: showWeekNumbers ? ", " + weekNumberHeader + " " + weekNumber + "," : '',
434
447
  onSelectedCellClick: onSelectedCellClick,
448
+ onCellClick: onCellClick,
435
449
  classNameForDate: classNameForDate,
436
450
  ariaLabelForDate: ariaLabelForDate
437
451
  }) : React.createElement("td", {
@@ -444,15 +458,18 @@ var CalendarGrid = function CalendarGrid(_ref) {
444
458
  };
445
459
 
446
460
  var _excluded$6 = ["locale"],
447
- _excluded2$3 = ["selectedDate", "onChange", "minDate", "maxDate", "showWeekNumbers", "weekNumberHeader", "forcedReturnType", "style", "className", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate", "calendarRef"];
461
+ _excluded2$3 = ["selectedDate", "onChange", "minDate", "maxDate", "showWeekNumbers", "weekNumberHeader", "forcedReturnType", "style", "className", "navigationDescription", "onSelectedCellClick", "onCellClick", "classNameForDate", "ariaLabelForDate", "calendarRef"];
448
462
  var Calendar = function Calendar(_ref) {
449
463
  var localOverride = _ref.locale,
450
464
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
465
+ var props = _extends({
466
+ isDisabled: rest.disabled
467
+ }, rest);
451
468
  var _useLocale = useLocale(),
452
469
  locale = _useLocale.locale;
453
470
  return React.createElement(I18nProvider, {
454
471
  locale: localOverride != null ? localOverride : locale
455
- }, React.createElement(CalendarBase, _extends({}, rest)));
472
+ }, React.createElement(CalendarBase, _extends({}, props)));
456
473
  };
457
474
  var CalendarBase = function CalendarBase(_ref2) {
458
475
  var selectedDate = _ref2.selectedDate,
@@ -471,6 +488,10 @@ var CalendarBase = function CalendarBase(_ref2) {
471
488
  onSelectedCellClick = _ref2$onSelectedCellC === void 0 ? function () {
472
489
  return;
473
490
  } : _ref2$onSelectedCellC,
491
+ _ref2$onCellClick = _ref2.onCellClick,
492
+ onCellClick = _ref2$onCellClick === void 0 ? function () {
493
+ return;
494
+ } : _ref2$onCellClick,
474
495
  classNameForDate = _ref2.classNameForDate,
475
496
  ariaLabelForDate = _ref2.ariaLabelForDate,
476
497
  calendarRef = _ref2.calendarRef,
@@ -516,6 +537,7 @@ var CalendarBase = function CalendarBase(_ref2) {
516
537
  state: state,
517
538
  navigationDescription: navigationDescription,
518
539
  onSelectedCellClick: onSelectedCellClick,
540
+ onCellClick: onCellClick,
519
541
  classNameForDate: classNameForDate,
520
542
  ariaLabelForDate: ariaLabelForDate,
521
543
  showWeekNumbers: showWeekNumbers,
@@ -523,7 +545,7 @@ var CalendarBase = function CalendarBase(_ref2) {
523
545
  })));
524
546
  };
525
547
 
526
- var _excluded$5 = ["selectedDate", "locale", "disabled", "readOnly", "showTime", "showTimeZone", "classNameForDate", "className", "variant", "feedback", "validationVariant", "validationFeedback", "showWeekNumbers", "weekNumberHeader", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "forcedReturnType", "ariaLabelForDate", "append", "prepend", "granularity"];
548
+ var _excluded$5 = ["selectedDate", "locale", "disabled", "readOnly", "showTime", "showTimeZone", "classNameForDate", "className", "variant", "feedback", "validationVariant", "validationFeedback", "showWeekNumbers", "weekNumberHeader", "disableModal", "labelTooltip", "navigationDescription", "minDate", "maxDate", "modalTreshold", "ariaLabelForDate", "append", "prepend", "granularity"];
527
549
  var DatePicker = function DatePicker(_ref) {
528
550
  var selectedDate = _ref.selectedDate,
529
551
  locale = _ref.locale,
@@ -560,6 +582,14 @@ var DatePicker = function DatePicker(_ref) {
560
582
  var _useWindowDimensions = useWindowDimensions(),
561
583
  width = _useWindowDimensions.width;
562
584
  var _props = _extends({}, rest, {
585
+ onChange: function onChange(value) {
586
+ return handleOnChange({
587
+ value: value,
588
+ selectedDate: selectedDate,
589
+ forcedReturnType: rest.forcedReturnType,
590
+ onChange: rest.onChange
591
+ });
592
+ },
563
593
  minValue: minDate,
564
594
  // this weird logic makes sure the entire day is included if no time is provided in maxDate
565
595
  maxValue: 'hour' in (maxDate != null ? maxDate : {}) ? maxDate : maxDate !== undefined ? lastMillisecondOfDay(maxDate) : undefined,
@@ -591,18 +621,25 @@ var DatePicker = function DatePicker(_ref) {
591
621
  floatingStyles = _useFloating.floatingStyles,
592
622
  update = _useFloating.update;
593
623
  useOnClickOutside([calendarRef], function () {
594
- state.setOpen(false);
624
+ return state.setOpen(false);
595
625
  });
596
626
  useOnEscape(calendarRef, function () {
597
- state.setOpen(false);
627
+ return state.setOpen(false);
598
628
  });
599
629
  var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
630
+ // We don't use handleOnChange here since it's handled internally by Calendar
600
631
  onChange: rest.onChange,
632
+ forcedReturnType: rest.forcedReturnType,
601
633
  disabled: disabled,
602
634
  navigationDescription: navigationDescription,
603
635
  onSelectedCellClick: function onSelectedCellClick() {
604
636
  return state.setOpen(false);
605
637
  },
638
+ // onCellClick is a temporary fix solving an issue where the
639
+ // calendar sometimes doesn't close on date selection
640
+ onCellClick: function onCellClick() {
641
+ return state.setOpen(false);
642
+ },
606
643
  selectedDate: selectedDate,
607
644
  minDate: minDate,
608
645
  maxDate: maxDate,