primereact 10.3.2 → 10.3.3

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.
Files changed (85) hide show
  1. package/api/api.cjs.js +20 -0
  2. package/api/api.cjs.min.js +1 -1
  3. package/api/api.d.ts +5 -1
  4. package/api/api.esm.js +20 -0
  5. package/api/api.esm.min.js +1 -1
  6. package/api/api.js +20 -0
  7. package/api/api.min.js +1 -1
  8. package/calendar/calendar.cjs.js +493 -141
  9. package/calendar/calendar.cjs.min.js +1 -1
  10. package/calendar/calendar.d.ts +4 -0
  11. package/calendar/calendar.esm.js +494 -142
  12. package/calendar/calendar.esm.min.js +1 -1
  13. package/calendar/calendar.js +493 -141
  14. package/calendar/calendar.min.js +1 -1
  15. package/contextmenu/contextmenu.cjs.js +4 -4
  16. package/contextmenu/contextmenu.cjs.min.js +1 -1
  17. package/contextmenu/contextmenu.esm.js +4 -4
  18. package/contextmenu/contextmenu.esm.min.js +1 -1
  19. package/contextmenu/contextmenu.js +4 -4
  20. package/contextmenu/contextmenu.min.js +1 -1
  21. package/core/core.js +40 -0
  22. package/core/core.min.js +2 -2
  23. package/datatable/datatable.cjs.js +3 -0
  24. package/datatable/datatable.cjs.min.js +1 -1
  25. package/datatable/datatable.esm.js +3 -0
  26. package/datatable/datatable.esm.min.js +1 -1
  27. package/datatable/datatable.js +3 -0
  28. package/datatable/datatable.min.js +1 -1
  29. package/dataview/dataview.cjs.js +27 -25
  30. package/dataview/dataview.cjs.min.js +1 -1
  31. package/dataview/dataview.d.ts +6 -0
  32. package/dataview/dataview.esm.js +27 -25
  33. package/dataview/dataview.esm.min.js +1 -1
  34. package/dataview/dataview.js +27 -25
  35. package/dataview/dataview.min.js +1 -1
  36. package/menubar/menubar.cjs.js +4 -4
  37. package/menubar/menubar.cjs.min.js +1 -1
  38. package/menubar/menubar.esm.js +4 -4
  39. package/menubar/menubar.esm.min.js +1 -1
  40. package/menubar/menubar.js +4 -4
  41. package/menubar/menubar.min.js +1 -1
  42. package/package.json +1 -1
  43. package/paginator/paginator.cjs.js +20 -0
  44. package/paginator/paginator.cjs.min.js +1 -1
  45. package/paginator/paginator.esm.js +20 -0
  46. package/paginator/paginator.esm.min.js +1 -1
  47. package/paginator/paginator.js +20 -0
  48. package/paginator/paginator.min.js +1 -1
  49. package/picklist/picklist.cjs.js +20 -0
  50. package/picklist/picklist.cjs.min.js +1 -1
  51. package/picklist/picklist.esm.js +20 -0
  52. package/picklist/picklist.esm.min.js +1 -1
  53. package/picklist/picklist.js +20 -0
  54. package/picklist/picklist.min.js +1 -1
  55. package/primereact.all.cjs.js +760 -246
  56. package/primereact.all.cjs.min.js +1 -1
  57. package/primereact.all.esm.js +760 -246
  58. package/primereact.all.esm.min.js +1 -1
  59. package/primereact.all.js +760 -246
  60. package/primereact.all.min.js +1 -1
  61. package/splitbutton/splitbutton.cjs.js +4 -4
  62. package/splitbutton/splitbutton.cjs.min.js +1 -1
  63. package/splitbutton/splitbutton.esm.js +4 -4
  64. package/splitbutton/splitbutton.esm.min.js +1 -1
  65. package/splitbutton/splitbutton.js +4 -4
  66. package/splitbutton/splitbutton.min.js +1 -1
  67. package/tieredmenu/tieredmenu.cjs.js +4 -4
  68. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  69. package/tieredmenu/tieredmenu.esm.js +4 -4
  70. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  71. package/tieredmenu/tieredmenu.js +4 -4
  72. package/tieredmenu/tieredmenu.min.js +1 -1
  73. package/toast/toast.cjs.js +20 -0
  74. package/toast/toast.cjs.min.js +1 -1
  75. package/toast/toast.esm.js +20 -0
  76. package/toast/toast.esm.min.js +1 -1
  77. package/toast/toast.js +20 -0
  78. package/toast/toast.min.js +1 -1
  79. package/treetable/treetable.cjs.js +205 -68
  80. package/treetable/treetable.cjs.min.js +1 -1
  81. package/treetable/treetable.esm.js +206 -69
  82. package/treetable/treetable.esm.min.js +1 -1
  83. package/treetable/treetable.js +205 -68
  84. package/treetable/treetable.min.js +1 -1
  85. package/web-types.json +16 -1
@@ -170,13 +170,14 @@ function _slicedToArray(arr, i) {
170
170
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
171
171
  }
172
172
 
173
- var styles = "\n@layer primereact {\n .p-calendar {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n }\n \n .p-calendar .p-inputtext {\n flex: 1 1 auto;\n width: 1%;\n }\n \n .p-calendar-w-btn-right .p-inputtext {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n \n .p-calendar-w-btn-right .p-datepicker-trigger {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n \n .p-calendar-w-btn-left .p-inputtext {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n \n .p-calendar-w-btn-left .p-datepicker-trigger {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n \n /* Fluid */\n .p-fluid .p-calendar {\n display: flex;\n }\n \n .p-fluid .p-calendar .p-inputtext {\n width: 1%;\n }\n \n /* Datepicker */\n .p-calendar .p-datepicker {\n min-width: 100%;\n }\n \n .p-datepicker {\n width: auto;\n position: absolute;\n top: 0;\n left: 0;\n }\n \n .p-datepicker-inline {\n display: inline-block;\n position: static;\n overflow-x: auto;\n }\n \n /* Header */\n .p-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n \n .p-datepicker-header .p-datepicker-title {\n margin: 0 auto;\n }\n \n .p-datepicker-prev,\n .p-datepicker-next {\n cursor: pointer;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n \n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n \n .p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group {\n flex: 1 1 auto;\n }\n \n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n \n /* DatePicker Table */\n .p-datepicker table {\n width: 100%;\n border-collapse: collapse;\n }\n \n .p-datepicker td > span {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n }\n \n /* Month Picker */\n .p-monthpicker-month {\n width: 33.3%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n \n /* Button Bar */\n .p-datepicker-buttonbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n \n /* Time Picker */\n .p-timepicker {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n \n .p-timepicker button {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n \n .p-timepicker > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n \n /* Touch UI */\n .p-datepicker-touch-ui,\n .p-calendar .p-datepicker-touch-ui {\n position: fixed;\n top: 50%;\n left: 50%;\n min-width: 80vw;\n transform: translate(-50%, -50%);\n }\n \n /* Year Picker */\n .p-yearpicker-year {\n width: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n}\n";
173
+ var styles = "\n@layer primereact {\n .p-calendar {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n }\n\n .p-calendar .p-inputtext {\n flex: 1 1 auto;\n width: 1%;\n }\n\n .p-calendar-w-btn-right .p-inputtext {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .p-calendar-w-btn-right .p-datepicker-trigger {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-calendar-w-btn-left .p-inputtext {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-calendar-w-btn-left .p-datepicker-trigger {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n /* Fluid */\n .p-fluid .p-calendar {\n display: flex;\n }\n\n .p-fluid .p-calendar .p-inputtext {\n width: 1%;\n }\n\n /* Datepicker */\n .p-calendar .p-datepicker {\n min-width: 100%;\n }\n\n .p-datepicker {\n width: auto;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .p-datepicker-inline {\n display: inline-block;\n position: static;\n overflow-x: auto;\n }\n\n /* Header */\n .p-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .p-datepicker-header .p-datepicker-title {\n margin: 0 auto;\n }\n\n .p-datepicker-prev,\n .p-datepicker-next {\n cursor: pointer;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n\n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n\n .p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group {\n flex: 1 1 auto;\n }\n\n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n\n /* DatePicker Table */\n .p-datepicker table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .p-datepicker td > span {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n }\n\n /* Month Picker */\n .p-monthpicker-month {\n width: 33.3%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n\n /* Button Bar */\n .p-datepicker-buttonbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n /* Time Picker */\n .p-timepicker {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .p-timepicker button {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n\n .p-timepicker > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n /* Touch UI */\n .p-datepicker-touch-ui,\n .p-calendar .p-datepicker-touch-ui {\n position: fixed;\n top: 50%;\n left: 50%;\n min-width: 80vw;\n transform: translate(-50%, -50%);\n }\n\n /* Year Picker */\n .p-yearpicker-year {\n width: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n}\n";
174
174
  var classes = {
175
175
  root: function root(_ref) {
176
176
  var props = _ref.props,
177
177
  focusedState = _ref.focusedState,
178
- isFilled = _ref.isFilled;
179
- return utils.classNames('p-calendar p-component p-inputwrapper', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "p-calendar-w-btn p-calendar-w-btn-".concat(props.iconPos), props.showIcon), 'p-calendar-disabled', props.disabled), 'p-calendar-timeonly', props.timeOnly), 'p-inputwrapper-filled', props.value || isFilled), 'p-inputwrapper-focus', focusedState));
178
+ isFilled = _ref.isFilled,
179
+ panelVisible = _ref.panelVisible;
180
+ return utils.classNames('p-calendar p-component p-inputwrapper', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "p-calendar-w-btn p-calendar-w-btn-".concat(props.iconPos), props.showIcon), 'p-calendar-disabled', props.disabled), 'p-calendar-timeonly', props.timeOnly), 'p-inputwrapper-filled', props.value || isFilled), 'p-inputwrapper-focus', focusedState), 'p-focus', focusedState || panelVisible));
180
181
  },
181
182
  dropdownButton: 'p-datepicker-trigger',
182
183
  buttonbar: 'p-datepicker-buttonbar',
@@ -255,6 +256,7 @@ var CalendarBase = componentbase.ComponentBase.extend({
255
256
  __TYPE: 'Calendar',
256
257
  appendTo: null,
257
258
  ariaLabelledBy: null,
259
+ ariaLabel: null,
258
260
  autoZIndex: true,
259
261
  autoFocus: false,
260
262
  baseZIndex: 0,
@@ -362,6 +364,10 @@ var CalendarPanel = /*#__PURE__*/React__namespace.forwardRef(function (props, re
362
364
  panelClassName: props.className
363
365
  }),
364
366
  style: props.style,
367
+ role: props.inline ? null : 'dialog',
368
+ id: props.id,
369
+ 'aria-label': PrimeReact.localeOption('chooseDate', props.locale),
370
+ 'aria-modal': props.inline ? null : 'true',
365
371
  onClick: props.onClick,
366
372
  onMouseUp: props.onMouseUp
367
373
  }, props.ptm('panel', {
@@ -418,6 +424,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
418
424
  _React$useState6 = _slicedToArray(_React$useState5, 2),
419
425
  viewDateState = _React$useState6[0],
420
426
  setViewDateState = _React$useState6[1];
427
+ var _React$useState7 = React__namespace.useState(props.id),
428
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
429
+ idState = _React$useState8[0],
430
+ setIdState = _React$useState8[1];
421
431
  var metaData = {
422
432
  props: props,
423
433
  state: {
@@ -446,26 +456,29 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
446
456
  var isOverlayClicked = React__namespace.useRef(false);
447
457
  var previousButton = React__namespace.useRef(false);
448
458
  var nextButton = React__namespace.useRef(false);
459
+ var viewChangedWithKeyDown = React__namespace.useRef(false);
449
460
  var onChangeRef = React__namespace.useRef(null);
450
- var _React$useState7 = React__namespace.useState('date'),
451
- _React$useState8 = _slicedToArray(_React$useState7, 2),
452
- currentView = _React$useState8[0],
453
- setCurrentView = _React$useState8[1];
454
- var _React$useState9 = React__namespace.useState(null),
461
+ var isClearClicked = React__namespace.useRef(false);
462
+ var _React$useState9 = React__namespace.useState('date'),
455
463
  _React$useState10 = _slicedToArray(_React$useState9, 2),
456
- currentMonth = _React$useState10[0],
457
- setCurrentMonth = _React$useState10[1];
464
+ currentView = _React$useState10[0],
465
+ setCurrentView = _React$useState10[1];
458
466
  var _React$useState11 = React__namespace.useState(null),
459
467
  _React$useState12 = _slicedToArray(_React$useState11, 2),
460
- currentYear = _React$useState12[0],
461
- setCurrentYear = _React$useState12[1];
462
- var _React$useState13 = React__namespace.useState([]),
468
+ currentMonth = _React$useState12[0],
469
+ setCurrentMonth = _React$useState12[1];
470
+ var _React$useState13 = React__namespace.useState(null),
463
471
  _React$useState14 = _slicedToArray(_React$useState13, 2),
464
- yearOptions = _React$useState14[0],
465
- setYearOptions = _React$useState14[1];
472
+ currentYear = _React$useState14[0],
473
+ setCurrentYear = _React$useState14[1];
474
+ var _React$useState15 = React__namespace.useState([]),
475
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
476
+ yearOptions = _React$useState16[0],
477
+ setYearOptions = _React$useState16[1];
466
478
  var previousValue = hooks.usePrevious(props.value);
467
479
  var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
468
480
  var attributeSelector = utils.UniqueComponentId();
481
+ var panelId = idState + '_panel';
469
482
  var _useOverlayListener = hooks.useOverlayListener({
470
483
  target: elementRef,
471
484
  overlay: overlayRef,
@@ -473,7 +486,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
473
486
  var type = _ref.type,
474
487
  valid = _ref.valid;
475
488
  if (valid) {
476
- type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
489
+ type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside', reFocusInputField) : hide(null, reFocusInputField);
477
490
  }
478
491
  isOverlayClicked.current = false;
479
492
  },
@@ -503,21 +516,34 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
503
516
  setFocusedState(false);
504
517
  };
505
518
  var onInputKeyDown = function onInputKeyDown(event) {
506
- switch (event.which) {
507
- //escape
508
- case 27:
519
+ switch (event.code) {
520
+ case 'ArrowDown':
509
521
  {
510
- hide();
522
+ if (!overlayVisibleState) {
523
+ show();
524
+ } else {
525
+ focusToFirstCell();
526
+ event.preventDefault();
527
+ }
511
528
  break;
512
529
  }
513
-
514
- //tab
515
- case 9:
530
+ case 'Escape':
516
531
  {
517
- visible && trapFocus(event);
532
+ hide();
518
533
  props.touchUI && disableModality();
519
534
  break;
520
535
  }
536
+ case 'Tab':
537
+ {
538
+ if (overlayRef && overlayRef.current) {
539
+ utils.DomHandler.getFocusableElements(overlayRef.current).forEach(function (el) {
540
+ return el.tabIndex = '-1';
541
+ });
542
+ hide();
543
+ props.touchUI && disableModality();
544
+ }
545
+ break;
546
+ }
521
547
  }
522
548
  };
523
549
  var onUserInput = function onUserInput(event) {
@@ -580,28 +606,40 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
580
606
  navForward(event);
581
607
  };
582
608
  var onContainerButtonKeydown = function onContainerButtonKeydown(event) {
583
- switch (event.which) {
584
- //tab
585
- case 9:
586
- trapFocus(event);
609
+ switch (event.code) {
610
+ case 'Tab':
611
+ !props.inline && trapFocus(event);
587
612
  break;
588
-
589
- //escape
590
- case 27:
613
+ case 'Escape':
591
614
  hide(null, reFocusInputField);
592
615
  event.preventDefault();
593
616
  break;
594
617
  }
595
618
  };
619
+ var onPickerKeyDown = function onPickerKeyDown(event, type, direction) {
620
+ if (event.code === 'Enter' || event.code === 'Space') {
621
+ onTimePickerElementMouseDown(event, type, direction);
622
+ event.preventDefault();
623
+ return;
624
+ }
625
+ onContainerButtonKeydown(event);
626
+ };
627
+ var onPickerKeyUp = function onPickerKeyUp(event) {
628
+ if (event.code === 'Enter' || event.code === 'Space') {
629
+ onTimePickerElementMouseUp();
630
+ event.preventDefault();
631
+ return;
632
+ }
633
+ };
596
634
  var trapFocus = function trapFocus(event) {
597
- event.preventDefault();
635
+ event === null || event === void 0 || event.preventDefault();
598
636
  var focusableElements = utils.DomHandler.getFocusableElements(overlayRef.current);
599
637
  if (focusableElements && focusableElements.length > 0) {
600
638
  if (!document.activeElement) {
601
639
  focusableElements[0].focus();
602
640
  } else {
603
641
  var focusedIndex = focusableElements.indexOf(document.activeElement);
604
- if (event.shiftKey) {
642
+ if (event !== null && event !== void 0 && event.shiftKey) {
605
643
  if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();
606
644
  } else {
607
645
  if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();
@@ -634,7 +672,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
634
672
  };
635
673
  var initFocusableCell = function initFocusableCell() {
636
674
  var cell;
637
- if (props.view === 'month') {
675
+ if (currentView === 'month') {
638
676
  var cells = utils.DomHandler.find(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"]');
639
677
  var selectedCell = utils.DomHandler.findSingle(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"][data-p-highlight="true"]');
640
678
  cells.forEach(function (cell) {
@@ -652,6 +690,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
652
690
  cell.tabIndex = '0';
653
691
  }
654
692
  };
693
+ var focusToFirstCell = function focusToFirstCell() {
694
+ if (currentView) {
695
+ var cell;
696
+ if (currentView === 'date') {
697
+ cell = utils.DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
698
+ if (!cell) {
699
+ var todayCell = utils.DomHandler.findSingle(overlayRef.current, 'td.p-datepicker-today span:not(.p-disabled)');
700
+ cell = todayCell || utils.DomHandler.findSingle(overlayRef.current, 'table td span:not([data-p-disabled="true"])');
701
+ }
702
+ } else if (currentView === 'month' || currentView === 'year') {
703
+ cell = utils.DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
704
+ if (!cell) {
705
+ cell = utils.DomHandler.findSingle(overlayRef.current, "[data-pc-section=\"".concat(currentView, "picker\"] [data-pc-section=\"").concat(currentView, "\"]:not([data-p-disabled=\"true\"])"));
706
+ }
707
+ }
708
+ if (cell) {
709
+ cell.tabIndex = '0';
710
+ cell && cell.focus();
711
+ }
712
+ }
713
+ };
655
714
  var navBackward = function navBackward(event) {
656
715
  if (props.disabled) {
657
716
  event.preventDefault();
@@ -781,6 +840,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
781
840
  props.onTodayButtonClick && props.onTodayButtonClick(event);
782
841
  };
783
842
  var onClearButtonClick = function onClearButtonClick(event) {
843
+ isClearClicked.current = true;
784
844
  updateModel(event, null);
785
845
  updateInputfield(null);
786
846
  hide();
@@ -1262,23 +1322,29 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1262
1322
  var onDateCellKeydown = function onDateCellKeydown(event, date, groupIndex) {
1263
1323
  var cellContent = event.currentTarget;
1264
1324
  var cell = cellContent.parentElement;
1265
- switch (event.which) {
1266
- //down arrow
1267
- case 40:
1325
+ var cellIndex = utils.DomHandler.index(cell);
1326
+ switch (event.code) {
1327
+ case 'ArrowDown':
1268
1328
  {
1269
1329
  cellContent.tabIndex = '-1';
1270
- var cellIndex = utils.DomHandler.index(cell);
1271
1330
  var nextRow = cell.parentElement.nextElementSibling;
1272
1331
  if (nextRow) {
1273
- var focusCell = nextRow.children[cellIndex].children[0];
1274
- if (utils.DomHandler.hasClass(focusCell, 'p-disabled')) {
1332
+ var tableRowIndex = utils.DomHandler.index(cell.parentElement);
1333
+ var tableRows = Array.from(cell.parentElement.parentElement.children);
1334
+ var nextTableRows = tableRows.slice(tableRowIndex + 1);
1335
+ var hasNextFocusableDate = nextTableRows.find(function (el) {
1336
+ var focusCell = el.children[cellIndex].children[0];
1337
+ return !utils.DomHandler.getAttribute(focusCell, 'data-p-disabled');
1338
+ });
1339
+ if (hasNextFocusableDate) {
1340
+ var focusCell = hasNextFocusableDate.children[cellIndex].children[0];
1341
+ focusCell.tabIndex = '0';
1342
+ focusCell.focus();
1343
+ } else {
1275
1344
  navigation.current = {
1276
1345
  backward: false
1277
1346
  };
1278
1347
  navForward(event);
1279
- } else {
1280
- nextRow.children[cellIndex].children[0].tabIndex = '0';
1281
- nextRow.children[cellIndex].children[0].focus();
1282
1348
  }
1283
1349
  } else {
1284
1350
  navigation.current = {
@@ -1289,46 +1355,58 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1289
1355
  event.preventDefault();
1290
1356
  break;
1291
1357
  }
1292
-
1293
- //up arrow
1294
- case 38:
1358
+ case 'ArrowUp':
1295
1359
  {
1296
1360
  cellContent.tabIndex = '-1';
1297
- var _cellIndex = utils.DomHandler.index(cell);
1298
- var prevRow = cell.parentElement.previousElementSibling;
1299
- if (prevRow) {
1300
- var _focusCell = prevRow.children[_cellIndex].children[0];
1301
- if (utils.DomHandler.hasClass(_focusCell, 'p-disabled')) {
1361
+ if (event.altKey) {
1362
+ hide(null, reFocusInputField);
1363
+ } else {
1364
+ var prevRow = cell.parentElement.previousElementSibling;
1365
+ if (prevRow) {
1366
+ var _tableRowIndex = utils.DomHandler.index(cell.parentElement);
1367
+ var _tableRows = Array.from(cell.parentElement.parentElement.children);
1368
+ var prevTableRows = _tableRows.slice(0, _tableRowIndex).reverse();
1369
+ var _hasNextFocusableDate = prevTableRows.find(function (el) {
1370
+ var focusCell = el.children[cellIndex].children[0];
1371
+ return !utils.DomHandler.getAttribute(focusCell, 'data-p-disabled');
1372
+ });
1373
+ if (_hasNextFocusableDate) {
1374
+ var _focusCell = _hasNextFocusableDate.children[cellIndex].children[0];
1375
+ _focusCell.tabIndex = '0';
1376
+ _focusCell.focus();
1377
+ } else {
1378
+ navigation.current = {
1379
+ backward: true
1380
+ };
1381
+ navBackward(event);
1382
+ }
1383
+ } else {
1302
1384
  navigation.current = {
1303
1385
  backward: true
1304
1386
  };
1305
1387
  navBackward(event);
1306
- } else {
1307
- _focusCell.tabIndex = '0';
1308
- _focusCell.focus();
1309
1388
  }
1310
- } else {
1311
- navigation.current = {
1312
- backward: true
1313
- };
1314
- navBackward(event);
1315
1389
  }
1316
1390
  event.preventDefault();
1317
1391
  break;
1318
1392
  }
1319
-
1320
- //left arrow
1321
- case 37:
1393
+ case 'ArrowLeft':
1322
1394
  {
1323
1395
  cellContent.tabIndex = '-1';
1324
1396
  var prevCell = cell.previousElementSibling;
1325
1397
  if (prevCell) {
1326
- var _focusCell2 = prevCell.children[0];
1327
- if (utils.DomHandler.hasClass(_focusCell2, 'p-disabled')) {
1328
- navigateToMonth(true, groupIndex, event);
1329
- } else {
1398
+ var cells = Array.from(cell.parentElement.children);
1399
+ var prevCells = cells.slice(0, cellIndex).reverse();
1400
+ var _hasNextFocusableDate2 = prevCells.find(function (el) {
1401
+ var focusCell = el.children[0];
1402
+ return !utils.DomHandler.getAttribute(focusCell, 'data-p-disabled');
1403
+ });
1404
+ if (_hasNextFocusableDate2) {
1405
+ var _focusCell2 = _hasNextFocusableDate2.children[0];
1330
1406
  _focusCell2.tabIndex = '0';
1331
1407
  _focusCell2.focus();
1408
+ } else {
1409
+ navigateToMonth(true, groupIndex, event);
1332
1410
  }
1333
1411
  } else {
1334
1412
  navigateToMonth(true, groupIndex, event);
@@ -1336,19 +1414,23 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1336
1414
  event.preventDefault();
1337
1415
  break;
1338
1416
  }
1339
-
1340
- //right arrow
1341
- case 39:
1417
+ case 'ArrowRight':
1342
1418
  {
1343
1419
  cellContent.tabIndex = '-1';
1344
1420
  var nextCell = cell.nextElementSibling;
1345
1421
  if (nextCell) {
1346
- var _focusCell3 = nextCell.children[0];
1347
- if (utils.DomHandler.hasClass(_focusCell3, 'p-disabled')) {
1348
- navigateToMonth(false, groupIndex, event);
1349
- } else {
1422
+ var _cells = Array.from(cell.parentElement.children);
1423
+ var nextCells = _cells.slice(cellIndex + 1);
1424
+ var _hasNextFocusableDate3 = nextCells.find(function (el) {
1425
+ var focusCell = el.children[0];
1426
+ return !utils.DomHandler.getAttribute(focusCell, 'data-p-disabled');
1427
+ });
1428
+ if (_hasNextFocusableDate3) {
1429
+ var _focusCell3 = _hasNextFocusableDate3.children[0];
1350
1430
  _focusCell3.tabIndex = '0';
1351
1431
  _focusCell3.focus();
1432
+ } else {
1433
+ navigateToMonth(false, groupIndex, event);
1352
1434
  }
1353
1435
  } else {
1354
1436
  navigateToMonth(false, groupIndex, event);
@@ -1356,27 +1438,75 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1356
1438
  event.preventDefault();
1357
1439
  break;
1358
1440
  }
1359
-
1360
- //enter
1361
- case 13:
1441
+ case 'Enter':
1442
+ case 'NumpadEnter':
1443
+ case 'Space':
1362
1444
  {
1363
1445
  onDateSelect(event, date);
1364
1446
  event.preventDefault();
1365
1447
  break;
1366
1448
  }
1367
-
1368
- //escape
1369
- case 27:
1449
+ case 'Escape':
1370
1450
  {
1371
1451
  hide(null, reFocusInputField);
1372
1452
  event.preventDefault();
1373
1453
  break;
1374
1454
  }
1375
-
1376
- //tab
1377
- case 9:
1455
+ case 'Tab':
1378
1456
  {
1379
- trapFocus(event);
1457
+ if (!props.inline) trapFocus(event);
1458
+ break;
1459
+ }
1460
+ case 'Home':
1461
+ {
1462
+ cellContent.tabIndex = '-1';
1463
+ var currentRow = cell.parentElement;
1464
+ var _focusCell4 = currentRow.children[0].children[0];
1465
+ if (utils.DomHandler.getAttribute(_focusCell4, 'data-p-disabled')) {
1466
+ navigateToMonth(groupIndex, true, event);
1467
+ } else {
1468
+ _focusCell4.tabIndex = '0';
1469
+ _focusCell4.focus();
1470
+ }
1471
+ event.preventDefault();
1472
+ break;
1473
+ }
1474
+ case 'End':
1475
+ {
1476
+ cellContent.tabIndex = '-1';
1477
+ var _currentRow = cell.parentElement;
1478
+ var _focusCell5 = _currentRow.children[_currentRow.children.length - 1].children[0];
1479
+ if (utils.DomHandler.getAttribute(_focusCell5, 'data-p-disabled')) {
1480
+ navigateToMonth(groupIndex, false, event);
1481
+ } else {
1482
+ _focusCell5.tabIndex = '0';
1483
+ _focusCell5.focus();
1484
+ }
1485
+ event.preventDefault();
1486
+ break;
1487
+ }
1488
+ case 'PageUp':
1489
+ {
1490
+ cellContent.tabIndex = '-1';
1491
+ if (event.shiftKey) {
1492
+ navigation.current = {
1493
+ backward: true
1494
+ };
1495
+ navBackward(event);
1496
+ } else navigateToMonth(groupIndex, true, event);
1497
+ event.preventDefault();
1498
+ break;
1499
+ }
1500
+ case 'PageDown':
1501
+ {
1502
+ cellContent.tabIndex = '-1';
1503
+ if (event.shiftKey) {
1504
+ navigation.current = {
1505
+ backward: false
1506
+ };
1507
+ navForward(event);
1508
+ } else navigateToMonth(groupIndex, false, event);
1509
+ event.preventDefault();
1380
1510
  break;
1381
1511
  }
1382
1512
  }
@@ -1403,18 +1533,18 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1403
1533
  navForward(event);
1404
1534
  } else {
1405
1535
  var nextMonthContainer = overlayRef.current.children[groupIndex + 1];
1406
- var _focusCell4 = utils.DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
1407
- _focusCell4.tabIndex = '0';
1408
- _focusCell4.focus();
1536
+ var _focusCell6 = utils.DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
1537
+ _focusCell6.tabIndex = '0';
1538
+ _focusCell6.focus();
1409
1539
  }
1410
1540
  }
1411
1541
  };
1412
1542
  var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
1413
1543
  var cell = event.currentTarget;
1414
- switch (event.which) {
1544
+ switch (event.code) {
1415
1545
  //arrows
1416
- case 38:
1417
- case 40:
1546
+ case 'ArrowUp':
1547
+ case 'ArrowDown':
1418
1548
  {
1419
1549
  cell.tabIndex = '-1';
1420
1550
  var cells = cell.parentElement.children;
@@ -1427,51 +1557,162 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1427
1557
  event.preventDefault();
1428
1558
  break;
1429
1559
  }
1430
-
1431
- //left arrow
1432
- case 37:
1560
+ case 'ArrowLeft':
1433
1561
  {
1434
1562
  cell.tabIndex = '-1';
1435
1563
  var prevCell = cell.previousElementSibling;
1436
1564
  if (prevCell) {
1437
1565
  prevCell.tabIndex = '0';
1438
1566
  prevCell.focus();
1567
+ } else {
1568
+ navigation.current = {
1569
+ backward: true
1570
+ };
1571
+ navBackward(event);
1439
1572
  }
1440
1573
  event.preventDefault();
1441
1574
  break;
1442
1575
  }
1443
-
1444
- //right arrow
1445
- case 39:
1576
+ case 'ArrowRight':
1446
1577
  {
1447
1578
  cell.tabIndex = '-1';
1448
1579
  var _nextCell = cell.nextElementSibling;
1449
1580
  if (_nextCell) {
1450
1581
  _nextCell.tabIndex = '0';
1451
1582
  _nextCell.focus();
1583
+ } else {
1584
+ navigation.current = {
1585
+ backward: false
1586
+ };
1587
+ navForward(event);
1452
1588
  }
1453
1589
  event.preventDefault();
1454
1590
  break;
1455
1591
  }
1456
-
1457
- //enter
1458
- case 13:
1592
+ case 'PageUp':
1593
+ {
1594
+ if (event.shiftKey) return;
1595
+ navigation.current = {
1596
+ backward: true
1597
+ };
1598
+ navBackward(event);
1599
+ break;
1600
+ }
1601
+ case 'PageDown':
1602
+ {
1603
+ if (event.shiftKey) return;
1604
+ navigation.current = {
1605
+ backward: false
1606
+ };
1607
+ navForward(event);
1608
+ break;
1609
+ }
1610
+ case 'Enter':
1611
+ case 'NumpadEnter':
1612
+ case 'Space':
1459
1613
  {
1614
+ if (props.view !== 'month') viewChangedWithKeyDown.current = true;
1460
1615
  onMonthSelect(event, index);
1461
1616
  event.preventDefault();
1462
1617
  break;
1463
1618
  }
1464
-
1465
- //escape
1466
- case 27:
1619
+ case 'Escape':
1467
1620
  {
1468
1621
  hide(null, reFocusInputField);
1469
1622
  event.preventDefault();
1470
1623
  break;
1471
1624
  }
1472
-
1473
- //tab
1474
- case 9:
1625
+ case 'Tab':
1626
+ {
1627
+ trapFocus(event);
1628
+ break;
1629
+ }
1630
+ }
1631
+ };
1632
+ var onYearCellKeydown = function onYearCellKeydown(event, index) {
1633
+ var cell = event.currentTarget;
1634
+ switch (event.code) {
1635
+ //arrows
1636
+ case 'ArrowUp':
1637
+ case 'ArrowDown':
1638
+ {
1639
+ cell.tabIndex = '-1';
1640
+ var cells = cell.parentElement.children;
1641
+ var cellIndex = utils.DomHandler.index(cell);
1642
+ var nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 2 : cellIndex - 2];
1643
+ if (nextCell) {
1644
+ nextCell.tabIndex = '0';
1645
+ nextCell.focus();
1646
+ }
1647
+ event.preventDefault();
1648
+ break;
1649
+ }
1650
+ case 'ArrowLeft':
1651
+ {
1652
+ cell.tabIndex = '-1';
1653
+ var prevCell = cell.previousElementSibling;
1654
+ if (prevCell) {
1655
+ prevCell.tabIndex = '0';
1656
+ prevCell.focus();
1657
+ } else {
1658
+ navigation.current = {
1659
+ backward: true
1660
+ };
1661
+ navBackward(event);
1662
+ }
1663
+ event.preventDefault();
1664
+ break;
1665
+ }
1666
+ case 'ArrowRight':
1667
+ {
1668
+ cell.tabIndex = '-1';
1669
+ var _nextCell2 = cell.nextElementSibling;
1670
+ if (_nextCell2) {
1671
+ _nextCell2.tabIndex = '0';
1672
+ _nextCell2.focus();
1673
+ } else {
1674
+ navigation.current = {
1675
+ backward: false
1676
+ };
1677
+ navForward(event);
1678
+ }
1679
+ event.preventDefault();
1680
+ break;
1681
+ }
1682
+ case 'PageUp':
1683
+ {
1684
+ if (event.shiftKey) return;
1685
+ navigation.current = {
1686
+ backward: true
1687
+ };
1688
+ navBackward(event);
1689
+ break;
1690
+ }
1691
+ case 'PageDown':
1692
+ {
1693
+ if (event.shiftKey) return;
1694
+ navigation.current = {
1695
+ backward: false
1696
+ };
1697
+ navForward(event);
1698
+ break;
1699
+ }
1700
+ case 'Enter':
1701
+ case 'NumpadEnter':
1702
+ case 'Space':
1703
+ {
1704
+ if (props.view !== 'year') viewChangedWithKeyDown.current = true;
1705
+ onYearSelect(event, index);
1706
+ event.preventDefault();
1707
+ break;
1708
+ }
1709
+ case 'Escape':
1710
+ {
1711
+ hide(null, reFocusInputField);
1712
+ event.preventDefault();
1713
+ break;
1714
+ }
1715
+ case 'Tab':
1475
1716
  {
1476
1717
  trapFocus(event);
1477
1718
  break;
@@ -1588,10 +1829,16 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1588
1829
  return _currentYear;
1589
1830
  };
1590
1831
  var switchToMonthView = function switchToMonthView(event) {
1832
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
1833
+ viewChangedWithKeyDown.current = true;
1834
+ }
1591
1835
  setCurrentView('month');
1592
1836
  event.preventDefault();
1593
1837
  };
1594
1838
  var switchToYearView = function switchToYearView(event) {
1839
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
1840
+ viewChangedWithKeyDown.current = true;
1841
+ }
1595
1842
  setCurrentView('year');
1596
1843
  event.preventDefault();
1597
1844
  };
@@ -1732,7 +1979,6 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
1732
1979
  var onOverlayEntered = function onOverlayEntered() {
1733
1980
  bindOverlayListener();
1734
1981
  props.onShow && props.onShow();
1735
- utils.DomHandler.focusFirstElement(overlayRef.current);
1736
1982
  setFocusedState(false);
1737
1983
  };
1738
1984
  var onOverlayExit = function onOverlayExit() {
@@ -2603,6 +2849,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2603
2849
  setCurrentMonth(viewDate.getMonth());
2604
2850
  setCurrentYear(viewDate.getFullYear());
2605
2851
  setCurrentView(props.view);
2852
+ if (!idState) {
2853
+ var uniqueId = utils.UniqueComponentId();
2854
+ !idState && setIdState(uniqueId);
2855
+ }
2606
2856
  if (props.inline) {
2607
2857
  overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
2608
2858
  if (!props.disabled) {
@@ -2650,8 +2900,14 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2650
2900
  // eslint-disable-next-line react-hooks/exhaustive-deps
2651
2901
  }, [props.disabled, props.mask, props.readOnlyInput]);
2652
2902
  hooks.useUpdateEffect(function () {
2653
- setCurrentView(props.view);
2903
+ if (viewChangedWithKeyDown.current) {
2904
+ setCurrentView(props.view);
2905
+ }
2906
+ viewChangedWithKeyDown.current = false;
2654
2907
  }, [props.view]);
2908
+ hooks.useUpdateEffect(function () {
2909
+ focusToFirstCell();
2910
+ }, [currentView]);
2655
2911
  hooks.useUpdateEffect(function () {
2656
2912
  if (!props.onViewDateChange && !viewStateChanged.current) {
2657
2913
  setValue(props.value);
@@ -2742,12 +2998,16 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2742
2998
  if (Array.isArray(prevPropValue)) {
2743
2999
  prevPropValue = prevPropValue[0];
2744
3000
  }
3001
+ var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
3002
+ if (isClearClicked.current && props.showTime) {
3003
+ viewDate.setHours(0, 0, 0);
3004
+ isClearClicked.current = false;
3005
+ }
2745
3006
  if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
2746
- var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
2747
3007
  validateDate(viewDate);
2748
- setViewDateState(viewDate);
2749
- viewStateChanged.current = true;
2750
3008
  }
3009
+ setViewDateState(viewDate);
3010
+ viewStateChanged.current = true;
2751
3011
  };
2752
3012
  var createBackwardNavigator = function createBackwardNavigator(isVisible) {
2753
3013
  var navigatorProps = isVisible ? {
@@ -2767,9 +3027,15 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2767
3027
  var backwardNavigatorIcon = utils.IconUtils.getJSXIcon(icon, _objectSpread({}, previousIconProps), {
2768
3028
  props: props
2769
3029
  });
3030
+ var _localeOptions4 = PrimeReact.localeOptions(props.locale),
3031
+ prevDecade = _localeOptions4.prevDecade,
3032
+ prevYear = _localeOptions4.prevYear,
3033
+ prevMonth = _localeOptions4.prevMonth;
3034
+ var previousButtonLabel = currentView === 'year' ? prevDecade : currentView === 'month' ? prevYear : prevMonth;
2770
3035
  var previousButtonProps = mergeProps(_objectSpread({
2771
3036
  type: 'button',
2772
- className: cx('previousButton')
3037
+ className: cx('previousButton'),
3038
+ 'aria-label': previousButtonLabel
2773
3039
  }, navigatorProps), ptm('previousButton'));
2774
3040
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
2775
3041
  ref: previousButton
@@ -2793,9 +3059,15 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2793
3059
  var forwardNavigatorIcon = utils.IconUtils.getJSXIcon(icon, _objectSpread({}, nextIconProps), {
2794
3060
  props: props
2795
3061
  });
3062
+ var _localeOptions5 = PrimeReact.localeOptions(props.locale),
3063
+ nextDecade = _localeOptions5.nextDecade,
3064
+ nextYear = _localeOptions5.nextYear,
3065
+ nextMonth = _localeOptions5.nextMonth;
3066
+ var nextButtonLabel = currentView === 'year' ? nextDecade : currentView === 'month' ? nextYear : nextMonth;
2796
3067
  var nextButtonProps = mergeProps(_objectSpread({
2797
3068
  type: 'button',
2798
- className: cx('nextButton')
3069
+ className: cx('nextButton'),
3070
+ 'aria-label': nextButtonLabel
2799
3071
  }, navigatorProps), ptm('nextButton'));
2800
3072
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
2801
3073
  ref: nextButton
@@ -2852,6 +3124,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2852
3124
  }
2853
3125
  var monthTitleProps = mergeProps({
2854
3126
  className: cx('monthTitle'),
3127
+ onKeyDown: onContainerButtonKeydown,
3128
+ 'aria-label': PrimeReact.localeOption('chooseMonth', props.locale),
2855
3129
  onClick: switchToMonthView,
2856
3130
  disabled: switchViewButtonDisabled()
2857
3131
  }, ptm('monthTitle'));
@@ -2910,6 +3184,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2910
3184
  var displayYear = props.numberOfMonths > 1 ? metaYear : currentYear;
2911
3185
  var yearTitleProps = mergeProps({
2912
3186
  className: cx('yearTitle'),
3187
+ 'aria-label': PrimeReact.localeOption('chooseYear', props.locale),
2913
3188
  onClick: function onClick(e) {
2914
3189
  return switchToYearView(e);
2915
3190
  },
@@ -2968,25 +3243,33 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
2968
3243
  };
2969
3244
  var createDateCellContent = function createDateCellContent(date, className, groupIndex) {
2970
3245
  var content = props.dateTemplate ? props.dateTemplate(date) : date.day;
3246
+ var selected = isSelected(date);
2971
3247
  var dayLabelProps = mergeProps({
2972
3248
  className: cx('dayLabel', {
2973
3249
  className: className
2974
3250
  }),
3251
+ 'aria-selected': selected,
3252
+ 'aria-disabled': !date.selectable,
2975
3253
  onClick: function onClick(e) {
2976
3254
  return onDateSelect(e, date);
2977
3255
  },
2978
3256
  onKeyDown: function onKeyDown(e) {
2979
3257
  return onDateCellKeydown(e, date, groupIndex);
2980
3258
  },
2981
- 'data-p-highlight': isSelected(date),
3259
+ 'data-p-highlight': selected,
2982
3260
  'data-p-disabled': !date.selectable
2983
3261
  }, ptm('dayLabel', {
2984
3262
  context: {
2985
- selected: isSelected(date),
3263
+ selected: selected,
2986
3264
  disabled: !date.selectable
2987
3265
  }
2988
3266
  }));
2989
- return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content);
3267
+ return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content, selected && /*#__PURE__*/React__namespace.createElement("div", {
3268
+ "aria-live": "polite",
3269
+ className: "p-hidden-accessible",
3270
+ "data-p-hidden-accessible": true,
3271
+ pt: ptm('hiddenSelectedDay')
3272
+ }));
2990
3273
  };
2991
3274
  var createWeek = function createWeek(weekDates, weekNumber, groupIndex) {
2992
3275
  var week = weekDates.map(function (date) {
@@ -3000,6 +3283,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3000
3283
  className: cx('day', {
3001
3284
  date: date
3002
3285
  }),
3286
+ 'aria-label': date.day,
3003
3287
  'data-p-today': date.today,
3004
3288
  'data-p-other-month': date.otherMonth
3005
3289
  }, ptm('day', {
@@ -3048,6 +3332,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3048
3332
  key: utils.UniqueComponentId('calendar_container_')
3049
3333
  }, ptm('container'));
3050
3334
  var tableProps = mergeProps({
3335
+ role: 'grid',
3051
3336
  className: cx('table')
3052
3337
  }, ptm('table'));
3053
3338
  var tableHeaderProps = mergeProps(ptm('tableHeader'));
@@ -3151,6 +3436,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3151
3436
  if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;
3152
3437
  }
3153
3438
  var hourProps = mergeProps(ptm('hour'));
3439
+ var _localeOptions6 = PrimeReact.localeOptions(props.locale),
3440
+ nextHour = _localeOptions6.nextHour,
3441
+ prevHour = _localeOptions6.prevHour;
3154
3442
  var hourDisplay = hour < 10 ? '0' + hour : hour;
3155
3443
  var hourPickerProps = mergeProps({
3156
3444
  className: cx('hourPicker')
@@ -3158,26 +3446,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3158
3446
  var incrementButtonProps = mergeProps({
3159
3447
  type: 'button',
3160
3448
  className: cx('incrementButton'),
3449
+ 'aria-label': nextHour,
3161
3450
  onMouseDown: function onMouseDown(e) {
3162
3451
  return onTimePickerElementMouseDown(e, 0, 1);
3163
3452
  },
3164
3453
  onMouseUp: onTimePickerElementMouseUp,
3165
3454
  onMouseLeave: onTimePickerElementMouseLeave,
3166
3455
  onKeyDown: function onKeyDown(e) {
3167
- return onContainerButtonKeydown(e);
3168
- }
3456
+ return onPickerKeyDown(e, 0, 1);
3457
+ },
3458
+ onKeyUp: onPickerKeyUp
3169
3459
  }, ptm('incrementButton'));
3170
3460
  var decrementButtonProps = mergeProps({
3171
3461
  type: 'button',
3172
3462
  className: cx('decrementButton'),
3463
+ 'aria-label': prevHour,
3173
3464
  onMouseDown: function onMouseDown(e) {
3174
3465
  return onTimePickerElementMouseDown(e, 0, -1);
3175
3466
  },
3176
3467
  onMouseUp: onTimePickerElementMouseUp,
3177
3468
  onMouseLeave: onTimePickerElementMouseLeave,
3178
3469
  onKeyDown: function onKeyDown(e) {
3179
- return onContainerButtonKeydown(e);
3180
- }
3470
+ return onPickerKeyDown(e, 0, -1);
3471
+ },
3472
+ onKeyUp: onPickerKeyUp
3181
3473
  }, ptm('decrementButton'));
3182
3474
  return /*#__PURE__*/React__namespace.createElement("div", hourPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", hourProps, hourDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)));
3183
3475
  };
@@ -3186,6 +3478,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3186
3478
  var minute = doStepMinute(currentTime.getMinutes());
3187
3479
  minute = minute > 59 ? minute - 60 : minute;
3188
3480
  var minuteProps = mergeProps(ptm('minute'));
3481
+ var _localeOptions7 = PrimeReact.localeOptions(props.locale),
3482
+ nextMinute = _localeOptions7.nextMinute,
3483
+ prevMinute = _localeOptions7.prevMinute;
3189
3484
  var minuteDisplay = minute < 10 ? '0' + minute : minute;
3190
3485
  var minutePickerProps = mergeProps({
3191
3486
  className: cx('minutePicker')
@@ -3193,32 +3488,39 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3193
3488
  var incrementButtonProps = mergeProps({
3194
3489
  type: 'button',
3195
3490
  className: cx('incrementButton'),
3491
+ 'aria-label': nextMinute,
3196
3492
  onMouseDown: function onMouseDown(e) {
3197
3493
  return onTimePickerElementMouseDown(e, 1, 1);
3198
3494
  },
3199
3495
  onMouseUp: onTimePickerElementMouseUp,
3200
3496
  onMouseLeave: onTimePickerElementMouseLeave,
3201
3497
  onKeyDown: function onKeyDown(e) {
3202
- return onContainerButtonKeydown(e);
3203
- }
3498
+ return onPickerKeyDown(e, 1, 1);
3499
+ },
3500
+ onKeyUp: onPickerKeyUp
3204
3501
  }, ptm('incrementButton'));
3205
3502
  var decrementButtonProps = mergeProps({
3206
3503
  type: 'button',
3207
3504
  className: cx('decrementButton'),
3505
+ 'aria-label': prevMinute,
3208
3506
  onMouseDown: function onMouseDown(e) {
3209
3507
  return onTimePickerElementMouseDown(e, 1, -1);
3210
3508
  },
3211
3509
  onMouseUp: onTimePickerElementMouseUp,
3212
3510
  onMouseLeave: onTimePickerElementMouseLeave,
3213
3511
  onKeyDown: function onKeyDown(e) {
3214
- return onContainerButtonKeydown(e);
3215
- }
3512
+ return onPickerKeyDown(e, 1, -1);
3513
+ },
3514
+ onKeyUp: onPickerKeyUp
3216
3515
  }, ptm('decrementButton'));
3217
3516
  return /*#__PURE__*/React__namespace.createElement("div", minutePickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", minuteProps, minuteDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)));
3218
3517
  };
3219
3518
  var createSecondPicker = function createSecondPicker() {
3220
3519
  if (props.showSeconds) {
3221
3520
  var currentTime = getCurrentDateTime();
3521
+ var _localeOptions8 = PrimeReact.localeOptions(props.locale),
3522
+ nextSecond = _localeOptions8.nextSecond,
3523
+ prevSecond = _localeOptions8.prevSecond;
3222
3524
  var secondProps = mergeProps(ptm('second'));
3223
3525
  var second = currentTime.getSeconds();
3224
3526
  var secondDisplay = second < 10 ? '0' + second : second;
@@ -3228,26 +3530,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3228
3530
  var incrementButtonProps = mergeProps({
3229
3531
  type: 'button',
3230
3532
  className: cx('incrementButton'),
3533
+ 'aria-label': nextSecond,
3231
3534
  onMouseDown: function onMouseDown(e) {
3232
3535
  return onTimePickerElementMouseDown(e, 2, 1);
3233
3536
  },
3234
3537
  onMouseUp: onTimePickerElementMouseUp,
3235
3538
  onMouseLeave: onTimePickerElementMouseLeave,
3236
3539
  onKeyDown: function onKeyDown(e) {
3237
- return onContainerButtonKeydown(e);
3238
- }
3540
+ return onPickerKeyDown(e, 2, 1);
3541
+ },
3542
+ onKeyUp: onPickerKeyUp
3239
3543
  }, ptm('incrementButton'));
3240
3544
  var decrementButtonProps = mergeProps({
3241
3545
  type: 'button',
3242
3546
  className: cx('decrementButton'),
3547
+ 'aria-label': prevSecond,
3243
3548
  onMouseDown: function onMouseDown(e) {
3244
3549
  return onTimePickerElementMouseDown(e, 2, -1);
3245
3550
  },
3246
3551
  onMouseUp: onTimePickerElementMouseUp,
3247
3552
  onMouseLeave: onTimePickerElementMouseLeave,
3248
3553
  onKeyDown: function onKeyDown(e) {
3249
- return onContainerButtonKeydown(e);
3250
- }
3554
+ return onPickerKeyDown(e, 2, -1);
3555
+ },
3556
+ onKeyUp: onPickerKeyUp
3251
3557
  }, ptm('decrementButton'));
3252
3558
  return /*#__PURE__*/React__namespace.createElement("div", secondPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", secondProps, secondDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)));
3253
3559
  }
@@ -3256,6 +3562,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3256
3562
  var createMiliSecondPicker = function createMiliSecondPicker() {
3257
3563
  if (props.showMillisec) {
3258
3564
  var currentTime = getCurrentDateTime();
3565
+ var _localeOptions9 = PrimeReact.localeOptions(props.locale),
3566
+ nextMilliSecond = _localeOptions9.nextMilliSecond,
3567
+ prevMilliSecond = _localeOptions9.prevMilliSecond;
3259
3568
  var millisecondProps = mergeProps(ptm('millisecond'));
3260
3569
  var millisecond = currentTime.getMilliseconds();
3261
3570
  var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;
@@ -3265,26 +3574,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3265
3574
  var incrementButtonProps = mergeProps({
3266
3575
  type: 'button',
3267
3576
  className: cx('incrementButton'),
3577
+ 'aria-label': nextMilliSecond,
3268
3578
  onMouseDown: function onMouseDown(e) {
3269
3579
  return onTimePickerElementMouseDown(e, 3, 1);
3270
3580
  },
3271
3581
  onMouseUp: onTimePickerElementMouseUp,
3272
3582
  onMouseLeave: onTimePickerElementMouseLeave,
3273
3583
  onKeyDown: function onKeyDown(e) {
3274
- return onContainerButtonKeydown(e);
3275
- }
3584
+ return onPickerKeyDown(e, 3, 1);
3585
+ },
3586
+ onKeyUp: onPickerKeyUp
3276
3587
  }, ptm('incrementButton'));
3277
3588
  var decrementButtonProps = mergeProps({
3278
3589
  type: 'button',
3279
3590
  className: cx('decrementButton'),
3591
+ 'aria-label': prevMilliSecond,
3280
3592
  onMouseDown: function onMouseDown(e) {
3281
3593
  return onTimePickerElementMouseDown(e, 3, -1);
3282
3594
  },
3283
3595
  onMouseUp: onTimePickerElementMouseUp,
3284
3596
  onMouseLeave: onTimePickerElementMouseLeave,
3285
3597
  onKeyDown: function onKeyDown(e) {
3286
- return onContainerButtonKeydown(e);
3287
- }
3598
+ return onPickerKeyDown(e, 3, -1);
3599
+ },
3600
+ onKeyUp: onPickerKeyUp
3288
3601
  }, ptm('decrementButton'));
3289
3602
  return /*#__PURE__*/React__namespace.createElement("div", millisecondPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", millisecondProps, millisecondDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null)));
3290
3603
  }
@@ -3293,6 +3606,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3293
3606
  var createAmPmPicker = function createAmPmPicker() {
3294
3607
  if (props.hourFormat === '12') {
3295
3608
  var currentTime = getCurrentDateTime();
3609
+ var _localeOptions10 = PrimeReact.localeOptions(props.locale),
3610
+ am = _localeOptions10.am,
3611
+ pm = _localeOptions10.pm;
3296
3612
  var hour = currentTime.getHours();
3297
3613
  var display = hour > 11 ? 'PM' : 'AM';
3298
3614
  var ampmProps = mergeProps(ptm('ampm'));
@@ -3302,6 +3618,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3302
3618
  var incrementButtonProps = mergeProps({
3303
3619
  type: 'button',
3304
3620
  className: cx('incrementButton'),
3621
+ 'aria-label': am,
3305
3622
  onClick: function onClick(e) {
3306
3623
  return toggleAmPm(e);
3307
3624
  }
@@ -3309,6 +3626,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3309
3626
  var decrementButtonProps = mergeProps({
3310
3627
  type: 'button',
3311
3628
  className: cx('decrementButton'),
3629
+ 'aria-label': pm,
3312
3630
  onClick: function onClick(e) {
3313
3631
  return toggleAmPm(e);
3314
3632
  }
@@ -3340,6 +3658,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3340
3658
  id: props.inputId,
3341
3659
  name: props.name,
3342
3660
  type: "text",
3661
+ role: "combobox",
3343
3662
  className: props.inputClassName,
3344
3663
  style: props.inputStyle,
3345
3664
  readOnly: props.readOnlyInput,
@@ -3352,7 +3671,12 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3352
3671
  onFocus: onInputFocus,
3353
3672
  onBlur: onInputBlur,
3354
3673
  onKeyDown: onInputKeyDown,
3674
+ "aria-expanded": overlayVisibleState,
3675
+ "aria-autocomplete": "none",
3676
+ "aria-haspopup": "dialog",
3677
+ "aria-controls": panelId,
3355
3678
  "aria-labelledby": props.ariaLabelledBy,
3679
+ "aria-label": props.ariaLabel,
3356
3680
  inputMode: props.inputMode,
3357
3681
  tooltip: props.tooltip,
3358
3682
  tooltipOptions: props.tooltipOptions,
@@ -3372,6 +3696,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3372
3696
  onClick: onButtonClick,
3373
3697
  tabIndex: "-1",
3374
3698
  disabled: props.disabled,
3699
+ "aria-haspopup": "dialog",
3700
+ "aria-label": PrimeReact.localeOption('chooseDate', props.locale),
3701
+ "aria-expanded": overlayVisibleState,
3702
+ "aria-controls": panelId,
3375
3703
  className: cx('dropdownButton'),
3376
3704
  pt: ptm('dropdownButton'),
3377
3705
  __parentMetadata: {
@@ -3391,21 +3719,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3391
3719
  };
3392
3720
  var createButtonBar = function createButtonBar() {
3393
3721
  if (props.showButtonBar) {
3394
- var _localeOptions4 = PrimeReact.localeOptions(props.locale),
3395
- today = _localeOptions4.today,
3396
- clear = _localeOptions4.clear;
3722
+ var _localeOptions11 = PrimeReact.localeOptions(props.locale),
3723
+ today = _localeOptions11.today,
3724
+ clear = _localeOptions11.clear,
3725
+ now = _localeOptions11.now;
3726
+ var nowDate = new Date();
3727
+ var isHidden = props.minDate && props.minDate > nowDate || props.maxDate && props.maxDate < nowDate;
3397
3728
  var buttonbarProps = mergeProps({
3398
3729
  className: cx('buttonbar')
3399
3730
  }, ptm('buttonbar'));
3400
3731
  return /*#__PURE__*/React__namespace.createElement("div", buttonbarProps, /*#__PURE__*/React__namespace.createElement(button.Button, {
3401
3732
  type: "button",
3402
- label: today,
3733
+ label: props.showTime ? now : today,
3403
3734
  onClick: onTodayButtonClick,
3404
3735
  onKeyDown: function onKeyDown(e) {
3405
3736
  return onContainerButtonKeydown(e);
3406
3737
  },
3407
3738
  className: utils.classNames(props.todayButtonClassName, cx('todayButton')),
3408
- pt: ptm('todayButton')
3739
+ pt: ptm('todayButton'),
3740
+ style: isHidden ? {
3741
+ visibility: 'hidden'
3742
+ } : undefined
3409
3743
  }), /*#__PURE__*/React__namespace.createElement(button.Button, {
3410
3744
  type: "button",
3411
3745
  label: clear,
@@ -3435,6 +3769,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3435
3769
  className: cx('monthPicker')
3436
3770
  }, ptm('monthPicker'));
3437
3771
  return /*#__PURE__*/React__namespace.createElement("div", monthPickerProps, monthPickerValues().map(function (m, i) {
3772
+ var selected = isMonthSelected(i);
3438
3773
  var monthProps = mergeProps({
3439
3774
  className: cx('month', {
3440
3775
  isMonthSelected: isMonthSelected,
@@ -3449,18 +3784,23 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3449
3784
  return onMonthCellKeydown(event, i);
3450
3785
  },
3451
3786
  'data-p-disabled': isMonthYearDisabled(i, currentYear),
3452
- 'data-p-highlight': isMonthSelected(i)
3787
+ 'data-p-highlight': selected
3453
3788
  }, ptm('month', {
3454
3789
  context: {
3455
3790
  month: m,
3456
3791
  monthIndex: i,
3457
- selected: isMonthSelected(i),
3792
+ selected: selected,
3458
3793
  disabled: isMonthYearDisabled(i, currentYear)
3459
3794
  }
3460
3795
  }));
3461
3796
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, monthProps, {
3462
3797
  key: "month".concat(i + 1)
3463
- }), m);
3798
+ }), m, selected && /*#__PURE__*/React__namespace.createElement("div", {
3799
+ "aria-live": "polite",
3800
+ className: "p-hidden-accessible",
3801
+ "data-p-hidden-accessible": true,
3802
+ pt: ptm('hiddenMonth')
3803
+ }, m));
3464
3804
  }));
3465
3805
  }
3466
3806
  return null;
@@ -3471,6 +3811,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3471
3811
  className: cx('yearPicker')
3472
3812
  }, ptm('yearPicker'));
3473
3813
  return /*#__PURE__*/React__namespace.createElement("div", yearPickerProps, yearPickerValues().map(function (y, i) {
3814
+ var selected = isYearSelected(y);
3474
3815
  var yearProps = mergeProps({
3475
3816
  className: cx('year', {
3476
3817
  isYearSelected: isYearSelected,
@@ -3480,19 +3821,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3480
3821
  onClick: function onClick(event) {
3481
3822
  return onYearSelect(event, y);
3482
3823
  },
3824
+ onKeyDown: function onKeyDown(event) {
3825
+ return onYearCellKeydown(event, y);
3826
+ },
3483
3827
  'data-p-highlight': isYearSelected(y),
3484
3828
  'data-p-disabled': isMonthYearDisabled(-1, y)
3485
3829
  }, ptm('year', {
3486
3830
  context: {
3487
3831
  year: y,
3488
3832
  yearIndex: i,
3489
- selected: isYearSelected(i),
3833
+ selected: selected,
3490
3834
  disabled: isMonthYearDisabled(-1, y)
3491
3835
  }
3492
3836
  }));
3493
3837
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, yearProps, {
3494
3838
  key: "year".concat(i + 1)
3495
- }), y);
3839
+ }), y, selected && /*#__PURE__*/React__namespace.createElement("div", {
3840
+ "aria-live": "polite",
3841
+ className: "p-hidden-accessible",
3842
+ "data-p-hidden-accessible": true,
3843
+ pt: ptm('hiddenYear')
3844
+ }, y));
3496
3845
  }));
3497
3846
  }
3498
3847
  return null;
@@ -3519,7 +3868,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3519
3868
  id: props.id,
3520
3869
  className: utils.classNames(props.className, cx('root', {
3521
3870
  focusedState: focusedState,
3522
- isFilled: isFilled
3871
+ isFilled: isFilled,
3872
+ panelVisible: visible
3523
3873
  })),
3524
3874
  style: props.style
3525
3875
  }, CalendarBase.getOtherProps(props), ptm('root'));
@@ -3527,6 +3877,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
3527
3877
  ref: elementRef
3528
3878
  }, rootProps), content, /*#__PURE__*/React__namespace.createElement(CalendarPanel, {
3529
3879
  hostName: "Calendar",
3880
+ id: panelId,
3881
+ locale: props.locale,
3530
3882
  ref: overlayRef,
3531
3883
  className: panelClassName,
3532
3884
  style: props.panelStyle,