primereact 10.3.2 → 10.4.0
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/accordion/accordion.cjs.js +1 -1
- package/accordion/accordion.cjs.min.js +1 -1
- package/accordion/accordion.esm.js +1 -1
- package/accordion/accordion.esm.min.js +1 -1
- package/accordion/accordion.js +1 -1
- package/accordion/accordion.min.js +1 -1
- 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 +509 -150
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.d.ts +4 -0
- package/calendar/calendar.esm.js +510 -151
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +509 -150
- package/calendar/calendar.min.js +1 -1
- package/carousel/carousel.cjs.js +1 -0
- package/carousel/carousel.cjs.min.js +1 -1
- package/carousel/carousel.esm.js +1 -0
- package/carousel/carousel.esm.min.js +1 -1
- package/carousel/carousel.js +1 -0
- package/carousel/carousel.min.js +1 -1
- package/chips/chips.cjs.js +2 -1
- package/chips/chips.cjs.min.js +1 -1
- package/chips/chips.esm.js +2 -1
- package/chips/chips.esm.min.js +1 -1
- package/chips/chips.js +2 -1
- package/chips/chips.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 +93 -40
- package/core/core.min.js +4 -4
- package/datatable/datatable.cjs.js +577 -150
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +573 -146
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +577 -150
- 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 +7 -1
- 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/divider/divider.cjs.js +2 -2
- package/divider/divider.cjs.min.js +1 -1
- package/divider/divider.esm.js +2 -2
- package/divider/divider.esm.min.js +1 -1
- package/divider/divider.js +2 -2
- package/divider/divider.min.js +1 -1
- package/dropdown/dropdown.cjs.js +20 -25
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.d.ts +9 -0
- package/dropdown/dropdown.esm.js +20 -25
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +20 -25
- package/dropdown/dropdown.min.js +1 -1
- package/editor/editor.cjs.js +1 -1
- package/editor/editor.cjs.min.js +1 -1
- package/editor/editor.esm.js +1 -1
- package/editor/editor.esm.min.js +1 -1
- package/editor/editor.js +1 -1
- package/editor/editor.min.js +1 -1
- package/focustrap/focustrap.cjs.js +168 -0
- package/focustrap/focustrap.cjs.min.js +1 -0
- package/focustrap/focustrap.esm.js +159 -0
- package/focustrap/focustrap.esm.min.js +1 -0
- package/focustrap/focustrap.js +167 -0
- package/focustrap/focustrap.min.js +1 -0
- package/focustrap/package.json +7 -0
- package/galleria/galleria.cjs.js +26 -24
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +26 -24
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +26 -24
- package/galleria/galleria.min.js +1 -1
- package/hooks/hooks.d.ts +1 -1
- package/menubar/menubar.cjs.js +7 -4
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +7 -4
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +7 -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/panelmenu/panelmenu.cjs.js +32 -21
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +32 -21
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +32 -21
- package/panelmenu/panelmenu.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 +1499 -725
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +1499 -725
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +1499 -725
- package/primereact.all.min.js +1 -1
- package/sidebar/sidebar.cjs.js +18 -16
- package/sidebar/sidebar.cjs.min.js +1 -1
- package/sidebar/sidebar.esm.js +18 -16
- package/sidebar/sidebar.esm.min.js +1 -1
- package/sidebar/sidebar.js +18 -16
- package/sidebar/sidebar.min.js +1 -1
- package/splitbutton/splitbutton.cjs.js +8 -7
- package/splitbutton/splitbutton.cjs.min.js +1 -1
- package/splitbutton/splitbutton.esm.js +8 -7
- package/splitbutton/splitbutton.esm.min.js +1 -1
- package/splitbutton/splitbutton.js +8 -7
- package/splitbutton/splitbutton.min.js +1 -1
- package/splitter/splitter.cjs.js +57 -12
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.d.ts +13 -1
- package/splitter/splitter.esm.js +59 -14
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +57 -12
- package/splitter/splitter.min.js +1 -1
- package/tieredmenu/tieredmenu.cjs.js +8 -7
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +8 -7
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +8 -7
- 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/tree/tree.cjs.js +33 -15
- package/tree/tree.cjs.min.js +1 -1
- package/tree/tree.esm.js +34 -16
- package/tree/tree.esm.min.js +1 -1
- package/tree/tree.js +33 -15
- package/tree/tree.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 +34 -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,
|
|
@@ -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() {
|
|
@@ -2105,27 +2351,34 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2105
2351
|
return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;
|
|
2106
2352
|
};
|
|
2107
2353
|
var isDayDisabled = function isDayDisabled(day, month, year) {
|
|
2354
|
+
var isDisabled = false;
|
|
2355
|
+
|
|
2356
|
+
// first check for disabled dates
|
|
2108
2357
|
if (props.disabledDates) {
|
|
2109
2358
|
if (props.disabledDates.some(function (d) {
|
|
2110
2359
|
return d.getFullYear() === year && d.getMonth() === month && d.getDate() === day;
|
|
2111
2360
|
})) {
|
|
2112
|
-
|
|
2113
|
-
}
|
|
2114
|
-
} else if (props.enabledDates) {
|
|
2115
|
-
if (!props.enabledDates.some(function (d) {
|
|
2116
|
-
return d.getFullYear() === year && d.getMonth() === month && d.getDate() === day;
|
|
2117
|
-
})) {
|
|
2118
|
-
return true;
|
|
2361
|
+
isDisabled = true;
|
|
2119
2362
|
}
|
|
2120
2363
|
}
|
|
2121
|
-
|
|
2364
|
+
|
|
2365
|
+
// next if not disabled then check for disabled days
|
|
2366
|
+
if (!isDisabled && props.disabledDays && currentView === 'date') {
|
|
2122
2367
|
var weekday = new Date(year, month, day);
|
|
2123
2368
|
var weekdayNumber = weekday.getDay();
|
|
2124
2369
|
if (props.disabledDays.indexOf(weekdayNumber) !== -1) {
|
|
2125
|
-
|
|
2370
|
+
isDisabled = true;
|
|
2126
2371
|
}
|
|
2127
2372
|
}
|
|
2128
|
-
|
|
2373
|
+
|
|
2374
|
+
// last check for enabled dates to force dates enabled
|
|
2375
|
+
if (props.enabledDates) {
|
|
2376
|
+
var isEnabled = props.enabledDates.some(function (d) {
|
|
2377
|
+
return d.getFullYear() === year && d.getMonth() === month && d.getDate() === day;
|
|
2378
|
+
});
|
|
2379
|
+
isDisabled = isDisabled ? !isEnabled : isEnabled;
|
|
2380
|
+
}
|
|
2381
|
+
return isDisabled;
|
|
2129
2382
|
};
|
|
2130
2383
|
var isMonthYearDisabled = function isMonthYearDisabled(month, year) {
|
|
2131
2384
|
var daysCountInAllMonth = month === -1 ? new Array(12).fill(0).map(function (_, i) {
|
|
@@ -2576,6 +2829,10 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2576
2829
|
setCurrentMonth(viewDate.getMonth());
|
|
2577
2830
|
setCurrentYear(viewDate.getFullYear());
|
|
2578
2831
|
setCurrentView(props.view);
|
|
2832
|
+
if (!idState) {
|
|
2833
|
+
var uniqueId = UniqueComponentId();
|
|
2834
|
+
!idState && setIdState(uniqueId);
|
|
2835
|
+
}
|
|
2579
2836
|
if (props.inline) {
|
|
2580
2837
|
overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
|
|
2581
2838
|
if (!props.disabled) {
|
|
@@ -2623,8 +2880,14 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2623
2880
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2624
2881
|
}, [props.disabled, props.mask, props.readOnlyInput]);
|
|
2625
2882
|
useUpdateEffect(function () {
|
|
2626
|
-
|
|
2883
|
+
if (viewChangedWithKeyDown.current) {
|
|
2884
|
+
setCurrentView(props.view);
|
|
2885
|
+
}
|
|
2886
|
+
viewChangedWithKeyDown.current = false;
|
|
2627
2887
|
}, [props.view]);
|
|
2888
|
+
useUpdateEffect(function () {
|
|
2889
|
+
focusToFirstCell();
|
|
2890
|
+
}, [currentView]);
|
|
2628
2891
|
useUpdateEffect(function () {
|
|
2629
2892
|
if (!props.onViewDateChange && !viewStateChanged.current) {
|
|
2630
2893
|
setValue(props.value);
|
|
@@ -2715,12 +2978,16 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2715
2978
|
if (Array.isArray(prevPropValue)) {
|
|
2716
2979
|
prevPropValue = prevPropValue[0];
|
|
2717
2980
|
}
|
|
2981
|
+
var viewDate = props.viewDate && isValidDate(props.viewDate) ? props.viewDate : propValue && isValidDate(propValue) ? propValue : new Date();
|
|
2982
|
+
if (isClearClicked.current && props.showTime) {
|
|
2983
|
+
viewDate.setHours(0, 0, 0);
|
|
2984
|
+
isClearClicked.current = false;
|
|
2985
|
+
}
|
|
2718
2986
|
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
2987
|
validateDate(viewDate);
|
|
2721
|
-
setViewDateState(viewDate);
|
|
2722
|
-
viewStateChanged.current = true;
|
|
2723
2988
|
}
|
|
2989
|
+
setViewDateState(viewDate);
|
|
2990
|
+
viewStateChanged.current = true;
|
|
2724
2991
|
};
|
|
2725
2992
|
var createBackwardNavigator = function createBackwardNavigator(isVisible) {
|
|
2726
2993
|
var navigatorProps = isVisible ? {
|
|
@@ -2740,9 +3007,15 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2740
3007
|
var backwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, previousIconProps), {
|
|
2741
3008
|
props: props
|
|
2742
3009
|
});
|
|
3010
|
+
var _localeOptions4 = localeOptions(props.locale),
|
|
3011
|
+
prevDecade = _localeOptions4.prevDecade,
|
|
3012
|
+
prevYear = _localeOptions4.prevYear,
|
|
3013
|
+
prevMonth = _localeOptions4.prevMonth;
|
|
3014
|
+
var previousButtonLabel = currentView === 'year' ? prevDecade : currentView === 'month' ? prevYear : prevMonth;
|
|
2743
3015
|
var previousButtonProps = mergeProps(_objectSpread({
|
|
2744
3016
|
type: 'button',
|
|
2745
|
-
className: cx('previousButton')
|
|
3017
|
+
className: cx('previousButton'),
|
|
3018
|
+
'aria-label': previousButtonLabel
|
|
2746
3019
|
}, navigatorProps), ptm('previousButton'));
|
|
2747
3020
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
2748
3021
|
ref: previousButton
|
|
@@ -2766,9 +3039,15 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2766
3039
|
var forwardNavigatorIcon = IconUtils.getJSXIcon(icon, _objectSpread({}, nextIconProps), {
|
|
2767
3040
|
props: props
|
|
2768
3041
|
});
|
|
3042
|
+
var _localeOptions5 = localeOptions(props.locale),
|
|
3043
|
+
nextDecade = _localeOptions5.nextDecade,
|
|
3044
|
+
nextYear = _localeOptions5.nextYear,
|
|
3045
|
+
nextMonth = _localeOptions5.nextMonth;
|
|
3046
|
+
var nextButtonLabel = currentView === 'year' ? nextDecade : currentView === 'month' ? nextYear : nextMonth;
|
|
2769
3047
|
var nextButtonProps = mergeProps(_objectSpread({
|
|
2770
3048
|
type: 'button',
|
|
2771
|
-
className: cx('nextButton')
|
|
3049
|
+
className: cx('nextButton'),
|
|
3050
|
+
'aria-label': nextButtonLabel
|
|
2772
3051
|
}, navigatorProps), ptm('nextButton'));
|
|
2773
3052
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
2774
3053
|
ref: nextButton
|
|
@@ -2825,6 +3104,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2825
3104
|
}
|
|
2826
3105
|
var monthTitleProps = mergeProps({
|
|
2827
3106
|
className: cx('monthTitle'),
|
|
3107
|
+
onKeyDown: onContainerButtonKeydown,
|
|
3108
|
+
'aria-label': localeOption('chooseMonth', props.locale),
|
|
2828
3109
|
onClick: switchToMonthView,
|
|
2829
3110
|
disabled: switchViewButtonDisabled()
|
|
2830
3111
|
}, ptm('monthTitle'));
|
|
@@ -2883,6 +3164,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2883
3164
|
var displayYear = props.numberOfMonths > 1 ? metaYear : currentYear;
|
|
2884
3165
|
var yearTitleProps = mergeProps({
|
|
2885
3166
|
className: cx('yearTitle'),
|
|
3167
|
+
'aria-label': localeOption('chooseYear', props.locale),
|
|
2886
3168
|
onClick: function onClick(e) {
|
|
2887
3169
|
return switchToYearView(e);
|
|
2888
3170
|
},
|
|
@@ -2941,25 +3223,33 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2941
3223
|
};
|
|
2942
3224
|
var createDateCellContent = function createDateCellContent(date, className, groupIndex) {
|
|
2943
3225
|
var content = props.dateTemplate ? props.dateTemplate(date) : date.day;
|
|
3226
|
+
var selected = isSelected(date);
|
|
2944
3227
|
var dayLabelProps = mergeProps({
|
|
2945
3228
|
className: cx('dayLabel', {
|
|
2946
3229
|
className: className
|
|
2947
3230
|
}),
|
|
3231
|
+
'aria-selected': selected,
|
|
3232
|
+
'aria-disabled': !date.selectable,
|
|
2948
3233
|
onClick: function onClick(e) {
|
|
2949
3234
|
return onDateSelect(e, date);
|
|
2950
3235
|
},
|
|
2951
3236
|
onKeyDown: function onKeyDown(e) {
|
|
2952
3237
|
return onDateCellKeydown(e, date, groupIndex);
|
|
2953
3238
|
},
|
|
2954
|
-
'data-p-highlight':
|
|
3239
|
+
'data-p-highlight': selected,
|
|
2955
3240
|
'data-p-disabled': !date.selectable
|
|
2956
3241
|
}, ptm('dayLabel', {
|
|
2957
3242
|
context: {
|
|
2958
|
-
selected:
|
|
3243
|
+
selected: selected,
|
|
2959
3244
|
disabled: !date.selectable
|
|
2960
3245
|
}
|
|
2961
3246
|
}));
|
|
2962
|
-
return /*#__PURE__*/React.createElement("span", dayLabelProps, content
|
|
3247
|
+
return /*#__PURE__*/React.createElement("span", dayLabelProps, content, selected && /*#__PURE__*/React.createElement("div", {
|
|
3248
|
+
"aria-live": "polite",
|
|
3249
|
+
className: "p-hidden-accessible",
|
|
3250
|
+
"data-p-hidden-accessible": true,
|
|
3251
|
+
pt: ptm('hiddenSelectedDay')
|
|
3252
|
+
}));
|
|
2963
3253
|
};
|
|
2964
3254
|
var createWeek = function createWeek(weekDates, weekNumber, groupIndex) {
|
|
2965
3255
|
var week = weekDates.map(function (date) {
|
|
@@ -2973,6 +3263,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
2973
3263
|
className: cx('day', {
|
|
2974
3264
|
date: date
|
|
2975
3265
|
}),
|
|
3266
|
+
'aria-label': date.day,
|
|
2976
3267
|
'data-p-today': date.today,
|
|
2977
3268
|
'data-p-other-month': date.otherMonth
|
|
2978
3269
|
}, ptm('day', {
|
|
@@ -3021,6 +3312,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3021
3312
|
key: UniqueComponentId('calendar_container_')
|
|
3022
3313
|
}, ptm('container'));
|
|
3023
3314
|
var tableProps = mergeProps({
|
|
3315
|
+
role: 'grid',
|
|
3024
3316
|
className: cx('table')
|
|
3025
3317
|
}, ptm('table'));
|
|
3026
3318
|
var tableHeaderProps = mergeProps(ptm('tableHeader'));
|
|
@@ -3124,6 +3416,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3124
3416
|
if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;
|
|
3125
3417
|
}
|
|
3126
3418
|
var hourProps = mergeProps(ptm('hour'));
|
|
3419
|
+
var _localeOptions6 = localeOptions(props.locale),
|
|
3420
|
+
nextHour = _localeOptions6.nextHour,
|
|
3421
|
+
prevHour = _localeOptions6.prevHour;
|
|
3127
3422
|
var hourDisplay = hour < 10 ? '0' + hour : hour;
|
|
3128
3423
|
var hourPickerProps = mergeProps({
|
|
3129
3424
|
className: cx('hourPicker')
|
|
@@ -3131,26 +3426,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3131
3426
|
var incrementButtonProps = mergeProps({
|
|
3132
3427
|
type: 'button',
|
|
3133
3428
|
className: cx('incrementButton'),
|
|
3429
|
+
'aria-label': nextHour,
|
|
3134
3430
|
onMouseDown: function onMouseDown(e) {
|
|
3135
3431
|
return onTimePickerElementMouseDown(e, 0, 1);
|
|
3136
3432
|
},
|
|
3137
3433
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3138
3434
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3139
3435
|
onKeyDown: function onKeyDown(e) {
|
|
3140
|
-
return
|
|
3141
|
-
}
|
|
3436
|
+
return onPickerKeyDown(e, 0, 1);
|
|
3437
|
+
},
|
|
3438
|
+
onKeyUp: onPickerKeyUp
|
|
3142
3439
|
}, ptm('incrementButton'));
|
|
3143
3440
|
var decrementButtonProps = mergeProps({
|
|
3144
3441
|
type: 'button',
|
|
3145
3442
|
className: cx('decrementButton'),
|
|
3443
|
+
'aria-label': prevHour,
|
|
3146
3444
|
onMouseDown: function onMouseDown(e) {
|
|
3147
3445
|
return onTimePickerElementMouseDown(e, 0, -1);
|
|
3148
3446
|
},
|
|
3149
3447
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3150
3448
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3151
3449
|
onKeyDown: function onKeyDown(e) {
|
|
3152
|
-
return
|
|
3153
|
-
}
|
|
3450
|
+
return onPickerKeyDown(e, 0, -1);
|
|
3451
|
+
},
|
|
3452
|
+
onKeyUp: onPickerKeyUp
|
|
3154
3453
|
}, ptm('decrementButton'));
|
|
3155
3454
|
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
3455
|
};
|
|
@@ -3159,6 +3458,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3159
3458
|
var minute = doStepMinute(currentTime.getMinutes());
|
|
3160
3459
|
minute = minute > 59 ? minute - 60 : minute;
|
|
3161
3460
|
var minuteProps = mergeProps(ptm('minute'));
|
|
3461
|
+
var _localeOptions7 = localeOptions(props.locale),
|
|
3462
|
+
nextMinute = _localeOptions7.nextMinute,
|
|
3463
|
+
prevMinute = _localeOptions7.prevMinute;
|
|
3162
3464
|
var minuteDisplay = minute < 10 ? '0' + minute : minute;
|
|
3163
3465
|
var minutePickerProps = mergeProps({
|
|
3164
3466
|
className: cx('minutePicker')
|
|
@@ -3166,32 +3468,39 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3166
3468
|
var incrementButtonProps = mergeProps({
|
|
3167
3469
|
type: 'button',
|
|
3168
3470
|
className: cx('incrementButton'),
|
|
3471
|
+
'aria-label': nextMinute,
|
|
3169
3472
|
onMouseDown: function onMouseDown(e) {
|
|
3170
3473
|
return onTimePickerElementMouseDown(e, 1, 1);
|
|
3171
3474
|
},
|
|
3172
3475
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3173
3476
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3174
3477
|
onKeyDown: function onKeyDown(e) {
|
|
3175
|
-
return
|
|
3176
|
-
}
|
|
3478
|
+
return onPickerKeyDown(e, 1, 1);
|
|
3479
|
+
},
|
|
3480
|
+
onKeyUp: onPickerKeyUp
|
|
3177
3481
|
}, ptm('incrementButton'));
|
|
3178
3482
|
var decrementButtonProps = mergeProps({
|
|
3179
3483
|
type: 'button',
|
|
3180
3484
|
className: cx('decrementButton'),
|
|
3485
|
+
'aria-label': prevMinute,
|
|
3181
3486
|
onMouseDown: function onMouseDown(e) {
|
|
3182
3487
|
return onTimePickerElementMouseDown(e, 1, -1);
|
|
3183
3488
|
},
|
|
3184
3489
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3185
3490
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3186
3491
|
onKeyDown: function onKeyDown(e) {
|
|
3187
|
-
return
|
|
3188
|
-
}
|
|
3492
|
+
return onPickerKeyDown(e, 1, -1);
|
|
3493
|
+
},
|
|
3494
|
+
onKeyUp: onPickerKeyUp
|
|
3189
3495
|
}, ptm('decrementButton'));
|
|
3190
3496
|
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
3497
|
};
|
|
3192
3498
|
var createSecondPicker = function createSecondPicker() {
|
|
3193
3499
|
if (props.showSeconds) {
|
|
3194
3500
|
var currentTime = getCurrentDateTime();
|
|
3501
|
+
var _localeOptions8 = localeOptions(props.locale),
|
|
3502
|
+
nextSecond = _localeOptions8.nextSecond,
|
|
3503
|
+
prevSecond = _localeOptions8.prevSecond;
|
|
3195
3504
|
var secondProps = mergeProps(ptm('second'));
|
|
3196
3505
|
var second = currentTime.getSeconds();
|
|
3197
3506
|
var secondDisplay = second < 10 ? '0' + second : second;
|
|
@@ -3201,26 +3510,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3201
3510
|
var incrementButtonProps = mergeProps({
|
|
3202
3511
|
type: 'button',
|
|
3203
3512
|
className: cx('incrementButton'),
|
|
3513
|
+
'aria-label': nextSecond,
|
|
3204
3514
|
onMouseDown: function onMouseDown(e) {
|
|
3205
3515
|
return onTimePickerElementMouseDown(e, 2, 1);
|
|
3206
3516
|
},
|
|
3207
3517
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3208
3518
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3209
3519
|
onKeyDown: function onKeyDown(e) {
|
|
3210
|
-
return
|
|
3211
|
-
}
|
|
3520
|
+
return onPickerKeyDown(e, 2, 1);
|
|
3521
|
+
},
|
|
3522
|
+
onKeyUp: onPickerKeyUp
|
|
3212
3523
|
}, ptm('incrementButton'));
|
|
3213
3524
|
var decrementButtonProps = mergeProps({
|
|
3214
3525
|
type: 'button',
|
|
3215
3526
|
className: cx('decrementButton'),
|
|
3527
|
+
'aria-label': prevSecond,
|
|
3216
3528
|
onMouseDown: function onMouseDown(e) {
|
|
3217
3529
|
return onTimePickerElementMouseDown(e, 2, -1);
|
|
3218
3530
|
},
|
|
3219
3531
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3220
3532
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3221
3533
|
onKeyDown: function onKeyDown(e) {
|
|
3222
|
-
return
|
|
3223
|
-
}
|
|
3534
|
+
return onPickerKeyDown(e, 2, -1);
|
|
3535
|
+
},
|
|
3536
|
+
onKeyUp: onPickerKeyUp
|
|
3224
3537
|
}, ptm('decrementButton'));
|
|
3225
3538
|
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
3539
|
}
|
|
@@ -3229,6 +3542,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3229
3542
|
var createMiliSecondPicker = function createMiliSecondPicker() {
|
|
3230
3543
|
if (props.showMillisec) {
|
|
3231
3544
|
var currentTime = getCurrentDateTime();
|
|
3545
|
+
var _localeOptions9 = localeOptions(props.locale),
|
|
3546
|
+
nextMilliSecond = _localeOptions9.nextMilliSecond,
|
|
3547
|
+
prevMilliSecond = _localeOptions9.prevMilliSecond;
|
|
3232
3548
|
var millisecondProps = mergeProps(ptm('millisecond'));
|
|
3233
3549
|
var millisecond = currentTime.getMilliseconds();
|
|
3234
3550
|
var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;
|
|
@@ -3238,26 +3554,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3238
3554
|
var incrementButtonProps = mergeProps({
|
|
3239
3555
|
type: 'button',
|
|
3240
3556
|
className: cx('incrementButton'),
|
|
3557
|
+
'aria-label': nextMilliSecond,
|
|
3241
3558
|
onMouseDown: function onMouseDown(e) {
|
|
3242
3559
|
return onTimePickerElementMouseDown(e, 3, 1);
|
|
3243
3560
|
},
|
|
3244
3561
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3245
3562
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3246
3563
|
onKeyDown: function onKeyDown(e) {
|
|
3247
|
-
return
|
|
3248
|
-
}
|
|
3564
|
+
return onPickerKeyDown(e, 3, 1);
|
|
3565
|
+
},
|
|
3566
|
+
onKeyUp: onPickerKeyUp
|
|
3249
3567
|
}, ptm('incrementButton'));
|
|
3250
3568
|
var decrementButtonProps = mergeProps({
|
|
3251
3569
|
type: 'button',
|
|
3252
3570
|
className: cx('decrementButton'),
|
|
3571
|
+
'aria-label': prevMilliSecond,
|
|
3253
3572
|
onMouseDown: function onMouseDown(e) {
|
|
3254
3573
|
return onTimePickerElementMouseDown(e, 3, -1);
|
|
3255
3574
|
},
|
|
3256
3575
|
onMouseUp: onTimePickerElementMouseUp,
|
|
3257
3576
|
onMouseLeave: onTimePickerElementMouseLeave,
|
|
3258
3577
|
onKeyDown: function onKeyDown(e) {
|
|
3259
|
-
return
|
|
3260
|
-
}
|
|
3578
|
+
return onPickerKeyDown(e, 3, -1);
|
|
3579
|
+
},
|
|
3580
|
+
onKeyUp: onPickerKeyUp
|
|
3261
3581
|
}, ptm('decrementButton'));
|
|
3262
3582
|
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
3583
|
}
|
|
@@ -3266,6 +3586,9 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3266
3586
|
var createAmPmPicker = function createAmPmPicker() {
|
|
3267
3587
|
if (props.hourFormat === '12') {
|
|
3268
3588
|
var currentTime = getCurrentDateTime();
|
|
3589
|
+
var _localeOptions10 = localeOptions(props.locale),
|
|
3590
|
+
am = _localeOptions10.am,
|
|
3591
|
+
pm = _localeOptions10.pm;
|
|
3269
3592
|
var hour = currentTime.getHours();
|
|
3270
3593
|
var display = hour > 11 ? 'PM' : 'AM';
|
|
3271
3594
|
var ampmProps = mergeProps(ptm('ampm'));
|
|
@@ -3275,6 +3598,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3275
3598
|
var incrementButtonProps = mergeProps({
|
|
3276
3599
|
type: 'button',
|
|
3277
3600
|
className: cx('incrementButton'),
|
|
3601
|
+
'aria-label': am,
|
|
3278
3602
|
onClick: function onClick(e) {
|
|
3279
3603
|
return toggleAmPm(e);
|
|
3280
3604
|
}
|
|
@@ -3282,6 +3606,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3282
3606
|
var decrementButtonProps = mergeProps({
|
|
3283
3607
|
type: 'button',
|
|
3284
3608
|
className: cx('decrementButton'),
|
|
3609
|
+
'aria-label': pm,
|
|
3285
3610
|
onClick: function onClick(e) {
|
|
3286
3611
|
return toggleAmPm(e);
|
|
3287
3612
|
}
|
|
@@ -3313,6 +3638,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3313
3638
|
id: props.inputId,
|
|
3314
3639
|
name: props.name,
|
|
3315
3640
|
type: "text",
|
|
3641
|
+
role: "combobox",
|
|
3316
3642
|
className: props.inputClassName,
|
|
3317
3643
|
style: props.inputStyle,
|
|
3318
3644
|
readOnly: props.readOnlyInput,
|
|
@@ -3325,7 +3651,12 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3325
3651
|
onFocus: onInputFocus,
|
|
3326
3652
|
onBlur: onInputBlur,
|
|
3327
3653
|
onKeyDown: onInputKeyDown,
|
|
3654
|
+
"aria-expanded": overlayVisibleState,
|
|
3655
|
+
"aria-autocomplete": "none",
|
|
3656
|
+
"aria-haspopup": "dialog",
|
|
3657
|
+
"aria-controls": panelId,
|
|
3328
3658
|
"aria-labelledby": props.ariaLabelledBy,
|
|
3659
|
+
"aria-label": props.ariaLabel,
|
|
3329
3660
|
inputMode: props.inputMode,
|
|
3330
3661
|
tooltip: props.tooltip,
|
|
3331
3662
|
tooltipOptions: props.tooltipOptions,
|
|
@@ -3345,6 +3676,10 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3345
3676
|
onClick: onButtonClick,
|
|
3346
3677
|
tabIndex: "-1",
|
|
3347
3678
|
disabled: props.disabled,
|
|
3679
|
+
"aria-haspopup": "dialog",
|
|
3680
|
+
"aria-label": localeOption('chooseDate', props.locale),
|
|
3681
|
+
"aria-expanded": overlayVisibleState,
|
|
3682
|
+
"aria-controls": panelId,
|
|
3348
3683
|
className: cx('dropdownButton'),
|
|
3349
3684
|
pt: ptm('dropdownButton'),
|
|
3350
3685
|
__parentMetadata: {
|
|
@@ -3364,21 +3699,27 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3364
3699
|
};
|
|
3365
3700
|
var createButtonBar = function createButtonBar() {
|
|
3366
3701
|
if (props.showButtonBar) {
|
|
3367
|
-
var
|
|
3368
|
-
today =
|
|
3369
|
-
clear =
|
|
3702
|
+
var _localeOptions11 = localeOptions(props.locale),
|
|
3703
|
+
today = _localeOptions11.today,
|
|
3704
|
+
clear = _localeOptions11.clear,
|
|
3705
|
+
now = _localeOptions11.now;
|
|
3706
|
+
var nowDate = new Date();
|
|
3707
|
+
var isHidden = props.minDate && props.minDate > nowDate || props.maxDate && props.maxDate < nowDate;
|
|
3370
3708
|
var buttonbarProps = mergeProps({
|
|
3371
3709
|
className: cx('buttonbar')
|
|
3372
3710
|
}, ptm('buttonbar'));
|
|
3373
3711
|
return /*#__PURE__*/React.createElement("div", buttonbarProps, /*#__PURE__*/React.createElement(Button, {
|
|
3374
3712
|
type: "button",
|
|
3375
|
-
label: today,
|
|
3713
|
+
label: props.showTime ? now : today,
|
|
3376
3714
|
onClick: onTodayButtonClick,
|
|
3377
3715
|
onKeyDown: function onKeyDown(e) {
|
|
3378
3716
|
return onContainerButtonKeydown(e);
|
|
3379
3717
|
},
|
|
3380
3718
|
className: classNames(props.todayButtonClassName, cx('todayButton')),
|
|
3381
|
-
pt: ptm('todayButton')
|
|
3719
|
+
pt: ptm('todayButton'),
|
|
3720
|
+
style: isHidden ? {
|
|
3721
|
+
visibility: 'hidden'
|
|
3722
|
+
} : undefined
|
|
3382
3723
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
3383
3724
|
type: "button",
|
|
3384
3725
|
label: clear,
|
|
@@ -3408,6 +3749,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3408
3749
|
className: cx('monthPicker')
|
|
3409
3750
|
}, ptm('monthPicker'));
|
|
3410
3751
|
return /*#__PURE__*/React.createElement("div", monthPickerProps, monthPickerValues().map(function (m, i) {
|
|
3752
|
+
var selected = isMonthSelected(i);
|
|
3411
3753
|
var monthProps = mergeProps({
|
|
3412
3754
|
className: cx('month', {
|
|
3413
3755
|
isMonthSelected: isMonthSelected,
|
|
@@ -3422,18 +3764,23 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3422
3764
|
return onMonthCellKeydown(event, i);
|
|
3423
3765
|
},
|
|
3424
3766
|
'data-p-disabled': isMonthYearDisabled(i, currentYear),
|
|
3425
|
-
'data-p-highlight':
|
|
3767
|
+
'data-p-highlight': selected
|
|
3426
3768
|
}, ptm('month', {
|
|
3427
3769
|
context: {
|
|
3428
3770
|
month: m,
|
|
3429
3771
|
monthIndex: i,
|
|
3430
|
-
selected:
|
|
3772
|
+
selected: selected,
|
|
3431
3773
|
disabled: isMonthYearDisabled(i, currentYear)
|
|
3432
3774
|
}
|
|
3433
3775
|
}));
|
|
3434
3776
|
return /*#__PURE__*/React.createElement("span", _extends({}, monthProps, {
|
|
3435
3777
|
key: "month".concat(i + 1)
|
|
3436
|
-
}), m
|
|
3778
|
+
}), m, selected && /*#__PURE__*/React.createElement("div", {
|
|
3779
|
+
"aria-live": "polite",
|
|
3780
|
+
className: "p-hidden-accessible",
|
|
3781
|
+
"data-p-hidden-accessible": true,
|
|
3782
|
+
pt: ptm('hiddenMonth')
|
|
3783
|
+
}, m));
|
|
3437
3784
|
}));
|
|
3438
3785
|
}
|
|
3439
3786
|
return null;
|
|
@@ -3444,6 +3791,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3444
3791
|
className: cx('yearPicker')
|
|
3445
3792
|
}, ptm('yearPicker'));
|
|
3446
3793
|
return /*#__PURE__*/React.createElement("div", yearPickerProps, yearPickerValues().map(function (y, i) {
|
|
3794
|
+
var selected = isYearSelected(y);
|
|
3447
3795
|
var yearProps = mergeProps({
|
|
3448
3796
|
className: cx('year', {
|
|
3449
3797
|
isYearSelected: isYearSelected,
|
|
@@ -3453,19 +3801,27 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3453
3801
|
onClick: function onClick(event) {
|
|
3454
3802
|
return onYearSelect(event, y);
|
|
3455
3803
|
},
|
|
3804
|
+
onKeyDown: function onKeyDown(event) {
|
|
3805
|
+
return onYearCellKeydown(event, y);
|
|
3806
|
+
},
|
|
3456
3807
|
'data-p-highlight': isYearSelected(y),
|
|
3457
3808
|
'data-p-disabled': isMonthYearDisabled(-1, y)
|
|
3458
3809
|
}, ptm('year', {
|
|
3459
3810
|
context: {
|
|
3460
3811
|
year: y,
|
|
3461
3812
|
yearIndex: i,
|
|
3462
|
-
selected:
|
|
3813
|
+
selected: selected,
|
|
3463
3814
|
disabled: isMonthYearDisabled(-1, y)
|
|
3464
3815
|
}
|
|
3465
3816
|
}));
|
|
3466
3817
|
return /*#__PURE__*/React.createElement("span", _extends({}, yearProps, {
|
|
3467
3818
|
key: "year".concat(i + 1)
|
|
3468
|
-
}), y
|
|
3819
|
+
}), y, selected && /*#__PURE__*/React.createElement("div", {
|
|
3820
|
+
"aria-live": "polite",
|
|
3821
|
+
className: "p-hidden-accessible",
|
|
3822
|
+
"data-p-hidden-accessible": true,
|
|
3823
|
+
pt: ptm('hiddenYear')
|
|
3824
|
+
}, y));
|
|
3469
3825
|
}));
|
|
3470
3826
|
}
|
|
3471
3827
|
return null;
|
|
@@ -3492,7 +3848,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3492
3848
|
id: props.id,
|
|
3493
3849
|
className: classNames(props.className, cx('root', {
|
|
3494
3850
|
focusedState: focusedState,
|
|
3495
|
-
isFilled: isFilled
|
|
3851
|
+
isFilled: isFilled,
|
|
3852
|
+
panelVisible: visible
|
|
3496
3853
|
})),
|
|
3497
3854
|
style: props.style
|
|
3498
3855
|
}, CalendarBase.getOtherProps(props), ptm('root'));
|
|
@@ -3500,6 +3857,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
3500
3857
|
ref: elementRef
|
|
3501
3858
|
}, rootProps), content, /*#__PURE__*/React.createElement(CalendarPanel, {
|
|
3502
3859
|
hostName: "Calendar",
|
|
3860
|
+
id: panelId,
|
|
3861
|
+
locale: props.locale,
|
|
3503
3862
|
ref: overlayRef,
|
|
3504
3863
|
className: panelClassName,
|
|
3505
3864
|
style: props.panelStyle,
|