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
package/primereact.all.js CHANGED
@@ -2812,7 +2812,27 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
2812
2812
  dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
2813
2813
  monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
2814
2814
  monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
2815
+ chooseYear: 'Choose Year',
2816
+ chooseMonth: 'Choose Month',
2817
+ chooseDate: 'Choose Date',
2818
+ prevDecade: 'Previous Decade',
2819
+ nextDecade: 'Next Decade',
2820
+ prevYear: 'Previous Year',
2821
+ nextYear: 'Next Year',
2822
+ prevMonth: 'Previous Month',
2823
+ nextMonth: 'Next Month',
2824
+ prevHour: 'Previous Hour',
2825
+ nextHour: 'Next Hour',
2826
+ prevMinute: 'Previous Minute',
2827
+ nextMinute: 'Next Minute',
2828
+ prevSecond: 'Previous Second',
2829
+ nextSecond: 'Next Second',
2830
+ prevMilliSecond: 'Previous Second',
2831
+ nextMilliSecond: 'Next Second',
2832
+ am: 'am',
2833
+ pm: 'pm',
2815
2834
  today: 'Today',
2835
+ now: 'Now',
2816
2836
  weekHeader: 'Wk',
2817
2837
  firstDayOfWeek: 0,
2818
2838
  showMonthAfterYear: false,
@@ -10018,13 +10038,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10018
10038
  }));
10019
10039
  BreadCrumb.displayName = 'BreadCrumb';
10020
10040
 
10021
- 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";
10041
+ 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";
10022
10042
  var classes$11 = {
10023
10043
  root: function root(_ref) {
10024
10044
  var props = _ref.props,
10025
10045
  focusedState = _ref.focusedState,
10026
- isFilled = _ref.isFilled;
10027
- 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));
10046
+ isFilled = _ref.isFilled,
10047
+ panelVisible = _ref.panelVisible;
10048
+ 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));
10028
10049
  },
10029
10050
  dropdownButton: 'p-datepicker-trigger',
10030
10051
  buttonbar: 'p-datepicker-buttonbar',
@@ -10103,6 +10124,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10103
10124
  __TYPE: 'Calendar',
10104
10125
  appendTo: null,
10105
10126
  ariaLabelledBy: null,
10127
+ ariaLabel: null,
10106
10128
  autoZIndex: true,
10107
10129
  autoFocus: false,
10108
10130
  baseZIndex: 0,
@@ -10210,6 +10232,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10210
10232
  panelClassName: props.className
10211
10233
  }),
10212
10234
  style: props.style,
10235
+ role: props.inline ? null : 'dialog',
10236
+ id: props.id,
10237
+ 'aria-label': localeOption('chooseDate', props.locale),
10238
+ 'aria-modal': props.inline ? null : 'true',
10213
10239
  onClick: props.onClick,
10214
10240
  onMouseUp: props.onMouseUp
10215
10241
  }, props.ptm('panel', {
@@ -10266,6 +10292,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10266
10292
  _React$useState6 = _slicedToArray(_React$useState5, 2),
10267
10293
  viewDateState = _React$useState6[0],
10268
10294
  setViewDateState = _React$useState6[1];
10295
+ var _React$useState7 = React__namespace.useState(props.id),
10296
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
10297
+ idState = _React$useState8[0],
10298
+ setIdState = _React$useState8[1];
10269
10299
  var metaData = {
10270
10300
  props: props,
10271
10301
  state: {
@@ -10294,26 +10324,29 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10294
10324
  var isOverlayClicked = React__namespace.useRef(false);
10295
10325
  var previousButton = React__namespace.useRef(false);
10296
10326
  var nextButton = React__namespace.useRef(false);
10327
+ var viewChangedWithKeyDown = React__namespace.useRef(false);
10297
10328
  var onChangeRef = React__namespace.useRef(null);
10298
- var _React$useState7 = React__namespace.useState('date'),
10299
- _React$useState8 = _slicedToArray(_React$useState7, 2),
10300
- currentView = _React$useState8[0],
10301
- setCurrentView = _React$useState8[1];
10302
- var _React$useState9 = React__namespace.useState(null),
10329
+ var isClearClicked = React__namespace.useRef(false);
10330
+ var _React$useState9 = React__namespace.useState('date'),
10303
10331
  _React$useState10 = _slicedToArray(_React$useState9, 2),
10304
- currentMonth = _React$useState10[0],
10305
- setCurrentMonth = _React$useState10[1];
10332
+ currentView = _React$useState10[0],
10333
+ setCurrentView = _React$useState10[1];
10306
10334
  var _React$useState11 = React__namespace.useState(null),
10307
10335
  _React$useState12 = _slicedToArray(_React$useState11, 2),
10308
- currentYear = _React$useState12[0],
10309
- setCurrentYear = _React$useState12[1];
10310
- var _React$useState13 = React__namespace.useState([]),
10336
+ currentMonth = _React$useState12[0],
10337
+ setCurrentMonth = _React$useState12[1];
10338
+ var _React$useState13 = React__namespace.useState(null),
10311
10339
  _React$useState14 = _slicedToArray(_React$useState13, 2),
10312
- yearOptions = _React$useState14[0],
10313
- setYearOptions = _React$useState14[1];
10340
+ currentYear = _React$useState14[0],
10341
+ setCurrentYear = _React$useState14[1];
10342
+ var _React$useState15 = React__namespace.useState([]),
10343
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
10344
+ yearOptions = _React$useState16[0],
10345
+ setYearOptions = _React$useState16[1];
10314
10346
  var previousValue = usePrevious(props.value);
10315
10347
  var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
10316
10348
  var attributeSelector = UniqueComponentId();
10349
+ var panelId = idState + '_panel';
10317
10350
  var _useOverlayListener = useOverlayListener({
10318
10351
  target: elementRef,
10319
10352
  overlay: overlayRef,
@@ -10321,7 +10354,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10321
10354
  var type = _ref.type,
10322
10355
  valid = _ref.valid;
10323
10356
  if (valid) {
10324
- type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
10357
+ type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside', reFocusInputField) : hide(null, reFocusInputField);
10325
10358
  }
10326
10359
  isOverlayClicked.current = false;
10327
10360
  },
@@ -10351,21 +10384,34 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10351
10384
  setFocusedState(false);
10352
10385
  };
10353
10386
  var onInputKeyDown = function onInputKeyDown(event) {
10354
- switch (event.which) {
10355
- //escape
10356
- case 27:
10387
+ switch (event.code) {
10388
+ case 'ArrowDown':
10357
10389
  {
10358
- hide();
10390
+ if (!overlayVisibleState) {
10391
+ show();
10392
+ } else {
10393
+ focusToFirstCell();
10394
+ event.preventDefault();
10395
+ }
10359
10396
  break;
10360
10397
  }
10361
-
10362
- //tab
10363
- case 9:
10398
+ case 'Escape':
10364
10399
  {
10365
- visible && trapFocus(event);
10400
+ hide();
10366
10401
  props.touchUI && disableModality();
10367
10402
  break;
10368
10403
  }
10404
+ case 'Tab':
10405
+ {
10406
+ if (overlayRef && overlayRef.current) {
10407
+ DomHandler.getFocusableElements(overlayRef.current).forEach(function (el) {
10408
+ return el.tabIndex = '-1';
10409
+ });
10410
+ hide();
10411
+ props.touchUI && disableModality();
10412
+ }
10413
+ break;
10414
+ }
10369
10415
  }
10370
10416
  };
10371
10417
  var onUserInput = function onUserInput(event) {
@@ -10428,28 +10474,40 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10428
10474
  navForward(event);
10429
10475
  };
10430
10476
  var onContainerButtonKeydown = function onContainerButtonKeydown(event) {
10431
- switch (event.which) {
10432
- //tab
10433
- case 9:
10434
- trapFocus(event);
10477
+ switch (event.code) {
10478
+ case 'Tab':
10479
+ !props.inline && trapFocus(event);
10435
10480
  break;
10436
-
10437
- //escape
10438
- case 27:
10481
+ case 'Escape':
10439
10482
  hide(null, reFocusInputField);
10440
10483
  event.preventDefault();
10441
10484
  break;
10442
10485
  }
10443
10486
  };
10487
+ var onPickerKeyDown = function onPickerKeyDown(event, type, direction) {
10488
+ if (event.code === 'Enter' || event.code === 'Space') {
10489
+ onTimePickerElementMouseDown(event, type, direction);
10490
+ event.preventDefault();
10491
+ return;
10492
+ }
10493
+ onContainerButtonKeydown(event);
10494
+ };
10495
+ var onPickerKeyUp = function onPickerKeyUp(event) {
10496
+ if (event.code === 'Enter' || event.code === 'Space') {
10497
+ onTimePickerElementMouseUp();
10498
+ event.preventDefault();
10499
+ return;
10500
+ }
10501
+ };
10444
10502
  var trapFocus = function trapFocus(event) {
10445
- event.preventDefault();
10503
+ event === null || event === void 0 || event.preventDefault();
10446
10504
  var focusableElements = DomHandler.getFocusableElements(overlayRef.current);
10447
10505
  if (focusableElements && focusableElements.length > 0) {
10448
10506
  if (!document.activeElement) {
10449
10507
  focusableElements[0].focus();
10450
10508
  } else {
10451
10509
  var focusedIndex = focusableElements.indexOf(document.activeElement);
10452
- if (event.shiftKey) {
10510
+ if (event !== null && event !== void 0 && event.shiftKey) {
10453
10511
  if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();
10454
10512
  } else {
10455
10513
  if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();
@@ -10482,7 +10540,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10482
10540
  };
10483
10541
  var initFocusableCell = function initFocusableCell() {
10484
10542
  var cell;
10485
- if (props.view === 'month') {
10543
+ if (currentView === 'month') {
10486
10544
  var cells = DomHandler.find(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"]');
10487
10545
  var selectedCell = DomHandler.findSingle(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"][data-p-highlight="true"]');
10488
10546
  cells.forEach(function (cell) {
@@ -10500,6 +10558,27 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10500
10558
  cell.tabIndex = '0';
10501
10559
  }
10502
10560
  };
10561
+ var focusToFirstCell = function focusToFirstCell() {
10562
+ if (currentView) {
10563
+ var cell;
10564
+ if (currentView === 'date') {
10565
+ cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
10566
+ if (!cell) {
10567
+ var todayCell = DomHandler.findSingle(overlayRef.current, 'td.p-datepicker-today span:not(.p-disabled)');
10568
+ cell = todayCell || DomHandler.findSingle(overlayRef.current, 'table td span:not([data-p-disabled="true"])');
10569
+ }
10570
+ } else if (currentView === 'month' || currentView === 'year') {
10571
+ cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
10572
+ if (!cell) {
10573
+ cell = DomHandler.findSingle(overlayRef.current, "[data-pc-section=\"".concat(currentView, "picker\"] [data-pc-section=\"").concat(currentView, "\"]:not([data-p-disabled=\"true\"])"));
10574
+ }
10575
+ }
10576
+ if (cell) {
10577
+ cell.tabIndex = '0';
10578
+ cell && cell.focus();
10579
+ }
10580
+ }
10581
+ };
10503
10582
  var navBackward = function navBackward(event) {
10504
10583
  if (props.disabled) {
10505
10584
  event.preventDefault();
@@ -10629,6 +10708,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
10629
10708
  props.onTodayButtonClick && props.onTodayButtonClick(event);
10630
10709
  };
10631
10710
  var onClearButtonClick = function onClearButtonClick(event) {
10711
+ isClearClicked.current = true;
10632
10712
  updateModel(event, null);
10633
10713
  updateInputfield(null);
10634
10714
  hide();
@@ -11110,23 +11190,29 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11110
11190
  var onDateCellKeydown = function onDateCellKeydown(event, date, groupIndex) {
11111
11191
  var cellContent = event.currentTarget;
11112
11192
  var cell = cellContent.parentElement;
11113
- switch (event.which) {
11114
- //down arrow
11115
- case 40:
11193
+ var cellIndex = DomHandler.index(cell);
11194
+ switch (event.code) {
11195
+ case 'ArrowDown':
11116
11196
  {
11117
11197
  cellContent.tabIndex = '-1';
11118
- var cellIndex = DomHandler.index(cell);
11119
11198
  var nextRow = cell.parentElement.nextElementSibling;
11120
11199
  if (nextRow) {
11121
- var focusCell = nextRow.children[cellIndex].children[0];
11122
- if (DomHandler.hasClass(focusCell, 'p-disabled')) {
11200
+ var tableRowIndex = DomHandler.index(cell.parentElement);
11201
+ var tableRows = Array.from(cell.parentElement.parentElement.children);
11202
+ var nextTableRows = tableRows.slice(tableRowIndex + 1);
11203
+ var hasNextFocusableDate = nextTableRows.find(function (el) {
11204
+ var focusCell = el.children[cellIndex].children[0];
11205
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11206
+ });
11207
+ if (hasNextFocusableDate) {
11208
+ var focusCell = hasNextFocusableDate.children[cellIndex].children[0];
11209
+ focusCell.tabIndex = '0';
11210
+ focusCell.focus();
11211
+ } else {
11123
11212
  navigation.current = {
11124
11213
  backward: false
11125
11214
  };
11126
11215
  navForward(event);
11127
- } else {
11128
- nextRow.children[cellIndex].children[0].tabIndex = '0';
11129
- nextRow.children[cellIndex].children[0].focus();
11130
11216
  }
11131
11217
  } else {
11132
11218
  navigation.current = {
@@ -11137,46 +11223,58 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11137
11223
  event.preventDefault();
11138
11224
  break;
11139
11225
  }
11140
-
11141
- //up arrow
11142
- case 38:
11226
+ case 'ArrowUp':
11143
11227
  {
11144
11228
  cellContent.tabIndex = '-1';
11145
- var _cellIndex = DomHandler.index(cell);
11146
- var prevRow = cell.parentElement.previousElementSibling;
11147
- if (prevRow) {
11148
- var _focusCell = prevRow.children[_cellIndex].children[0];
11149
- if (DomHandler.hasClass(_focusCell, 'p-disabled')) {
11229
+ if (event.altKey) {
11230
+ hide(null, reFocusInputField);
11231
+ } else {
11232
+ var prevRow = cell.parentElement.previousElementSibling;
11233
+ if (prevRow) {
11234
+ var _tableRowIndex = DomHandler.index(cell.parentElement);
11235
+ var _tableRows = Array.from(cell.parentElement.parentElement.children);
11236
+ var prevTableRows = _tableRows.slice(0, _tableRowIndex).reverse();
11237
+ var _hasNextFocusableDate = prevTableRows.find(function (el) {
11238
+ var focusCell = el.children[cellIndex].children[0];
11239
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11240
+ });
11241
+ if (_hasNextFocusableDate) {
11242
+ var _focusCell = _hasNextFocusableDate.children[cellIndex].children[0];
11243
+ _focusCell.tabIndex = '0';
11244
+ _focusCell.focus();
11245
+ } else {
11246
+ navigation.current = {
11247
+ backward: true
11248
+ };
11249
+ navBackward(event);
11250
+ }
11251
+ } else {
11150
11252
  navigation.current = {
11151
11253
  backward: true
11152
11254
  };
11153
11255
  navBackward(event);
11154
- } else {
11155
- _focusCell.tabIndex = '0';
11156
- _focusCell.focus();
11157
11256
  }
11158
- } else {
11159
- navigation.current = {
11160
- backward: true
11161
- };
11162
- navBackward(event);
11163
11257
  }
11164
11258
  event.preventDefault();
11165
11259
  break;
11166
11260
  }
11167
-
11168
- //left arrow
11169
- case 37:
11261
+ case 'ArrowLeft':
11170
11262
  {
11171
11263
  cellContent.tabIndex = '-1';
11172
11264
  var prevCell = cell.previousElementSibling;
11173
11265
  if (prevCell) {
11174
- var _focusCell2 = prevCell.children[0];
11175
- if (DomHandler.hasClass(_focusCell2, 'p-disabled')) {
11176
- navigateToMonth(true, groupIndex, event);
11177
- } else {
11266
+ var cells = Array.from(cell.parentElement.children);
11267
+ var prevCells = cells.slice(0, cellIndex).reverse();
11268
+ var _hasNextFocusableDate2 = prevCells.find(function (el) {
11269
+ var focusCell = el.children[0];
11270
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11271
+ });
11272
+ if (_hasNextFocusableDate2) {
11273
+ var _focusCell2 = _hasNextFocusableDate2.children[0];
11178
11274
  _focusCell2.tabIndex = '0';
11179
11275
  _focusCell2.focus();
11276
+ } else {
11277
+ navigateToMonth(true, groupIndex, event);
11180
11278
  }
11181
11279
  } else {
11182
11280
  navigateToMonth(true, groupIndex, event);
@@ -11184,19 +11282,23 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11184
11282
  event.preventDefault();
11185
11283
  break;
11186
11284
  }
11187
-
11188
- //right arrow
11189
- case 39:
11285
+ case 'ArrowRight':
11190
11286
  {
11191
11287
  cellContent.tabIndex = '-1';
11192
11288
  var nextCell = cell.nextElementSibling;
11193
11289
  if (nextCell) {
11194
- var _focusCell3 = nextCell.children[0];
11195
- if (DomHandler.hasClass(_focusCell3, 'p-disabled')) {
11196
- navigateToMonth(false, groupIndex, event);
11197
- } else {
11290
+ var _cells = Array.from(cell.parentElement.children);
11291
+ var nextCells = _cells.slice(cellIndex + 1);
11292
+ var _hasNextFocusableDate3 = nextCells.find(function (el) {
11293
+ var focusCell = el.children[0];
11294
+ return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
11295
+ });
11296
+ if (_hasNextFocusableDate3) {
11297
+ var _focusCell3 = _hasNextFocusableDate3.children[0];
11198
11298
  _focusCell3.tabIndex = '0';
11199
11299
  _focusCell3.focus();
11300
+ } else {
11301
+ navigateToMonth(false, groupIndex, event);
11200
11302
  }
11201
11303
  } else {
11202
11304
  navigateToMonth(false, groupIndex, event);
@@ -11204,27 +11306,75 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11204
11306
  event.preventDefault();
11205
11307
  break;
11206
11308
  }
11207
-
11208
- //enter
11209
- case 13:
11309
+ case 'Enter':
11310
+ case 'NumpadEnter':
11311
+ case 'Space':
11210
11312
  {
11211
11313
  onDateSelect(event, date);
11212
11314
  event.preventDefault();
11213
11315
  break;
11214
11316
  }
11215
-
11216
- //escape
11217
- case 27:
11317
+ case 'Escape':
11218
11318
  {
11219
11319
  hide(null, reFocusInputField);
11220
11320
  event.preventDefault();
11221
11321
  break;
11222
11322
  }
11223
-
11224
- //tab
11225
- case 9:
11323
+ case 'Tab':
11226
11324
  {
11227
- trapFocus(event);
11325
+ if (!props.inline) trapFocus(event);
11326
+ break;
11327
+ }
11328
+ case 'Home':
11329
+ {
11330
+ cellContent.tabIndex = '-1';
11331
+ var currentRow = cell.parentElement;
11332
+ var _focusCell4 = currentRow.children[0].children[0];
11333
+ if (DomHandler.getAttribute(_focusCell4, 'data-p-disabled')) {
11334
+ navigateToMonth(groupIndex, true, event);
11335
+ } else {
11336
+ _focusCell4.tabIndex = '0';
11337
+ _focusCell4.focus();
11338
+ }
11339
+ event.preventDefault();
11340
+ break;
11341
+ }
11342
+ case 'End':
11343
+ {
11344
+ cellContent.tabIndex = '-1';
11345
+ var _currentRow = cell.parentElement;
11346
+ var _focusCell5 = _currentRow.children[_currentRow.children.length - 1].children[0];
11347
+ if (DomHandler.getAttribute(_focusCell5, 'data-p-disabled')) {
11348
+ navigateToMonth(groupIndex, false, event);
11349
+ } else {
11350
+ _focusCell5.tabIndex = '0';
11351
+ _focusCell5.focus();
11352
+ }
11353
+ event.preventDefault();
11354
+ break;
11355
+ }
11356
+ case 'PageUp':
11357
+ {
11358
+ cellContent.tabIndex = '-1';
11359
+ if (event.shiftKey) {
11360
+ navigation.current = {
11361
+ backward: true
11362
+ };
11363
+ navBackward(event);
11364
+ } else navigateToMonth(groupIndex, true, event);
11365
+ event.preventDefault();
11366
+ break;
11367
+ }
11368
+ case 'PageDown':
11369
+ {
11370
+ cellContent.tabIndex = '-1';
11371
+ if (event.shiftKey) {
11372
+ navigation.current = {
11373
+ backward: false
11374
+ };
11375
+ navForward(event);
11376
+ } else navigateToMonth(groupIndex, false, event);
11377
+ event.preventDefault();
11228
11378
  break;
11229
11379
  }
11230
11380
  }
@@ -11251,18 +11401,18 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11251
11401
  navForward(event);
11252
11402
  } else {
11253
11403
  var nextMonthContainer = overlayRef.current.children[groupIndex + 1];
11254
- var _focusCell4 = DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
11255
- _focusCell4.tabIndex = '0';
11256
- _focusCell4.focus();
11404
+ var _focusCell6 = DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
11405
+ _focusCell6.tabIndex = '0';
11406
+ _focusCell6.focus();
11257
11407
  }
11258
11408
  }
11259
11409
  };
11260
11410
  var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
11261
11411
  var cell = event.currentTarget;
11262
- switch (event.which) {
11412
+ switch (event.code) {
11263
11413
  //arrows
11264
- case 38:
11265
- case 40:
11414
+ case 'ArrowUp':
11415
+ case 'ArrowDown':
11266
11416
  {
11267
11417
  cell.tabIndex = '-1';
11268
11418
  var cells = cell.parentElement.children;
@@ -11275,51 +11425,162 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11275
11425
  event.preventDefault();
11276
11426
  break;
11277
11427
  }
11278
-
11279
- //left arrow
11280
- case 37:
11428
+ case 'ArrowLeft':
11281
11429
  {
11282
11430
  cell.tabIndex = '-1';
11283
11431
  var prevCell = cell.previousElementSibling;
11284
11432
  if (prevCell) {
11285
11433
  prevCell.tabIndex = '0';
11286
11434
  prevCell.focus();
11435
+ } else {
11436
+ navigation.current = {
11437
+ backward: true
11438
+ };
11439
+ navBackward(event);
11287
11440
  }
11288
11441
  event.preventDefault();
11289
11442
  break;
11290
11443
  }
11291
-
11292
- //right arrow
11293
- case 39:
11444
+ case 'ArrowRight':
11294
11445
  {
11295
11446
  cell.tabIndex = '-1';
11296
11447
  var _nextCell = cell.nextElementSibling;
11297
11448
  if (_nextCell) {
11298
11449
  _nextCell.tabIndex = '0';
11299
11450
  _nextCell.focus();
11451
+ } else {
11452
+ navigation.current = {
11453
+ backward: false
11454
+ };
11455
+ navForward(event);
11300
11456
  }
11301
11457
  event.preventDefault();
11302
11458
  break;
11303
11459
  }
11304
-
11305
- //enter
11306
- case 13:
11460
+ case 'PageUp':
11461
+ {
11462
+ if (event.shiftKey) return;
11463
+ navigation.current = {
11464
+ backward: true
11465
+ };
11466
+ navBackward(event);
11467
+ break;
11468
+ }
11469
+ case 'PageDown':
11470
+ {
11471
+ if (event.shiftKey) return;
11472
+ navigation.current = {
11473
+ backward: false
11474
+ };
11475
+ navForward(event);
11476
+ break;
11477
+ }
11478
+ case 'Enter':
11479
+ case 'NumpadEnter':
11480
+ case 'Space':
11307
11481
  {
11482
+ if (props.view !== 'month') viewChangedWithKeyDown.current = true;
11308
11483
  onMonthSelect(event, index);
11309
11484
  event.preventDefault();
11310
11485
  break;
11311
11486
  }
11312
-
11313
- //escape
11314
- case 27:
11487
+ case 'Escape':
11315
11488
  {
11316
11489
  hide(null, reFocusInputField);
11317
11490
  event.preventDefault();
11318
11491
  break;
11319
11492
  }
11320
-
11321
- //tab
11322
- case 9:
11493
+ case 'Tab':
11494
+ {
11495
+ trapFocus(event);
11496
+ break;
11497
+ }
11498
+ }
11499
+ };
11500
+ var onYearCellKeydown = function onYearCellKeydown(event, index) {
11501
+ var cell = event.currentTarget;
11502
+ switch (event.code) {
11503
+ //arrows
11504
+ case 'ArrowUp':
11505
+ case 'ArrowDown':
11506
+ {
11507
+ cell.tabIndex = '-1';
11508
+ var cells = cell.parentElement.children;
11509
+ var cellIndex = DomHandler.index(cell);
11510
+ var nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 2 : cellIndex - 2];
11511
+ if (nextCell) {
11512
+ nextCell.tabIndex = '0';
11513
+ nextCell.focus();
11514
+ }
11515
+ event.preventDefault();
11516
+ break;
11517
+ }
11518
+ case 'ArrowLeft':
11519
+ {
11520
+ cell.tabIndex = '-1';
11521
+ var prevCell = cell.previousElementSibling;
11522
+ if (prevCell) {
11523
+ prevCell.tabIndex = '0';
11524
+ prevCell.focus();
11525
+ } else {
11526
+ navigation.current = {
11527
+ backward: true
11528
+ };
11529
+ navBackward(event);
11530
+ }
11531
+ event.preventDefault();
11532
+ break;
11533
+ }
11534
+ case 'ArrowRight':
11535
+ {
11536
+ cell.tabIndex = '-1';
11537
+ var _nextCell2 = cell.nextElementSibling;
11538
+ if (_nextCell2) {
11539
+ _nextCell2.tabIndex = '0';
11540
+ _nextCell2.focus();
11541
+ } else {
11542
+ navigation.current = {
11543
+ backward: false
11544
+ };
11545
+ navForward(event);
11546
+ }
11547
+ event.preventDefault();
11548
+ break;
11549
+ }
11550
+ case 'PageUp':
11551
+ {
11552
+ if (event.shiftKey) return;
11553
+ navigation.current = {
11554
+ backward: true
11555
+ };
11556
+ navBackward(event);
11557
+ break;
11558
+ }
11559
+ case 'PageDown':
11560
+ {
11561
+ if (event.shiftKey) return;
11562
+ navigation.current = {
11563
+ backward: false
11564
+ };
11565
+ navForward(event);
11566
+ break;
11567
+ }
11568
+ case 'Enter':
11569
+ case 'NumpadEnter':
11570
+ case 'Space':
11571
+ {
11572
+ if (props.view !== 'year') viewChangedWithKeyDown.current = true;
11573
+ onYearSelect(event, index);
11574
+ event.preventDefault();
11575
+ break;
11576
+ }
11577
+ case 'Escape':
11578
+ {
11579
+ hide(null, reFocusInputField);
11580
+ event.preventDefault();
11581
+ break;
11582
+ }
11583
+ case 'Tab':
11323
11584
  {
11324
11585
  trapFocus(event);
11325
11586
  break;
@@ -11436,10 +11697,16 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11436
11697
  return _currentYear;
11437
11698
  };
11438
11699
  var switchToMonthView = function switchToMonthView(event) {
11700
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
11701
+ viewChangedWithKeyDown.current = true;
11702
+ }
11439
11703
  setCurrentView('month');
11440
11704
  event.preventDefault();
11441
11705
  };
11442
11706
  var switchToYearView = function switchToYearView(event) {
11707
+ if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
11708
+ viewChangedWithKeyDown.current = true;
11709
+ }
11443
11710
  setCurrentView('year');
11444
11711
  event.preventDefault();
11445
11712
  };
@@ -11580,7 +11847,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
11580
11847
  var onOverlayEntered = function onOverlayEntered() {
11581
11848
  bindOverlayListener();
11582
11849
  props.onShow && props.onShow();
11583
- DomHandler.focusFirstElement(overlayRef.current);
11584
11850
  setFocusedState(false);
11585
11851
  };
11586
11852
  var onOverlayExit = function onOverlayExit() {
@@ -12451,6 +12717,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12451
12717
  setCurrentMonth(viewDate.getMonth());
12452
12718
  setCurrentYear(viewDate.getFullYear());
12453
12719
  setCurrentView(props.view);
12720
+ if (!idState) {
12721
+ var uniqueId = UniqueComponentId();
12722
+ !idState && setIdState(uniqueId);
12723
+ }
12454
12724
  if (props.inline) {
12455
12725
  overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
12456
12726
  if (!props.disabled) {
@@ -12498,8 +12768,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12498
12768
  // eslint-disable-next-line react-hooks/exhaustive-deps
12499
12769
  }, [props.disabled, props.mask, props.readOnlyInput]);
12500
12770
  useUpdateEffect(function () {
12501
- setCurrentView(props.view);
12771
+ if (viewChangedWithKeyDown.current) {
12772
+ setCurrentView(props.view);
12773
+ }
12774
+ viewChangedWithKeyDown.current = false;
12502
12775
  }, [props.view]);
12776
+ useUpdateEffect(function () {
12777
+ focusToFirstCell();
12778
+ }, [currentView]);
12503
12779
  useUpdateEffect(function () {
12504
12780
  if (!props.onViewDateChange && !viewStateChanged.current) {
12505
12781
  setValue(props.value);
@@ -12590,12 +12866,16 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12590
12866
  if (Array.isArray(prevPropValue)) {
12591
12867
  prevPropValue = prevPropValue[0];
12592
12868
  }
12869
+ var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
12870
+ if (isClearClicked.current && props.showTime) {
12871
+ viewDate.setHours(0, 0, 0);
12872
+ isClearClicked.current = false;
12873
+ }
12593
12874
  if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12594
- var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
12595
12875
  validateDate(viewDate);
12596
- setViewDateState(viewDate);
12597
- viewStateChanged.current = true;
12598
12876
  }
12877
+ setViewDateState(viewDate);
12878
+ viewStateChanged.current = true;
12599
12879
  };
12600
12880
  var createBackwardNavigator = function createBackwardNavigator(isVisible) {
12601
12881
  var navigatorProps = isVisible ? {
@@ -12615,9 +12895,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12615
12895
  var backwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread$1z({}, previousIconProps), {
12616
12896
  props: props
12617
12897
  });
12898
+ var _localeOptions4 = localeOptions(props.locale),
12899
+ prevDecade = _localeOptions4.prevDecade,
12900
+ prevYear = _localeOptions4.prevYear,
12901
+ prevMonth = _localeOptions4.prevMonth;
12902
+ var previousButtonLabel = currentView === 'year' ? prevDecade : currentView === 'month' ? prevYear : prevMonth;
12618
12903
  var previousButtonProps = mergeProps(_objectSpread$1z({
12619
12904
  type: 'button',
12620
- className: cx('previousButton')
12905
+ className: cx('previousButton'),
12906
+ 'aria-label': previousButtonLabel
12621
12907
  }, navigatorProps), ptm('previousButton'));
12622
12908
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
12623
12909
  ref: previousButton
@@ -12641,9 +12927,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12641
12927
  var forwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread$1z({}, nextIconProps), {
12642
12928
  props: props
12643
12929
  });
12930
+ var _localeOptions5 = localeOptions(props.locale),
12931
+ nextDecade = _localeOptions5.nextDecade,
12932
+ nextYear = _localeOptions5.nextYear,
12933
+ nextMonth = _localeOptions5.nextMonth;
12934
+ var nextButtonLabel = currentView === 'year' ? nextDecade : currentView === 'month' ? nextYear : nextMonth;
12644
12935
  var nextButtonProps = mergeProps(_objectSpread$1z({
12645
12936
  type: 'button',
12646
- className: cx('nextButton')
12937
+ className: cx('nextButton'),
12938
+ 'aria-label': nextButtonLabel
12647
12939
  }, navigatorProps), ptm('nextButton'));
12648
12940
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
12649
12941
  ref: nextButton
@@ -12700,6 +12992,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12700
12992
  }
12701
12993
  var monthTitleProps = mergeProps({
12702
12994
  className: cx('monthTitle'),
12995
+ onKeyDown: onContainerButtonKeydown,
12996
+ 'aria-label': localeOption('chooseMonth', props.locale),
12703
12997
  onClick: switchToMonthView,
12704
12998
  disabled: switchViewButtonDisabled()
12705
12999
  }, ptm('monthTitle'));
@@ -12758,6 +13052,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12758
13052
  var displayYear = props.numberOfMonths > 1 ? metaYear : currentYear;
12759
13053
  var yearTitleProps = mergeProps({
12760
13054
  className: cx('yearTitle'),
13055
+ 'aria-label': localeOption('chooseYear', props.locale),
12761
13056
  onClick: function onClick(e) {
12762
13057
  return switchToYearView(e);
12763
13058
  },
@@ -12816,25 +13111,33 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12816
13111
  };
12817
13112
  var createDateCellContent = function createDateCellContent(date, className, groupIndex) {
12818
13113
  var content = props.dateTemplate ? props.dateTemplate(date) : date.day;
13114
+ var selected = isSelected(date);
12819
13115
  var dayLabelProps = mergeProps({
12820
13116
  className: cx('dayLabel', {
12821
13117
  className: className
12822
13118
  }),
13119
+ 'aria-selected': selected,
13120
+ 'aria-disabled': !date.selectable,
12823
13121
  onClick: function onClick(e) {
12824
13122
  return onDateSelect(e, date);
12825
13123
  },
12826
13124
  onKeyDown: function onKeyDown(e) {
12827
13125
  return onDateCellKeydown(e, date, groupIndex);
12828
13126
  },
12829
- 'data-p-highlight': isSelected(date),
13127
+ 'data-p-highlight': selected,
12830
13128
  'data-p-disabled': !date.selectable
12831
13129
  }, ptm('dayLabel', {
12832
13130
  context: {
12833
- selected: isSelected(date),
13131
+ selected: selected,
12834
13132
  disabled: !date.selectable
12835
13133
  }
12836
13134
  }));
12837
- return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content);
13135
+ return /*#__PURE__*/React__namespace.createElement("span", dayLabelProps, content, selected && /*#__PURE__*/React__namespace.createElement("div", {
13136
+ "aria-live": "polite",
13137
+ className: "p-hidden-accessible",
13138
+ "data-p-hidden-accessible": true,
13139
+ pt: ptm('hiddenSelectedDay')
13140
+ }));
12838
13141
  };
12839
13142
  var createWeek = function createWeek(weekDates, weekNumber, groupIndex) {
12840
13143
  var week = weekDates.map(function (date) {
@@ -12848,6 +13151,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12848
13151
  className: cx('day', {
12849
13152
  date: date
12850
13153
  }),
13154
+ 'aria-label': date.day,
12851
13155
  'data-p-today': date.today,
12852
13156
  'data-p-other-month': date.otherMonth
12853
13157
  }, ptm('day', {
@@ -12896,6 +13200,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12896
13200
  key: UniqueComponentId('calendar_container_')
12897
13201
  }, ptm('container'));
12898
13202
  var tableProps = mergeProps({
13203
+ role: 'grid',
12899
13204
  className: cx('table')
12900
13205
  }, ptm('table'));
12901
13206
  var tableHeaderProps = mergeProps(ptm('tableHeader'));
@@ -12999,6 +13304,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12999
13304
  if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;
13000
13305
  }
13001
13306
  var hourProps = mergeProps(ptm('hour'));
13307
+ var _localeOptions6 = localeOptions(props.locale),
13308
+ nextHour = _localeOptions6.nextHour,
13309
+ prevHour = _localeOptions6.prevHour;
13002
13310
  var hourDisplay = hour < 10 ? '0' + hour : hour;
13003
13311
  var hourPickerProps = mergeProps({
13004
13312
  className: cx('hourPicker')
@@ -13006,26 +13314,30 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13006
13314
  var incrementButtonProps = mergeProps({
13007
13315
  type: 'button',
13008
13316
  className: cx('incrementButton'),
13317
+ 'aria-label': nextHour,
13009
13318
  onMouseDown: function onMouseDown(e) {
13010
13319
  return onTimePickerElementMouseDown(e, 0, 1);
13011
13320
  },
13012
13321
  onMouseUp: onTimePickerElementMouseUp,
13013
13322
  onMouseLeave: onTimePickerElementMouseLeave,
13014
13323
  onKeyDown: function onKeyDown(e) {
13015
- return onContainerButtonKeydown(e);
13016
- }
13324
+ return onPickerKeyDown(e, 0, 1);
13325
+ },
13326
+ onKeyUp: onPickerKeyUp
13017
13327
  }, ptm('incrementButton'));
13018
13328
  var decrementButtonProps = mergeProps({
13019
13329
  type: 'button',
13020
13330
  className: cx('decrementButton'),
13331
+ 'aria-label': prevHour,
13021
13332
  onMouseDown: function onMouseDown(e) {
13022
13333
  return onTimePickerElementMouseDown(e, 0, -1);
13023
13334
  },
13024
13335
  onMouseUp: onTimePickerElementMouseUp,
13025
13336
  onMouseLeave: onTimePickerElementMouseLeave,
13026
13337
  onKeyDown: function onKeyDown(e) {
13027
- return onContainerButtonKeydown(e);
13028
- }
13338
+ return onPickerKeyDown(e, 0, -1);
13339
+ },
13340
+ onKeyUp: onPickerKeyUp
13029
13341
  }, ptm('decrementButton'));
13030
13342
  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)));
13031
13343
  };
@@ -13034,6 +13346,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13034
13346
  var minute = doStepMinute(currentTime.getMinutes());
13035
13347
  minute = minute > 59 ? minute - 60 : minute;
13036
13348
  var minuteProps = mergeProps(ptm('minute'));
13349
+ var _localeOptions7 = localeOptions(props.locale),
13350
+ nextMinute = _localeOptions7.nextMinute,
13351
+ prevMinute = _localeOptions7.prevMinute;
13037
13352
  var minuteDisplay = minute < 10 ? '0' + minute : minute;
13038
13353
  var minutePickerProps = mergeProps({
13039
13354
  className: cx('minutePicker')
@@ -13041,32 +13356,39 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13041
13356
  var incrementButtonProps = mergeProps({
13042
13357
  type: 'button',
13043
13358
  className: cx('incrementButton'),
13359
+ 'aria-label': nextMinute,
13044
13360
  onMouseDown: function onMouseDown(e) {
13045
13361
  return onTimePickerElementMouseDown(e, 1, 1);
13046
13362
  },
13047
13363
  onMouseUp: onTimePickerElementMouseUp,
13048
13364
  onMouseLeave: onTimePickerElementMouseLeave,
13049
13365
  onKeyDown: function onKeyDown(e) {
13050
- return onContainerButtonKeydown(e);
13051
- }
13366
+ return onPickerKeyDown(e, 1, 1);
13367
+ },
13368
+ onKeyUp: onPickerKeyUp
13052
13369
  }, ptm('incrementButton'));
13053
13370
  var decrementButtonProps = mergeProps({
13054
13371
  type: 'button',
13055
13372
  className: cx('decrementButton'),
13373
+ 'aria-label': prevMinute,
13056
13374
  onMouseDown: function onMouseDown(e) {
13057
13375
  return onTimePickerElementMouseDown(e, 1, -1);
13058
13376
  },
13059
13377
  onMouseUp: onTimePickerElementMouseUp,
13060
13378
  onMouseLeave: onTimePickerElementMouseLeave,
13061
13379
  onKeyDown: function onKeyDown(e) {
13062
- return onContainerButtonKeydown(e);
13063
- }
13380
+ return onPickerKeyDown(e, 1, -1);
13381
+ },
13382
+ onKeyUp: onPickerKeyUp
13064
13383
  }, ptm('decrementButton'));
13065
13384
  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)));
13066
13385
  };
13067
13386
  var createSecondPicker = function createSecondPicker() {
13068
13387
  if (props.showSeconds) {
13069
13388
  var currentTime = getCurrentDateTime();
13389
+ var _localeOptions8 = localeOptions(props.locale),
13390
+ nextSecond = _localeOptions8.nextSecond,
13391
+ prevSecond = _localeOptions8.prevSecond;
13070
13392
  var secondProps = mergeProps(ptm('second'));
13071
13393
  var second = currentTime.getSeconds();
13072
13394
  var secondDisplay = second < 10 ? '0' + second : second;
@@ -13076,26 +13398,30 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13076
13398
  var incrementButtonProps = mergeProps({
13077
13399
  type: 'button',
13078
13400
  className: cx('incrementButton'),
13401
+ 'aria-label': nextSecond,
13079
13402
  onMouseDown: function onMouseDown(e) {
13080
13403
  return onTimePickerElementMouseDown(e, 2, 1);
13081
13404
  },
13082
13405
  onMouseUp: onTimePickerElementMouseUp,
13083
13406
  onMouseLeave: onTimePickerElementMouseLeave,
13084
13407
  onKeyDown: function onKeyDown(e) {
13085
- return onContainerButtonKeydown(e);
13086
- }
13408
+ return onPickerKeyDown(e, 2, 1);
13409
+ },
13410
+ onKeyUp: onPickerKeyUp
13087
13411
  }, ptm('incrementButton'));
13088
13412
  var decrementButtonProps = mergeProps({
13089
13413
  type: 'button',
13090
13414
  className: cx('decrementButton'),
13415
+ 'aria-label': prevSecond,
13091
13416
  onMouseDown: function onMouseDown(e) {
13092
13417
  return onTimePickerElementMouseDown(e, 2, -1);
13093
13418
  },
13094
13419
  onMouseUp: onTimePickerElementMouseUp,
13095
13420
  onMouseLeave: onTimePickerElementMouseLeave,
13096
13421
  onKeyDown: function onKeyDown(e) {
13097
- return onContainerButtonKeydown(e);
13098
- }
13422
+ return onPickerKeyDown(e, 2, -1);
13423
+ },
13424
+ onKeyUp: onPickerKeyUp
13099
13425
  }, ptm('decrementButton'));
13100
13426
  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)));
13101
13427
  }
@@ -13104,6 +13430,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13104
13430
  var createMiliSecondPicker = function createMiliSecondPicker() {
13105
13431
  if (props.showMillisec) {
13106
13432
  var currentTime = getCurrentDateTime();
13433
+ var _localeOptions9 = localeOptions(props.locale),
13434
+ nextMilliSecond = _localeOptions9.nextMilliSecond,
13435
+ prevMilliSecond = _localeOptions9.prevMilliSecond;
13107
13436
  var millisecondProps = mergeProps(ptm('millisecond'));
13108
13437
  var millisecond = currentTime.getMilliseconds();
13109
13438
  var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;
@@ -13113,26 +13442,30 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13113
13442
  var incrementButtonProps = mergeProps({
13114
13443
  type: 'button',
13115
13444
  className: cx('incrementButton'),
13445
+ 'aria-label': nextMilliSecond,
13116
13446
  onMouseDown: function onMouseDown(e) {
13117
13447
  return onTimePickerElementMouseDown(e, 3, 1);
13118
13448
  },
13119
13449
  onMouseUp: onTimePickerElementMouseUp,
13120
13450
  onMouseLeave: onTimePickerElementMouseLeave,
13121
13451
  onKeyDown: function onKeyDown(e) {
13122
- return onContainerButtonKeydown(e);
13123
- }
13452
+ return onPickerKeyDown(e, 3, 1);
13453
+ },
13454
+ onKeyUp: onPickerKeyUp
13124
13455
  }, ptm('incrementButton'));
13125
13456
  var decrementButtonProps = mergeProps({
13126
13457
  type: 'button',
13127
13458
  className: cx('decrementButton'),
13459
+ 'aria-label': prevMilliSecond,
13128
13460
  onMouseDown: function onMouseDown(e) {
13129
13461
  return onTimePickerElementMouseDown(e, 3, -1);
13130
13462
  },
13131
13463
  onMouseUp: onTimePickerElementMouseUp,
13132
13464
  onMouseLeave: onTimePickerElementMouseLeave,
13133
13465
  onKeyDown: function onKeyDown(e) {
13134
- return onContainerButtonKeydown(e);
13135
- }
13466
+ return onPickerKeyDown(e, 3, -1);
13467
+ },
13468
+ onKeyUp: onPickerKeyUp
13136
13469
  }, ptm('decrementButton'));
13137
13470
  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)));
13138
13471
  }
@@ -13141,6 +13474,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13141
13474
  var createAmPmPicker = function createAmPmPicker() {
13142
13475
  if (props.hourFormat === '12') {
13143
13476
  var currentTime = getCurrentDateTime();
13477
+ var _localeOptions10 = localeOptions(props.locale),
13478
+ am = _localeOptions10.am,
13479
+ pm = _localeOptions10.pm;
13144
13480
  var hour = currentTime.getHours();
13145
13481
  var display = hour > 11 ? 'PM' : 'AM';
13146
13482
  var ampmProps = mergeProps(ptm('ampm'));
@@ -13150,6 +13486,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13150
13486
  var incrementButtonProps = mergeProps({
13151
13487
  type: 'button',
13152
13488
  className: cx('incrementButton'),
13489
+ 'aria-label': am,
13153
13490
  onClick: function onClick(e) {
13154
13491
  return toggleAmPm(e);
13155
13492
  }
@@ -13157,6 +13494,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13157
13494
  var decrementButtonProps = mergeProps({
13158
13495
  type: 'button',
13159
13496
  className: cx('decrementButton'),
13497
+ 'aria-label': pm,
13160
13498
  onClick: function onClick(e) {
13161
13499
  return toggleAmPm(e);
13162
13500
  }
@@ -13188,6 +13526,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13188
13526
  id: props.inputId,
13189
13527
  name: props.name,
13190
13528
  type: "text",
13529
+ role: "combobox",
13191
13530
  className: props.inputClassName,
13192
13531
  style: props.inputStyle,
13193
13532
  readOnly: props.readOnlyInput,
@@ -13200,7 +13539,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13200
13539
  onFocus: onInputFocus,
13201
13540
  onBlur: onInputBlur,
13202
13541
  onKeyDown: onInputKeyDown,
13542
+ "aria-expanded": overlayVisibleState,
13543
+ "aria-autocomplete": "none",
13544
+ "aria-haspopup": "dialog",
13545
+ "aria-controls": panelId,
13203
13546
  "aria-labelledby": props.ariaLabelledBy,
13547
+ "aria-label": props.ariaLabel,
13204
13548
  inputMode: props.inputMode,
13205
13549
  tooltip: props.tooltip,
13206
13550
  tooltipOptions: props.tooltipOptions,
@@ -13220,6 +13564,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13220
13564
  onClick: onButtonClick,
13221
13565
  tabIndex: "-1",
13222
13566
  disabled: props.disabled,
13567
+ "aria-haspopup": "dialog",
13568
+ "aria-label": localeOption('chooseDate', props.locale),
13569
+ "aria-expanded": overlayVisibleState,
13570
+ "aria-controls": panelId,
13223
13571
  className: cx('dropdownButton'),
13224
13572
  pt: ptm('dropdownButton'),
13225
13573
  __parentMetadata: {
@@ -13239,21 +13587,27 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13239
13587
  };
13240
13588
  var createButtonBar = function createButtonBar() {
13241
13589
  if (props.showButtonBar) {
13242
- var _localeOptions4 = localeOptions(props.locale),
13243
- today = _localeOptions4.today,
13244
- clear = _localeOptions4.clear;
13590
+ var _localeOptions11 = localeOptions(props.locale),
13591
+ today = _localeOptions11.today,
13592
+ clear = _localeOptions11.clear,
13593
+ now = _localeOptions11.now;
13594
+ var nowDate = new Date();
13595
+ var isHidden = props.minDate && props.minDate > nowDate || props.maxDate && props.maxDate < nowDate;
13245
13596
  var buttonbarProps = mergeProps({
13246
13597
  className: cx('buttonbar')
13247
13598
  }, ptm('buttonbar'));
13248
13599
  return /*#__PURE__*/React__namespace.createElement("div", buttonbarProps, /*#__PURE__*/React__namespace.createElement(Button, {
13249
13600
  type: "button",
13250
- label: today,
13601
+ label: props.showTime ? now : today,
13251
13602
  onClick: onTodayButtonClick,
13252
13603
  onKeyDown: function onKeyDown(e) {
13253
13604
  return onContainerButtonKeydown(e);
13254
13605
  },
13255
13606
  className: classNames(props.todayButtonClassName, cx('todayButton')),
13256
- pt: ptm('todayButton')
13607
+ pt: ptm('todayButton'),
13608
+ style: isHidden ? {
13609
+ visibility: 'hidden'
13610
+ } : undefined
13257
13611
  }), /*#__PURE__*/React__namespace.createElement(Button, {
13258
13612
  type: "button",
13259
13613
  label: clear,
@@ -13283,6 +13637,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13283
13637
  className: cx('monthPicker')
13284
13638
  }, ptm('monthPicker'));
13285
13639
  return /*#__PURE__*/React__namespace.createElement("div", monthPickerProps, monthPickerValues().map(function (m, i) {
13640
+ var selected = isMonthSelected(i);
13286
13641
  var monthProps = mergeProps({
13287
13642
  className: cx('month', {
13288
13643
  isMonthSelected: isMonthSelected,
@@ -13297,18 +13652,23 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13297
13652
  return onMonthCellKeydown(event, i);
13298
13653
  },
13299
13654
  'data-p-disabled': isMonthYearDisabled(i, currentYear),
13300
- 'data-p-highlight': isMonthSelected(i)
13655
+ 'data-p-highlight': selected
13301
13656
  }, ptm('month', {
13302
13657
  context: {
13303
13658
  month: m,
13304
13659
  monthIndex: i,
13305
- selected: isMonthSelected(i),
13660
+ selected: selected,
13306
13661
  disabled: isMonthYearDisabled(i, currentYear)
13307
13662
  }
13308
13663
  }));
13309
13664
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, monthProps, {
13310
13665
  key: "month".concat(i + 1)
13311
- }), m);
13666
+ }), m, selected && /*#__PURE__*/React__namespace.createElement("div", {
13667
+ "aria-live": "polite",
13668
+ className: "p-hidden-accessible",
13669
+ "data-p-hidden-accessible": true,
13670
+ pt: ptm('hiddenMonth')
13671
+ }, m));
13312
13672
  }));
13313
13673
  }
13314
13674
  return null;
@@ -13319,6 +13679,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13319
13679
  className: cx('yearPicker')
13320
13680
  }, ptm('yearPicker'));
13321
13681
  return /*#__PURE__*/React__namespace.createElement("div", yearPickerProps, yearPickerValues().map(function (y, i) {
13682
+ var selected = isYearSelected(y);
13322
13683
  var yearProps = mergeProps({
13323
13684
  className: cx('year', {
13324
13685
  isYearSelected: isYearSelected,
@@ -13328,19 +13689,27 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13328
13689
  onClick: function onClick(event) {
13329
13690
  return onYearSelect(event, y);
13330
13691
  },
13692
+ onKeyDown: function onKeyDown(event) {
13693
+ return onYearCellKeydown(event, y);
13694
+ },
13331
13695
  'data-p-highlight': isYearSelected(y),
13332
13696
  'data-p-disabled': isMonthYearDisabled(-1, y)
13333
13697
  }, ptm('year', {
13334
13698
  context: {
13335
13699
  year: y,
13336
13700
  yearIndex: i,
13337
- selected: isYearSelected(i),
13701
+ selected: selected,
13338
13702
  disabled: isMonthYearDisabled(-1, y)
13339
13703
  }
13340
13704
  }));
13341
13705
  return /*#__PURE__*/React__namespace.createElement("span", _extends({}, yearProps, {
13342
13706
  key: "year".concat(i + 1)
13343
- }), y);
13707
+ }), y, selected && /*#__PURE__*/React__namespace.createElement("div", {
13708
+ "aria-live": "polite",
13709
+ className: "p-hidden-accessible",
13710
+ "data-p-hidden-accessible": true,
13711
+ pt: ptm('hiddenYear')
13712
+ }, y));
13344
13713
  }));
13345
13714
  }
13346
13715
  return null;
@@ -13367,7 +13736,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13367
13736
  id: props.id,
13368
13737
  className: classNames(props.className, cx('root', {
13369
13738
  focusedState: focusedState,
13370
- isFilled: isFilled
13739
+ isFilled: isFilled,
13740
+ panelVisible: visible
13371
13741
  })),
13372
13742
  style: props.style
13373
13743
  }, CalendarBase.getOtherProps(props), ptm('root'));
@@ -13375,6 +13745,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
13375
13745
  ref: elementRef
13376
13746
  }, rootProps), content, /*#__PURE__*/React__namespace.createElement(CalendarPanel, {
13377
13747
  hostName: "Calendar",
13748
+ id: panelId,
13749
+ locale: props.locale,
13378
13750
  ref: overlayRef,
13379
13751
  className: panelClassName,
13380
13752
  style: props.panelStyle,
@@ -18584,7 +18956,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
18584
18956
  menuRef.current.style.top = top + 'px';
18585
18957
  }
18586
18958
  };
18587
- var createProcessedItems = function createProcessedItems(items, level) {
18959
+ var createProcessedItems = React__namespace.useCallback(function (items, level) {
18588
18960
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18589
18961
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
18590
18962
  var processedItems = [];
@@ -18603,7 +18975,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
18603
18975
  processedItems.push(newItem);
18604
18976
  });
18605
18977
  return processedItems;
18606
- };
18978
+ }, []);
18607
18979
  var onLeafClick = function onLeafClick(event) {
18608
18980
  setResetMenuState(true);
18609
18981
  hide(event);
@@ -18651,11 +19023,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
18651
19023
  show(currentEvent.current);
18652
19024
  }
18653
19025
  }, [reshowState]);
18654
- useUpdateEffect(function () {
19026
+ React__namespace.useEffect(function () {
18655
19027
  var itemsToProcess = props.model || [];
18656
19028
  var processed = createProcessedItems(itemsToProcess, 0, null, '');
18657
19029
  setProcessedItems(processed);
18658
- }, [props.model]);
19030
+ }, [props.model, createProcessedItems]);
18659
19031
  useUpdateEffect(function () {
18660
19032
  var _focusedItemId = focusedItemInfo.index !== -1 ? "".concat(idState).concat(ObjectUtils.isNotEmpty(focusedItemInfo.parentKey) ? '_' + focusedItemInfo.parentKey : '', "_").concat(focusedItemInfo.index) : null;
18661
19033
  setFocusedItemId(_focusedItemId);
@@ -23968,6 +24340,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
23968
24340
  var rowEditorSaveButtonProps = mergeProps({
23969
24341
  type: 'button',
23970
24342
  name: 'row-save',
24343
+ 'aria-label': ariaLabel$1('saveEdit'),
23971
24344
  onClick: rowEditorProps.onSaveClick,
23972
24345
  className: rowEditorProps.saveClassName,
23973
24346
  tabIndex: props.tabIndex,
@@ -23976,6 +24349,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
23976
24349
  var rowEditorCancelButtonProps = mergeProps({
23977
24350
  type: 'button',
23978
24351
  name: 'row-cancel',
24352
+ 'aria-label': ariaLabel$1('cancelEdit'),
23979
24353
  onClick: rowEditorProps.onCancelClick,
23980
24354
  className: rowEditorProps.cancelClassName,
23981
24355
  tabIndex: props.tabIndex
@@ -23990,6 +24364,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
23990
24364
  var rowEditorInitButtonProps = mergeProps({
23991
24365
  type: 'button',
23992
24366
  name: 'row-edit',
24367
+ 'aria-label': ariaLabel$1('editRow'),
23993
24368
  onClick: rowEditorProps.onInitClick,
23994
24369
  className: rowEditorProps.initClassName,
23995
24370
  tabIndex: props.tabIndex,
@@ -29181,7 +29556,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29181
29556
  var classes$M = {
29182
29557
  loadingIcon: 'p-dataview-loading-icon',
29183
29558
  loadingOverlay: 'p-dataview-loading-overlay p-component-overlay',
29184
- emptyMessage: 'p-col-12 col-12 p-dataview-emptymessage',
29559
+ emptyMessage: 'p-dataview-emptymessage',
29185
29560
  header: 'p-dataview-header',
29186
29561
  footer: 'p-dataview-footer',
29187
29562
  content: 'p-dataview-content',
@@ -29196,7 +29571,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29196
29571
  return classNames('p-dataview p-component', _defineProperty(_defineProperty({}, "p-dataview-".concat(props.layout), !!props.layout), 'p-dataview-loading', props.loading));
29197
29572
  }
29198
29573
  };
29199
- 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";
29574
+ 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";
29200
29575
  var DataViewBase = ComponentBase.extend({
29201
29576
  defaultProps: {
29202
29577
  __TYPE: 'DataView',
@@ -29230,6 +29605,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29230
29605
  loadingIcon: null,
29231
29606
  gutter: false,
29232
29607
  itemTemplate: null,
29608
+ listTemplate: null,
29233
29609
  onPage: null,
29234
29610
  children: undefined
29235
29611
  },
@@ -29252,7 +29628,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29252
29628
  },
29253
29629
  css: {
29254
29630
  classes: {
29255
- root: 'p-dataview-layout-options p-selectbutton p-buttonset',
29631
+ root: 'p-dataview p-component p-dataview-layout-options p-selectbutton p-buttonset',
29256
29632
  listButton: function listButton(_ref3) {
29257
29633
  var props = _ref3.props;
29258
29634
  return classNames('p-button p-button-icon-only', {
@@ -29387,6 +29763,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29387
29763
  setRowsState(event.rows);
29388
29764
  }
29389
29765
  };
29766
+ var getItems = function getItems(value) {
29767
+ if (props.paginator) {
29768
+ var currentFirst = props.lazy ? 0 : first;
29769
+ var totalRecords = getTotalRecords();
29770
+ var last = Math.min(rows + currentFirst, totalRecords);
29771
+ return value.slice(currentFirst, last) || [];
29772
+ }
29773
+ return value;
29774
+ };
29390
29775
  var sort = function sort() {
29391
29776
  if (props.value) {
29392
29777
  // performance optimization to prevent resolving field data in each loop
@@ -29474,23 +29859,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29474
29859
  };
29475
29860
  var createItems = function createItems(value) {
29476
29861
  if (ObjectUtils.isNotEmpty(value)) {
29477
- if (props.paginator) {
29478
- var currentFirst = props.lazy ? 0 : first;
29479
- var totalRecords = getTotalRecords();
29480
- var last = Math.min(rows + currentFirst, totalRecords);
29481
- var items = [];
29482
- for (var i = currentFirst; i < last; i++) {
29483
- var val = value[i];
29484
- val && items.push( /*#__PURE__*/React__namespace.createElement(DataViewItem, {
29485
- key: getItemRenderKey(value) || i,
29486
- template: props.itemTemplate,
29487
- layout: props.layout,
29488
- item: val
29489
- }));
29490
- }
29491
- return items;
29492
- }
29493
- return value.map(function (item, index) {
29862
+ var items = getItems(value);
29863
+ return items.map(function (item, index) {
29494
29864
  return /*#__PURE__*/React__namespace.createElement(DataViewItem, {
29495
29865
  key: getItemRenderKey(item) || index,
29496
29866
  template: props.itemTemplate,
@@ -29502,14 +29872,21 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29502
29872
  return createEmptyMessage();
29503
29873
  };
29504
29874
  var createContent = function createContent(value) {
29505
- var items = createItems(value);
29506
- var gridProps = mergeProps({
29507
- className: cx('grid')
29508
- }, ptm('grid'));
29509
29875
  var contentProps = mergeProps({
29510
29876
  className: cx('content')
29511
29877
  }, ptm('content'));
29512
- return /*#__PURE__*/React__namespace.createElement("div", contentProps, /*#__PURE__*/React__namespace.createElement("div", gridProps, items));
29878
+ var content = null;
29879
+ if (props.listTemplate) {
29880
+ var items = getItems(value);
29881
+ content = ObjectUtils.getJSXElement(props.listTemplate, items, props.layout);
29882
+ } else {
29883
+ var _items = createItems(value);
29884
+ var gridProps = mergeProps({
29885
+ className: cx('grid')
29886
+ }, ptm('grid'));
29887
+ content = /*#__PURE__*/React__namespace.createElement("div", gridProps, _items);
29888
+ }
29889
+ return /*#__PURE__*/React__namespace.createElement("div", contentProps, content);
29513
29890
  };
29514
29891
  var processData = function processData() {
29515
29892
  var data = props.value;
@@ -38435,7 +38812,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38435
38812
  });
38436
38813
  }
38437
38814
  };
38438
- var createProcessedItems = function createProcessedItems(items) {
38815
+ var createProcessedItems = React__namespace.useCallback(function (items) {
38439
38816
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
38440
38817
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
38441
38818
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
@@ -38454,7 +38831,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38454
38831
  _processedItems.push(newItem);
38455
38832
  });
38456
38833
  return _processedItems;
38457
- };
38834
+ }, []);
38458
38835
  useMountEffect(function () {
38459
38836
  if (!idState) {
38460
38837
  setIdState(UniqueComponentId());
@@ -38471,11 +38848,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38471
38848
  ZIndexUtils.clear(rootMenuRef.current);
38472
38849
  }
38473
38850
  }, [mobileActiveState]);
38474
- useUpdateEffect(function () {
38851
+ React__namespace.useEffect(function () {
38475
38852
  var itemsToProcess = props.model || [];
38476
38853
  var processed = createProcessedItems(itemsToProcess, 0, null, '');
38477
38854
  setProcessedItems(processed);
38478
- }, [props.model]);
38855
+ }, [props.model, createProcessedItems]);
38479
38856
  useUpdateEffect(function () {
38480
38857
  var processedItem = activeItemPath.find(function (p) {
38481
38858
  return p.key === focusedItemInfo.parentKey;
@@ -48841,7 +49218,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
48841
49218
  });
48842
49219
  }
48843
49220
  };
48844
- var createProcessedItems = function createProcessedItems(items) {
49221
+ var createProcessedItems = React__namespace.useCallback(function (items) {
48845
49222
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
48846
49223
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
48847
49224
  var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
@@ -48860,7 +49237,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
48860
49237
  processedItems.push(newItem);
48861
49238
  });
48862
49239
  return processedItems;
48863
- };
49240
+ }, []);
48864
49241
  var createStyle = function createStyle() {
48865
49242
  if (!styleElementRef.current) {
48866
49243
  styleElementRef.current = DomHandler.createInlineStyle(context && context.nonce || PrimeReact.nonce, context && context.styleContainer);
@@ -48916,11 +49293,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
48916
49293
  !attributeSelectorState && setAttributeSelectorState(uniqueId);
48917
49294
  }
48918
49295
  });
48919
- useUpdateEffect(function () {
49296
+ React__namespace.useEffect(function () {
48920
49297
  var itemsToProcess = props.model || [];
48921
49298
  var processed = createProcessedItems(itemsToProcess);
48922
49299
  setProcessedItems(processed);
48923
- }, props.model);
49300
+ }, [props.model, createProcessedItems]);
48924
49301
  useUpdateEffect(function () {
48925
49302
  var processedItem = activeItemPath.find(function (p) {
48926
49303
  return p.key === focusedItemInfo.parentKey;
@@ -54921,6 +55298,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
54921
55298
  var align = getColumnProp('align');
54922
55299
  /* eslint-enable */
54923
55300
  var bodyCellProps = mergeProps({
55301
+ role: 'cell',
54924
55302
  className: classNames(bodyClassName || props.className, cx('bodyCell', {
54925
55303
  bodyProps: props,
54926
55304
  editingState: editingState,
@@ -55016,11 +55394,13 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55016
55394
  event.stopPropagation();
55017
55395
  };
55018
55396
  var expand = function expand(event) {
55397
+ var navigateFocusToChild = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
55019
55398
  var expandedKeys = props.expandedKeys ? _objectSpread$5({}, props.expandedKeys) : {};
55020
55399
  expandedKeys[props.node.key] = true;
55021
55400
  props.onToggle({
55022
55401
  originalEvent: event,
55023
- value: expandedKeys
55402
+ value: expandedKeys,
55403
+ navigateFocusToChild: navigateFocusToChild
55024
55404
  });
55025
55405
  invokeToggleEvents(event, true);
55026
55406
  };
@@ -55201,49 +55581,147 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55201
55581
  });
55202
55582
  }
55203
55583
  };
55204
- var _onKeyDown = function onKeyDown(event) {
55205
- if (event.target === elementRef.current) {
55206
- var rowElement = event.currentTarget;
55207
- switch (event.which) {
55208
- //down arrow
55209
- case 40:
55210
- var nextRow = rowElement.nextElementSibling;
55211
- if (nextRow) {
55212
- nextRow.focus();
55213
- }
55214
- event.preventDefault();
55215
- break;
55584
+ var _onKeyDown = function onKeyDown(event, item) {
55585
+ switch (event.code) {
55586
+ case 'ArrowDown':
55587
+ onArrowDownKey(event);
55588
+ break;
55589
+ case 'ArrowUp':
55590
+ onArrowUpKey(event);
55591
+ break;
55592
+ case 'ArrowLeft':
55593
+ onArrowLeftKey(event);
55594
+ break;
55595
+ case 'ArrowRight':
55596
+ onArrowRightKey(event);
55597
+ break;
55598
+ case 'Home':
55599
+ onHomeKey(event);
55600
+ break;
55601
+ case 'End':
55602
+ onEndKey(event);
55603
+ break;
55604
+ case 'Enter':
55605
+ case 'NumpadEnter':
55606
+ case 'Space':
55607
+ if (!DomHandler.isClickable(event.target)) {
55608
+ onEnterKey(event);
55609
+ }
55610
+ break;
55611
+ case 'Tab':
55612
+ onTabKey();
55613
+ break;
55614
+ }
55615
+ };
55616
+ var onArrowDownKey = function onArrowDownKey(event) {
55617
+ var nextElementSibling = event.currentTarget.nextElementSibling;
55618
+ nextElementSibling && focusRowChange(event.currentTarget, nextElementSibling);
55619
+ event.preventDefault();
55620
+ };
55621
+ var onArrowUpKey = function onArrowUpKey(event) {
55622
+ var previousElementSibling = event.currentTarget.previousElementSibling;
55623
+ previousElementSibling && focusRowChange(event.currentTarget, previousElementSibling);
55624
+ event.preventDefault();
55625
+ };
55626
+ var onArrowRightKey = function onArrowRightKey(event) {
55627
+ var ishiddenIcon = DomHandler.findSingle(event.currentTarget, 'button').style.visibility === 'hidden';
55628
+ DomHandler.findSingle(elementRef.current, '[data-pc-section="rowtoggler"]');
55629
+ if (ishiddenIcon) return;
55216
55630
 
55217
- //up arrow
55218
- case 38:
55219
- var previousRow = rowElement.previousElementSibling;
55220
- if (previousRow) {
55221
- previousRow.focus();
55222
- }
55223
- event.preventDefault();
55224
- break;
55631
+ // !expanded && togglerElement.click();
55632
+ !expanded && expand(event, true);
55225
55633
 
55226
- //right arrow
55227
- case 39:
55228
- if (!expanded) {
55229
- expand(event);
55230
- }
55231
- event.preventDefault();
55232
- break;
55634
+ // this.$nextTick(() => {
55635
+ // this.onArrowDownKey(event);
55636
+ // });
55233
55637
 
55234
- //left arrow
55235
- case 37:
55236
- if (expanded) {
55237
- collapse(event);
55238
- }
55239
- event.preventDefault();
55240
- break;
55638
+ event.preventDefault();
55639
+ };
55640
+ var onArrowLeftKey = function onArrowLeftKey(event) {
55641
+ if (props.level === 0 && !expanded) {
55642
+ return;
55643
+ }
55644
+ var currentTarget = event.currentTarget;
55645
+ var ishiddenIcon = DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';
55646
+ DomHandler.findSingle(currentTarget, '[data-pc-section="rowtoggler"]');
55647
+ if (expanded && !ishiddenIcon) {
55648
+ // togglerElement.click();
55649
+ collapse(event);
55650
+ return;
55651
+ }
55652
+ var target = findBeforeClickableNode(currentTarget);
55653
+ target && focusRowChange(currentTarget, target);
55654
+ };
55655
+ var onHomeKey = function onHomeKey(event) {
55656
+ var findFirstElement = DomHandler.findSingle(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
55657
+ findFirstElement && DomHandler.focus(findFirstElement);
55658
+ event.preventDefault();
55659
+ };
55660
+ var onEndKey = function onEndKey(event) {
55661
+ var nodes = DomHandler.find(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
55662
+ var findFirstElement = nodes[nodes.length - 1];
55663
+ DomHandler.focus(findFirstElement);
55664
+ event.preventDefault();
55665
+ };
55666
+ var onEnterKey = function onEnterKey(event) {
55667
+ event.preventDefault();
55668
+ setTabIndexForSelectionMode(event, nodeTouched.current);
55669
+ if (props.selectionMode === 'checkbox') {
55670
+ // this.toggleCheckbox();
55671
+ onCheckboxChange(event);
55672
+ return;
55673
+ }
55241
55674
 
55242
- //enter
55243
- case 13:
55244
- _onClick(event);
55245
- event.preventDefault();
55246
- break;
55675
+ // this.$emit('node-click', {
55676
+ // originalEvent: event,
55677
+ // nodeTouched: nodeTouched.current,
55678
+ // node: this.node
55679
+ // });
55680
+
55681
+ props.onRowClick(event, props.node);
55682
+ nodeTouched.current = false;
55683
+ };
55684
+ var onTabKey = function onTabKey() {
55685
+ var rows = _toConsumableArray(DomHandler.find(elementRef.current.parentElement, 'tr'));
55686
+ var hasSelectedRow = rows.some(function (row) {
55687
+ return DomHandler.getAttribute(row, 'data-p-highlight') || row.getAttribute('aria-checked') === 'true';
55688
+ });
55689
+ rows.forEach(function (row) {
55690
+ row.tabIndex = -1;
55691
+ });
55692
+ if (hasSelectedRow) {
55693
+ var selectedNodes = rows.filter(function (node) {
55694
+ return DomHandler.getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === 'true';
55695
+ });
55696
+ selectedNodes[0].tabIndex = 0;
55697
+ return;
55698
+ }
55699
+ rows[0].tabIndex = 0;
55700
+ };
55701
+ var focusRowChange = function focusRowChange(firstFocusableRow, currentFocusedRow) {
55702
+ firstFocusableRow.tabIndex = '-1';
55703
+ currentFocusedRow.tabIndex = '0';
55704
+ DomHandler.focus(currentFocusedRow);
55705
+ };
55706
+ var findBeforeClickableNode = function findBeforeClickableNode(node) {
55707
+ var prevNode = node.previousElementSibling;
55708
+ if (prevNode) {
55709
+ var prevNodeButton = prevNode.querySelector('button');
55710
+ if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {
55711
+ return prevNode;
55712
+ }
55713
+ return findBeforeClickableNode(prevNode);
55714
+ }
55715
+ return null;
55716
+ };
55717
+ var setTabIndexForSelectionMode = function setTabIndexForSelectionMode(event, nodeTouched) {
55718
+ if (props.selectionMode !== null) {
55719
+ var elements = _toConsumableArray(DomHandler.find(elementRef.current.parentElement, 'tr'));
55720
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
55721
+ if (elements.every(function (element) {
55722
+ return element.tabIndex === -1;
55723
+ })) {
55724
+ elements[0].tabIndex = 0;
55247
55725
  }
55248
55726
  }
55249
55727
  };
@@ -55428,6 +55906,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55428
55906
  var rowProps = mergeProps({
55429
55907
  tabIndex: 0,
55430
55908
  className: className,
55909
+ 'aria-expanded': expanded,
55910
+ 'aria-level': props.level + 1,
55911
+ 'aria-posinset': props.ariaPosInSet,
55912
+ 'aria-setsize': props.ariaSetSize,
55913
+ 'aria-checked': isChecked(),
55914
+ 'aria-selected': isSelected(),
55431
55915
  style: props.node.style,
55432
55916
  onClick: function onClick(e) {
55433
55917
  return _onClick(e);
@@ -55619,6 +56103,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55619
56103
  key: "".concat(node.key || JSON.stringify(node.data), "_").concat(index),
55620
56104
  level: 0,
55621
56105
  rowIndex: index,
56106
+ ariaSetSize: props.value.length,
56107
+ ariaPosInSet: index + 1,
55622
56108
  selectOnEdit: props.selectOnEdit,
55623
56109
  node: node,
55624
56110
  originalOptions: props.originalOptions,
@@ -55682,6 +56168,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55682
56168
  };
55683
56169
  var content = props.value && props.value.length ? createRows() : createEmptyMessage();
55684
56170
  var tbodyProps = mergeProps({
56171
+ role: 'rowgroup',
55685
56172
  className: cx('tbody')
55686
56173
  }, getPTOptions('tbody'));
55687
56174
  return /*#__PURE__*/React__namespace.createElement("tbody", tbodyProps, content);
@@ -55728,7 +56215,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55728
56215
  var rowColumns = React__namespace.Children.toArray(RowBase.getCProp(row, 'children'));
55729
56216
  var rowFooterCells = rowColumns.map(createFooterCell);
55730
56217
  var footerRowProps = mergeProps(ptm('footerRow', {
55731
- hostName: props.hostName
56218
+ hostName: props.hostName,
56219
+ role: 'row'
55732
56220
  }));
55733
56221
  return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, footerRowProps, {
55734
56222
  key: index
@@ -55757,6 +56245,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55757
56245
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
55758
56246
  if (hasFooter()) {
55759
56247
  var tfootProps = mergeProps({
56248
+ role: 'rowgroup',
55760
56249
  className: cx('tfoot')
55761
56250
  }, ptm('tfoot', {
55762
56251
  hostName: props.hostName
@@ -55817,7 +56306,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55817
56306
  }
55818
56307
  };
55819
56308
  var onHeaderKeyDown = function onHeaderKeyDown(event, column) {
55820
- if (event.key === 'Enter') {
56309
+ if (event.key === 'Enter' && event.key === 'Space') {
55821
56310
  onHeaderClick(event, column);
55822
56311
  event.preventDefault();
55823
56312
  }
@@ -55991,6 +56480,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
55991
56480
  if (options.filterOnly) {
55992
56481
  var frozen = getColumnProp(column, 'frozen');
55993
56482
  var headerCellProps = mergeProps({
56483
+ role: 'columnheader',
55994
56484
  key: getColumnProp(column, 'columnKey') || getColumnProp(column, 'field') || options.index,
55995
56485
  className: classNames(cx('headerCell', {
55996
56486
  options: options,
@@ -56022,11 +56512,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56022
56512
  var sortIconElement = createSortIcon(column, sorted, sortOrder);
56023
56513
  var ariaSortData = getAriaSort(column, sorted, sortOrder);
56024
56514
  var sortBadge = createSortBadge(column, sortMetaDataIndex);
56515
+ var ariaSort = sorted ? sortOrder ? sortOrder < 0 ? 'descending' : 'ascending' : 'none' : null;
56025
56516
  var headerTooltip = getColumnProp(column, 'headerTooltip');
56026
56517
  var hasTooltip = ObjectUtils.isNotEmpty(headerTooltip);
56027
56518
  var title = createTitle(column, options);
56028
56519
  var resizer = createResizer(column);
56029
- var _headerCellProps = mergeProps({
56520
+ var sortable = getColumnProp(column, 'sortable');
56521
+ var _headerCellProps = mergeProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
56522
+ role: 'columnheader',
56030
56523
  className: classNames(getColumnProp(column, 'headerClassName') || getColumnProp(column, 'className'), cx('headerCell', {
56031
56524
  headerProps: props,
56032
56525
  frozen: _frozen,
@@ -56037,7 +56530,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56037
56530
  align: align
56038
56531
  })),
56039
56532
  style: getColumnProp(column, 'headerStyle') || getColumnProp(column, 'style'),
56040
- tabIndex: getColumnProp(column, 'sortable') ? props.tabIndex : null,
56533
+ tabIndex: sortable ? props.tabIndex : null,
56534
+ 'aria-sort': ariaSort,
56041
56535
  onClick: function onClick(e) {
56042
56536
  return onHeaderClick(e, column);
56043
56537
  },
@@ -56048,25 +56542,16 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56048
56542
  return onHeaderKeyDown(e, column);
56049
56543
  },
56050
56544
  rowSpan: getColumnProp(column, 'rowSpan'),
56051
- colSpan: getColumnProp(column, 'colSpan'),
56052
- 'aria-sort': ariaSortData,
56053
- onDragStart: function onDragStart(e) {
56054
- return _onDragStart(e, column);
56055
- },
56056
- onDragOver: function onDragOver(e) {
56057
- return _onDragOver(e, column);
56058
- },
56059
- onDragLeave: function onDragLeave(e) {
56060
- return _onDragLeave(e, column);
56061
- },
56062
- onDrop: function onDrop(e) {
56063
- return _onDrop(e, column);
56064
- },
56065
- 'data-p-sortable-column': getColumnProp(column, 'sortable'),
56066
- 'data-p-resizable-column': props.resizableColumns,
56067
- 'data-p-highlight': sorted,
56068
- 'data-p-frozen-column': getColumnProp(column, 'frozen')
56069
- }, getColumnPTOptions(column, 'root'), getColumnPTOptions(column, 'headerCell', {
56545
+ colSpan: getColumnProp(column, 'colSpan')
56546
+ }, "aria-sort", ariaSortData), "onDragStart", function onDragStart(e) {
56547
+ return _onDragStart(e, column);
56548
+ }), "onDragOver", function onDragOver(e) {
56549
+ return _onDragOver(e, column);
56550
+ }), "onDragLeave", function onDragLeave(e) {
56551
+ return _onDragLeave(e, column);
56552
+ }), "onDrop", function onDrop(e) {
56553
+ return _onDrop(e, column);
56554
+ }), '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', {
56070
56555
  context: {
56071
56556
  sorted: sorted,
56072
56557
  frozen: _frozen,
@@ -56101,7 +56586,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56101
56586
  var headerRowProps = mergeProps(ptm('headerRow', {
56102
56587
  hostName: props.hostName
56103
56588
  }));
56104
- return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, headerRowProps, {
56589
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
56590
+ role: "row"
56591
+ }, headerRowProps, {
56105
56592
  key: index
56106
56593
  }), rowHeaderCells);
56107
56594
  };
@@ -56112,7 +56599,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56112
56599
  var createColumns = function createColumns(columns) {
56113
56600
  if (columns) {
56114
56601
  var headerRowProps = mergeProps(ptm('headerRow', {
56115
- hostName: props.hostName
56602
+ hostName: props.hostName,
56603
+ role: 'row'
56116
56604
  }));
56117
56605
  if (hasColumnFilter(columns)) {
56118
56606
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
@@ -56129,7 +56617,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56129
56617
  });
56130
56618
  })));
56131
56619
  } else {
56132
- return /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
56620
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
56621
+ role: "row"
56622
+ }, headerRowProps), columns.map(function (col, i) {
56133
56623
  return createHeaderCell(col, {
56134
56624
  index: i,
56135
56625
  filterOnly: false,
@@ -56143,6 +56633,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56143
56633
  };
56144
56634
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
56145
56635
  var theadProps = mergeProps({
56636
+ role: 'rowgroup',
56146
56637
  className: cx('thead')
56147
56638
  }, ptm('thead', {
56148
56639
  hostName: props.hostName
@@ -56393,6 +56884,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56393
56884
  var columnSortable = React__namespace.useRef(null);
56394
56885
  var columnSortFunction = React__namespace.useRef(null);
56395
56886
  var columnField = React__namespace.useRef(null);
56887
+ var childFocusEvent = React__namespace.useRef(null);
56396
56888
  var _useEventListener = useEventListener({
56397
56889
  type: 'mousemove',
56398
56890
  listener: function listener(event) {
@@ -56417,10 +56909,19 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
56417
56909
  bindDocumentMouseUpListener = _useEventListener4[0],
56418
56910
  unbindDocumentMouseUpListener = _useEventListener4[1];
56419
56911
  var onToggle = function onToggle(event) {
56912
+ var originalEvent = event.originalEvent,
56913
+ value = event.value,
56914
+ navigateFocusToChild = event.navigateFocusToChild;
56420
56915
  if (props.onToggle) {
56421
- props.onToggle(event);
56916
+ props.onToggle({
56917
+ originalEvent: originalEvent,
56918
+ value: value
56919
+ });
56422
56920
  } else {
56423
- setExpandedKeysState(event.value);
56921
+ if (navigateFocusToChild) {
56922
+ childFocusEvent.current = originalEvent;
56923
+ }
56924
+ setExpandedKeysState(value);
56424
56925
  }
56425
56926
  };
56426
56927
  var onPageChange = function onPageChange(event) {
@@ -57123,6 +57624,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57123
57624
  }
57124
57625
  return data;
57125
57626
  };
57627
+ useUpdateEffect(function () {
57628
+ if (childFocusEvent.current) {
57629
+ var nodeElement = childFocusEvent.current.target;
57630
+ var nextElementSibling = nodeElement.nextElementSibling;
57631
+ if (nextElementSibling) {
57632
+ nodeElement.tabIndex = '-1';
57633
+ nextElementSibling.tabIndex = '0';
57634
+ DomHandler.focus(nextElementSibling);
57635
+ }
57636
+ }
57637
+ }, [expandedKeysState]);
57126
57638
  React__namespace.useImperativeHandle(ref, function () {
57127
57639
  return {
57128
57640
  props: props,
@@ -57272,6 +57784,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57272
57784
  className: ptCallbacks.cx('wrapper')
57273
57785
  }, ptCallbacks.ptm('wrapper'));
57274
57786
  var tableProps = mergeProps({
57787
+ role: 'table',
57275
57788
  style: props.tableStyle,
57276
57789
  className: classNames(props.tableClassName, ptCallbacks.cx('table'))
57277
57790
  }, ptCallbacks.ptm('table'));
@@ -57355,6 +57868,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57355
57868
  ref: reorderIndicatorDownRef
57356
57869
  }, reorderIndicatorDownProps), reorderIndicatorDownIcon);
57357
57870
  var rootProps = mergeProps({
57871
+ role: 'table',
57358
57872
  id: props.id,
57359
57873
  className: classNames(props.className, ptCallbacks.cx('root', {
57360
57874
  isRowSelectionMode: isRowSelectionMode