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
@@ -2818,7 +2818,27 @@ var locales = {
2818
2818
  dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
2819
2819
  monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
2820
2820
  monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
2821
+ chooseYear: 'Choose Year',
2822
+ chooseMonth: 'Choose Month',
2823
+ chooseDate: 'Choose Date',
2824
+ prevDecade: 'Previous Decade',
2825
+ nextDecade: 'Next Decade',
2826
+ prevYear: 'Previous Year',
2827
+ nextYear: 'Next Year',
2828
+ prevMonth: 'Previous Month',
2829
+ nextMonth: 'Next Month',
2830
+ prevHour: 'Previous Hour',
2831
+ nextHour: 'Next Hour',
2832
+ prevMinute: 'Previous Minute',
2833
+ nextMinute: 'Next Minute',
2834
+ prevSecond: 'Previous Second',
2835
+ nextSecond: 'Next Second',
2836
+ prevMilliSecond: 'Previous Second',
2837
+ nextMilliSecond: 'Next Second',
2838
+ am: 'am',
2839
+ pm: 'pm',
2821
2840
  today: 'Today',
2841
+ now: 'Now',
2822
2842
  weekHeader: 'Wk',
2823
2843
  firstDayOfWeek: 0,
2824
2844
  showMonthAfterYear: false,
@@ -10024,13 +10044,14 @@ var BreadCrumb = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
10024
10044
  }));
10025
10045
  BreadCrumb.displayName = 'BreadCrumb';
10026
10046
 
10027
- var styles$Y = "\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";
10047
+ var styles$Y = "\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";
10028
10048
  var classes$11 = {
10029
10049
  root: function root(_ref) {
10030
10050
  var props = _ref.props,
10031
10051
  focusedState = _ref.focusedState,
10032
- isFilled = _ref.isFilled;
10033
- return 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));
10052
+ isFilled = _ref.isFilled,
10053
+ panelVisible = _ref.panelVisible;
10054
+ return 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));
10034
10055
  },
10035
10056
  dropdownButton: 'p-datepicker-trigger',
10036
10057
  buttonbar: 'p-datepicker-buttonbar',
@@ -10109,6 +10130,7 @@ var CalendarBase = ComponentBase.extend({
10109
10130
  __TYPE: 'Calendar',
10110
10131
  appendTo: null,
10111
10132
  ariaLabelledBy: null,
10133
+ ariaLabel: null,
10112
10134
  autoZIndex: true,
10113
10135
  autoFocus: false,
10114
10136
  baseZIndex: 0,
@@ -10216,6 +10238,10 @@ var CalendarPanel = /*#__PURE__*/React__namespace.forwardRef(function (props, re
10216
10238
  panelClassName: props.className
10217
10239
  }),
10218
10240
  style: props.style,
10241
+ role: props.inline ? null : 'dialog',
10242
+ id: props.id,
10243
+ 'aria-label': localeOption('chooseDate', props.locale),
10244
+ 'aria-modal': props.inline ? null : 'true',
10219
10245
  onClick: props.onClick,
10220
10246
  onMouseUp: props.onMouseUp
10221
10247
  }, props.ptm('panel', {
@@ -10272,6 +10298,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10272
10298
  _React$useState6 = _slicedToArray(_React$useState5, 2),
10273
10299
  viewDateState = _React$useState6[0],
10274
10300
  setViewDateState = _React$useState6[1];
10301
+ var _React$useState7 = React__namespace.useState(props.id),
10302
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
10303
+ idState = _React$useState8[0],
10304
+ setIdState = _React$useState8[1];
10275
10305
  var metaData = {
10276
10306
  props: props,
10277
10307
  state: {
@@ -10300,26 +10330,29 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10300
10330
  var isOverlayClicked = React__namespace.useRef(false);
10301
10331
  var previousButton = React__namespace.useRef(false);
10302
10332
  var nextButton = React__namespace.useRef(false);
10333
+ var viewChangedWithKeyDown = React__namespace.useRef(false);
10303
10334
  var onChangeRef = React__namespace.useRef(null);
10304
- var _React$useState7 = React__namespace.useState('date'),
10305
- _React$useState8 = _slicedToArray(_React$useState7, 2),
10306
- currentView = _React$useState8[0],
10307
- setCurrentView = _React$useState8[1];
10308
- var _React$useState9 = React__namespace.useState(null),
10335
+ var isClearClicked = React__namespace.useRef(false);
10336
+ var _React$useState9 = React__namespace.useState('date'),
10309
10337
  _React$useState10 = _slicedToArray(_React$useState9, 2),
10310
- currentMonth = _React$useState10[0],
10311
- setCurrentMonth = _React$useState10[1];
10338
+ currentView = _React$useState10[0],
10339
+ setCurrentView = _React$useState10[1];
10312
10340
  var _React$useState11 = React__namespace.useState(null),
10313
10341
  _React$useState12 = _slicedToArray(_React$useState11, 2),
10314
- currentYear = _React$useState12[0],
10315
- setCurrentYear = _React$useState12[1];
10316
- var _React$useState13 = React__namespace.useState([]),
10342
+ currentMonth = _React$useState12[0],
10343
+ setCurrentMonth = _React$useState12[1];
10344
+ var _React$useState13 = React__namespace.useState(null),
10317
10345
  _React$useState14 = _slicedToArray(_React$useState13, 2),
10318
- yearOptions = _React$useState14[0],
10319
- setYearOptions = _React$useState14[1];
10346
+ currentYear = _React$useState14[0],
10347
+ setCurrentYear = _React$useState14[1];
10348
+ var _React$useState15 = React__namespace.useState([]),
10349
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
10350
+ yearOptions = _React$useState16[0],
10351
+ setYearOptions = _React$useState16[1];
10320
10352
  var previousValue = usePrevious(props.value);
10321
10353
  var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
10322
10354
  var attributeSelector = UniqueComponentId();
10355
+ var panelId = idState + '_panel';
10323
10356
  var _useOverlayListener = useOverlayListener({
10324
10357
  target: elementRef,
10325
10358
  overlay: overlayRef,
@@ -10327,7 +10360,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10327
10360
  var type = _ref.type,
10328
10361
  valid = _ref.valid;
10329
10362
  if (valid) {
10330
- type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
10363
+ type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside', reFocusInputField) : hide(null, reFocusInputField);
10331
10364
  }
10332
10365
  isOverlayClicked.current = false;
10333
10366
  },
@@ -10357,21 +10390,34 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10357
10390
  setFocusedState(false);
10358
10391
  };
10359
10392
  var onInputKeyDown = function onInputKeyDown(event) {
10360
- switch (event.which) {
10361
- //escape
10362
- case 27:
10393
+ switch (event.code) {
10394
+ case 'ArrowDown':
10363
10395
  {
10364
- hide();
10396
+ if (!overlayVisibleState) {
10397
+ show();
10398
+ } else {
10399
+ focusToFirstCell();
10400
+ event.preventDefault();
10401
+ }
10365
10402
  break;
10366
10403
  }
10367
-
10368
- //tab
10369
- case 9:
10404
+ case 'Escape':
10370
10405
  {
10371
- visible && trapFocus(event);
10406
+ hide();
10372
10407
  props.touchUI && disableModality();
10373
10408
  break;
10374
10409
  }
10410
+ case 'Tab':
10411
+ {
10412
+ if (overlayRef && overlayRef.current) {
10413
+ DomHandler.getFocusableElements(overlayRef.current).forEach(function (el) {
10414
+ return el.tabIndex = '-1';
10415
+ });
10416
+ hide();
10417
+ props.touchUI && disableModality();
10418
+ }
10419
+ break;
10420
+ }
10375
10421
  }
10376
10422
  };
10377
10423
  var onUserInput = function onUserInput(event) {
@@ -10434,28 +10480,40 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10434
10480
  navForward(event);
10435
10481
  };
10436
10482
  var onContainerButtonKeydown = function onContainerButtonKeydown(event) {
10437
- switch (event.which) {
10438
- //tab
10439
- case 9:
10440
- trapFocus(event);
10483
+ switch (event.code) {
10484
+ case 'Tab':
10485
+ !props.inline && trapFocus(event);
10441
10486
  break;
10442
-
10443
- //escape
10444
- case 27:
10487
+ case 'Escape':
10445
10488
  hide(null, reFocusInputField);
10446
10489
  event.preventDefault();
10447
10490
  break;
10448
10491
  }
10449
10492
  };
10493
+ var onPickerKeyDown = function onPickerKeyDown(event, type, direction) {
10494
+ if (event.code === 'Enter' || event.code === 'Space') {
10495
+ onTimePickerElementMouseDown(event, type, direction);
10496
+ event.preventDefault();
10497
+ return;
10498
+ }
10499
+ onContainerButtonKeydown(event);
10500
+ };
10501
+ var onPickerKeyUp = function onPickerKeyUp(event) {
10502
+ if (event.code === 'Enter' || event.code === 'Space') {
10503
+ onTimePickerElementMouseUp();
10504
+ event.preventDefault();
10505
+ return;
10506
+ }
10507
+ };
10450
10508
  var trapFocus = function trapFocus(event) {
10451
- event.preventDefault();
10509
+ event === null || event === void 0 || event.preventDefault();
10452
10510
  var focusableElements = DomHandler.getFocusableElements(overlayRef.current);
10453
10511
  if (focusableElements && focusableElements.length > 0) {
10454
10512
  if (!document.activeElement) {
10455
10513
  focusableElements[0].focus();
10456
10514
  } else {
10457
10515
  var focusedIndex = focusableElements.indexOf(document.activeElement);
10458
- if (event.shiftKey) {
10516
+ if (event !== null && event !== void 0 && event.shiftKey) {
10459
10517
  if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();
10460
10518
  } else {
10461
10519
  if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();
@@ -10488,7 +10546,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10488
10546
  };
10489
10547
  var initFocusableCell = function initFocusableCell() {
10490
10548
  var cell;
10491
- if (props.view === 'month') {
10549
+ if (currentView === 'month') {
10492
10550
  var cells = DomHandler.find(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"]');
10493
10551
  var selectedCell = DomHandler.findSingle(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"][data-p-highlight="true"]');
10494
10552
  cells.forEach(function (cell) {
@@ -10506,6 +10564,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10506
10564
  cell.tabIndex = '0';
10507
10565
  }
10508
10566
  };
10567
+ var focusToFirstCell = function focusToFirstCell() {
10568
+ if (currentView) {
10569
+ var cell;
10570
+ if (currentView === 'date') {
10571
+ cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
10572
+ if (!cell) {
10573
+ var todayCell = DomHandler.findSingle(overlayRef.current, 'td.p-datepicker-today span:not(.p-disabled)');
10574
+ cell = todayCell || DomHandler.findSingle(overlayRef.current, 'table td span:not([data-p-disabled="true"])');
10575
+ }
10576
+ } else if (currentView === 'month' || currentView === 'year') {
10577
+ cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
10578
+ if (!cell) {
10579
+ cell = DomHandler.findSingle(overlayRef.current, "[data-pc-section=\"".concat(currentView, "picker\"] [data-pc-section=\"").concat(currentView, "\"]:not([data-p-disabled=\"true\"])"));
10580
+ }
10581
+ }
10582
+ if (cell) {
10583
+ cell.tabIndex = '0';
10584
+ cell && cell.focus();
10585
+ }
10586
+ }
10587
+ };
10509
10588
  var navBackward = function navBackward(event) {
10510
10589
  if (props.disabled) {
10511
10590
  event.preventDefault();
@@ -10635,6 +10714,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
10635
10714
  props.onTodayButtonClick && props.onTodayButtonClick(event);
10636
10715
  };
10637
10716
  var onClearButtonClick = function onClearButtonClick(event) {
10717
+ isClearClicked.current = true;
10638
10718
  updateModel(event, null);
10639
10719
  updateInputfield(null);
10640
10720
  hide();
@@ -11116,23 +11196,29 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11116
11196
  var onDateCellKeydown = function onDateCellKeydown(event, date, groupIndex) {
11117
11197
  var cellContent = event.currentTarget;
11118
11198
  var cell = cellContent.parentElement;
11119
- switch (event.which) {
11120
- //down arrow
11121
- case 40:
11199
+ var cellIndex = DomHandler.index(cell);
11200
+ switch (event.code) {
11201
+ case 'ArrowDown':
11122
11202
  {
11123
11203
  cellContent.tabIndex = '-1';
11124
- var cellIndex = DomHandler.index(cell);
11125
11204
  var nextRow = cell.parentElement.nextElementSibling;
11126
11205
  if (nextRow) {
11127
- var focusCell = nextRow.children[cellIndex].children[0];
11128
- if (DomHandler.hasClass(focusCell, 'p-disabled')) {
11206
+ var tableRowIndex = DomHandler.index(cell.parentElement);
11207
+ var tableRows = Array.from(cell.parentElement.parentElement.children);
11208
+ var nextTableRows = tableRows.slice(tableRowIndex + 1);
11209
+ var hasNextFocusableDate = nextTableRows.find(function (el) {
11210
+ var focusCell = el.children[cellIndex].children[0];
11211
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11212
+ });
11213
+ if (hasNextFocusableDate) {
11214
+ var focusCell = hasNextFocusableDate.children[cellIndex].children[0];
11215
+ focusCell.tabIndex = '0';
11216
+ focusCell.focus();
11217
+ } else {
11129
11218
  navigation.current = {
11130
11219
  backward: false
11131
11220
  };
11132
11221
  navForward(event);
11133
- } else {
11134
- nextRow.children[cellIndex].children[0].tabIndex = '0';
11135
- nextRow.children[cellIndex].children[0].focus();
11136
11222
  }
11137
11223
  } else {
11138
11224
  navigation.current = {
@@ -11143,46 +11229,58 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11143
11229
  event.preventDefault();
11144
11230
  break;
11145
11231
  }
11146
-
11147
- //up arrow
11148
- case 38:
11232
+ case 'ArrowUp':
11149
11233
  {
11150
11234
  cellContent.tabIndex = '-1';
11151
- var _cellIndex = DomHandler.index(cell);
11152
- var prevRow = cell.parentElement.previousElementSibling;
11153
- if (prevRow) {
11154
- var _focusCell = prevRow.children[_cellIndex].children[0];
11155
- if (DomHandler.hasClass(_focusCell, 'p-disabled')) {
11235
+ if (event.altKey) {
11236
+ hide(null, reFocusInputField);
11237
+ } else {
11238
+ var prevRow = cell.parentElement.previousElementSibling;
11239
+ if (prevRow) {
11240
+ var _tableRowIndex = DomHandler.index(cell.parentElement);
11241
+ var _tableRows = Array.from(cell.parentElement.parentElement.children);
11242
+ var prevTableRows = _tableRows.slice(0, _tableRowIndex).reverse();
11243
+ var _hasNextFocusableDate = prevTableRows.find(function (el) {
11244
+ var focusCell = el.children[cellIndex].children[0];
11245
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11246
+ });
11247
+ if (_hasNextFocusableDate) {
11248
+ var _focusCell = _hasNextFocusableDate.children[cellIndex].children[0];
11249
+ _focusCell.tabIndex = '0';
11250
+ _focusCell.focus();
11251
+ } else {
11252
+ navigation.current = {
11253
+ backward: true
11254
+ };
11255
+ navBackward(event);
11256
+ }
11257
+ } else {
11156
11258
  navigation.current = {
11157
11259
  backward: true
11158
11260
  };
11159
11261
  navBackward(event);
11160
- } else {
11161
- _focusCell.tabIndex = '0';
11162
- _focusCell.focus();
11163
11262
  }
11164
- } else {
11165
- navigation.current = {
11166
- backward: true
11167
- };
11168
- navBackward(event);
11169
11263
  }
11170
11264
  event.preventDefault();
11171
11265
  break;
11172
11266
  }
11173
-
11174
- //left arrow
11175
- case 37:
11267
+ case 'ArrowLeft':
11176
11268
  {
11177
11269
  cellContent.tabIndex = '-1';
11178
11270
  var prevCell = cell.previousElementSibling;
11179
11271
  if (prevCell) {
11180
- var _focusCell2 = prevCell.children[0];
11181
- if (DomHandler.hasClass(_focusCell2, 'p-disabled')) {
11182
- navigateToMonth(true, groupIndex, event);
11183
- } else {
11272
+ var cells = Array.from(cell.parentElement.children);
11273
+ var prevCells = cells.slice(0, cellIndex).reverse();
11274
+ var _hasNextFocusableDate2 = prevCells.find(function (el) {
11275
+ var focusCell = el.children[0];
11276
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11277
+ });
11278
+ if (_hasNextFocusableDate2) {
11279
+ var _focusCell2 = _hasNextFocusableDate2.children[0];
11184
11280
  _focusCell2.tabIndex = '0';
11185
11281
  _focusCell2.focus();
11282
+ } else {
11283
+ navigateToMonth(true, groupIndex, event);
11186
11284
  }
11187
11285
  } else {
11188
11286
  navigateToMonth(true, groupIndex, event);
@@ -11190,19 +11288,23 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11190
11288
  event.preventDefault();
11191
11289
  break;
11192
11290
  }
11193
-
11194
- //right arrow
11195
- case 39:
11291
+ case 'ArrowRight':
11196
11292
  {
11197
11293
  cellContent.tabIndex = '-1';
11198
11294
  var nextCell = cell.nextElementSibling;
11199
11295
  if (nextCell) {
11200
- var _focusCell3 = nextCell.children[0];
11201
- if (DomHandler.hasClass(_focusCell3, 'p-disabled')) {
11202
- navigateToMonth(false, groupIndex, event);
11203
- } else {
11296
+ var _cells = Array.from(cell.parentElement.children);
11297
+ var nextCells = _cells.slice(cellIndex + 1);
11298
+ var _hasNextFocusableDate3 = nextCells.find(function (el) {
11299
+ var focusCell = el.children[0];
11300
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11301
+ });
11302
+ if (_hasNextFocusableDate3) {
11303
+ var _focusCell3 = _hasNextFocusableDate3.children[0];
11204
11304
  _focusCell3.tabIndex = '0';
11205
11305
  _focusCell3.focus();
11306
+ } else {
11307
+ navigateToMonth(false, groupIndex, event);
11206
11308
  }
11207
11309
  } else {
11208
11310
  navigateToMonth(false, groupIndex, event);
@@ -11210,27 +11312,75 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11210
11312
  event.preventDefault();
11211
11313
  break;
11212
11314
  }
11213
-
11214
- //enter
11215
- case 13:
11315
+ case 'Enter':
11316
+ case 'NumpadEnter':
11317
+ case 'Space':
11216
11318
  {
11217
11319
  onDateSelect(event, date);
11218
11320
  event.preventDefault();
11219
11321
  break;
11220
11322
  }
11221
-
11222
- //escape
11223
- case 27:
11323
+ case 'Escape':
11224
11324
  {
11225
11325
  hide(null, reFocusInputField);
11226
11326
  event.preventDefault();
11227
11327
  break;
11228
11328
  }
11229
-
11230
- //tab
11231
- case 9:
11329
+ case 'Tab':
11232
11330
  {
11233
- trapFocus(event);
11331
+ if (!props.inline) trapFocus(event);
11332
+ break;
11333
+ }
11334
+ case 'Home':
11335
+ {
11336
+ cellContent.tabIndex = '-1';
11337
+ var currentRow = cell.parentElement;
11338
+ var _focusCell4 = currentRow.children[0].children[0];
11339
+ if (DomHandler.getAttribute(_focusCell4, 'data-p-disabled')) {
11340
+ navigateToMonth(groupIndex, true, event);
11341
+ } else {
11342
+ _focusCell4.tabIndex = '0';
11343
+ _focusCell4.focus();
11344
+ }
11345
+ event.preventDefault();
11346
+ break;
11347
+ }
11348
+ case 'End':
11349
+ {
11350
+ cellContent.tabIndex = '-1';
11351
+ var _currentRow = cell.parentElement;
11352
+ var _focusCell5 = _currentRow.children[_currentRow.children.length - 1].children[0];
11353
+ if (DomHandler.getAttribute(_focusCell5, 'data-p-disabled')) {
11354
+ navigateToMonth(groupIndex, false, event);
11355
+ } else {
11356
+ _focusCell5.tabIndex = '0';
11357
+ _focusCell5.focus();
11358
+ }
11359
+ event.preventDefault();
11360
+ break;
11361
+ }
11362
+ case 'PageUp':
11363
+ {
11364
+ cellContent.tabIndex = '-1';
11365
+ if (event.shiftKey) {
11366
+ navigation.current = {
11367
+ backward: true
11368
+ };
11369
+ navBackward(event);
11370
+ } else navigateToMonth(groupIndex, true, event);
11371
+ event.preventDefault();
11372
+ break;
11373
+ }
11374
+ case 'PageDown':
11375
+ {
11376
+ cellContent.tabIndex = '-1';
11377
+ if (event.shiftKey) {
11378
+ navigation.current = {
11379
+ backward: false
11380
+ };
11381
+ navForward(event);
11382
+ } else navigateToMonth(groupIndex, false, event);
11383
+ event.preventDefault();
11234
11384
  break;
11235
11385
  }
11236
11386
  }
@@ -11257,18 +11407,18 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11257
11407
  navForward(event);
11258
11408
  } else {
11259
11409
  var nextMonthContainer = overlayRef.current.children[groupIndex + 1];
11260
- var _focusCell4 = DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
11261
- _focusCell4.tabIndex = '0';
11262
- _focusCell4.focus();
11410
+ var _focusCell6 = DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
11411
+ _focusCell6.tabIndex = '0';
11412
+ _focusCell6.focus();
11263
11413
  }
11264
11414
  }
11265
11415
  };
11266
11416
  var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
11267
11417
  var cell = event.currentTarget;
11268
- switch (event.which) {
11418
+ switch (event.code) {
11269
11419
  //arrows
11270
- case 38:
11271
- case 40:
11420
+ case 'ArrowUp':
11421
+ case 'ArrowDown':
11272
11422
  {
11273
11423
  cell.tabIndex = '-1';
11274
11424
  var cells = cell.parentElement.children;
@@ -11281,51 +11431,162 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11281
11431
  event.preventDefault();
11282
11432
  break;
11283
11433
  }
11284
-
11285
- //left arrow
11286
- case 37:
11434
+ case 'ArrowLeft':
11287
11435
  {
11288
11436
  cell.tabIndex = '-1';
11289
11437
  var prevCell = cell.previousElementSibling;
11290
11438
  if (prevCell) {
11291
11439
  prevCell.tabIndex = '0';
11292
11440
  prevCell.focus();
11441
+ } else {
11442
+ navigation.current = {
11443
+ backward: true
11444
+ };
11445
+ navBackward(event);
11293
11446
  }
11294
11447
  event.preventDefault();
11295
11448
  break;
11296
11449
  }
11297
-
11298
- //right arrow
11299
- case 39:
11450
+ case 'ArrowRight':
11300
11451
  {
11301
11452
  cell.tabIndex = '-1';
11302
11453
  var _nextCell = cell.nextElementSibling;
11303
11454
  if (_nextCell) {
11304
11455
  _nextCell.tabIndex = '0';
11305
11456
  _nextCell.focus();
11457
+ } else {
11458
+ navigation.current = {
11459
+ backward: false
11460
+ };
11461
+ navForward(event);
11306
11462
  }
11307
11463
  event.preventDefault();
11308
11464
  break;
11309
11465
  }
11310
-
11311
- //enter
11312
- case 13:
11466
+ case 'PageUp':
11467
+ {
11468
+ if (event.shiftKey) return;
11469
+ navigation.current = {
11470
+ backward: true
11471
+ };
11472
+ navBackward(event);
11473
+ break;
11474
+ }
11475
+ case 'PageDown':
11476
+ {
11477
+ if (event.shiftKey) return;
11478
+ navigation.current = {
11479
+ backward: false
11480
+ };
11481
+ navForward(event);
11482
+ break;
11483
+ }
11484
+ case 'Enter':
11485
+ case 'NumpadEnter':
11486
+ case 'Space':
11313
11487
  {
11488
+ if (props.view !== 'month') viewChangedWithKeyDown.current = true;
11314
11489
  onMonthSelect(event, index);
11315
11490
  event.preventDefault();
11316
11491
  break;
11317
11492
  }
11318
-
11319
- //escape
11320
- case 27:
11493
+ case 'Escape':
11321
11494
  {
11322
11495
  hide(null, reFocusInputField);
11323
11496
  event.preventDefault();
11324
11497
  break;
11325
11498
  }
11326
-
11327
- //tab
11328
- case 9:
11499
+ case 'Tab':
11500
+ {
11501
+ trapFocus(event);
11502
+ break;
11503
+ }
11504
+ }
11505
+ };
11506
+ var onYearCellKeydown = function onYearCellKeydown(event, index) {
11507
+ var cell = event.currentTarget;
11508
+ switch (event.code) {
11509
+ //arrows
11510
+ case 'ArrowUp':
11511
+ case 'ArrowDown':
11512
+ {
11513
+ cell.tabIndex = '-1';
11514
+ var cells = cell.parentElement.children;
11515
+ var cellIndex = DomHandler.index(cell);
11516
+ var nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 2 : cellIndex - 2];
11517
+ if (nextCell) {
11518
+ nextCell.tabIndex = '0';
11519
+ nextCell.focus();
11520
+ }
11521
+ event.preventDefault();
11522
+ break;
11523
+ }
11524
+ case 'ArrowLeft':
11525
+ {
11526
+ cell.tabIndex = '-1';
11527
+ var prevCell = cell.previousElementSibling;
11528
+ if (prevCell) {
11529
+ prevCell.tabIndex = '0';
11530
+ prevCell.focus();
11531
+ } else {
11532
+ navigation.current = {
11533
+ backward: true
11534
+ };
11535
+ navBackward(event);
11536
+ }
11537
+ event.preventDefault();
11538
+ break;
11539
+ }
11540
+ case 'ArrowRight':
11541
+ {
11542
+ cell.tabIndex = '-1';
11543
+ var _nextCell2 = cell.nextElementSibling;
11544
+ if (_nextCell2) {
11545
+ _nextCell2.tabIndex = '0';
11546
+ _nextCell2.focus();
11547
+ } else {
11548
+ navigation.current = {
11549
+ backward: false
11550
+ };
11551
+ navForward(event);
11552
+ }
11553
+ event.preventDefault();
11554
+ break;
11555
+ }
11556
+ case 'PageUp':
11557
+ {
11558
+ if (event.shiftKey) return;
11559
+ navigation.current = {
11560
+ backward: true
11561
+ };
11562
+ navBackward(event);
11563
+ break;
11564
+ }
11565
+ case 'PageDown':
11566
+ {
11567
+ if (event.shiftKey) return;
11568
+ navigation.current = {
11569
+ backward: false
11570
+ };
11571
+ navForward(event);
11572
+ break;
11573
+ }
11574
+ case 'Enter':
11575
+ case 'NumpadEnter':
11576
+ case 'Space':
11577
+ {
11578
+ if (props.view !== 'year') viewChangedWithKeyDown.current = true;
11579
+ onYearSelect(event, index);
11580
+ event.preventDefault();
11581
+ break;
11582
+ }
11583
+ case 'Escape':
11584
+ {
11585
+ hide(null, reFocusInputField);
11586
+ event.preventDefault();
11587
+ break;
11588
+ }
11589
+ case 'Tab':
11329
11590
  {
11330
11591
  trapFocus(event);
11331
11592
  break;
@@ -11442,10 +11703,16 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11442
11703
  return _currentYear;
11443
11704
  };
11444
11705
  var switchToMonthView = function switchToMonthView(event) {
11706
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
11707
+ viewChangedWithKeyDown.current = true;
11708
+ }
11445
11709
  setCurrentView('month');
11446
11710
  event.preventDefault();
11447
11711
  };
11448
11712
  var switchToYearView = function switchToYearView(event) {
11713
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
11714
+ viewChangedWithKeyDown.current = true;
11715
+ }
11449
11716
  setCurrentView('year');
11450
11717
  event.preventDefault();
11451
11718
  };
@@ -11586,7 +11853,6 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
11586
11853
  var onOverlayEntered = function onOverlayEntered() {
11587
11854
  bindOverlayListener();
11588
11855
  props.onShow && props.onShow();
11589
- DomHandler.focusFirstElement(overlayRef.current);
11590
11856
  setFocusedState(false);
11591
11857
  };
11592
11858
  var onOverlayExit = function onOverlayExit() {
@@ -12457,6 +12723,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12457
12723
  setCurrentMonth(viewDate.getMonth());
12458
12724
  setCurrentYear(viewDate.getFullYear());
12459
12725
  setCurrentView(props.view);
12726
+ if (!idState) {
12727
+ var uniqueId = UniqueComponentId();
12728
+ !idState && setIdState(uniqueId);
12729
+ }
12460
12730
  if (props.inline) {
12461
12731
  overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
12462
12732
  if (!props.disabled) {
@@ -12504,8 +12774,14 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12504
12774
  // eslint-disable-next-line react-hooks/exhaustive-deps
12505
12775
  }, [props.disabled, props.mask, props.readOnlyInput]);
12506
12776
  useUpdateEffect(function () {
12507
- setCurrentView(props.view);
12777
+ if (viewChangedWithKeyDown.current) {
12778
+ setCurrentView(props.view);
12779
+ }
12780
+ viewChangedWithKeyDown.current = false;
12508
12781
  }, [props.view]);
12782
+ useUpdateEffect(function () {
12783
+ focusToFirstCell();
12784
+ }, [currentView]);
12509
12785
  useUpdateEffect(function () {
12510
12786
  if (!props.onViewDateChange && !viewStateChanged.current) {
12511
12787
  setValue(props.value);
@@ -12596,12 +12872,16 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12596
12872
  if (Array.isArray(prevPropValue)) {
12597
12873
  prevPropValue = prevPropValue[0];
12598
12874
  }
12875
+ var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
12876
+ if (isClearClicked.current && props.showTime) {
12877
+ viewDate.setHours(0, 0, 0);
12878
+ isClearClicked.current = false;
12879
+ }
12599
12880
  if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12600
- var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
12601
12881
  validateDate(viewDate);
12602
- setViewDateState(viewDate);
12603
- viewStateChanged.current = true;
12604
12882
  }
12883
+ setViewDateState(viewDate);
12884
+ viewStateChanged.current = true;
12605
12885
  };
12606
12886
  var createBackwardNavigator = function createBackwardNavigator(isVisible) {
12607
12887
  var navigatorProps = isVisible ? {
@@ -12621,9 +12901,15 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12621
12901
  var backwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread$1z({}, previousIconProps), {
12622
12902
  props: props
12623
12903
  });
12904
+ var _localeOptions4 = localeOptions(props.locale),
12905
+ prevDecade = _localeOptions4.prevDecade,
12906
+ prevYear = _localeOptions4.prevYear,
12907
+ prevMonth = _localeOptions4.prevMonth;
12908
+ var previousButtonLabel = currentView === 'year' ? prevDecade : currentView === 'month' ? prevYear : prevMonth;
12624
12909
  var previousButtonProps = mergeProps(_objectSpread$1z({
12625
12910
  type: 'button',
12626
- className: cx('previousButton')
12911
+ className: cx('previousButton'),
12912
+ 'aria-label': previousButtonLabel
12627
12913
  }, navigatorProps), ptm('previousButton'));
12628
12914
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
12629
12915
  ref: previousButton
@@ -12647,9 +12933,15 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12647
12933
  var forwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread$1z({}, nextIconProps), {
12648
12934
  props: props
12649
12935
  });
12936
+ var _localeOptions5 = localeOptions(props.locale),
12937
+ nextDecade = _localeOptions5.nextDecade,
12938
+ nextYear = _localeOptions5.nextYear,
12939
+ nextMonth = _localeOptions5.nextMonth;
12940
+ var nextButtonLabel = currentView === 'year' ? nextDecade : currentView === 'month' ? nextYear : nextMonth;
12650
12941
  var nextButtonProps = mergeProps(_objectSpread$1z({
12651
12942
  type: 'button',
12652
- className: cx('nextButton')
12943
+ className: cx('nextButton'),
12944
+ 'aria-label': nextButtonLabel
12653
12945
  }, navigatorProps), ptm('nextButton'));
12654
12946
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
12655
12947
  ref: nextButton
@@ -12706,6 +12998,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12706
12998
  }
12707
12999
  var monthTitleProps = mergeProps({
12708
13000
  className: cx('monthTitle'),
13001
+ onKeyDown: onContainerButtonKeydown,
13002
+ 'aria-label': localeOption('chooseMonth', props.locale),
12709
13003
  onClick: switchToMonthView,
12710
13004
  disabled: switchViewButtonDisabled()
12711
13005
  }, ptm('monthTitle'));
@@ -12764,6 +13058,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12764
13058
  var displayYear = props.numberOfMonths > 1 ? metaYear : currentYear;
12765
13059
  var yearTitleProps = mergeProps({
12766
13060
  className: cx('yearTitle'),
13061
+ 'aria-label': localeOption('chooseYear', props.locale),
12767
13062
  onClick: function onClick(e) {
12768
13063
  return switchToYearView(e);
12769
13064
  },
@@ -12822,25 +13117,33 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12822
13117
  };
12823
13118
  var createDateCellContent = function createDateCellContent(date, className, groupIndex) {
12824
13119
  var content = props.dateTemplate ? props.dateTemplate(date) : date.day;
13120
+ var selected = isSelected(date);
12825
13121
  var dayLabelProps = mergeProps({
12826
13122
  className: cx('dayLabel', {
12827
13123
  className: className
12828
13124
  }),
13125
+ 'aria-selected': selected,
13126
+ 'aria-disabled': !date.selectable,
12829
13127
  onClick: function onClick(e) {
12830
13128
  return onDateSelect(e, date);
12831
13129
  },
12832
13130
  onKeyDown: function onKeyDown(e) {
12833
13131
  return onDateCellKeydown(e, date, groupIndex);
12834
13132
  },
12835
- 'data-p-highlight': isSelected(date),
13133
+ 'data-p-highlight': selected,
12836
13134
  'data-p-disabled': !date.selectable
12837
13135
  }, ptm('dayLabel', {
12838
13136
  context: {
12839
- selected: isSelected(date),
13137
+ selected: selected,
12840
13138
  disabled: !date.selectable
12841
13139
  }
12842
13140
  }));
12843
- return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content);
13141
+ return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content, selected && /*#__PURE__*/React__namespace.createElement("div", {
13142
+ "aria-live": "polite",
13143
+ className: "p-hidden-accessible",
13144
+ "data-p-hidden-accessible": true,
13145
+ pt: ptm('hiddenSelectedDay')
13146
+ }));
12844
13147
  };
12845
13148
  var createWeek = function createWeek(weekDates, weekNumber, groupIndex) {
12846
13149
  var week = weekDates.map(function (date) {
@@ -12854,6 +13157,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12854
13157
  className: cx('day', {
12855
13158
  date: date
12856
13159
  }),
13160
+ 'aria-label': date.day,
12857
13161
  'data-p-today': date.today,
12858
13162
  'data-p-other-month': date.otherMonth
12859
13163
  }, ptm('day', {
@@ -12902,6 +13206,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
12902
13206
  key: UniqueComponentId('calendar_container_')
12903
13207
  }, ptm('container'));
12904
13208
  var tableProps = mergeProps({
13209
+ role: 'grid',
12905
13210
  className: cx('table')
12906
13211
  }, ptm('table'));
12907
13212
  var tableHeaderProps = mergeProps(ptm('tableHeader'));
@@ -13005,6 +13310,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13005
13310
  if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;
13006
13311
  }
13007
13312
  var hourProps = mergeProps(ptm('hour'));
13313
+ var _localeOptions6 = localeOptions(props.locale),
13314
+ nextHour = _localeOptions6.nextHour,
13315
+ prevHour = _localeOptions6.prevHour;
13008
13316
  var hourDisplay = hour < 10 ? '0' + hour : hour;
13009
13317
  var hourPickerProps = mergeProps({
13010
13318
  className: cx('hourPicker')
@@ -13012,26 +13320,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13012
13320
  var incrementButtonProps = mergeProps({
13013
13321
  type: 'button',
13014
13322
  className: cx('incrementButton'),
13323
+ 'aria-label': nextHour,
13015
13324
  onMouseDown: function onMouseDown(e) {
13016
13325
  return onTimePickerElementMouseDown(e, 0, 1);
13017
13326
  },
13018
13327
  onMouseUp: onTimePickerElementMouseUp,
13019
13328
  onMouseLeave: onTimePickerElementMouseLeave,
13020
13329
  onKeyDown: function onKeyDown(e) {
13021
- return onContainerButtonKeydown(e);
13022
- }
13330
+ return onPickerKeyDown(e, 0, 1);
13331
+ },
13332
+ onKeyUp: onPickerKeyUp
13023
13333
  }, ptm('incrementButton'));
13024
13334
  var decrementButtonProps = mergeProps({
13025
13335
  type: 'button',
13026
13336
  className: cx('decrementButton'),
13337
+ 'aria-label': prevHour,
13027
13338
  onMouseDown: function onMouseDown(e) {
13028
13339
  return onTimePickerElementMouseDown(e, 0, -1);
13029
13340
  },
13030
13341
  onMouseUp: onTimePickerElementMouseUp,
13031
13342
  onMouseLeave: onTimePickerElementMouseLeave,
13032
13343
  onKeyDown: function onKeyDown(e) {
13033
- return onContainerButtonKeydown(e);
13034
- }
13344
+ return onPickerKeyDown(e, 0, -1);
13345
+ },
13346
+ onKeyUp: onPickerKeyUp
13035
13347
  }, ptm('decrementButton'));
13036
13348
  return /*#__PURE__*/React__namespace.createElement("div", hourPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", hourProps, hourDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)));
13037
13349
  };
@@ -13040,6 +13352,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13040
13352
  var minute = doStepMinute(currentTime.getMinutes());
13041
13353
  minute = minute > 59 ? minute - 60 : minute;
13042
13354
  var minuteProps = mergeProps(ptm('minute'));
13355
+ var _localeOptions7 = localeOptions(props.locale),
13356
+ nextMinute = _localeOptions7.nextMinute,
13357
+ prevMinute = _localeOptions7.prevMinute;
13043
13358
  var minuteDisplay = minute < 10 ? '0' + minute : minute;
13044
13359
  var minutePickerProps = mergeProps({
13045
13360
  className: cx('minutePicker')
@@ -13047,32 +13362,39 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13047
13362
  var incrementButtonProps = mergeProps({
13048
13363
  type: 'button',
13049
13364
  className: cx('incrementButton'),
13365
+ 'aria-label': nextMinute,
13050
13366
  onMouseDown: function onMouseDown(e) {
13051
13367
  return onTimePickerElementMouseDown(e, 1, 1);
13052
13368
  },
13053
13369
  onMouseUp: onTimePickerElementMouseUp,
13054
13370
  onMouseLeave: onTimePickerElementMouseLeave,
13055
13371
  onKeyDown: function onKeyDown(e) {
13056
- return onContainerButtonKeydown(e);
13057
- }
13372
+ return onPickerKeyDown(e, 1, 1);
13373
+ },
13374
+ onKeyUp: onPickerKeyUp
13058
13375
  }, ptm('incrementButton'));
13059
13376
  var decrementButtonProps = mergeProps({
13060
13377
  type: 'button',
13061
13378
  className: cx('decrementButton'),
13379
+ 'aria-label': prevMinute,
13062
13380
  onMouseDown: function onMouseDown(e) {
13063
13381
  return onTimePickerElementMouseDown(e, 1, -1);
13064
13382
  },
13065
13383
  onMouseUp: onTimePickerElementMouseUp,
13066
13384
  onMouseLeave: onTimePickerElementMouseLeave,
13067
13385
  onKeyDown: function onKeyDown(e) {
13068
- return onContainerButtonKeydown(e);
13069
- }
13386
+ return onPickerKeyDown(e, 1, -1);
13387
+ },
13388
+ onKeyUp: onPickerKeyUp
13070
13389
  }, ptm('decrementButton'));
13071
13390
  return /*#__PURE__*/React__namespace.createElement("div", minutePickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", minuteProps, minuteDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)));
13072
13391
  };
13073
13392
  var createSecondPicker = function createSecondPicker() {
13074
13393
  if (props.showSeconds) {
13075
13394
  var currentTime = getCurrentDateTime();
13395
+ var _localeOptions8 = localeOptions(props.locale),
13396
+ nextSecond = _localeOptions8.nextSecond,
13397
+ prevSecond = _localeOptions8.prevSecond;
13076
13398
  var secondProps = mergeProps(ptm('second'));
13077
13399
  var second = currentTime.getSeconds();
13078
13400
  var secondDisplay = second < 10 ? '0' + second : second;
@@ -13082,26 +13404,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13082
13404
  var incrementButtonProps = mergeProps({
13083
13405
  type: 'button',
13084
13406
  className: cx('incrementButton'),
13407
+ 'aria-label': nextSecond,
13085
13408
  onMouseDown: function onMouseDown(e) {
13086
13409
  return onTimePickerElementMouseDown(e, 2, 1);
13087
13410
  },
13088
13411
  onMouseUp: onTimePickerElementMouseUp,
13089
13412
  onMouseLeave: onTimePickerElementMouseLeave,
13090
13413
  onKeyDown: function onKeyDown(e) {
13091
- return onContainerButtonKeydown(e);
13092
- }
13414
+ return onPickerKeyDown(e, 2, 1);
13415
+ },
13416
+ onKeyUp: onPickerKeyUp
13093
13417
  }, ptm('incrementButton'));
13094
13418
  var decrementButtonProps = mergeProps({
13095
13419
  type: 'button',
13096
13420
  className: cx('decrementButton'),
13421
+ 'aria-label': prevSecond,
13097
13422
  onMouseDown: function onMouseDown(e) {
13098
13423
  return onTimePickerElementMouseDown(e, 2, -1);
13099
13424
  },
13100
13425
  onMouseUp: onTimePickerElementMouseUp,
13101
13426
  onMouseLeave: onTimePickerElementMouseLeave,
13102
13427
  onKeyDown: function onKeyDown(e) {
13103
- return onContainerButtonKeydown(e);
13104
- }
13428
+ return onPickerKeyDown(e, 2, -1);
13429
+ },
13430
+ onKeyUp: onPickerKeyUp
13105
13431
  }, ptm('decrementButton'));
13106
13432
  return /*#__PURE__*/React__namespace.createElement("div", secondPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", secondProps, secondDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)));
13107
13433
  }
@@ -13110,6 +13436,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13110
13436
  var createMiliSecondPicker = function createMiliSecondPicker() {
13111
13437
  if (props.showMillisec) {
13112
13438
  var currentTime = getCurrentDateTime();
13439
+ var _localeOptions9 = localeOptions(props.locale),
13440
+ nextMilliSecond = _localeOptions9.nextMilliSecond,
13441
+ prevMilliSecond = _localeOptions9.prevMilliSecond;
13113
13442
  var millisecondProps = mergeProps(ptm('millisecond'));
13114
13443
  var millisecond = currentTime.getMilliseconds();
13115
13444
  var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;
@@ -13119,26 +13448,30 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13119
13448
  var incrementButtonProps = mergeProps({
13120
13449
  type: 'button',
13121
13450
  className: cx('incrementButton'),
13451
+ 'aria-label': nextMilliSecond,
13122
13452
  onMouseDown: function onMouseDown(e) {
13123
13453
  return onTimePickerElementMouseDown(e, 3, 1);
13124
13454
  },
13125
13455
  onMouseUp: onTimePickerElementMouseUp,
13126
13456
  onMouseLeave: onTimePickerElementMouseLeave,
13127
13457
  onKeyDown: function onKeyDown(e) {
13128
- return onContainerButtonKeydown(e);
13129
- }
13458
+ return onPickerKeyDown(e, 3, 1);
13459
+ },
13460
+ onKeyUp: onPickerKeyUp
13130
13461
  }, ptm('incrementButton'));
13131
13462
  var decrementButtonProps = mergeProps({
13132
13463
  type: 'button',
13133
13464
  className: cx('decrementButton'),
13465
+ 'aria-label': prevMilliSecond,
13134
13466
  onMouseDown: function onMouseDown(e) {
13135
13467
  return onTimePickerElementMouseDown(e, 3, -1);
13136
13468
  },
13137
13469
  onMouseUp: onTimePickerElementMouseUp,
13138
13470
  onMouseLeave: onTimePickerElementMouseLeave,
13139
13471
  onKeyDown: function onKeyDown(e) {
13140
- return onContainerButtonKeydown(e);
13141
- }
13472
+ return onPickerKeyDown(e, 3, -1);
13473
+ },
13474
+ onKeyUp: onPickerKeyUp
13142
13475
  }, ptm('decrementButton'));
13143
13476
  return /*#__PURE__*/React__namespace.createElement("div", millisecondPickerProps, /*#__PURE__*/React__namespace.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)), /*#__PURE__*/React__namespace.createElement("span", millisecondProps, millisecondDisplay), /*#__PURE__*/React__namespace.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React__namespace.createElement(Ripple, null)));
13144
13477
  }
@@ -13147,6 +13480,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13147
13480
  var createAmPmPicker = function createAmPmPicker() {
13148
13481
  if (props.hourFormat === '12') {
13149
13482
  var currentTime = getCurrentDateTime();
13483
+ var _localeOptions10 = localeOptions(props.locale),
13484
+ am = _localeOptions10.am,
13485
+ pm = _localeOptions10.pm;
13150
13486
  var hour = currentTime.getHours();
13151
13487
  var display = hour > 11 ? 'PM' : 'AM';
13152
13488
  var ampmProps = mergeProps(ptm('ampm'));
@@ -13156,6 +13492,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13156
13492
  var incrementButtonProps = mergeProps({
13157
13493
  type: 'button',
13158
13494
  className: cx('incrementButton'),
13495
+ 'aria-label': am,
13159
13496
  onClick: function onClick(e) {
13160
13497
  return toggleAmPm(e);
13161
13498
  }
@@ -13163,6 +13500,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13163
13500
  var decrementButtonProps = mergeProps({
13164
13501
  type: 'button',
13165
13502
  className: cx('decrementButton'),
13503
+ 'aria-label': pm,
13166
13504
  onClick: function onClick(e) {
13167
13505
  return toggleAmPm(e);
13168
13506
  }
@@ -13194,6 +13532,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13194
13532
  id: props.inputId,
13195
13533
  name: props.name,
13196
13534
  type: "text",
13535
+ role: "combobox",
13197
13536
  className: props.inputClassName,
13198
13537
  style: props.inputStyle,
13199
13538
  readOnly: props.readOnlyInput,
@@ -13206,7 +13545,12 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13206
13545
  onFocus: onInputFocus,
13207
13546
  onBlur: onInputBlur,
13208
13547
  onKeyDown: onInputKeyDown,
13548
+ "aria-expanded": overlayVisibleState,
13549
+ "aria-autocomplete": "none",
13550
+ "aria-haspopup": "dialog",
13551
+ "aria-controls": panelId,
13209
13552
  "aria-labelledby": props.ariaLabelledBy,
13553
+ "aria-label": props.ariaLabel,
13210
13554
  inputMode: props.inputMode,
13211
13555
  tooltip: props.tooltip,
13212
13556
  tooltipOptions: props.tooltipOptions,
@@ -13226,6 +13570,10 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13226
13570
  onClick: onButtonClick,
13227
13571
  tabIndex: "-1",
13228
13572
  disabled: props.disabled,
13573
+ "aria-haspopup": "dialog",
13574
+ "aria-label": localeOption('chooseDate', props.locale),
13575
+ "aria-expanded": overlayVisibleState,
13576
+ "aria-controls": panelId,
13229
13577
  className: cx('dropdownButton'),
13230
13578
  pt: ptm('dropdownButton'),
13231
13579
  __parentMetadata: {
@@ -13245,21 +13593,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13245
13593
  };
13246
13594
  var createButtonBar = function createButtonBar() {
13247
13595
  if (props.showButtonBar) {
13248
- var _localeOptions4 = localeOptions(props.locale),
13249
- today = _localeOptions4.today,
13250
- clear = _localeOptions4.clear;
13596
+ var _localeOptions11 = localeOptions(props.locale),
13597
+ today = _localeOptions11.today,
13598
+ clear = _localeOptions11.clear,
13599
+ now = _localeOptions11.now;
13600
+ var nowDate = new Date();
13601
+ var isHidden = props.minDate && props.minDate > nowDate || props.maxDate && props.maxDate < nowDate;
13251
13602
  var buttonbarProps = mergeProps({
13252
13603
  className: cx('buttonbar')
13253
13604
  }, ptm('buttonbar'));
13254
13605
  return /*#__PURE__*/React__namespace.createElement("div", buttonbarProps, /*#__PURE__*/React__namespace.createElement(Button, {
13255
13606
  type: "button",
13256
- label: today,
13607
+ label: props.showTime ? now : today,
13257
13608
  onClick: onTodayButtonClick,
13258
13609
  onKeyDown: function onKeyDown(e) {
13259
13610
  return onContainerButtonKeydown(e);
13260
13611
  },
13261
13612
  className: classNames(props.todayButtonClassName, cx('todayButton')),
13262
- pt: ptm('todayButton')
13613
+ pt: ptm('todayButton'),
13614
+ style: isHidden ? {
13615
+ visibility: 'hidden'
13616
+ } : undefined
13263
13617
  }), /*#__PURE__*/React__namespace.createElement(Button, {
13264
13618
  type: "button",
13265
13619
  label: clear,
@@ -13289,6 +13643,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13289
13643
  className: cx('monthPicker')
13290
13644
  }, ptm('monthPicker'));
13291
13645
  return /*#__PURE__*/React__namespace.createElement("div", monthPickerProps, monthPickerValues().map(function (m, i) {
13646
+ var selected = isMonthSelected(i);
13292
13647
  var monthProps = mergeProps({
13293
13648
  className: cx('month', {
13294
13649
  isMonthSelected: isMonthSelected,
@@ -13303,18 +13658,23 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13303
13658
  return onMonthCellKeydown(event, i);
13304
13659
  },
13305
13660
  'data-p-disabled': isMonthYearDisabled(i, currentYear),
13306
- 'data-p-highlight': isMonthSelected(i)
13661
+ 'data-p-highlight': selected
13307
13662
  }, ptm('month', {
13308
13663
  context: {
13309
13664
  month: m,
13310
13665
  monthIndex: i,
13311
- selected: isMonthSelected(i),
13666
+ selected: selected,
13312
13667
  disabled: isMonthYearDisabled(i, currentYear)
13313
13668
  }
13314
13669
  }));
13315
13670
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, monthProps, {
13316
13671
  key: "month".concat(i + 1)
13317
- }), m);
13672
+ }), m, selected && /*#__PURE__*/React__namespace.createElement("div", {
13673
+ "aria-live": "polite",
13674
+ className: "p-hidden-accessible",
13675
+ "data-p-hidden-accessible": true,
13676
+ pt: ptm('hiddenMonth')
13677
+ }, m));
13318
13678
  }));
13319
13679
  }
13320
13680
  return null;
@@ -13325,6 +13685,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13325
13685
  className: cx('yearPicker')
13326
13686
  }, ptm('yearPicker'));
13327
13687
  return /*#__PURE__*/React__namespace.createElement("div", yearPickerProps, yearPickerValues().map(function (y, i) {
13688
+ var selected = isYearSelected(y);
13328
13689
  var yearProps = mergeProps({
13329
13690
  className: cx('year', {
13330
13691
  isYearSelected: isYearSelected,
@@ -13334,19 +13695,27 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13334
13695
  onClick: function onClick(event) {
13335
13696
  return onYearSelect(event, y);
13336
13697
  },
13698
+ onKeyDown: function onKeyDown(event) {
13699
+ return onYearCellKeydown(event, y);
13700
+ },
13337
13701
  'data-p-highlight': isYearSelected(y),
13338
13702
  'data-p-disabled': isMonthYearDisabled(-1, y)
13339
13703
  }, ptm('year', {
13340
13704
  context: {
13341
13705
  year: y,
13342
13706
  yearIndex: i,
13343
- selected: isYearSelected(i),
13707
+ selected: selected,
13344
13708
  disabled: isMonthYearDisabled(-1, y)
13345
13709
  }
13346
13710
  }));
13347
13711
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, yearProps, {
13348
13712
  key: "year".concat(i + 1)
13349
- }), y);
13713
+ }), y, selected && /*#__PURE__*/React__namespace.createElement("div", {
13714
+ "aria-live": "polite",
13715
+ className: "p-hidden-accessible",
13716
+ "data-p-hidden-accessible": true,
13717
+ pt: ptm('hiddenYear')
13718
+ }, y));
13350
13719
  }));
13351
13720
  }
13352
13721
  return null;
@@ -13373,7 +13742,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13373
13742
  id: props.id,
13374
13743
  className: classNames(props.className, cx('root', {
13375
13744
  focusedState: focusedState,
13376
- isFilled: isFilled
13745
+ isFilled: isFilled,
13746
+ panelVisible: visible
13377
13747
  })),
13378
13748
  style: props.style
13379
13749
  }, CalendarBase.getOtherProps(props), ptm('root'));
@@ -13381,6 +13751,8 @@ var Calendar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
13381
13751
  ref: elementRef
13382
13752
  }, rootProps), content, /*#__PURE__*/React__namespace.createElement(CalendarPanel, {
13383
13753
  hostName: "Calendar",
13754
+ id: panelId,
13755
+ locale: props.locale,
13384
13756
  ref: overlayRef,
13385
13757
  className: panelClassName,
13386
13758
  style: props.panelStyle,
@@ -18590,7 +18962,7 @@ var ContextMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namesp
18590
18962
  menuRef.current.style.top = top + 'px';
18591
18963
  }
18592
18964
  };
18593
- var createProcessedItems = function createProcessedItems(items, level) {
18965
+ var createProcessedItems = React__namespace.useCallback(function (items, level) {
18594
18966
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18595
18967
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
18596
18968
  var processedItems = [];
@@ -18609,7 +18981,7 @@ var ContextMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namesp
18609
18981
  processedItems.push(newItem);
18610
18982
  });
18611
18983
  return processedItems;
18612
- };
18984
+ }, []);
18613
18985
  var onLeafClick = function onLeafClick(event) {
18614
18986
  setResetMenuState(true);
18615
18987
  hide(event);
@@ -18657,11 +19029,11 @@ var ContextMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namesp
18657
19029
  show(currentEvent.current);
18658
19030
  }
18659
19031
  }, [reshowState]);
18660
- useUpdateEffect(function () {
19032
+ React__namespace.useEffect(function () {
18661
19033
  var itemsToProcess = props.model || [];
18662
19034
  var processed = createProcessedItems(itemsToProcess, 0, null, '');
18663
19035
  setProcessedItems(processed);
18664
- }, [props.model]);
19036
+ }, [props.model, createProcessedItems]);
18665
19037
  useUpdateEffect(function () {
18666
19038
  var _focusedItemId = focusedItemInfo.index !== -1 ? "".concat(idState).concat(ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null;
18667
19039
  setFocusedItemId(_focusedItemId);
@@ -23974,6 +24346,7 @@ var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
23974
24346
  var rowEditorSaveButtonProps = mergeProps({
23975
24347
  type: 'button',
23976
24348
  name: 'row-save',
24349
+ 'aria-label': ariaLabel$1('saveEdit'),
23977
24350
  onClick: rowEditorProps.onSaveClick,
23978
24351
  className: rowEditorProps.saveClassName,
23979
24352
  tabIndex: props.tabIndex,
@@ -23982,6 +24355,7 @@ var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
23982
24355
  var rowEditorCancelButtonProps = mergeProps({
23983
24356
  type: 'button',
23984
24357
  name: 'row-cancel',
24358
+ 'aria-label': ariaLabel$1('cancelEdit'),
23985
24359
  onClick: rowEditorProps.onCancelClick,
23986
24360
  className: rowEditorProps.cancelClassName,
23987
24361
  tabIndex: props.tabIndex
@@ -23996,6 +24370,7 @@ var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
23996
24370
  var rowEditorInitButtonProps = mergeProps({
23997
24371
  type: 'button',
23998
24372
  name: 'row-edit',
24373
+ 'aria-label': ariaLabel$1('editRow'),
23999
24374
  onClick: rowEditorProps.onInitClick,
24000
24375
  className: rowEditorProps.initClassName,
24001
24376
  tabIndex: props.tabIndex,
@@ -29187,7 +29562,7 @@ DataTable.displayName = 'DataTable';
29187
29562
  var classes$M = {
29188
29563
  loadingIcon: 'p-dataview-loading-icon',
29189
29564
  loadingOverlay: 'p-dataview-loading-overlay p-component-overlay',
29190
- emptyMessage: 'p-col-12 col-12 p-dataview-emptymessage',
29565
+ emptyMessage: 'p-dataview-emptymessage',
29191
29566
  header: 'p-dataview-header',
29192
29567
  footer: 'p-dataview-footer',
29193
29568
  content: 'p-dataview-content',
@@ -29202,7 +29577,7 @@ var classes$M = {
29202
29577
  return classNames('p-dataview p-component', _defineProperty(_defineProperty({}, "p-dataview-".concat(props.layout), !!props.layout), 'p-dataview-loading', props.loading));
29203
29578
  }
29204
29579
  };
29205
- var styles$I = "\n@layer primereact {\n .p-dataview-loading {\n position: relative;\n min-height: 4rem;\n }\n \n .p-dataview .p-dataview-loading-overlay {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n";
29580
+ var styles$I = "\n@layer primereact {\n .p-dataview-loading {\n position: relative;\n min-height: 4rem;\n }\n\n .p-dataview .p-dataview-loading-overlay {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n";
29206
29581
  var DataViewBase = ComponentBase.extend({
29207
29582
  defaultProps: {
29208
29583
  __TYPE: 'DataView',
@@ -29236,6 +29611,7 @@ var DataViewBase = ComponentBase.extend({
29236
29611
  loadingIcon: null,
29237
29612
  gutter: false,
29238
29613
  itemTemplate: null,
29614
+ listTemplate: null,
29239
29615
  onPage: null,
29240
29616
  children: undefined
29241
29617
  },
@@ -29258,7 +29634,7 @@ var DataViewLayoutOptionsBase = ComponentBase.extend({
29258
29634
  },
29259
29635
  css: {
29260
29636
  classes: {
29261
- root: 'p-dataview-layout-options p-selectbutton p-buttonset',
29637
+ root: 'p-dataview p-component p-dataview-layout-options p-selectbutton p-buttonset',
29262
29638
  listButton: function listButton(_ref3) {
29263
29639
  var props = _ref3.props;
29264
29640
  return classNames('p-button p-button-icon-only', {
@@ -29393,6 +29769,15 @@ var DataView = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
29393
29769
  setRowsState(event.rows);
29394
29770
  }
29395
29771
  };
29772
+ var getItems = function getItems(value) {
29773
+ if (props.paginator) {
29774
+ var currentFirst = props.lazy ? 0 : first;
29775
+ var totalRecords = getTotalRecords();
29776
+ var last = Math.min(rows + currentFirst, totalRecords);
29777
+ return value.slice(currentFirst, last) || [];
29778
+ }
29779
+ return value;
29780
+ };
29396
29781
  var sort = function sort() {
29397
29782
  if (props.value) {
29398
29783
  // performance optimization to prevent resolving field data in each loop
@@ -29480,23 +29865,8 @@ var DataView = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
29480
29865
  };
29481
29866
  var createItems = function createItems(value) {
29482
29867
  if (ObjectUtils.isNotEmpty(value)) {
29483
- if (props.paginator) {
29484
- var currentFirst = props.lazy ? 0 : first;
29485
- var totalRecords = getTotalRecords();
29486
- var last = Math.min(rows + currentFirst, totalRecords);
29487
- var items = [];
29488
- for (var i = currentFirst; i < last; i++) {
29489
- var val = value[i];
29490
- val && items.push( /*#__PURE__*/React__namespace.createElement(DataViewItem, {
29491
- key: getItemRenderKey(value) || i,
29492
- template: props.itemTemplate,
29493
- layout: props.layout,
29494
- item: val
29495
- }));
29496
- }
29497
- return items;
29498
- }
29499
- return value.map(function (item, index) {
29868
+ var items = getItems(value);
29869
+ return items.map(function (item, index) {
29500
29870
  return /*#__PURE__*/React__namespace.createElement(DataViewItem, {
29501
29871
  key: getItemRenderKey(item) || index,
29502
29872
  template: props.itemTemplate,
@@ -29508,14 +29878,21 @@ var DataView = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
29508
29878
  return createEmptyMessage();
29509
29879
  };
29510
29880
  var createContent = function createContent(value) {
29511
- var items = createItems(value);
29512
- var gridProps = mergeProps({
29513
- className: cx('grid')
29514
- }, ptm('grid'));
29515
29881
  var contentProps = mergeProps({
29516
29882
  className: cx('content')
29517
29883
  }, ptm('content'));
29518
- return /*#__PURE__*/React__namespace.createElement("div", contentProps, /*#__PURE__*/React__namespace.createElement("div", gridProps, items));
29884
+ var content = null;
29885
+ if (props.listTemplate) {
29886
+ var items = getItems(value);
29887
+ content = ObjectUtils.getJSXElement(props.listTemplate, items, props.layout);
29888
+ } else {
29889
+ var _items = createItems(value);
29890
+ var gridProps = mergeProps({
29891
+ className: cx('grid')
29892
+ }, ptm('grid'));
29893
+ content = /*#__PURE__*/React__namespace.createElement("div", gridProps, _items);
29894
+ }
29895
+ return /*#__PURE__*/React__namespace.createElement("div", contentProps, content);
29519
29896
  };
29520
29897
  var processData = function processData() {
29521
29898
  var data = props.value;
@@ -38441,7 +38818,7 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
38441
38818
  });
38442
38819
  }
38443
38820
  };
38444
- var createProcessedItems = function createProcessedItems(items) {
38821
+ var createProcessedItems = React__namespace.useCallback(function (items) {
38445
38822
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
38446
38823
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
38447
38824
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
@@ -38460,7 +38837,7 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
38460
38837
  _processedItems.push(newItem);
38461
38838
  });
38462
38839
  return _processedItems;
38463
- };
38840
+ }, []);
38464
38841
  useMountEffect(function () {
38465
38842
  if (!idState) {
38466
38843
  setIdState(UniqueComponentId());
@@ -38477,11 +38854,11 @@ var Menubar = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
38477
38854
  ZIndexUtils.clear(rootMenuRef.current);
38478
38855
  }
38479
38856
  }, [mobileActiveState]);
38480
- useUpdateEffect(function () {
38857
+ React__namespace.useEffect(function () {
38481
38858
  var itemsToProcess = props.model || [];
38482
38859
  var processed = createProcessedItems(itemsToProcess, 0, null, '');
38483
38860
  setProcessedItems(processed);
38484
- }, [props.model]);
38861
+ }, [props.model, createProcessedItems]);
38485
38862
  useUpdateEffect(function () {
38486
38863
  var processedItem = activeItemPath.find(function (p) {
38487
38864
  return p.key === focusedItemInfo.parentKey;
@@ -48847,7 +49224,7 @@ var TieredMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
48847
49224
  });
48848
49225
  }
48849
49226
  };
48850
- var createProcessedItems = function createProcessedItems(items) {
49227
+ var createProcessedItems = React__namespace.useCallback(function (items) {
48851
49228
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
48852
49229
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
48853
49230
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
@@ -48866,7 +49243,7 @@ var TieredMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
48866
49243
  processedItems.push(newItem);
48867
49244
  });
48868
49245
  return processedItems;
48869
- };
49246
+ }, []);
48870
49247
  var createStyle = function createStyle() {
48871
49248
  if (!styleElementRef.current) {
48872
49249
  styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce, context && context.styleContainer);
@@ -48922,11 +49299,11 @@ var TieredMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespa
48922
49299
  !attributeSelectorState && setAttributeSelectorState(uniqueId);
48923
49300
  }
48924
49301
  });
48925
- useUpdateEffect(function () {
49302
+ React__namespace.useEffect(function () {
48926
49303
  var itemsToProcess = props.model || [];
48927
49304
  var processed = createProcessedItems(itemsToProcess);
48928
49305
  setProcessedItems(processed);
48929
- }, props.model);
49306
+ }, [props.model, createProcessedItems]);
48930
49307
  useUpdateEffect(function () {
48931
49308
  var processedItem = activeItemPath.find(function (p) {
48932
49309
  return p.key === focusedItemInfo.parentKey;
@@ -54927,6 +55304,7 @@ var TreeTableBodyCell = function TreeTableBodyCell(props) {
54927
55304
  var align = getColumnProp('align');
54928
55305
  /* eslint-enable */
54929
55306
  var bodyCellProps = mergeProps({
55307
+ role: 'cell',
54930
55308
  className: classNames(bodyClassName || props.className, cx('bodyCell', {
54931
55309
  bodyProps: props,
54932
55310
  editingState: editingState,
@@ -55022,11 +55400,13 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
55022
55400
  event.stopPropagation();
55023
55401
  };
55024
55402
  var expand = function expand(event) {
55403
+ var navigateFocusToChild = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
55025
55404
  var expandedKeys = props.expandedKeys ? _objectSpread$5({}, props.expandedKeys) : {};
55026
55405
  expandedKeys[props.node.key] = true;
55027
55406
  props.onToggle({
55028
55407
  originalEvent: event,
55029
- value: expandedKeys
55408
+ value: expandedKeys,
55409
+ navigateFocusToChild: navigateFocusToChild
55030
55410
  });
55031
55411
  invokeToggleEvents(event, true);
55032
55412
  };
@@ -55207,49 +55587,147 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
55207
55587
  });
55208
55588
  }
55209
55589
  };
55210
- var _onKeyDown = function onKeyDown(event) {
55211
- if (event.target === elementRef.current) {
55212
- var rowElement = event.currentTarget;
55213
- switch (event.which) {
55214
- //down arrow
55215
- case 40:
55216
- var nextRow = rowElement.nextElementSibling;
55217
- if (nextRow) {
55218
- nextRow.focus();
55219
- }
55220
- event.preventDefault();
55221
- break;
55590
+ var _onKeyDown = function onKeyDown(event, item) {
55591
+ switch (event.code) {
55592
+ case 'ArrowDown':
55593
+ onArrowDownKey(event);
55594
+ break;
55595
+ case 'ArrowUp':
55596
+ onArrowUpKey(event);
55597
+ break;
55598
+ case 'ArrowLeft':
55599
+ onArrowLeftKey(event);
55600
+ break;
55601
+ case 'ArrowRight':
55602
+ onArrowRightKey(event);
55603
+ break;
55604
+ case 'Home':
55605
+ onHomeKey(event);
55606
+ break;
55607
+ case 'End':
55608
+ onEndKey(event);
55609
+ break;
55610
+ case 'Enter':
55611
+ case 'NumpadEnter':
55612
+ case 'Space':
55613
+ if (!DomHandler.isClickable(event.target)) {
55614
+ onEnterKey(event);
55615
+ }
55616
+ break;
55617
+ case 'Tab':
55618
+ onTabKey();
55619
+ break;
55620
+ }
55621
+ };
55622
+ var onArrowDownKey = function onArrowDownKey(event) {
55623
+ var nextElementSibling = event.currentTarget.nextElementSibling;
55624
+ nextElementSibling && focusRowChange(event.currentTarget, nextElementSibling);
55625
+ event.preventDefault();
55626
+ };
55627
+ var onArrowUpKey = function onArrowUpKey(event) {
55628
+ var previousElementSibling = event.currentTarget.previousElementSibling;
55629
+ previousElementSibling && focusRowChange(event.currentTarget, previousElementSibling);
55630
+ event.preventDefault();
55631
+ };
55632
+ var onArrowRightKey = function onArrowRightKey(event) {
55633
+ var ishiddenIcon = DomHandler.findSingle(event.currentTarget, 'button').style.visibility === 'hidden';
55634
+ DomHandler.findSingle(elementRef.current, '[data-pc-section="rowtoggler"]');
55635
+ if (ishiddenIcon) return;
55222
55636
 
55223
- //up arrow
55224
- case 38:
55225
- var previousRow = rowElement.previousElementSibling;
55226
- if (previousRow) {
55227
- previousRow.focus();
55228
- }
55229
- event.preventDefault();
55230
- break;
55637
+ // !expanded && togglerElement.click();
55638
+ !expanded && expand(event, true);
55231
55639
 
55232
- //right arrow
55233
- case 39:
55234
- if (!expanded) {
55235
- expand(event);
55236
- }
55237
- event.preventDefault();
55238
- break;
55640
+ // this.$nextTick(() => {
55641
+ // this.onArrowDownKey(event);
55642
+ // });
55239
55643
 
55240
- //left arrow
55241
- case 37:
55242
- if (expanded) {
55243
- collapse(event);
55244
- }
55245
- event.preventDefault();
55246
- break;
55644
+ event.preventDefault();
55645
+ };
55646
+ var onArrowLeftKey = function onArrowLeftKey(event) {
55647
+ if (props.level === 0 && !expanded) {
55648
+ return;
55649
+ }
55650
+ var currentTarget = event.currentTarget;
55651
+ var ishiddenIcon = DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';
55652
+ DomHandler.findSingle(currentTarget, '[data-pc-section="rowtoggler"]');
55653
+ if (expanded && !ishiddenIcon) {
55654
+ // togglerElement.click();
55655
+ collapse(event);
55656
+ return;
55657
+ }
55658
+ var target = findBeforeClickableNode(currentTarget);
55659
+ target && focusRowChange(currentTarget, target);
55660
+ };
55661
+ var onHomeKey = function onHomeKey(event) {
55662
+ var findFirstElement = DomHandler.findSingle(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
55663
+ findFirstElement && DomHandler.focus(findFirstElement);
55664
+ event.preventDefault();
55665
+ };
55666
+ var onEndKey = function onEndKey(event) {
55667
+ var nodes = DomHandler.find(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
55668
+ var findFirstElement = nodes[nodes.length - 1];
55669
+ DomHandler.focus(findFirstElement);
55670
+ event.preventDefault();
55671
+ };
55672
+ var onEnterKey = function onEnterKey(event) {
55673
+ event.preventDefault();
55674
+ setTabIndexForSelectionMode(event, nodeTouched.current);
55675
+ if (props.selectionMode === 'checkbox') {
55676
+ // this.toggleCheckbox();
55677
+ onCheckboxChange(event);
55678
+ return;
55679
+ }
55247
55680
 
55248
- //enter
55249
- case 13:
55250
- _onClick(event);
55251
- event.preventDefault();
55252
- break;
55681
+ // this.$emit('node-click', {
55682
+ // originalEvent: event,
55683
+ // nodeTouched: nodeTouched.current,
55684
+ // node: this.node
55685
+ // });
55686
+
55687
+ props.onRowClick(event, props.node);
55688
+ nodeTouched.current = false;
55689
+ };
55690
+ var onTabKey = function onTabKey() {
55691
+ var rows = _toConsumableArray(DomHandler.find(elementRef.current.parentElement, 'tr'));
55692
+ var hasSelectedRow = rows.some(function (row) {
55693
+ return DomHandler.getAttribute(row, 'data-p-highlight') || row.getAttribute('aria-checked') === 'true';
55694
+ });
55695
+ rows.forEach(function (row) {
55696
+ row.tabIndex = -1;
55697
+ });
55698
+ if (hasSelectedRow) {
55699
+ var selectedNodes = rows.filter(function (node) {
55700
+ return DomHandler.getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === 'true';
55701
+ });
55702
+ selectedNodes[0].tabIndex = 0;
55703
+ return;
55704
+ }
55705
+ rows[0].tabIndex = 0;
55706
+ };
55707
+ var focusRowChange = function focusRowChange(firstFocusableRow, currentFocusedRow) {
55708
+ firstFocusableRow.tabIndex = '-1';
55709
+ currentFocusedRow.tabIndex = '0';
55710
+ DomHandler.focus(currentFocusedRow);
55711
+ };
55712
+ var findBeforeClickableNode = function findBeforeClickableNode(node) {
55713
+ var prevNode = node.previousElementSibling;
55714
+ if (prevNode) {
55715
+ var prevNodeButton = prevNode.querySelector('button');
55716
+ if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {
55717
+ return prevNode;
55718
+ }
55719
+ return findBeforeClickableNode(prevNode);
55720
+ }
55721
+ return null;
55722
+ };
55723
+ var setTabIndexForSelectionMode = function setTabIndexForSelectionMode(event, nodeTouched) {
55724
+ if (props.selectionMode !== null) {
55725
+ var elements = _toConsumableArray(DomHandler.find(elementRef.current.parentElement, 'tr'));
55726
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
55727
+ if (elements.every(function (element) {
55728
+ return element.tabIndex === -1;
55729
+ })) {
55730
+ elements[0].tabIndex = 0;
55253
55731
  }
55254
55732
  }
55255
55733
  };
@@ -55434,6 +55912,12 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
55434
55912
  var rowProps = mergeProps({
55435
55913
  tabIndex: 0,
55436
55914
  className: className,
55915
+ 'aria-expanded': expanded,
55916
+ 'aria-level': props.level + 1,
55917
+ 'aria-posinset': props.ariaPosInSet,
55918
+ 'aria-setsize': props.ariaSetSize,
55919
+ 'aria-checked': isChecked(),
55920
+ 'aria-selected': isSelected(),
55437
55921
  style: props.node.style,
55438
55922
  onClick: function onClick(e) {
55439
55923
  return _onClick(e);
@@ -55625,6 +56109,8 @@ var TreeTableBody = /*#__PURE__*/React__namespace.memo(function (props) {
55625
56109
  key: "".concat(node.key || JSON.stringify(node.data), "_").concat(index),
55626
56110
  level: 0,
55627
56111
  rowIndex: index,
56112
+ ariaSetSize: props.value.length,
56113
+ ariaPosInSet: index + 1,
55628
56114
  selectOnEdit: props.selectOnEdit,
55629
56115
  node: node,
55630
56116
  originalOptions: props.originalOptions,
@@ -55688,6 +56174,7 @@ var TreeTableBody = /*#__PURE__*/React__namespace.memo(function (props) {
55688
56174
  };
55689
56175
  var content = props.value && props.value.length ? createRows() : createEmptyMessage();
55690
56176
  var tbodyProps = mergeProps({
56177
+ role: 'rowgroup',
55691
56178
  className: cx('tbody')
55692
56179
  }, getPTOptions('tbody'));
55693
56180
  return /*#__PURE__*/React__namespace.createElement("tbody", tbodyProps, content);
@@ -55734,7 +56221,8 @@ var TreeTableFooter = /*#__PURE__*/React__namespace.memo(function (props) {
55734
56221
  var rowColumns = React__namespace.Children.toArray(RowBase.getCProp(row, 'children'));
55735
56222
  var rowFooterCells = rowColumns.map(createFooterCell);
55736
56223
  var footerRowProps = mergeProps(ptm('footerRow', {
55737
- hostName: props.hostName
56224
+ hostName: props.hostName,
56225
+ role: 'row'
55738
56226
  }));
55739
56227
  return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, footerRowProps, {
55740
56228
  key: index
@@ -55763,6 +56251,7 @@ var TreeTableFooter = /*#__PURE__*/React__namespace.memo(function (props) {
55763
56251
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
55764
56252
  if (hasFooter()) {
55765
56253
  var tfootProps = mergeProps({
56254
+ role: 'rowgroup',
55766
56255
  className: cx('tfoot')
55767
56256
  }, ptm('tfoot', {
55768
56257
  hostName: props.hostName
@@ -55823,7 +56312,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
55823
56312
  }
55824
56313
  };
55825
56314
  var onHeaderKeyDown = function onHeaderKeyDown(event, column) {
55826
- if (event.key === 'Enter') {
56315
+ if (event.key === 'Enter' && event.key === 'Space') {
55827
56316
  onHeaderClick(event, column);
55828
56317
  event.preventDefault();
55829
56318
  }
@@ -55997,6 +56486,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
55997
56486
  if (options.filterOnly) {
55998
56487
  var frozen = getColumnProp(column, 'frozen');
55999
56488
  var headerCellProps = mergeProps({
56489
+ role: 'columnheader',
56000
56490
  key: getColumnProp(column, 'columnKey') || getColumnProp(column, 'field') || options.index,
56001
56491
  className: classNames(cx('headerCell', {
56002
56492
  options: options,
@@ -56028,11 +56518,14 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56028
56518
  var sortIconElement = createSortIcon(column, sorted, sortOrder);
56029
56519
  var ariaSortData = getAriaSort(column, sorted, sortOrder);
56030
56520
  var sortBadge = createSortBadge(column, sortMetaDataIndex);
56521
+ var ariaSort = sorted ? sortOrder ? sortOrder < 0 ? 'descending' : 'ascending' : 'none' : null;
56031
56522
  var headerTooltip = getColumnProp(column, 'headerTooltip');
56032
56523
  var hasTooltip = ObjectUtils.isNotEmpty(headerTooltip);
56033
56524
  var title = createTitle(column, options);
56034
56525
  var resizer = createResizer(column);
56035
- var _headerCellProps = mergeProps({
56526
+ var sortable = getColumnProp(column, 'sortable');
56527
+ var _headerCellProps = mergeProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
56528
+ role: 'columnheader',
56036
56529
  className: classNames(getColumnProp(column, 'headerClassName') || getColumnProp(column, 'className'), cx('headerCell', {
56037
56530
  headerProps: props,
56038
56531
  frozen: _frozen,
@@ -56043,7 +56536,8 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56043
56536
  align: align
56044
56537
  })),
56045
56538
  style: getColumnProp(column, 'headerStyle') || getColumnProp(column, 'style'),
56046
- tabIndex: getColumnProp(column, 'sortable') ? props.tabIndex : null,
56539
+ tabIndex: sortable ? props.tabIndex : null,
56540
+ 'aria-sort': ariaSort,
56047
56541
  onClick: function onClick(e) {
56048
56542
  return onHeaderClick(e, column);
56049
56543
  },
@@ -56054,25 +56548,16 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56054
56548
  return onHeaderKeyDown(e, column);
56055
56549
  },
56056
56550
  rowSpan: getColumnProp(column, 'rowSpan'),
56057
- colSpan: getColumnProp(column, 'colSpan'),
56058
- 'aria-sort': ariaSortData,
56059
- onDragStart: function onDragStart(e) {
56060
- return _onDragStart(e, column);
56061
- },
56062
- onDragOver: function onDragOver(e) {
56063
- return _onDragOver(e, column);
56064
- },
56065
- onDragLeave: function onDragLeave(e) {
56066
- return _onDragLeave(e, column);
56067
- },
56068
- onDrop: function onDrop(e) {
56069
- return _onDrop(e, column);
56070
- },
56071
- 'data-p-sortable-column': getColumnProp(column, 'sortable'),
56072
- 'data-p-resizable-column': props.resizableColumns,
56073
- 'data-p-highlight': sorted,
56074
- 'data-p-frozen-column': getColumnProp(column, 'frozen')
56075
- }, getColumnPTOptions(column, 'root'), getColumnPTOptions(column, 'headerCell', {
56551
+ colSpan: getColumnProp(column, 'colSpan')
56552
+ }, "aria-sort", ariaSortData), "onDragStart", function onDragStart(e) {
56553
+ return _onDragStart(e, column);
56554
+ }), "onDragOver", function onDragOver(e) {
56555
+ return _onDragOver(e, column);
56556
+ }), "onDragLeave", function onDragLeave(e) {
56557
+ return _onDragLeave(e, column);
56558
+ }), "onDrop", function onDrop(e) {
56559
+ return _onDrop(e, column);
56560
+ }), 'data-p-sortable-column', sortable), 'data-p-resizable-column', props.resizableColumns), 'data-p-highlight', sorted), 'data-p-frozen-column', getColumnProp(column, 'frozen')), getColumnPTOptions(column, 'root'), getColumnPTOptions(column, 'headerCell', {
56076
56561
  context: {
56077
56562
  sorted: sorted,
56078
56563
  frozen: _frozen,
@@ -56107,7 +56592,9 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56107
56592
  var headerRowProps = mergeProps(ptm('headerRow', {
56108
56593
  hostName: props.hostName
56109
56594
  }));
56110
- return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, headerRowProps, {
56595
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
56596
+ role: "row"
56597
+ }, headerRowProps, {
56111
56598
  key: index
56112
56599
  }), rowHeaderCells);
56113
56600
  };
@@ -56118,7 +56605,8 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56118
56605
  var createColumns = function createColumns(columns) {
56119
56606
  if (columns) {
56120
56607
  var headerRowProps = mergeProps(ptm('headerRow', {
56121
- hostName: props.hostName
56608
+ hostName: props.hostName,
56609
+ role: 'row'
56122
56610
  }));
56123
56611
  if (hasColumnFilter(columns)) {
56124
56612
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
@@ -56135,7 +56623,9 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56135
56623
  });
56136
56624
  })));
56137
56625
  } else {
56138
- return /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
56626
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
56627
+ role: "row"
56628
+ }, headerRowProps), columns.map(function (col, i) {
56139
56629
  return createHeaderCell(col, {
56140
56630
  index: i,
56141
56631
  filterOnly: false,
@@ -56149,6 +56639,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
56149
56639
  };
56150
56640
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
56151
56641
  var theadProps = mergeProps({
56642
+ role: 'rowgroup',
56152
56643
  className: cx('thead')
56153
56644
  }, ptm('thead', {
56154
56645
  hostName: props.hostName
@@ -56399,6 +56890,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
56399
56890
  var columnSortable = React__namespace.useRef(null);
56400
56891
  var columnSortFunction = React__namespace.useRef(null);
56401
56892
  var columnField = React__namespace.useRef(null);
56893
+ var childFocusEvent = React__namespace.useRef(null);
56402
56894
  var _useEventListener = useEventListener({
56403
56895
  type: 'mousemove',
56404
56896
  listener: function listener(event) {
@@ -56423,10 +56915,19 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
56423
56915
  bindDocumentMouseUpListener = _useEventListener4[0],
56424
56916
  unbindDocumentMouseUpListener = _useEventListener4[1];
56425
56917
  var onToggle = function onToggle(event) {
56918
+ var originalEvent = event.originalEvent,
56919
+ value = event.value,
56920
+ navigateFocusToChild = event.navigateFocusToChild;
56426
56921
  if (props.onToggle) {
56427
- props.onToggle(event);
56922
+ props.onToggle({
56923
+ originalEvent: originalEvent,
56924
+ value: value
56925
+ });
56428
56926
  } else {
56429
- setExpandedKeysState(event.value);
56927
+ if (navigateFocusToChild) {
56928
+ childFocusEvent.current = originalEvent;
56929
+ }
56930
+ setExpandedKeysState(value);
56430
56931
  }
56431
56932
  };
56432
56933
  var onPageChange = function onPageChange(event) {
@@ -57129,6 +57630,17 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
57129
57630
  }
57130
57631
  return data;
57131
57632
  };
57633
+ useUpdateEffect(function () {
57634
+ if (childFocusEvent.current) {
57635
+ var nodeElement = childFocusEvent.current.target;
57636
+ var nextElementSibling = nodeElement.nextElementSibling;
57637
+ if (nextElementSibling) {
57638
+ nodeElement.tabIndex = '-1';
57639
+ nextElementSibling.tabIndex = '0';
57640
+ DomHandler.focus(nextElementSibling);
57641
+ }
57642
+ }
57643
+ }, [expandedKeysState]);
57132
57644
  React__namespace.useImperativeHandle(ref, function () {
57133
57645
  return {
57134
57646
  props: props,
@@ -57278,6 +57790,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
57278
57790
  className: ptCallbacks.cx('wrapper')
57279
57791
  }, ptCallbacks.ptm('wrapper'));
57280
57792
  var tableProps = mergeProps({
57793
+ role: 'table',
57281
57794
  style: props.tableStyle,
57282
57795
  className: classNames(props.tableClassName, ptCallbacks.cx('table'))
57283
57796
  }, ptCallbacks.ptm('table'));
@@ -57361,6 +57874,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
57361
57874
  ref: reorderIndicatorDownRef
57362
57875
  }, reorderIndicatorDownProps), reorderIndicatorDownIcon);
57363
57876
  var rootProps = mergeProps({
57877
+ role: 'table',
57364
57878
  id: props.id,
57365
57879
  className: classNames(props.className, ptCallbacks.cx('root', {
57366
57880
  isRowSelectionMode: isRowSelectionMode