@entur/datepicker 11.1.0 → 11.1.1-beta.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.
@@ -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, {
@@ -362,16 +367,22 @@ var CalendarCell = function CalendarCell(_ref) {
362
367
  }, rest, {
363
368
  onClick: function onClick(e) {
364
369
  buttonProps.onClick && buttonProps.onClick(e);
370
+ // Used to force close calendar on select
365
371
  isSelected && onSelectedCellClick();
372
+ cellCanBeSelected && onCellClick();
366
373
  },
367
- onKeyDown: function onKeyDown(e) {
368
- buttonProps.onKeyDown && buttonProps.onKeyDown(e);
369
- if (e.key === 'Enter' || e.key === ' ') isSelected && onSelectedCellClick();
374
+ onKeyUp: function onKeyUp(e) {
375
+ buttonProps.onKeyUp && buttonProps.onKeyUp(e);
376
+ if (e.key === 'Enter') {
377
+ // Used to force close calendar on select
378
+ isSelected && onSelectedCellClick();
379
+ cellCanBeSelected && onCellClick();
380
+ }
370
381
  }
371
382
  }), formattedDate));
372
383
  };
373
384
 
374
- var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "showWeekNumbers", "weekNumberHeader", "classNameForDate", "ariaLabelForDate"];
385
+ var _excluded$7 = ["state", "navigationDescription", "onSelectedCellClick", "onCellClick", "showWeekNumbers", "weekNumberHeader", "classNameForDate", "ariaLabelForDate"];
375
386
  var CalendarGrid = function CalendarGrid(_ref) {
376
387
  var state = _ref.state,
377
388
  navigationDescription = _ref.navigationDescription,
@@ -379,6 +390,10 @@ var CalendarGrid = function CalendarGrid(_ref) {
379
390
  onSelectedCellClick = _ref$onSelectedCellCl === void 0 ? function () {
380
391
  return;
381
392
  } : _ref$onSelectedCellCl,
393
+ _ref$onCellClick = _ref.onCellClick,
394
+ onCellClick = _ref$onCellClick === void 0 ? function () {
395
+ return;
396
+ } : _ref$onCellClick,
382
397
  showWeekNumbers = _ref.showWeekNumbers,
383
398
  weekNumberHeader = _ref.weekNumberHeader,
384
399
  classNameForDate = _ref.classNameForDate,
@@ -432,6 +447,7 @@ var CalendarGrid = function CalendarGrid(_ref) {
432
447
  "aria-describedby": calendarGridId + 'description',
433
448
  weekNumberString: showWeekNumbers ? ", " + weekNumberHeader + " " + weekNumber + "," : '',
434
449
  onSelectedCellClick: onSelectedCellClick,
450
+ onCellClick: onCellClick,
435
451
  classNameForDate: classNameForDate,
436
452
  ariaLabelForDate: ariaLabelForDate
437
453
  }) : React.createElement("td", {
@@ -444,15 +460,18 @@ var CalendarGrid = function CalendarGrid(_ref) {
444
460
  };
445
461
 
446
462
  var _excluded$6 = ["locale"],
447
- _excluded2$3 = ["selectedDate", "onChange", "minDate", "maxDate", "showWeekNumbers", "weekNumberHeader", "forcedReturnType", "style", "className", "navigationDescription", "onSelectedCellClick", "classNameForDate", "ariaLabelForDate", "calendarRef"];
463
+ _excluded2$3 = ["selectedDate", "onChange", "minDate", "maxDate", "showWeekNumbers", "weekNumberHeader", "forcedReturnType", "style", "className", "navigationDescription", "onSelectedCellClick", "onCellClick", "classNameForDate", "ariaLabelForDate", "calendarRef"];
448
464
  var Calendar = function Calendar(_ref) {
449
465
  var localOverride = _ref.locale,
450
466
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
467
+ var props = _extends({
468
+ isDisabled: rest.disabled
469
+ }, rest);
451
470
  var _useLocale = useLocale(),
452
471
  locale = _useLocale.locale;
453
472
  return React.createElement(I18nProvider, {
454
473
  locale: localOverride != null ? localOverride : locale
455
- }, React.createElement(CalendarBase, _extends({}, rest)));
474
+ }, React.createElement(CalendarBase, _extends({}, props)));
456
475
  };
457
476
  var CalendarBase = function CalendarBase(_ref2) {
458
477
  var selectedDate = _ref2.selectedDate,
@@ -471,6 +490,10 @@ var CalendarBase = function CalendarBase(_ref2) {
471
490
  onSelectedCellClick = _ref2$onSelectedCellC === void 0 ? function () {
472
491
  return;
473
492
  } : _ref2$onSelectedCellC,
493
+ _ref2$onCellClick = _ref2.onCellClick,
494
+ onCellClick = _ref2$onCellClick === void 0 ? function () {
495
+ return;
496
+ } : _ref2$onCellClick,
474
497
  classNameForDate = _ref2.classNameForDate,
475
498
  ariaLabelForDate = _ref2.ariaLabelForDate,
476
499
  calendarRef = _ref2.calendarRef,
@@ -516,6 +539,7 @@ var CalendarBase = function CalendarBase(_ref2) {
516
539
  state: state,
517
540
  navigationDescription: navigationDescription,
518
541
  onSelectedCellClick: onSelectedCellClick,
542
+ onCellClick: onCellClick,
519
543
  classNameForDate: classNameForDate,
520
544
  ariaLabelForDate: ariaLabelForDate,
521
545
  showWeekNumbers: showWeekNumbers,
@@ -523,7 +547,7 @@ var CalendarBase = function CalendarBase(_ref2) {
523
547
  })));
524
548
  };
525
549
 
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"];
550
+ 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
551
  var DatePicker = function DatePicker(_ref) {
528
552
  var selectedDate = _ref.selectedDate,
529
553
  locale = _ref.locale,
@@ -560,6 +584,14 @@ var DatePicker = function DatePicker(_ref) {
560
584
  var _useWindowDimensions = useWindowDimensions(),
561
585
  width = _useWindowDimensions.width;
562
586
  var _props = _extends({}, rest, {
587
+ onChange: function onChange(value) {
588
+ return handleOnChange({
589
+ value: value,
590
+ selectedDate: selectedDate,
591
+ forcedReturnType: rest.forcedReturnType,
592
+ onChange: rest.onChange
593
+ });
594
+ },
563
595
  minValue: minDate,
564
596
  // this weird logic makes sure the entire day is included if no time is provided in maxDate
565
597
  maxValue: 'hour' in (maxDate != null ? maxDate : {}) ? maxDate : maxDate !== undefined ? lastMillisecondOfDay(maxDate) : undefined,
@@ -591,18 +623,25 @@ var DatePicker = function DatePicker(_ref) {
591
623
  floatingStyles = _useFloating.floatingStyles,
592
624
  update = _useFloating.update;
593
625
  useOnClickOutside([calendarRef], function () {
594
- state.setOpen(false);
626
+ return state.setOpen(false);
595
627
  });
596
628
  useOnEscape(calendarRef, function () {
597
- state.setOpen(false);
629
+ return state.setOpen(false);
598
630
  });
599
631
  var calendarSharedProps = _extends({}, dialogProps, calendarProps, {
632
+ // We don't use handleOnChange here since it's handled internally by Calendar
600
633
  onChange: rest.onChange,
634
+ forcedReturnType: rest.forcedReturnType,
601
635
  disabled: disabled,
602
636
  navigationDescription: navigationDescription,
603
637
  onSelectedCellClick: function onSelectedCellClick() {
604
638
  return state.setOpen(false);
605
639
  },
640
+ // onCellClick is a temporary fix solving an issue where the
641
+ // calendar sometimes doesn't close on date selection
642
+ onCellClick: function onCellClick() {
643
+ return state.setOpen(false);
644
+ },
606
645
  selectedDate: selectedDate,
607
646
  minDate: minDate,
608
647
  maxDate: maxDate,