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.
- package/api/api.cjs.js +20 -0
- package/api/api.cjs.min.js +1 -1
- package/api/api.d.ts +5 -1
- package/api/api.esm.js +20 -0
- package/api/api.esm.min.js +1 -1
- package/api/api.js +20 -0
- package/api/api.min.js +1 -1
- package/calendar/calendar.cjs.js +493 -141
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.d.ts +4 -0
- package/calendar/calendar.esm.js +494 -142
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +493 -141
- package/calendar/calendar.min.js +1 -1
- package/contextmenu/contextmenu.cjs.js +4 -4
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.esm.js +4 -4
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +4 -4
- package/contextmenu/contextmenu.min.js +1 -1
- package/core/core.js +40 -0
- package/core/core.min.js +2 -2
- package/datatable/datatable.cjs.js +3 -0
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +3 -0
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +3 -0
- package/datatable/datatable.min.js +1 -1
- package/dataview/dataview.cjs.js +27 -25
- package/dataview/dataview.cjs.min.js +1 -1
- package/dataview/dataview.d.ts +6 -0
- package/dataview/dataview.esm.js +27 -25
- package/dataview/dataview.esm.min.js +1 -1
- package/dataview/dataview.js +27 -25
- package/dataview/dataview.min.js +1 -1
- package/menubar/menubar.cjs.js +4 -4
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +4 -4
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +4 -4
- package/menubar/menubar.min.js +1 -1
- package/package.json +1 -1
- package/paginator/paginator.cjs.js +20 -0
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.esm.js +20 -0
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +20 -0
- package/paginator/paginator.min.js +1 -1
- package/picklist/picklist.cjs.js +20 -0
- package/picklist/picklist.cjs.min.js +1 -1
- package/picklist/picklist.esm.js +20 -0
- package/picklist/picklist.esm.min.js +1 -1
- package/picklist/picklist.js +20 -0
- package/picklist/picklist.min.js +1 -1
- package/primereact.all.cjs.js +760 -246
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +760 -246
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +760 -246
- package/primereact.all.min.js +1 -1
- package/splitbutton/splitbutton.cjs.js +4 -4
- package/splitbutton/splitbutton.cjs.min.js +1 -1
- package/splitbutton/splitbutton.esm.js +4 -4
- package/splitbutton/splitbutton.esm.min.js +1 -1
- package/splitbutton/splitbutton.js +4 -4
- package/splitbutton/splitbutton.min.js +1 -1
- package/tieredmenu/tieredmenu.cjs.js +4 -4
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +4 -4
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +4 -4
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/toast/toast.cjs.js +20 -0
- package/toast/toast.cjs.min.js +1 -1
- package/toast/toast.esm.js +20 -0
- package/toast/toast.esm.min.js +1 -1
- package/toast/toast.js +20 -0
- package/toast/toast.min.js +1 -1
- package/treetable/treetable.cjs.js +205 -68
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.esm.js +206 -69
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +205 -68
- package/treetable/treetable.min.js +1 -1
- package/web-types.json +16 -1
package/calendar/calendar.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import PrimeReact, { PrimeReactContext, localeOptions
|
|
3
|
+
import PrimeReact, { localeOption, PrimeReactContext, localeOptions } from 'primereact/api';
|
|
4
4
|
import { Button } from 'primereact/button';
|
|
5
5
|
import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
|
|
6
6
|
import { useMergeProps, usePrevious, useOverlayListener, useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';
|
|
@@ -143,13 +143,14 @@ function _slicedToArray(arr, i) {
|
|
|
143
143
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
var styles = "\n@layer primereact {\n .p-calendar {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n }\n
|
|
146
|
+
var styles = "\n@layer primereact {\n .p-calendar {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n }\n\n .p-calendar .p-inputtext {\n flex: 1 1 auto;\n width: 1%;\n }\n\n .p-calendar-w-btn-right .p-inputtext {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .p-calendar-w-btn-right .p-datepicker-trigger {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-calendar-w-btn-left .p-inputtext {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-calendar-w-btn-left .p-datepicker-trigger {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n /* Fluid */\n .p-fluid .p-calendar {\n display: flex;\n }\n\n .p-fluid .p-calendar .p-inputtext {\n width: 1%;\n }\n\n /* Datepicker */\n .p-calendar .p-datepicker {\n min-width: 100%;\n }\n\n .p-datepicker {\n width: auto;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .p-datepicker-inline {\n display: inline-block;\n position: static;\n overflow-x: auto;\n }\n\n /* Header */\n .p-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .p-datepicker-header .p-datepicker-title {\n margin: 0 auto;\n }\n\n .p-datepicker-prev,\n .p-datepicker-next {\n cursor: pointer;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n\n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n\n .p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group {\n flex: 1 1 auto;\n }\n\n /* Multiple Month DatePicker */\n .p-datepicker-multiple-month .p-datepicker-group-container {\n display: flex;\n }\n\n /* DatePicker Table */\n .p-datepicker table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .p-datepicker td > span {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n }\n\n /* Month Picker */\n .p-monthpicker-month {\n width: 33.3%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n\n /* Button Bar */\n .p-datepicker-buttonbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n /* Time Picker */\n .p-timepicker {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .p-timepicker button {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n\n .p-timepicker > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n /* Touch UI */\n .p-datepicker-touch-ui,\n .p-calendar .p-datepicker-touch-ui {\n position: fixed;\n top: 50%;\n left: 50%;\n min-width: 80vw;\n transform: translate(-50%, -50%);\n }\n\n /* Year Picker */\n .p-yearpicker-year {\n width: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n }\n}\n";
|
|
147
147
|
var classes = {
|
|
148
148
|
root: function root(_ref) {
|
|
149
149
|
var props = _ref.props,
|
|
150
150
|
focusedState = _ref.focusedState,
|
|
151
|
-
isFilled = _ref.isFilled
|
|
152
|
-
|
|
151
|
+
isFilled = _ref.isFilled,
|
|
152
|
+
panelVisible = _ref.panelVisible;
|
|
153
|
+
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));
|
|
153
154
|
},
|
|
154
155
|
dropdownButton: 'p-datepicker-trigger',
|
|
155
156
|
buttonbar: 'p-datepicker-buttonbar',
|
|
@@ -228,6 +229,7 @@ var CalendarBase = ComponentBase.extend({
|
|
|
228
229
|
__TYPE: 'Calendar',
|
|
229
230
|
appendTo: null,
|
|
230
231
|
ariaLabelledBy: null,
|
|
232
|
+
ariaLabel: null,
|
|
231
233
|
autoZIndex: true,
|
|
232
234
|
autoFocus: false,
|
|
233
235
|
baseZIndex: 0,
|
|
@@ -335,6 +337,10 @@ var CalendarPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
335
337
|
panelClassName: props.className
|
|
336
338
|
}),
|
|
337
339
|
style: props.style,
|
|
340
|
+
role: props.inline ? null : 'dialog',
|
|
341
|
+
id: props.id,
|
|
342
|
+
'aria-label': localeOption('chooseDate', props.locale),
|
|
343
|
+
'aria-modal': props.inline ? null : 'true',
|
|
338
344
|
onClick: props.onClick,
|
|
339
345
|
onMouseUp: props.onMouseUp
|
|
340
346
|
}, props.ptm('panel', {
|
|
@@ -391,6 +397,10 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
391
397
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
392
398
|
viewDateState = _React$useState6[0],
|
|
393
399
|
setViewDateState = _React$useState6[1];
|
|
400
|
+
var _React$useState7 = React.useState(props.id),
|
|
401
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
402
|
+
idState = _React$useState8[0],
|
|
403
|
+
setIdState = _React$useState8[1];
|
|
394
404
|
var metaData = {
|
|
395
405
|
props: props,
|
|
396
406
|
state: {
|
|
@@ -419,26 +429,29 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
419
429
|
var isOverlayClicked = React.useRef(false);
|
|
420
430
|
var previousButton = React.useRef(false);
|
|
421
431
|
var nextButton = React.useRef(false);
|
|
432
|
+
var viewChangedWithKeyDown = React.useRef(false);
|
|
422
433
|
var onChangeRef = React.useRef(null);
|
|
423
|
-
var
|
|
424
|
-
|
|
425
|
-
currentView = _React$useState8[0],
|
|
426
|
-
setCurrentView = _React$useState8[1];
|
|
427
|
-
var _React$useState9 = React.useState(null),
|
|
434
|
+
var isClearClicked = React.useRef(false);
|
|
435
|
+
var _React$useState9 = React.useState('date'),
|
|
428
436
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
429
|
-
|
|
430
|
-
|
|
437
|
+
currentView = _React$useState10[0],
|
|
438
|
+
setCurrentView = _React$useState10[1];
|
|
431
439
|
var _React$useState11 = React.useState(null),
|
|
432
440
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
var _React$useState13 = React.useState(
|
|
441
|
+
currentMonth = _React$useState12[0],
|
|
442
|
+
setCurrentMonth = _React$useState12[1];
|
|
443
|
+
var _React$useState13 = React.useState(null),
|
|
436
444
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
437
|
-
|
|
438
|
-
|
|
445
|
+
currentYear = _React$useState14[0],
|
|
446
|
+
setCurrentYear = _React$useState14[1];
|
|
447
|
+
var _React$useState15 = React.useState([]),
|
|
448
|
+
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
449
|
+
yearOptions = _React$useState16[0],
|
|
450
|
+
setYearOptions = _React$useState16[1];
|
|
439
451
|
var previousValue = usePrevious(props.value);
|
|
440
452
|
var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
|
|
441
453
|
var attributeSelector = UniqueComponentId();
|
|
454
|
+
var panelId = idState + '_panel';
|
|
442
455
|
var _useOverlayListener = useOverlayListener({
|
|
443
456
|
target: elementRef,
|
|
444
457
|
overlay: overlayRef,
|
|
@@ -446,7 +459,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
446
459
|
var type = _ref.type,
|
|
447
460
|
valid = _ref.valid;
|
|
448
461
|
if (valid) {
|
|
449
|
-
type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
|
|
462
|
+
type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside', reFocusInputField) : hide(null, reFocusInputField);
|
|
450
463
|
}
|
|
451
464
|
isOverlayClicked.current = false;
|
|
452
465
|
},
|
|
@@ -476,21 +489,34 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
476
489
|
setFocusedState(false);
|
|
477
490
|
};
|
|
478
491
|
var onInputKeyDown = function onInputKeyDown(event) {
|
|
479
|
-
switch (event.
|
|
480
|
-
|
|
481
|
-
case 27:
|
|
492
|
+
switch (event.code) {
|
|
493
|
+
case 'ArrowDown':
|
|
482
494
|
{
|
|
483
|
-
|
|
495
|
+
if (!overlayVisibleState) {
|
|
496
|
+
show();
|
|
497
|
+
} else {
|
|
498
|
+
focusToFirstCell();
|
|
499
|
+
event.preventDefault();
|
|
500
|
+
}
|
|
484
501
|
break;
|
|
485
502
|
}
|
|
486
|
-
|
|
487
|
-
//tab
|
|
488
|
-
case 9:
|
|
503
|
+
case 'Escape':
|
|
489
504
|
{
|
|
490
|
-
|
|
505
|
+
hide();
|
|
491
506
|
props.touchUI && disableModality();
|
|
492
507
|
break;
|
|
493
508
|
}
|
|
509
|
+
case 'Tab':
|
|
510
|
+
{
|
|
511
|
+
if (overlayRef && overlayRef.current) {
|
|
512
|
+
DomHandler.getFocusableElements(overlayRef.current).forEach(function (el) {
|
|
513
|
+
return el.tabIndex = '-1';
|
|
514
|
+
});
|
|
515
|
+
hide();
|
|
516
|
+
props.touchUI && disableModality();
|
|
517
|
+
}
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
494
520
|
}
|
|
495
521
|
};
|
|
496
522
|
var onUserInput = function onUserInput(event) {
|
|
@@ -553,28 +579,40 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
553
579
|
navForward(event);
|
|
554
580
|
};
|
|
555
581
|
var onContainerButtonKeydown = function onContainerButtonKeydown(event) {
|
|
556
|
-
switch (event.
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
trapFocus(event);
|
|
582
|
+
switch (event.code) {
|
|
583
|
+
case 'Tab':
|
|
584
|
+
!props.inline && trapFocus(event);
|
|
560
585
|
break;
|
|
561
|
-
|
|
562
|
-
//escape
|
|
563
|
-
case 27:
|
|
586
|
+
case 'Escape':
|
|
564
587
|
hide(null, reFocusInputField);
|
|
565
588
|
event.preventDefault();
|
|
566
589
|
break;
|
|
567
590
|
}
|
|
568
591
|
};
|
|
592
|
+
var onPickerKeyDown = function onPickerKeyDown(event, type, direction) {
|
|
593
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
|
594
|
+
onTimePickerElementMouseDown(event, type, direction);
|
|
595
|
+
event.preventDefault();
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
onContainerButtonKeydown(event);
|
|
599
|
+
};
|
|
600
|
+
var onPickerKeyUp = function onPickerKeyUp(event) {
|
|
601
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
|
602
|
+
onTimePickerElementMouseUp();
|
|
603
|
+
event.preventDefault();
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
};
|
|
569
607
|
var trapFocus = function trapFocus(event) {
|
|
570
|
-
event.preventDefault();
|
|
608
|
+
event === null || event === void 0 || event.preventDefault();
|
|
571
609
|
var focusableElements = DomHandler.getFocusableElements(overlayRef.current);
|
|
572
610
|
if (focusableElements && focusableElements.length > 0) {
|
|
573
611
|
if (!document.activeElement) {
|
|
574
612
|
focusableElements[0].focus();
|
|
575
613
|
} else {
|
|
576
614
|
var focusedIndex = focusableElements.indexOf(document.activeElement);
|
|
577
|
-
if (event.shiftKey) {
|
|
615
|
+
if (event !== null && event !== void 0 && event.shiftKey) {
|
|
578
616
|
if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();
|
|
579
617
|
} else {
|
|
580
618
|
if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();
|
|
@@ -607,7 +645,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
607
645
|
};
|
|
608
646
|
var initFocusableCell = function initFocusableCell() {
|
|
609
647
|
var cell;
|
|
610
|
-
if (
|
|
648
|
+
if (currentView === 'month') {
|
|
611
649
|
var cells = DomHandler.find(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"]');
|
|
612
650
|
var selectedCell = DomHandler.findSingle(overlayRef.current, '[data-pc-section="monthpicker"] [data-pc-section="month"][data-p-highlight="true"]');
|
|
613
651
|
cells.forEach(function (cell) {
|
|
@@ -625,6 +663,27 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
625
663
|
cell.tabIndex = '0';
|
|
626
664
|
}
|
|
627
665
|
};
|
|
666
|
+
var focusToFirstCell = function focusToFirstCell() {
|
|
667
|
+
if (currentView) {
|
|
668
|
+
var cell;
|
|
669
|
+
if (currentView === 'date') {
|
|
670
|
+
cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
|
|
671
|
+
if (!cell) {
|
|
672
|
+
var todayCell = DomHandler.findSingle(overlayRef.current, 'td.p-datepicker-today span:not(.p-disabled)');
|
|
673
|
+
cell = todayCell || DomHandler.findSingle(overlayRef.current, 'table td span:not([data-p-disabled="true"])');
|
|
674
|
+
}
|
|
675
|
+
} else if (currentView === 'month' || currentView === 'year') {
|
|
676
|
+
cell = DomHandler.findSingle(overlayRef.current, 'span[data-p-highlight="true"]');
|
|
677
|
+
if (!cell) {
|
|
678
|
+
cell = DomHandler.findSingle(overlayRef.current, "[data-pc-section=\"".concat(currentView, "picker\"] [data-pc-section=\"").concat(currentView, "\"]:not([data-p-disabled=\"true\"])"));
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
if (cell) {
|
|
682
|
+
cell.tabIndex = '0';
|
|
683
|
+
cell && cell.focus();
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
};
|
|
628
687
|
var navBackward = function navBackward(event) {
|
|
629
688
|
if (props.disabled) {
|
|
630
689
|
event.preventDefault();
|
|
@@ -754,6 +813,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
754
813
|
props.onTodayButtonClick && props.onTodayButtonClick(event);
|
|
755
814
|
};
|
|
756
815
|
var onClearButtonClick = function onClearButtonClick(event) {
|
|
816
|
+
isClearClicked.current = true;
|
|
757
817
|
updateModel(event, null);
|
|
758
818
|
updateInputfield(null);
|
|
759
819
|
hide();
|
|
@@ -1235,23 +1295,29 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1235
1295
|
var onDateCellKeydown = function onDateCellKeydown(event, date, groupIndex) {
|
|
1236
1296
|
var cellContent = event.currentTarget;
|
|
1237
1297
|
var cell = cellContent.parentElement;
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
case
|
|
1298
|
+
var cellIndex = DomHandler.index(cell);
|
|
1299
|
+
switch (event.code) {
|
|
1300
|
+
case 'ArrowDown':
|
|
1241
1301
|
{
|
|
1242
1302
|
cellContent.tabIndex = '-1';
|
|
1243
|
-
var cellIndex = DomHandler.index(cell);
|
|
1244
1303
|
var nextRow = cell.parentElement.nextElementSibling;
|
|
1245
1304
|
if (nextRow) {
|
|
1246
|
-
var
|
|
1247
|
-
|
|
1305
|
+
var tableRowIndex = DomHandler.index(cell.parentElement);
|
|
1306
|
+
var tableRows = Array.from(cell.parentElement.parentElement.children);
|
|
1307
|
+
var nextTableRows = tableRows.slice(tableRowIndex + 1);
|
|
1308
|
+
var hasNextFocusableDate = nextTableRows.find(function (el) {
|
|
1309
|
+
var focusCell = el.children[cellIndex].children[0];
|
|
1310
|
+
return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
|
|
1311
|
+
});
|
|
1312
|
+
if (hasNextFocusableDate) {
|
|
1313
|
+
var focusCell = hasNextFocusableDate.children[cellIndex].children[0];
|
|
1314
|
+
focusCell.tabIndex = '0';
|
|
1315
|
+
focusCell.focus();
|
|
1316
|
+
} else {
|
|
1248
1317
|
navigation.current = {
|
|
1249
1318
|
backward: false
|
|
1250
1319
|
};
|
|
1251
1320
|
navForward(event);
|
|
1252
|
-
} else {
|
|
1253
|
-
nextRow.children[cellIndex].children[0].tabIndex = '0';
|
|
1254
|
-
nextRow.children[cellIndex].children[0].focus();
|
|
1255
1321
|
}
|
|
1256
1322
|
} else {
|
|
1257
1323
|
navigation.current = {
|
|
@@ -1262,46 +1328,58 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1262
1328
|
event.preventDefault();
|
|
1263
1329
|
break;
|
|
1264
1330
|
}
|
|
1265
|
-
|
|
1266
|
-
//up arrow
|
|
1267
|
-
case 38:
|
|
1331
|
+
case 'ArrowUp':
|
|
1268
1332
|
{
|
|
1269
1333
|
cellContent.tabIndex = '-1';
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
var
|
|
1274
|
-
if (
|
|
1334
|
+
if (event.altKey) {
|
|
1335
|
+
hide(null, reFocusInputField);
|
|
1336
|
+
} else {
|
|
1337
|
+
var prevRow = cell.parentElement.previousElementSibling;
|
|
1338
|
+
if (prevRow) {
|
|
1339
|
+
var _tableRowIndex = DomHandler.index(cell.parentElement);
|
|
1340
|
+
var _tableRows = Array.from(cell.parentElement.parentElement.children);
|
|
1341
|
+
var prevTableRows = _tableRows.slice(0, _tableRowIndex).reverse();
|
|
1342
|
+
var _hasNextFocusableDate = prevTableRows.find(function (el) {
|
|
1343
|
+
var focusCell = el.children[cellIndex].children[0];
|
|
1344
|
+
return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
|
|
1345
|
+
});
|
|
1346
|
+
if (_hasNextFocusableDate) {
|
|
1347
|
+
var _focusCell = _hasNextFocusableDate.children[cellIndex].children[0];
|
|
1348
|
+
_focusCell.tabIndex = '0';
|
|
1349
|
+
_focusCell.focus();
|
|
1350
|
+
} else {
|
|
1351
|
+
navigation.current = {
|
|
1352
|
+
backward: true
|
|
1353
|
+
};
|
|
1354
|
+
navBackward(event);
|
|
1355
|
+
}
|
|
1356
|
+
} else {
|
|
1275
1357
|
navigation.current = {
|
|
1276
1358
|
backward: true
|
|
1277
1359
|
};
|
|
1278
1360
|
navBackward(event);
|
|
1279
|
-
} else {
|
|
1280
|
-
_focusCell.tabIndex = '0';
|
|
1281
|
-
_focusCell.focus();
|
|
1282
1361
|
}
|
|
1283
|
-
} else {
|
|
1284
|
-
navigation.current = {
|
|
1285
|
-
backward: true
|
|
1286
|
-
};
|
|
1287
|
-
navBackward(event);
|
|
1288
1362
|
}
|
|
1289
1363
|
event.preventDefault();
|
|
1290
1364
|
break;
|
|
1291
1365
|
}
|
|
1292
|
-
|
|
1293
|
-
//left arrow
|
|
1294
|
-
case 37:
|
|
1366
|
+
case 'ArrowLeft':
|
|
1295
1367
|
{
|
|
1296
1368
|
cellContent.tabIndex = '-1';
|
|
1297
1369
|
var prevCell = cell.previousElementSibling;
|
|
1298
1370
|
if (prevCell) {
|
|
1299
|
-
var
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1371
|
+
var cells = Array.from(cell.parentElement.children);
|
|
1372
|
+
var prevCells = cells.slice(0, cellIndex).reverse();
|
|
1373
|
+
var _hasNextFocusableDate2 = prevCells.find(function (el) {
|
|
1374
|
+
var focusCell = el.children[0];
|
|
1375
|
+
return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
|
|
1376
|
+
});
|
|
1377
|
+
if (_hasNextFocusableDate2) {
|
|
1378
|
+
var _focusCell2 = _hasNextFocusableDate2.children[0];
|
|
1303
1379
|
_focusCell2.tabIndex = '0';
|
|
1304
1380
|
_focusCell2.focus();
|
|
1381
|
+
} else {
|
|
1382
|
+
navigateToMonth(true, groupIndex, event);
|
|
1305
1383
|
}
|
|
1306
1384
|
} else {
|
|
1307
1385
|
navigateToMonth(true, groupIndex, event);
|
|
@@ -1309,19 +1387,23 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1309
1387
|
event.preventDefault();
|
|
1310
1388
|
break;
|
|
1311
1389
|
}
|
|
1312
|
-
|
|
1313
|
-
//right arrow
|
|
1314
|
-
case 39:
|
|
1390
|
+
case 'ArrowRight':
|
|
1315
1391
|
{
|
|
1316
1392
|
cellContent.tabIndex = '-1';
|
|
1317
1393
|
var nextCell = cell.nextElementSibling;
|
|
1318
1394
|
if (nextCell) {
|
|
1319
|
-
var
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1395
|
+
var _cells = Array.from(cell.parentElement.children);
|
|
1396
|
+
var nextCells = _cells.slice(cellIndex + 1);
|
|
1397
|
+
var _hasNextFocusableDate3 = nextCells.find(function (el) {
|
|
1398
|
+
var focusCell = el.children[0];
|
|
1399
|
+
return !DomHandler.getAttribute(focusCell, 'data-p-disabled');
|
|
1400
|
+
});
|
|
1401
|
+
if (_hasNextFocusableDate3) {
|
|
1402
|
+
var _focusCell3 = _hasNextFocusableDate3.children[0];
|
|
1323
1403
|
_focusCell3.tabIndex = '0';
|
|
1324
1404
|
_focusCell3.focus();
|
|
1405
|
+
} else {
|
|
1406
|
+
navigateToMonth(false, groupIndex, event);
|
|
1325
1407
|
}
|
|
1326
1408
|
} else {
|
|
1327
1409
|
navigateToMonth(false, groupIndex, event);
|
|
@@ -1329,27 +1411,75 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1329
1411
|
event.preventDefault();
|
|
1330
1412
|
break;
|
|
1331
1413
|
}
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
case
|
|
1414
|
+
case 'Enter':
|
|
1415
|
+
case 'NumpadEnter':
|
|
1416
|
+
case 'Space':
|
|
1335
1417
|
{
|
|
1336
1418
|
onDateSelect(event, date);
|
|
1337
1419
|
event.preventDefault();
|
|
1338
1420
|
break;
|
|
1339
1421
|
}
|
|
1340
|
-
|
|
1341
|
-
//escape
|
|
1342
|
-
case 27:
|
|
1422
|
+
case 'Escape':
|
|
1343
1423
|
{
|
|
1344
1424
|
hide(null, reFocusInputField);
|
|
1345
1425
|
event.preventDefault();
|
|
1346
1426
|
break;
|
|
1347
1427
|
}
|
|
1348
|
-
|
|
1349
|
-
//tab
|
|
1350
|
-
case 9:
|
|
1428
|
+
case 'Tab':
|
|
1351
1429
|
{
|
|
1352
|
-
trapFocus(event);
|
|
1430
|
+
if (!props.inline) trapFocus(event);
|
|
1431
|
+
break;
|
|
1432
|
+
}
|
|
1433
|
+
case 'Home':
|
|
1434
|
+
{
|
|
1435
|
+
cellContent.tabIndex = '-1';
|
|
1436
|
+
var currentRow = cell.parentElement;
|
|
1437
|
+
var _focusCell4 = currentRow.children[0].children[0];
|
|
1438
|
+
if (DomHandler.getAttribute(_focusCell4, 'data-p-disabled')) {
|
|
1439
|
+
navigateToMonth(groupIndex, true, event);
|
|
1440
|
+
} else {
|
|
1441
|
+
_focusCell4.tabIndex = '0';
|
|
1442
|
+
_focusCell4.focus();
|
|
1443
|
+
}
|
|
1444
|
+
event.preventDefault();
|
|
1445
|
+
break;
|
|
1446
|
+
}
|
|
1447
|
+
case 'End':
|
|
1448
|
+
{
|
|
1449
|
+
cellContent.tabIndex = '-1';
|
|
1450
|
+
var _currentRow = cell.parentElement;
|
|
1451
|
+
var _focusCell5 = _currentRow.children[_currentRow.children.length - 1].children[0];
|
|
1452
|
+
if (DomHandler.getAttribute(_focusCell5, 'data-p-disabled')) {
|
|
1453
|
+
navigateToMonth(groupIndex, false, event);
|
|
1454
|
+
} else {
|
|
1455
|
+
_focusCell5.tabIndex = '0';
|
|
1456
|
+
_focusCell5.focus();
|
|
1457
|
+
}
|
|
1458
|
+
event.preventDefault();
|
|
1459
|
+
break;
|
|
1460
|
+
}
|
|
1461
|
+
case 'PageUp':
|
|
1462
|
+
{
|
|
1463
|
+
cellContent.tabIndex = '-1';
|
|
1464
|
+
if (event.shiftKey) {
|
|
1465
|
+
navigation.current = {
|
|
1466
|
+
backward: true
|
|
1467
|
+
};
|
|
1468
|
+
navBackward(event);
|
|
1469
|
+
} else navigateToMonth(groupIndex, true, event);
|
|
1470
|
+
event.preventDefault();
|
|
1471
|
+
break;
|
|
1472
|
+
}
|
|
1473
|
+
case 'PageDown':
|
|
1474
|
+
{
|
|
1475
|
+
cellContent.tabIndex = '-1';
|
|
1476
|
+
if (event.shiftKey) {
|
|
1477
|
+
navigation.current = {
|
|
1478
|
+
backward: false
|
|
1479
|
+
};
|
|
1480
|
+
navForward(event);
|
|
1481
|
+
} else navigateToMonth(groupIndex, false, event);
|
|
1482
|
+
event.preventDefault();
|
|
1353
1483
|
break;
|
|
1354
1484
|
}
|
|
1355
1485
|
}
|
|
@@ -1376,18 +1506,18 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1376
1506
|
navForward(event);
|
|
1377
1507
|
} else {
|
|
1378
1508
|
var nextMonthContainer = overlayRef.current.children[groupIndex + 1];
|
|
1379
|
-
var
|
|
1380
|
-
|
|
1381
|
-
|
|
1509
|
+
var _focusCell6 = DomHandler.findSingle(nextMonthContainer, 'table td span:not([data-p-disabled="true"])');
|
|
1510
|
+
_focusCell6.tabIndex = '0';
|
|
1511
|
+
_focusCell6.focus();
|
|
1382
1512
|
}
|
|
1383
1513
|
}
|
|
1384
1514
|
};
|
|
1385
1515
|
var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
|
|
1386
1516
|
var cell = event.currentTarget;
|
|
1387
|
-
switch (event.
|
|
1517
|
+
switch (event.code) {
|
|
1388
1518
|
//arrows
|
|
1389
|
-
case
|
|
1390
|
-
case
|
|
1519
|
+
case 'ArrowUp':
|
|
1520
|
+
case 'ArrowDown':
|
|
1391
1521
|
{
|
|
1392
1522
|
cell.tabIndex = '-1';
|
|
1393
1523
|
var cells = cell.parentElement.children;
|
|
@@ -1400,51 +1530,162 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1400
1530
|
event.preventDefault();
|
|
1401
1531
|
break;
|
|
1402
1532
|
}
|
|
1403
|
-
|
|
1404
|
-
//left arrow
|
|
1405
|
-
case 37:
|
|
1533
|
+
case 'ArrowLeft':
|
|
1406
1534
|
{
|
|
1407
1535
|
cell.tabIndex = '-1';
|
|
1408
1536
|
var prevCell = cell.previousElementSibling;
|
|
1409
1537
|
if (prevCell) {
|
|
1410
1538
|
prevCell.tabIndex = '0';
|
|
1411
1539
|
prevCell.focus();
|
|
1540
|
+
} else {
|
|
1541
|
+
navigation.current = {
|
|
1542
|
+
backward: true
|
|
1543
|
+
};
|
|
1544
|
+
navBackward(event);
|
|
1412
1545
|
}
|
|
1413
1546
|
event.preventDefault();
|
|
1414
1547
|
break;
|
|
1415
1548
|
}
|
|
1416
|
-
|
|
1417
|
-
//right arrow
|
|
1418
|
-
case 39:
|
|
1549
|
+
case 'ArrowRight':
|
|
1419
1550
|
{
|
|
1420
1551
|
cell.tabIndex = '-1';
|
|
1421
1552
|
var _nextCell = cell.nextElementSibling;
|
|
1422
1553
|
if (_nextCell) {
|
|
1423
1554
|
_nextCell.tabIndex = '0';
|
|
1424
1555
|
_nextCell.focus();
|
|
1556
|
+
} else {
|
|
1557
|
+
navigation.current = {
|
|
1558
|
+
backward: false
|
|
1559
|
+
};
|
|
1560
|
+
navForward(event);
|
|
1425
1561
|
}
|
|
1426
1562
|
event.preventDefault();
|
|
1427
1563
|
break;
|
|
1428
1564
|
}
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1565
|
+
case 'PageUp':
|
|
1566
|
+
{
|
|
1567
|
+
if (event.shiftKey) return;
|
|
1568
|
+
navigation.current = {
|
|
1569
|
+
backward: true
|
|
1570
|
+
};
|
|
1571
|
+
navBackward(event);
|
|
1572
|
+
break;
|
|
1573
|
+
}
|
|
1574
|
+
case 'PageDown':
|
|
1575
|
+
{
|
|
1576
|
+
if (event.shiftKey) return;
|
|
1577
|
+
navigation.current = {
|
|
1578
|
+
backward: false
|
|
1579
|
+
};
|
|
1580
|
+
navForward(event);
|
|
1581
|
+
break;
|
|
1582
|
+
}
|
|
1583
|
+
case 'Enter':
|
|
1584
|
+
case 'NumpadEnter':
|
|
1585
|
+
case 'Space':
|
|
1432
1586
|
{
|
|
1587
|
+
if (props.view !== 'month') viewChangedWithKeyDown.current = true;
|
|
1433
1588
|
onMonthSelect(event, index);
|
|
1434
1589
|
event.preventDefault();
|
|
1435
1590
|
break;
|
|
1436
1591
|
}
|
|
1437
|
-
|
|
1438
|
-
//escape
|
|
1439
|
-
case 27:
|
|
1592
|
+
case 'Escape':
|
|
1440
1593
|
{
|
|
1441
1594
|
hide(null, reFocusInputField);
|
|
1442
1595
|
event.preventDefault();
|
|
1443
1596
|
break;
|
|
1444
1597
|
}
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1598
|
+
case 'Tab':
|
|
1599
|
+
{
|
|
1600
|
+
trapFocus(event);
|
|
1601
|
+
break;
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
};
|
|
1605
|
+
var onYearCellKeydown = function onYearCellKeydown(event, index) {
|
|
1606
|
+
var cell = event.currentTarget;
|
|
1607
|
+
switch (event.code) {
|
|
1608
|
+
//arrows
|
|
1609
|
+
case 'ArrowUp':
|
|
1610
|
+
case 'ArrowDown':
|
|
1611
|
+
{
|
|
1612
|
+
cell.tabIndex = '-1';
|
|
1613
|
+
var cells = cell.parentElement.children;
|
|
1614
|
+
var cellIndex = DomHandler.index(cell);
|
|
1615
|
+
var nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 2 : cellIndex - 2];
|
|
1616
|
+
if (nextCell) {
|
|
1617
|
+
nextCell.tabIndex = '0';
|
|
1618
|
+
nextCell.focus();
|
|
1619
|
+
}
|
|
1620
|
+
event.preventDefault();
|
|
1621
|
+
break;
|
|
1622
|
+
}
|
|
1623
|
+
case 'ArrowLeft':
|
|
1624
|
+
{
|
|
1625
|
+
cell.tabIndex = '-1';
|
|
1626
|
+
var prevCell = cell.previousElementSibling;
|
|
1627
|
+
if (prevCell) {
|
|
1628
|
+
prevCell.tabIndex = '0';
|
|
1629
|
+
prevCell.focus();
|
|
1630
|
+
} else {
|
|
1631
|
+
navigation.current = {
|
|
1632
|
+
backward: true
|
|
1633
|
+
};
|
|
1634
|
+
navBackward(event);
|
|
1635
|
+
}
|
|
1636
|
+
event.preventDefault();
|
|
1637
|
+
break;
|
|
1638
|
+
}
|
|
1639
|
+
case 'ArrowRight':
|
|
1640
|
+
{
|
|
1641
|
+
cell.tabIndex = '-1';
|
|
1642
|
+
var _nextCell2 = cell.nextElementSibling;
|
|
1643
|
+
if (_nextCell2) {
|
|
1644
|
+
_nextCell2.tabIndex = '0';
|
|
1645
|
+
_nextCell2.focus();
|
|
1646
|
+
} else {
|
|
1647
|
+
navigation.current = {
|
|
1648
|
+
backward: false
|
|
1649
|
+
};
|
|
1650
|
+
navForward(event);
|
|
1651
|
+
}
|
|
1652
|
+
event.preventDefault();
|
|
1653
|
+
break;
|
|
1654
|
+
}
|
|
1655
|
+
case 'PageUp':
|
|
1656
|
+
{
|
|
1657
|
+
if (event.shiftKey) return;
|
|
1658
|
+
navigation.current = {
|
|
1659
|
+
backward: true
|
|
1660
|
+
};
|
|
1661
|
+
navBackward(event);
|
|
1662
|
+
break;
|
|
1663
|
+
}
|
|
1664
|
+
case 'PageDown':
|
|
1665
|
+
{
|
|
1666
|
+
if (event.shiftKey) return;
|
|
1667
|
+
navigation.current = {
|
|
1668
|
+
backward: false
|
|
1669
|
+
};
|
|
1670
|
+
navForward(event);
|
|
1671
|
+
break;
|
|
1672
|
+
}
|
|
1673
|
+
case 'Enter':
|
|
1674
|
+
case 'NumpadEnter':
|
|
1675
|
+
case 'Space':
|
|
1676
|
+
{
|
|
1677
|
+
if (props.view !== 'year') viewChangedWithKeyDown.current = true;
|
|
1678
|
+
onYearSelect(event, index);
|
|
1679
|
+
event.preventDefault();
|
|
1680
|
+
break;
|
|
1681
|
+
}
|
|
1682
|
+
case 'Escape':
|
|
1683
|
+
{
|
|
1684
|
+
hide(null, reFocusInputField);
|
|
1685
|
+
event.preventDefault();
|
|
1686
|
+
break;
|
|
1687
|
+
}
|
|
1688
|
+
case 'Tab':
|
|
1448
1689
|
{
|
|
1449
1690
|
trapFocus(event);
|
|
1450
1691
|
break;
|
|
@@ -1561,10 +1802,16 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1561
1802
|
return _currentYear;
|
|
1562
1803
|
};
|
|
1563
1804
|
var switchToMonthView = function switchToMonthView(event) {
|
|
1805
|
+
if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
|
|
1806
|
+
viewChangedWithKeyDown.current = true;
|
|
1807
|
+
}
|
|
1564
1808
|
setCurrentView('month');
|
|
1565
1809
|
event.preventDefault();
|
|
1566
1810
|
};
|
|
1567
1811
|
var switchToYearView = function switchToYearView(event) {
|
|
1812
|
+
if (event && event.code && (event.code === 'Enter' || event.code === 'Space')) {
|
|
1813
|
+
viewChangedWithKeyDown.current = true;
|
|
1814
|
+
}
|
|
1568
1815
|
setCurrentView('year');
|
|
1569
1816
|
event.preventDefault();
|
|
1570
1817
|
};
|
|
@@ -1705,7 +1952,6 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1705
1952
|
var onOverlayEntered = function onOverlayEntered() {
|
|
1706
1953
|
bindOverlayListener();
|
|
1707
1954
|
props.onShow && props.onShow();
|
|
1708
|
-
DomHandler.focusFirstElement(overlayRef.current);
|
|
1709
1955
|
setFocusedState(false);
|
|
1710
1956
|
};
|
|
1711
1957
|
var onOverlayExit = function onOverlayExit() {
|
|
@@ -2576,6 +2822,10 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2576
2822
|
setCurrentMonth(viewDate.getMonth());
|
|
2577
2823
|
setCurrentYear(viewDate.getFullYear());
|
|
2578
2824
|
setCurrentView(props.view);
|
|
2825
|
+
if (!idState) {
|
|
2826
|
+
var uniqueId = UniqueComponentId();
|
|
2827
|
+
!idState && setIdState(uniqueId);
|
|
2828
|
+
}
|
|
2579
2829
|
if (props.inline) {
|
|
2580
2830
|
overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
|
|
2581
2831
|
if (!props.disabled) {
|
|
@@ -2623,8 +2873,14 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2623
2873
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2624
2874
|
}, [props.disabled, props.mask, props.readOnlyInput]);
|
|
2625
2875
|
useUpdateEffect(function () {
|
|
2626
|
-
|
|
2876
|
+
if (viewChangedWithKeyDown.current) {
|
|
2877
|
+
setCurrentView(props.view);
|
|
2878
|
+
}
|
|
2879
|
+
viewChangedWithKeyDown.current = false;
|
|
2627
2880
|
}, [props.view]);
|
|
2881
|
+
useUpdateEffect(function () {
|
|
2882
|
+
focusToFirstCell();
|
|
2883
|
+
}, [currentView]);
|
|
2628
2884
|
useUpdateEffect(function () {
|
|
2629
2885
|
if (!props.onViewDateChange && !viewStateChanged.current) {
|
|
2630
2886
|
setValue(props.value);
|
|
@@ -2715,12 +2971,16 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2715
2971
|
if (Array.isArray(prevPropValue)) {
|
|
2716
2972
|
prevPropValue = prevPropValue[0];
|
|
2717
2973
|
}
|
|
2974
|
+
var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
|
|
2975
|
+
if (isClearClicked.current && props.showTime) {
|
|
2976
|
+
viewDate.setHours(0, 0, 0);
|
|
2977
|
+
isClearClicked.current = false;
|
|
2978
|
+
}
|
|
2718
2979
|
if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
|
|
2719
|
-
var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
|
|
2720
2980
|
validateDate(viewDate);
|
|
2721
|
-
setViewDateState(viewDate);
|
|
2722
|
-
viewStateChanged.current = true;
|
|
2723
2981
|
}
|
|
2982
|
+
setViewDateState(viewDate);
|
|
2983
|
+
viewStateChanged.current = true;
|
|
2724
2984
|
};
|
|
2725
2985
|
var createBackwardNavigator = function createBackwardNavigator(isVisible) {
|
|
2726
2986
|
var navigatorProps = isVisible ? {
|
|
@@ -2740,9 +3000,15 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2740
3000
|
var backwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, previousIconProps), {
|
|
2741
3001
|
props: props
|
|
2742
3002
|
});
|
|
3003
|
+
var _localeOptions4 = localeOptions(props.locale),
|
|
3004
|
+
prevDecade = _localeOptions4.prevDecade,
|
|
3005
|
+
prevYear = _localeOptions4.prevYear,
|
|
3006
|
+
prevMonth = _localeOptions4.prevMonth;
|
|
3007
|
+
var previousButtonLabel = currentView === 'year' ? prevDecade : currentView === 'month' ? prevYear : prevMonth;
|
|
2743
3008
|
var previousButtonProps = mergeProps(_objectSpread({
|
|
2744
3009
|
type: 'button',
|
|
2745
|
-
className: cx('previousButton')
|
|
3010
|
+
className: cx('previousButton'),
|
|
3011
|
+
'aria-label': previousButtonLabel
|
|
2746
3012
|
}, navigatorProps), ptm('previousButton'));
|
|
2747
3013
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
2748
3014
|
ref: previousButton
|
|
@@ -2766,9 +3032,15 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2766
3032
|
var forwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, nextIconProps), {
|
|
2767
3033
|
props: props
|
|
2768
3034
|
});
|
|
3035
|
+
var _localeOptions5 = localeOptions(props.locale),
|
|
3036
|
+
nextDecade = _localeOptions5.nextDecade,
|
|
3037
|
+
nextYear = _localeOptions5.nextYear,
|
|
3038
|
+
nextMonth = _localeOptions5.nextMonth;
|
|
3039
|
+
var nextButtonLabel = currentView === 'year' ? nextDecade : currentView === 'month' ? nextYear : nextMonth;
|
|
2769
3040
|
var nextButtonProps = mergeProps(_objectSpread({
|
|
2770
3041
|
type: 'button',
|
|
2771
|
-
className: cx('nextButton')
|
|
3042
|
+
className: cx('nextButton'),
|
|
3043
|
+
'aria-label': nextButtonLabel
|
|
2772
3044
|
}, navigatorProps), ptm('nextButton'));
|
|
2773
3045
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
2774
3046
|
ref: nextButton
|
|
@@ -2825,6 +3097,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2825
3097
|
}
|
|
2826
3098
|
var monthTitleProps = mergeProps({
|
|
2827
3099
|
className: cx('monthTitle'),
|
|
3100
|
+
onKeyDown: onContainerButtonKeydown,
|
|
3101
|
+
'aria-label': localeOption('chooseMonth', props.locale),
|
|
2828
3102
|
onClick: switchToMonthView,
|
|
2829
3103
|
disabled: switchViewButtonDisabled()
|
|
2830
3104
|
}, ptm('monthTitle'));
|
|
@@ -2883,6 +3157,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2883
3157
|
var displayYear = props.numberOfMonths > 1 ? metaYear : currentYear;
|
|
2884
3158
|
var yearTitleProps = mergeProps({
|
|
2885
3159
|
className: cx('yearTitle'),
|
|
3160
|
+
'aria-label': localeOption('chooseYear', props.locale),
|
|
2886
3161
|
onClick: function onClick(e) {
|
|
2887
3162
|
return switchToYearView(e);
|
|
2888
3163
|
},
|
|
@@ -2941,25 +3216,33 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2941
3216
|
};
|
|
2942
3217
|
var createDateCellContent = function createDateCellContent(date, className, groupIndex) {
|
|
2943
3218
|
var content = props.dateTemplate ? props.dateTemplate(date) : date.day;
|
|
3219
|
+
var selected = isSelected(date);
|
|
2944
3220
|
var dayLabelProps = mergeProps({
|
|
2945
3221
|
className: cx('dayLabel', {
|
|
2946
3222
|
className: className
|
|
2947
3223
|
}),
|
|
3224
|
+
'aria-selected': selected,
|
|
3225
|
+
'aria-disabled': !date.selectable,
|
|
2948
3226
|
onClick: function onClick(e) {
|
|
2949
3227
|
return onDateSelect(e, date);
|
|
2950
3228
|
},
|
|
2951
3229
|
onKeyDown: function onKeyDown(e) {
|
|
2952
3230
|
return onDateCellKeydown(e, date, groupIndex);
|
|
2953
3231
|
},
|
|
2954
|
-
'data-p-highlight':
|
|
3232
|
+
'data-p-highlight': selected,
|
|
2955
3233
|
'data-p-disabled': !date.selectable
|
|
2956
3234
|
}, ptm('dayLabel', {
|
|
2957
3235
|
context: {
|
|
2958
|
-
selected:
|
|
3236
|
+
selected: selected,
|
|
2959
3237
|
disabled: !date.selectable
|
|
2960
3238
|
}
|
|
2961
3239
|
}));
|
|
2962
|
-
return /*#__PURE__*/React.createElement("span", dayLabelProps, content
|
|
3240
|
+
return /*#__PURE__*/React.createElement("span", dayLabelProps, content, selected && /*#__PURE__*/React.createElement("div", {
|
|
3241
|
+
"aria-live": "polite",
|
|
3242
|
+
className: "p-hidden-accessible",
|
|
3243
|
+
"data-p-hidden-accessible": true,
|
|
3244
|
+
pt: ptm('hiddenSelectedDay')
|
|
3245
|
+
}));
|
|
2963
3246
|
};
|
|
2964
3247
|
var createWeek = function createWeek(weekDates, weekNumber, groupIndex) {
|
|
2965
3248
|
var week = weekDates.map(function (date) {
|
|
@@ -2973,6 +3256,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2973
3256
|
className: cx('day', {
|
|
2974
3257
|
date: date
|
|
2975
3258
|
}),
|
|
3259
|
+
'aria-label': date.day,
|
|
2976
3260
|
'data-p-today': date.today,
|
|
2977
3261
|
'data-p-other-month': date.otherMonth
|
|
2978
3262
|
}, ptm('day', {
|
|
@@ -3021,6 +3305,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3021
3305
|
key: UniqueComponentId('calendar_container_')
|
|
3022
3306
|
}, ptm('container'));
|
|
3023
3307
|
var tableProps = mergeProps({
|
|
3308
|
+
role: 'grid',
|
|
3024
3309
|
className: cx('table')
|
|
3025
3310
|
}, ptm('table'));
|
|
3026
3311
|
var tableHeaderProps = mergeProps(ptm('tableHeader'));
|
|
@@ -3124,6 +3409,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3124
3409
|
if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;
|
|
3125
3410
|
}
|
|
3126
3411
|
var hourProps = mergeProps(ptm('hour'));
|
|
3412
|
+
var _localeOptions6 = localeOptions(props.locale),
|
|
3413
|
+
nextHour = _localeOptions6.nextHour,
|
|
3414
|
+
prevHour = _localeOptions6.prevHour;
|
|
3127
3415
|
var hourDisplay = hour < 10 ? '0' + hour : hour;
|
|
3128
3416
|
var hourPickerProps = mergeProps({
|
|
3129
3417
|
className: cx('hourPicker')
|
|
@@ -3131,26 +3419,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3131
3419
|
var incrementButtonProps = mergeProps({
|
|
3132
3420
|
type: 'button',
|
|
3133
3421
|
className: cx('incrementButton'),
|
|
3422
|
+
'aria-label': nextHour,
|
|
3134
3423
|
onMouseDown: function onMouseDown(e) {
|
|
3135
3424
|
return onTimePickerElementMouseDown(e, 0, 1);
|
|
3136
3425
|
},
|
|
3137
3426
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3138
3427
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3139
3428
|
onKeyDown: function onKeyDown(e) {
|
|
3140
|
-
return
|
|
3141
|
-
}
|
|
3429
|
+
return onPickerKeyDown(e, 0, 1);
|
|
3430
|
+
},
|
|
3431
|
+
onKeyUp: onPickerKeyUp
|
|
3142
3432
|
}, ptm('incrementButton'));
|
|
3143
3433
|
var decrementButtonProps = mergeProps({
|
|
3144
3434
|
type: 'button',
|
|
3145
3435
|
className: cx('decrementButton'),
|
|
3436
|
+
'aria-label': prevHour,
|
|
3146
3437
|
onMouseDown: function onMouseDown(e) {
|
|
3147
3438
|
return onTimePickerElementMouseDown(e, 0, -1);
|
|
3148
3439
|
},
|
|
3149
3440
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3150
3441
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3151
3442
|
onKeyDown: function onKeyDown(e) {
|
|
3152
|
-
return
|
|
3153
|
-
}
|
|
3443
|
+
return onPickerKeyDown(e, 0, -1);
|
|
3444
|
+
},
|
|
3445
|
+
onKeyUp: onPickerKeyUp
|
|
3154
3446
|
}, ptm('decrementButton'));
|
|
3155
3447
|
return /*#__PURE__*/React.createElement("div", hourPickerProps, /*#__PURE__*/React.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement("span", hourProps, hourDisplay), /*#__PURE__*/React.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React.createElement(Ripple, null)));
|
|
3156
3448
|
};
|
|
@@ -3159,6 +3451,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3159
3451
|
var minute = doStepMinute(currentTime.getMinutes());
|
|
3160
3452
|
minute = minute > 59 ? minute - 60 : minute;
|
|
3161
3453
|
var minuteProps = mergeProps(ptm('minute'));
|
|
3454
|
+
var _localeOptions7 = localeOptions(props.locale),
|
|
3455
|
+
nextMinute = _localeOptions7.nextMinute,
|
|
3456
|
+
prevMinute = _localeOptions7.prevMinute;
|
|
3162
3457
|
var minuteDisplay = minute < 10 ? '0' + minute : minute;
|
|
3163
3458
|
var minutePickerProps = mergeProps({
|
|
3164
3459
|
className: cx('minutePicker')
|
|
@@ -3166,32 +3461,39 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3166
3461
|
var incrementButtonProps = mergeProps({
|
|
3167
3462
|
type: 'button',
|
|
3168
3463
|
className: cx('incrementButton'),
|
|
3464
|
+
'aria-label': nextMinute,
|
|
3169
3465
|
onMouseDown: function onMouseDown(e) {
|
|
3170
3466
|
return onTimePickerElementMouseDown(e, 1, 1);
|
|
3171
3467
|
},
|
|
3172
3468
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3173
3469
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3174
3470
|
onKeyDown: function onKeyDown(e) {
|
|
3175
|
-
return
|
|
3176
|
-
}
|
|
3471
|
+
return onPickerKeyDown(e, 1, 1);
|
|
3472
|
+
},
|
|
3473
|
+
onKeyUp: onPickerKeyUp
|
|
3177
3474
|
}, ptm('incrementButton'));
|
|
3178
3475
|
var decrementButtonProps = mergeProps({
|
|
3179
3476
|
type: 'button',
|
|
3180
3477
|
className: cx('decrementButton'),
|
|
3478
|
+
'aria-label': prevMinute,
|
|
3181
3479
|
onMouseDown: function onMouseDown(e) {
|
|
3182
3480
|
return onTimePickerElementMouseDown(e, 1, -1);
|
|
3183
3481
|
},
|
|
3184
3482
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3185
3483
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3186
3484
|
onKeyDown: function onKeyDown(e) {
|
|
3187
|
-
return
|
|
3188
|
-
}
|
|
3485
|
+
return onPickerKeyDown(e, 1, -1);
|
|
3486
|
+
},
|
|
3487
|
+
onKeyUp: onPickerKeyUp
|
|
3189
3488
|
}, ptm('decrementButton'));
|
|
3190
3489
|
return /*#__PURE__*/React.createElement("div", minutePickerProps, /*#__PURE__*/React.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement("span", minuteProps, minuteDisplay), /*#__PURE__*/React.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React.createElement(Ripple, null)));
|
|
3191
3490
|
};
|
|
3192
3491
|
var createSecondPicker = function createSecondPicker() {
|
|
3193
3492
|
if (props.showSeconds) {
|
|
3194
3493
|
var currentTime = getCurrentDateTime();
|
|
3494
|
+
var _localeOptions8 = localeOptions(props.locale),
|
|
3495
|
+
nextSecond = _localeOptions8.nextSecond,
|
|
3496
|
+
prevSecond = _localeOptions8.prevSecond;
|
|
3195
3497
|
var secondProps = mergeProps(ptm('second'));
|
|
3196
3498
|
var second = currentTime.getSeconds();
|
|
3197
3499
|
var secondDisplay = second < 10 ? '0' + second : second;
|
|
@@ -3201,26 +3503,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3201
3503
|
var incrementButtonProps = mergeProps({
|
|
3202
3504
|
type: 'button',
|
|
3203
3505
|
className: cx('incrementButton'),
|
|
3506
|
+
'aria-label': nextSecond,
|
|
3204
3507
|
onMouseDown: function onMouseDown(e) {
|
|
3205
3508
|
return onTimePickerElementMouseDown(e, 2, 1);
|
|
3206
3509
|
},
|
|
3207
3510
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3208
3511
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3209
3512
|
onKeyDown: function onKeyDown(e) {
|
|
3210
|
-
return
|
|
3211
|
-
}
|
|
3513
|
+
return onPickerKeyDown(e, 2, 1);
|
|
3514
|
+
},
|
|
3515
|
+
onKeyUp: onPickerKeyUp
|
|
3212
3516
|
}, ptm('incrementButton'));
|
|
3213
3517
|
var decrementButtonProps = mergeProps({
|
|
3214
3518
|
type: 'button',
|
|
3215
3519
|
className: cx('decrementButton'),
|
|
3520
|
+
'aria-label': prevSecond,
|
|
3216
3521
|
onMouseDown: function onMouseDown(e) {
|
|
3217
3522
|
return onTimePickerElementMouseDown(e, 2, -1);
|
|
3218
3523
|
},
|
|
3219
3524
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3220
3525
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3221
3526
|
onKeyDown: function onKeyDown(e) {
|
|
3222
|
-
return
|
|
3223
|
-
}
|
|
3527
|
+
return onPickerKeyDown(e, 2, -1);
|
|
3528
|
+
},
|
|
3529
|
+
onKeyUp: onPickerKeyUp
|
|
3224
3530
|
}, ptm('decrementButton'));
|
|
3225
3531
|
return /*#__PURE__*/React.createElement("div", secondPickerProps, /*#__PURE__*/React.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement("span", secondProps, secondDisplay), /*#__PURE__*/React.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React.createElement(Ripple, null)));
|
|
3226
3532
|
}
|
|
@@ -3229,6 +3535,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3229
3535
|
var createMiliSecondPicker = function createMiliSecondPicker() {
|
|
3230
3536
|
if (props.showMillisec) {
|
|
3231
3537
|
var currentTime = getCurrentDateTime();
|
|
3538
|
+
var _localeOptions9 = localeOptions(props.locale),
|
|
3539
|
+
nextMilliSecond = _localeOptions9.nextMilliSecond,
|
|
3540
|
+
prevMilliSecond = _localeOptions9.prevMilliSecond;
|
|
3232
3541
|
var millisecondProps = mergeProps(ptm('millisecond'));
|
|
3233
3542
|
var millisecond = currentTime.getMilliseconds();
|
|
3234
3543
|
var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;
|
|
@@ -3238,26 +3547,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3238
3547
|
var incrementButtonProps = mergeProps({
|
|
3239
3548
|
type: 'button',
|
|
3240
3549
|
className: cx('incrementButton'),
|
|
3550
|
+
'aria-label': nextMilliSecond,
|
|
3241
3551
|
onMouseDown: function onMouseDown(e) {
|
|
3242
3552
|
return onTimePickerElementMouseDown(e, 3, 1);
|
|
3243
3553
|
},
|
|
3244
3554
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3245
3555
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3246
3556
|
onKeyDown: function onKeyDown(e) {
|
|
3247
|
-
return
|
|
3248
|
-
}
|
|
3557
|
+
return onPickerKeyDown(e, 3, 1);
|
|
3558
|
+
},
|
|
3559
|
+
onKeyUp: onPickerKeyUp
|
|
3249
3560
|
}, ptm('incrementButton'));
|
|
3250
3561
|
var decrementButtonProps = mergeProps({
|
|
3251
3562
|
type: 'button',
|
|
3252
3563
|
className: cx('decrementButton'),
|
|
3564
|
+
'aria-label': prevMilliSecond,
|
|
3253
3565
|
onMouseDown: function onMouseDown(e) {
|
|
3254
3566
|
return onTimePickerElementMouseDown(e, 3, -1);
|
|
3255
3567
|
},
|
|
3256
3568
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3257
3569
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3258
3570
|
onKeyDown: function onKeyDown(e) {
|
|
3259
|
-
return
|
|
3260
|
-
}
|
|
3571
|
+
return onPickerKeyDown(e, 3, -1);
|
|
3572
|
+
},
|
|
3573
|
+
onKeyUp: onPickerKeyUp
|
|
3261
3574
|
}, ptm('decrementButton'));
|
|
3262
3575
|
return /*#__PURE__*/React.createElement("div", millisecondPickerProps, /*#__PURE__*/React.createElement("button", incrementButtonProps, incrementIcon, /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement("span", millisecondProps, millisecondDisplay), /*#__PURE__*/React.createElement("button", decrementButtonProps, decrementIcon, /*#__PURE__*/React.createElement(Ripple, null)));
|
|
3263
3576
|
}
|
|
@@ -3266,6 +3579,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3266
3579
|
var createAmPmPicker = function createAmPmPicker() {
|
|
3267
3580
|
if (props.hourFormat === '12') {
|
|
3268
3581
|
var currentTime = getCurrentDateTime();
|
|
3582
|
+
var _localeOptions10 = localeOptions(props.locale),
|
|
3583
|
+
am = _localeOptions10.am,
|
|
3584
|
+
pm = _localeOptions10.pm;
|
|
3269
3585
|
var hour = currentTime.getHours();
|
|
3270
3586
|
var display = hour > 11 ? 'PM' : 'AM';
|
|
3271
3587
|
var ampmProps = mergeProps(ptm('ampm'));
|
|
@@ -3275,6 +3591,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3275
3591
|
var incrementButtonProps = mergeProps({
|
|
3276
3592
|
type: 'button',
|
|
3277
3593
|
className: cx('incrementButton'),
|
|
3594
|
+
'aria-label': am,
|
|
3278
3595
|
onClick: function onClick(e) {
|
|
3279
3596
|
return toggleAmPm(e);
|
|
3280
3597
|
}
|
|
@@ -3282,6 +3599,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3282
3599
|
var decrementButtonProps = mergeProps({
|
|
3283
3600
|
type: 'button',
|
|
3284
3601
|
className: cx('decrementButton'),
|
|
3602
|
+
'aria-label': pm,
|
|
3285
3603
|
onClick: function onClick(e) {
|
|
3286
3604
|
return toggleAmPm(e);
|
|
3287
3605
|
}
|
|
@@ -3313,6 +3631,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3313
3631
|
id: props.inputId,
|
|
3314
3632
|
name: props.name,
|
|
3315
3633
|
type: "text",
|
|
3634
|
+
role: "combobox",
|
|
3316
3635
|
className: props.inputClassName,
|
|
3317
3636
|
style: props.inputStyle,
|
|
3318
3637
|
readOnly: props.readOnlyInput,
|
|
@@ -3325,7 +3644,12 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3325
3644
|
onFocus: onInputFocus,
|
|
3326
3645
|
onBlur: onInputBlur,
|
|
3327
3646
|
onKeyDown: onInputKeyDown,
|
|
3647
|
+
"aria-expanded": overlayVisibleState,
|
|
3648
|
+
"aria-autocomplete": "none",
|
|
3649
|
+
"aria-haspopup": "dialog",
|
|
3650
|
+
"aria-controls": panelId,
|
|
3328
3651
|
"aria-labelledby": props.ariaLabelledBy,
|
|
3652
|
+
"aria-label": props.ariaLabel,
|
|
3329
3653
|
inputMode: props.inputMode,
|
|
3330
3654
|
tooltip: props.tooltip,
|
|
3331
3655
|
tooltipOptions: props.tooltipOptions,
|
|
@@ -3345,6 +3669,10 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3345
3669
|
onClick: onButtonClick,
|
|
3346
3670
|
tabIndex: "-1",
|
|
3347
3671
|
disabled: props.disabled,
|
|
3672
|
+
"aria-haspopup": "dialog",
|
|
3673
|
+
"aria-label": localeOption('chooseDate', props.locale),
|
|
3674
|
+
"aria-expanded": overlayVisibleState,
|
|
3675
|
+
"aria-controls": panelId,
|
|
3348
3676
|
className: cx('dropdownButton'),
|
|
3349
3677
|
pt: ptm('dropdownButton'),
|
|
3350
3678
|
__parentMetadata: {
|
|
@@ -3364,21 +3692,27 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3364
3692
|
};
|
|
3365
3693
|
var createButtonBar = function createButtonBar() {
|
|
3366
3694
|
if (props.showButtonBar) {
|
|
3367
|
-
var
|
|
3368
|
-
today =
|
|
3369
|
-
clear =
|
|
3695
|
+
var _localeOptions11 = localeOptions(props.locale),
|
|
3696
|
+
today = _localeOptions11.today,
|
|
3697
|
+
clear = _localeOptions11.clear,
|
|
3698
|
+
now = _localeOptions11.now;
|
|
3699
|
+
var nowDate = new Date();
|
|
3700
|
+
var isHidden = props.minDate && props.minDate > nowDate || props.maxDate && props.maxDate < nowDate;
|
|
3370
3701
|
var buttonbarProps = mergeProps({
|
|
3371
3702
|
className: cx('buttonbar')
|
|
3372
3703
|
}, ptm('buttonbar'));
|
|
3373
3704
|
return /*#__PURE__*/React.createElement("div", buttonbarProps, /*#__PURE__*/React.createElement(Button, {
|
|
3374
3705
|
type: "button",
|
|
3375
|
-
label: today,
|
|
3706
|
+
label: props.showTime ? now : today,
|
|
3376
3707
|
onClick: onTodayButtonClick,
|
|
3377
3708
|
onKeyDown: function onKeyDown(e) {
|
|
3378
3709
|
return onContainerButtonKeydown(e);
|
|
3379
3710
|
},
|
|
3380
3711
|
className: classNames(props.todayButtonClassName, cx('todayButton')),
|
|
3381
|
-
pt: ptm('todayButton')
|
|
3712
|
+
pt: ptm('todayButton'),
|
|
3713
|
+
style: isHidden ? {
|
|
3714
|
+
visibility: 'hidden'
|
|
3715
|
+
} : undefined
|
|
3382
3716
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
3383
3717
|
type: "button",
|
|
3384
3718
|
label: clear,
|
|
@@ -3408,6 +3742,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3408
3742
|
className: cx('monthPicker')
|
|
3409
3743
|
}, ptm('monthPicker'));
|
|
3410
3744
|
return /*#__PURE__*/React.createElement("div", monthPickerProps, monthPickerValues().map(function (m, i) {
|
|
3745
|
+
var selected = isMonthSelected(i);
|
|
3411
3746
|
var monthProps = mergeProps({
|
|
3412
3747
|
className: cx('month', {
|
|
3413
3748
|
isMonthSelected: isMonthSelected,
|
|
@@ -3422,18 +3757,23 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3422
3757
|
return onMonthCellKeydown(event, i);
|
|
3423
3758
|
},
|
|
3424
3759
|
'data-p-disabled': isMonthYearDisabled(i, currentYear),
|
|
3425
|
-
'data-p-highlight':
|
|
3760
|
+
'data-p-highlight': selected
|
|
3426
3761
|
}, ptm('month', {
|
|
3427
3762
|
context: {
|
|
3428
3763
|
month: m,
|
|
3429
3764
|
monthIndex: i,
|
|
3430
|
-
selected:
|
|
3765
|
+
selected: selected,
|
|
3431
3766
|
disabled: isMonthYearDisabled(i, currentYear)
|
|
3432
3767
|
}
|
|
3433
3768
|
}));
|
|
3434
3769
|
return /*#__PURE__*/React.createElement("span", _extends({}, monthProps, {
|
|
3435
3770
|
key: "month".concat(i + 1)
|
|
3436
|
-
}), m
|
|
3771
|
+
}), m, selected && /*#__PURE__*/React.createElement("div", {
|
|
3772
|
+
"aria-live": "polite",
|
|
3773
|
+
className: "p-hidden-accessible",
|
|
3774
|
+
"data-p-hidden-accessible": true,
|
|
3775
|
+
pt: ptm('hiddenMonth')
|
|
3776
|
+
}, m));
|
|
3437
3777
|
}));
|
|
3438
3778
|
}
|
|
3439
3779
|
return null;
|
|
@@ -3444,6 +3784,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3444
3784
|
className: cx('yearPicker')
|
|
3445
3785
|
}, ptm('yearPicker'));
|
|
3446
3786
|
return /*#__PURE__*/React.createElement("div", yearPickerProps, yearPickerValues().map(function (y, i) {
|
|
3787
|
+
var selected = isYearSelected(y);
|
|
3447
3788
|
var yearProps = mergeProps({
|
|
3448
3789
|
className: cx('year', {
|
|
3449
3790
|
isYearSelected: isYearSelected,
|
|
@@ -3453,19 +3794,27 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3453
3794
|
onClick: function onClick(event) {
|
|
3454
3795
|
return onYearSelect(event, y);
|
|
3455
3796
|
},
|
|
3797
|
+
onKeyDown: function onKeyDown(event) {
|
|
3798
|
+
return onYearCellKeydown(event, y);
|
|
3799
|
+
},
|
|
3456
3800
|
'data-p-highlight': isYearSelected(y),
|
|
3457
3801
|
'data-p-disabled': isMonthYearDisabled(-1, y)
|
|
3458
3802
|
}, ptm('year', {
|
|
3459
3803
|
context: {
|
|
3460
3804
|
year: y,
|
|
3461
3805
|
yearIndex: i,
|
|
3462
|
-
selected:
|
|
3806
|
+
selected: selected,
|
|
3463
3807
|
disabled: isMonthYearDisabled(-1, y)
|
|
3464
3808
|
}
|
|
3465
3809
|
}));
|
|
3466
3810
|
return /*#__PURE__*/React.createElement("span", _extends({}, yearProps, {
|
|
3467
3811
|
key: "year".concat(i + 1)
|
|
3468
|
-
}), y
|
|
3812
|
+
}), y, selected && /*#__PURE__*/React.createElement("div", {
|
|
3813
|
+
"aria-live": "polite",
|
|
3814
|
+
className: "p-hidden-accessible",
|
|
3815
|
+
"data-p-hidden-accessible": true,
|
|
3816
|
+
pt: ptm('hiddenYear')
|
|
3817
|
+
}, y));
|
|
3469
3818
|
}));
|
|
3470
3819
|
}
|
|
3471
3820
|
return null;
|
|
@@ -3492,7 +3841,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3492
3841
|
id: props.id,
|
|
3493
3842
|
className: classNames(props.className, cx('root', {
|
|
3494
3843
|
focusedState: focusedState,
|
|
3495
|
-
isFilled: isFilled
|
|
3844
|
+
isFilled: isFilled,
|
|
3845
|
+
panelVisible: visible
|
|
3496
3846
|
})),
|
|
3497
3847
|
style: props.style
|
|
3498
3848
|
}, CalendarBase.getOtherProps(props), ptm('root'));
|
|
@@ -3500,6 +3850,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3500
3850
|
ref: elementRef
|
|
3501
3851
|
}, rootProps), content, /*#__PURE__*/React.createElement(CalendarPanel, {
|
|
3502
3852
|
hostName: "Calendar",
|
|
3853
|
+
id: panelId,
|
|
3854
|
+
locale: props.locale,
|
|
3503
3855
|
ref: overlayRef,
|
|
3504
3856
|
className: panelClassName,
|
|
3505
3857
|
style: props.panelStyle,
|