primevue 3.15.0 → 3.16.2
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/autocomplete/AutoComplete.d.ts +182 -38
- package/autocomplete/AutoComplete.vue +636 -342
- package/autocomplete/autocomplete.cjs.js +745 -416
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.esm.js +747 -418
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +745 -416
- package/autocomplete/autocomplete.min.js +1 -1
- package/button/Button.vue +4 -1
- package/button/button.cjs.js +5 -1
- package/button/button.cjs.min.js +1 -1
- package/button/button.esm.js +5 -1
- package/button/button.esm.min.js +1 -1
- package/button/button.js +5 -1
- package/button/button.min.js +1 -1
- package/calendar/Calendar.d.ts +51 -12
- package/calendar/Calendar.vue +259 -114
- package/calendar/calendar.cjs.js +414 -220
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +415 -221
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +414 -220
- package/calendar/calendar.min.js +1 -1
- package/carousel/Carousel.vue +25 -0
- package/carousel/carousel.cjs.js +25 -0
- package/carousel/carousel.cjs.min.js +1 -1
- package/carousel/carousel.esm.js +25 -0
- package/carousel/carousel.esm.min.js +1 -1
- package/carousel/carousel.js +25 -0
- package/carousel/carousel.min.js +1 -1
- package/cascadeselect/CascadeSelect.d.ts +97 -17
- package/cascadeselect/CascadeSelect.vue +560 -135
- package/cascadeselect/CascadeSelectSub.vue +48 -129
- package/cascadeselect/cascadeselect.cjs.js +670 -306
- package/cascadeselect/cascadeselect.cjs.min.js +1 -1
- package/cascadeselect/cascadeselect.esm.js +672 -308
- package/cascadeselect/cascadeselect.esm.min.js +1 -1
- package/cascadeselect/cascadeselect.js +670 -306
- package/cascadeselect/cascadeselect.min.js +1 -1
- package/checkbox/Checkbox.d.ts +40 -4
- package/checkbox/Checkbox.vue +50 -13
- package/checkbox/checkbox.cjs.js +64 -23
- package/checkbox/checkbox.cjs.min.js +1 -1
- package/checkbox/checkbox.esm.js +65 -24
- package/checkbox/checkbox.esm.min.js +1 -1
- package/checkbox/checkbox.js +64 -23
- package/checkbox/checkbox.min.js +1 -1
- package/chips/Chips.d.ts +36 -12
- package/chips/Chips.vue +116 -22
- package/chips/chips.cjs.js +149 -37
- package/chips/chips.cjs.min.js +1 -1
- package/chips/chips.esm.js +150 -38
- package/chips/chips.esm.min.js +1 -1
- package/chips/chips.js +150 -39
- package/chips/chips.min.js +1 -1
- package/colorpicker/ColorPicker.d.ts +3 -6
- package/colorpicker/ColorPicker.vue +1 -5
- package/colorpicker/colorpicker.cjs.js +2 -7
- package/colorpicker/colorpicker.cjs.min.js +1 -1
- package/colorpicker/colorpicker.esm.js +2 -7
- package/colorpicker/colorpicker.esm.min.js +1 -1
- package/colorpicker/colorpicker.js +2 -7
- package/colorpicker/colorpicker.min.js +1 -1
- package/column/Column.d.ts +4 -0
- package/column/Column.vue +4 -0
- package/column/column.cjs.js +4 -0
- package/column/column.cjs.min.js +1 -1
- package/column/column.esm.js +4 -0
- package/column/column.esm.min.js +1 -1
- package/column/column.js +4 -0
- package/column/column.min.js +1 -1
- package/config/PrimeVue.d.ts +42 -0
- package/config/config.cjs.js +35 -4
- package/config/config.cjs.min.js +1 -1
- package/config/config.esm.js +35 -4
- package/config/config.esm.min.js +1 -1
- package/config/config.js +35 -4
- package/config/config.min.js +1 -1
- package/confirmdialog/ConfirmDialog.vue +4 -1
- package/confirmdialog/confirmdialog.cjs.js +6 -2
- package/confirmdialog/confirmdialog.cjs.min.js +1 -1
- package/confirmdialog/confirmdialog.esm.js +6 -2
- package/confirmdialog/confirmdialog.esm.min.js +1 -1
- package/confirmdialog/confirmdialog.js +6 -2
- package/confirmdialog/confirmdialog.min.js +1 -1
- package/contextmenu/ContextMenu.d.ts +1 -1
- package/contextmenu/ContextMenuSub.vue +3 -3
- package/contextmenu/contextmenu.cjs.js +14 -8
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.esm.js +15 -9
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +14 -8
- package/contextmenu/contextmenu.min.js +1 -1
- package/core/core.js +1128 -772
- package/core/core.min.js +12 -12
- package/datatable/BodyCell.vue +11 -2
- package/datatable/DataTable.vue +23 -2
- package/datatable/datatable.cjs.js +34 -4
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +34 -4
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +34 -4
- package/datatable/datatable.min.js +1 -1
- package/dialog/Dialog.d.ts +5 -1
- package/dropdown/Dropdown.d.ts +92 -38
- package/dropdown/Dropdown.vue +538 -399
- package/dropdown/dropdown.cjs.js +657 -486
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +659 -488
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +657 -486
- package/dropdown/dropdown.min.js +1 -1
- package/editor/Editor.d.ts +32 -0
- package/editor/Editor.vue +15 -1
- package/editor/editor.cjs.js +15 -1
- package/editor/editor.cjs.min.js +1 -1
- package/editor/editor.esm.js +15 -1
- package/editor/editor.esm.min.js +1 -1
- package/editor/editor.js +15 -1
- package/editor/editor.min.js +1 -1
- package/inputmask/InputMask.vue +9 -6
- package/inputmask/inputmask.cjs.js +14 -6
- package/inputmask/inputmask.cjs.min.js +1 -1
- package/inputmask/inputmask.esm.js +15 -7
- package/inputmask/inputmask.esm.min.js +1 -1
- package/inputmask/inputmask.js +14 -6
- package/inputmask/inputmask.min.js +1 -1
- package/inputnumber/InputNumber.d.ts +31 -7
- package/inputnumber/InputNumber.vue +53 -20
- package/inputnumber/inputnumber.cjs.js +75 -29
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.esm.js +76 -30
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +75 -29
- package/inputnumber/inputnumber.min.js +1 -1
- package/inputswitch/InputSwitch.d.ts +24 -8
- package/inputswitch/InputSwitch.vue +27 -12
- package/inputswitch/inputswitch.cjs.js +38 -20
- package/inputswitch/inputswitch.cjs.min.js +1 -1
- package/inputswitch/inputswitch.esm.js +39 -21
- package/inputswitch/inputswitch.esm.min.js +1 -1
- package/inputswitch/inputswitch.js +38 -20
- package/inputswitch/inputswitch.min.js +1 -1
- package/inputtext/InputText.vue +1 -2
- package/inputtext/inputtext.cjs.js +3 -4
- package/inputtext/inputtext.cjs.min.js +1 -1
- package/inputtext/inputtext.esm.js +4 -5
- package/inputtext/inputtext.esm.min.js +1 -1
- package/inputtext/inputtext.js +3 -4
- package/inputtext/inputtext.min.js +1 -1
- package/knob/Knob.d.ts +12 -0
- package/knob/Knob.vue +62 -2
- package/knob/knob.cjs.js +73 -5
- package/knob/knob.cjs.min.js +1 -1
- package/knob/knob.esm.js +73 -5
- package/knob/knob.esm.min.js +1 -1
- package/knob/knob.js +73 -5
- package/knob/knob.min.js +1 -1
- package/listbox/Listbox.d.ts +53 -7
- package/listbox/Listbox.vue +500 -135
- package/listbox/listbox.cjs.js +597 -193
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +599 -195
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +597 -193
- package/listbox/listbox.min.js +1 -1
- package/menu/Menu.d.ts +1 -1
- package/menu/Menuitem.vue +2 -2
- package/menu/menu.cjs.js +12 -6
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +13 -7
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +12 -6
- package/menu/menu.min.js +1 -1
- package/menubar/MenubarSub.vue +3 -3
- package/menubar/menubar.cjs.js +14 -8
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +15 -9
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +14 -8
- package/menubar/menubar.min.js +1 -1
- package/menuitem/MenuItem.d.ts +1 -1
- package/multiselect/MultiSelect.d.ts +111 -51
- package/multiselect/MultiSelect.vue +629 -338
- package/multiselect/multiselect.cjs.js +748 -428
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +750 -430
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +748 -428
- package/multiselect/multiselect.min.js +1 -1
- package/overlaypanel/OverlayPanel.d.ts +1 -1
- package/overlaypanel/OverlayPanel.vue +14 -2
- package/overlaypanel/overlaypanel.cjs.js +14 -2
- package/overlaypanel/overlaypanel.cjs.min.js +1 -1
- package/overlaypanel/overlaypanel.esm.js +14 -2
- package/overlaypanel/overlaypanel.esm.min.js +1 -1
- package/overlaypanel/overlaypanel.js +14 -2
- package/overlaypanel/overlaypanel.min.js +1 -1
- package/package.json +2 -2
- package/paginator/Paginator.d.ts +2 -2
- package/password/Password.d.ts +36 -8
- package/password/Password.vue +50 -14
- package/password/password.cjs.js +69 -24
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +71 -26
- package/password/password.esm.min.js +1 -1
- package/password/password.js +69 -24
- package/password/password.min.js +1 -1
- package/picklist/PickList.d.ts +8 -0
- package/picklist/PickList.vue +10 -2
- package/picklist/picklist.cjs.js +68 -50
- package/picklist/picklist.cjs.min.js +1 -1
- package/picklist/picklist.esm.js +69 -51
- package/picklist/picklist.esm.min.js +1 -1
- package/picklist/picklist.js +68 -50
- package/picklist/picklist.min.js +1 -1
- package/portal/Portal.d.ts +1 -1
- package/radiobutton/RadioButton.d.ts +28 -4
- package/radiobutton/RadioButton.vue +36 -11
- package/radiobutton/radiobutton.cjs.js +49 -23
- package/radiobutton/radiobutton.cjs.min.js +1 -1
- package/radiobutton/radiobutton.esm.js +50 -24
- package/radiobutton/radiobutton.esm.min.js +1 -1
- package/radiobutton/radiobutton.js +49 -23
- package/radiobutton/radiobutton.min.js +1 -1
- package/rating/Rating.d.ts +4 -0
- package/rating/Rating.vue +61 -7
- package/rating/rating.cjs.js +90 -16
- package/rating/rating.cjs.min.js +1 -1
- package/rating/rating.esm.js +91 -17
- package/rating/rating.esm.min.js +1 -1
- package/rating/rating.js +90 -16
- package/rating/rating.min.js +1 -1
- package/resources/primevue.css +8 -0
- package/resources/primevue.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +82 -40
- package/resources/themes/arya-green/theme.css +82 -40
- package/resources/themes/arya-orange/theme.css +82 -40
- package/resources/themes/arya-purple/theme.css +82 -40
- package/resources/themes/bootstrap4-dark-blue/theme.css +82 -40
- package/resources/themes/bootstrap4-dark-purple/theme.css +82 -40
- package/resources/themes/bootstrap4-light-blue/theme.css +82 -40
- package/resources/themes/bootstrap4-light-purple/theme.css +82 -40
- package/resources/themes/fluent-light/theme.css +82 -40
- package/resources/themes/lara-dark-blue/theme.css +82 -40
- package/resources/themes/lara-dark-indigo/theme.css +82 -40
- package/resources/themes/lara-dark-purple/theme.css +82 -40
- package/resources/themes/lara-dark-teal/theme.css +82 -40
- package/resources/themes/lara-light-blue/theme.css +82 -40
- package/resources/themes/lara-light-indigo/theme.css +82 -40
- package/resources/themes/lara-light-purple/theme.css +82 -40
- package/resources/themes/lara-light-teal/theme.css +82 -40
- package/resources/themes/luna-amber/theme.css +82 -40
- package/resources/themes/luna-blue/theme.css +82 -40
- package/resources/themes/luna-green/theme.css +82 -40
- package/resources/themes/luna-pink/theme.css +82 -40
- package/resources/themes/md-dark-deeppurple/theme.css +82 -40
- package/resources/themes/md-dark-indigo/theme.css +82 -40
- package/resources/themes/md-light-deeppurple/theme.css +82 -40
- package/resources/themes/md-light-indigo/theme.css +82 -40
- package/resources/themes/mdc-dark-deeppurple/theme.css +82 -40
- package/resources/themes/mdc-dark-indigo/theme.css +82 -40
- package/resources/themes/mdc-light-deeppurple/theme.css +82 -40
- package/resources/themes/mdc-light-indigo/theme.css +82 -40
- package/resources/themes/nova/theme.css +82 -40
- package/resources/themes/nova-accent/theme.css +82 -40
- package/resources/themes/nova-alt/theme.css +82 -40
- package/resources/themes/nova-vue/theme.css +82 -40
- package/resources/themes/rhea/theme.css +82 -40
- package/resources/themes/saga-blue/theme.css +82 -40
- package/resources/themes/saga-green/theme.css +82 -40
- package/resources/themes/saga-orange/theme.css +82 -40
- package/resources/themes/saga-purple/theme.css +82 -40
- package/resources/themes/tailwind-light/theme.css +82 -40
- package/resources/themes/vela-blue/theme.css +82 -40
- package/resources/themes/vela-green/theme.css +82 -40
- package/resources/themes/vela-orange/theme.css +82 -40
- package/resources/themes/vela-purple/theme.css +82 -40
- package/ripple/ripple.cjs.js +1 -0
- package/ripple/ripple.cjs.min.js +1 -1
- package/ripple/ripple.esm.js +1 -0
- package/ripple/ripple.esm.min.js +1 -1
- package/ripple/ripple.js +1 -0
- package/ripple/ripple.min.js +1 -1
- package/selectbutton/SelectButton.d.ts +6 -2
- package/selectbutton/SelectButton.vue +89 -12
- package/selectbutton/selectbutton.cjs.js +97 -22
- package/selectbutton/selectbutton.cjs.min.js +1 -1
- package/selectbutton/selectbutton.esm.js +99 -24
- package/selectbutton/selectbutton.esm.min.js +1 -1
- package/selectbutton/selectbutton.js +97 -22
- package/selectbutton/selectbutton.min.js +1 -1
- package/slider/Slider.d.ts +9 -1
- package/slider/Slider.vue +50 -34
- package/slider/slider.cjs.js +59 -38
- package/slider/slider.cjs.min.js +1 -1
- package/slider/slider.esm.js +59 -38
- package/slider/slider.esm.min.js +1 -1
- package/slider/slider.js +59 -38
- package/slider/slider.min.js +1 -1
- package/splitbutton/SplitButton.d.ts +1 -1
- package/splitter/Splitter.vue +30 -1
- package/splitter/splitter.cjs.js +30 -1
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.esm.js +30 -1
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +30 -1
- package/splitter/splitter.min.js +1 -1
- package/textarea/Textarea.vue +1 -2
- package/textarea/textarea.cjs.js +3 -5
- package/textarea/textarea.cjs.min.js +1 -1
- package/textarea/textarea.esm.js +4 -6
- package/textarea/textarea.esm.min.js +1 -1
- package/textarea/textarea.js +3 -5
- package/textarea/textarea.min.js +1 -1
- package/tieredmenu/TieredMenu.d.ts +1 -1
- package/tieredmenu/TieredMenuSub.vue +3 -3
- package/tieredmenu/tieredmenu.cjs.js +14 -8
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +15 -9
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +14 -8
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/timeline/Timeline.d.ts +10 -1
- package/timeline/Timeline.vue +1 -1
- package/timeline/timeline.cjs.js +5 -1
- package/timeline/timeline.cjs.min.js +1 -1
- package/timeline/timeline.esm.js +5 -1
- package/timeline/timeline.esm.min.js +1 -1
- package/timeline/timeline.js +5 -1
- package/timeline/timeline.min.js +1 -1
- package/togglebutton/ToggleButton.d.ts +42 -0
- package/togglebutton/ToggleButton.vue +44 -7
- package/togglebutton/togglebutton.cjs.js +59 -13
- package/togglebutton/togglebutton.cjs.min.js +1 -1
- package/togglebutton/togglebutton.esm.js +60 -14
- package/togglebutton/togglebutton.esm.min.js +1 -1
- package/togglebutton/togglebutton.js +59 -13
- package/togglebutton/togglebutton.min.js +1 -1
- package/tooltip/tooltip.cjs.js +20 -11
- package/tooltip/tooltip.cjs.min.js +1 -1
- package/tooltip/tooltip.esm.js +21 -12
- package/tooltip/tooltip.esm.min.js +1 -1
- package/tooltip/tooltip.js +20 -11
- package/tooltip/tooltip.min.js +1 -1
- package/tree/Tree.vue +5 -1
- package/tree/TreeNode.vue +20 -19
- package/tree/tree.cjs.js +47 -32
- package/tree/tree.cjs.min.js +1 -1
- package/tree/tree.esm.js +47 -32
- package/tree/tree.esm.min.js +1 -1
- package/tree/tree.js +47 -32
- package/tree/tree.min.js +1 -1
- package/treeselect/TreeSelect.d.ts +26 -10
- package/treeselect/TreeSelect.vue +52 -29
- package/treeselect/treeselect.cjs.js +74 -41
- package/treeselect/treeselect.cjs.min.js +1 -1
- package/treeselect/treeselect.esm.js +76 -43
- package/treeselect/treeselect.esm.min.js +1 -1
- package/treeselect/treeselect.js +74 -41
- package/treeselect/treeselect.min.js +1 -1
- package/tristatecheckbox/TriStateCheckbox.d.ts +20 -4
- package/tristatecheckbox/TriStateCheckbox.vue +52 -15
- package/tristatecheckbox/tristatecheckbox.cjs.js +67 -26
- package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.esm.js +68 -27
- package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.js +67 -26
- package/tristatecheckbox/tristatecheckbox.min.js +1 -1
- package/utils/Utils.d.ts +3 -2
- package/utils/utils.cjs.js +239 -173
- package/utils/utils.cjs.min.js +1 -1
- package/utils/utils.esm.js +239 -173
- package/utils/utils.esm.min.js +1 -1
- package/utils/utils.js +239 -173
- package/utils/utils.min.js +1 -1
- package/vetur-attributes.json +612 -136
- package/vetur-tags.json +180 -59
- package/virtualscroller/VirtualScroller.d.ts +10 -0
- package/virtualscroller/VirtualScroller.vue +18 -17
- package/virtualscroller/virtualscroller.cjs.js +22 -20
- package/virtualscroller/virtualscroller.cjs.min.js +1 -1
- package/virtualscroller/virtualscroller.esm.js +22 -20
- package/virtualscroller/virtualscroller.esm.min.js +1 -1
- package/virtualscroller/virtualscroller.js +22 -20
- package/virtualscroller/virtualscroller.min.js +1 -1
- package/web-types.json +1745 -338
package/calendar/Calendar.vue
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span ref="container" :
|
|
3
|
-
<input :ref="inputRef" v-if="!inline" type="text" :class="['p-inputtext p-component', inputClass]" :style="inputStyle"
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
<span ref="container" :id="id" :class="containerClass">
|
|
3
|
+
<input :ref="inputRef" v-if="!inline" type="text" role="combobox" :id="inputId" :class="['p-inputtext p-component', inputClass]" :style="inputStyle" :placeholder="placeholder"
|
|
4
|
+
aria-autocomplete="none" aria-haspopup="dialog" :aria-expanded="overlayVisible" :aria-controls="panelId" :aria-labelledby="ariaLabelledby" :aria-label="ariaLabel" inputmode="none"
|
|
5
|
+
@input="onInput" @focus="onFocus" @blur="onBlur" @keydown="onKeyDown" :readonly="!manualInput" :tabindex="0" v-bind="inputProps">
|
|
6
|
+
<CalendarButton v-if="showIcon" :icon="icon" class="p-datepicker-trigger" :disabled="disabled" @click="onButtonClick" type="button" :aria-label="$primevue.config.locale.chooseDate" aria-haspopup="dialog" :aria-expanded="overlayVisible" :aria-controls="panelId"/>
|
|
6
7
|
<Portal :appendTo="appendTo" :disabled="inline">
|
|
7
8
|
<transition name="p-connected-overlay" @enter="onOverlayEnter($event)" @after-enter="onOverlayEnterComplete" @after-leave="onOverlayAfterLeave" @leave="onOverlayLeave">
|
|
8
|
-
<div :ref="overlayRef" :class="panelStyleClass" v-if="inline
|
|
9
|
+
<div :ref="overlayRef" :id="panelId" :class="panelStyleClass" :style=panelStyle v-if="inline || overlayVisible" :role="inline ? null : 'dialog'" :aria-modal="inline ? null : 'true'" :aria-label="$primevue.config.locale.chooseDate"
|
|
10
|
+
@click="onOverlayClick" @keydown="onOverlayKeyDown" @mouseup="onOverlayMouseUp" v-bind="panelProps">
|
|
9
11
|
<template v-if="!timeOnly">
|
|
10
12
|
<div class="p-datepicker-group-container">
|
|
11
13
|
<div class="p-datepicker-group" v-for="(month,groupIndex) of months" :key="month.month + month.year">
|
|
12
14
|
<div class="p-datepicker-header">
|
|
13
15
|
<slot name="header"></slot>
|
|
14
|
-
<button class="p-datepicker-prev p-link" v-show="groupIndex === 0" @click="onPrevButtonClick" type="button" @keydown="onContainerButtonKeydown" v-ripple :disabled="$
|
|
16
|
+
<button class="p-datepicker-prev p-link" v-show="showOtherMonths ? groupIndex === 0 : false" @click="onPrevButtonClick" type="button" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled" :aria-label=" currentView === 'year' ? $primevue.config.locale.prevDecade: currentView === 'month' ? $primevue.config.locale.prevYear : $primevue.config.locale.prevMonth">
|
|
15
17
|
<span class="p-datepicker-prev-icon pi pi-chevron-left"></span>
|
|
16
18
|
</button>
|
|
17
19
|
<div class="p-datepicker-title">
|
|
18
|
-
<button type="button" @click="switchToMonthView" @keydown="onContainerButtonKeydown" v-if="currentView === 'date'" class="p-datepicker-month p-link" :disabled="switchViewButtonDisabled">
|
|
20
|
+
<button type="button" @click="switchToMonthView" @keydown="onContainerButtonKeydown" v-if="currentView === 'date'" class="p-datepicker-month p-link" :disabled="switchViewButtonDisabled" :aria-label="$primevue.config.locale.chooseMonth">
|
|
19
21
|
{{getMonthName(month.month)}}
|
|
20
22
|
</button>
|
|
21
|
-
<button type="button" @click="switchToYearView" @keydown="onContainerButtonKeydown" v-if="currentView !== 'year'" class="p-datepicker-year p-link" :disabled="switchViewButtonDisabled">
|
|
23
|
+
<button type="button" @click="switchToYearView" @keydown="onContainerButtonKeydown" v-if="currentView !== 'year'" class="p-datepicker-year p-link" :disabled="switchViewButtonDisabled" :aria-label="$primevue.config.locale.chooseYear">
|
|
22
24
|
{{getYear(month)}}
|
|
23
25
|
</button>
|
|
24
26
|
<span class="p-datepicker-decade" v-if="currentView === 'year'">
|
|
@@ -27,19 +29,19 @@
|
|
|
27
29
|
</slot>
|
|
28
30
|
</span>
|
|
29
31
|
</div>
|
|
30
|
-
<button class="p-datepicker-next p-link" v-show="numberOfMonths === 1 ? true : (groupIndex === numberOfMonths - 1)"
|
|
31
|
-
@click="onNextButtonClick" type="button" @keydown="onContainerButtonKeydown" v-ripple :disabled="$
|
|
32
|
+
<button class="p-datepicker-next p-link" v-show="showOtherMonths ? numberOfMonths === 1 ? true : (groupIndex === numberOfMonths - 1) : false"
|
|
33
|
+
@click="onNextButtonClick" type="button" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled" :aria-label=" currentView === 'year' ? $primevue.config.locale.nextDecade : currentView === 'month' ? $primevue.config.locale.nextYear : $primevue.config.locale.nextMonth">
|
|
32
34
|
<span class="p-datepicker-next-icon pi pi-chevron-right"></span>
|
|
33
35
|
</button>
|
|
34
36
|
</div>
|
|
35
37
|
<div class="p-datepicker-calendar-container" v-if="currentView ==='date'">
|
|
36
|
-
<table class="p-datepicker-calendar">
|
|
38
|
+
<table class="p-datepicker-calendar" role="grid">
|
|
37
39
|
<thead>
|
|
38
40
|
<tr>
|
|
39
41
|
<th scope="col" v-if="showWeek" class="p-datepicker-weekheader p-disabled">
|
|
40
42
|
<span>{{weekHeaderLabel}}</span>
|
|
41
43
|
</th>
|
|
42
|
-
<th scope="col" v-for="weekDay of weekDays" :key="weekDay">
|
|
44
|
+
<th scope="col" v-for="weekDay of weekDays" :key="weekDay" :abbr="weekDay">
|
|
43
45
|
<span>{{weekDay}}</span>
|
|
44
46
|
</th>
|
|
45
47
|
</tr>
|
|
@@ -52,11 +54,14 @@
|
|
|
52
54
|
{{month.weekNumbers[i]}}
|
|
53
55
|
</span>
|
|
54
56
|
</td>
|
|
55
|
-
<td v-for="date of week" :key="date.day + '' + date.month" :class="{'p-datepicker-other-month': date.otherMonth, 'p-datepicker-today': date.today}">
|
|
57
|
+
<td v-for="date of week" :aria-label="date.day" :key="date.day + '' + date.month" :class="{'p-datepicker-other-month': date.otherMonth, 'p-datepicker-today': date.today}">
|
|
56
58
|
<span :class="{'p-highlight': isSelected(date), 'p-disabled': !date.selectable}" @click="onDateSelect($event, date)"
|
|
57
|
-
draggable="false" @keydown="onDateCellKeydown($event,date,groupIndex)" v-ripple>
|
|
59
|
+
draggable="false" @keydown="onDateCellKeydown($event,date,groupIndex)" v-ripple :aria-selected="isSelected(date)">
|
|
58
60
|
<slot name="date" :date="date">{{date.day}}</slot>
|
|
59
61
|
</span>
|
|
62
|
+
<div v-if="isSelected(date)" class="p-hidden-accessible" aria-live="polite">
|
|
63
|
+
{{date.day}}
|
|
64
|
+
</div>
|
|
60
65
|
</td>
|
|
61
66
|
</tr>
|
|
62
67
|
</tbody>
|
|
@@ -68,23 +73,29 @@
|
|
|
68
73
|
<span v-for="(m,i) of monthPickerValues" :key="m" @click="onMonthSelect($event, i)" @keydown="onMonthCellKeydown($event,i)"
|
|
69
74
|
class="p-monthpicker-month" :class="{'p-highlight': isMonthSelected(i)}" v-ripple>
|
|
70
75
|
{{m}}
|
|
76
|
+
<div v-if="isMonthSelected(i)" class="p-hidden-accessible" aria-live="polite">
|
|
77
|
+
{{m}}
|
|
78
|
+
</div>
|
|
71
79
|
</span>
|
|
72
80
|
</div>
|
|
73
81
|
<div class="p-yearpicker" v-if="currentView === 'year'">
|
|
74
82
|
<span v-for="y of yearPickerValues" :key="y" @click="onYearSelect($event, y)" @keydown="onYearCellKeydown($event,y)"
|
|
75
83
|
class="p-yearpicker-year" :class="{'p-highlight': isYearSelected(y)}" v-ripple>
|
|
76
84
|
{{y}}
|
|
85
|
+
<div v-if="isYearSelected(y)" class="p-hidden-accessible" aria-live="polite">
|
|
86
|
+
{{y}}
|
|
87
|
+
</div>
|
|
77
88
|
</span>
|
|
78
89
|
</div>
|
|
79
90
|
</template>
|
|
80
91
|
<div class="p-timepicker" v-if="(showTime||timeOnly) && currentView === 'date'">
|
|
81
92
|
<div class="p-hour-picker">
|
|
82
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 0, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple
|
|
93
|
+
<button class="p-link" :aria-label="$primevue.config.locale.nextHour" @mousedown="onTimePickerElementMouseDown($event, 0, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple
|
|
83
94
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 0, 1)" @keydown.space="onTimePickerElementMouseDown($event, 0, 1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
84
95
|
<span class="pi pi-chevron-up"></span>
|
|
85
96
|
</button>
|
|
86
97
|
<span>{{formattedCurrentHour}}</span>
|
|
87
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 0, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple
|
|
98
|
+
<button class="p-link" :aria-label="$primevue.config.locale.prevHour" @mousedown="onTimePickerElementMouseDown($event, 0, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple
|
|
88
99
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 0, -1)" @keydown.space="onTimePickerElementMouseDown($event, 0, -1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
89
100
|
<span class="pi pi-chevron-down"></span>
|
|
90
101
|
</button>
|
|
@@ -93,12 +104,12 @@
|
|
|
93
104
|
<span>{{timeSeparator}}</span>
|
|
94
105
|
</div>
|
|
95
106
|
<div class="p-minute-picker">
|
|
96
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 1, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="
|
|
107
|
+
<button class="p-link" :aria-label="$primevue.config.locale.nextMinute" @mousedown="onTimePickerElementMouseDown($event, 1, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled"
|
|
97
108
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 1, 1)" @keydown.space="onTimePickerElementMouseDown($event, 1, 1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
98
109
|
<span class="pi pi-chevron-up"></span>
|
|
99
110
|
</button>
|
|
100
111
|
<span>{{formattedCurrentMinute}}</span>
|
|
101
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 1, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="
|
|
112
|
+
<button class="p-link" :aria-label="$primevue.config.locale.prevMinute" @mousedown="onTimePickerElementMouseDown($event, 1, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled"
|
|
102
113
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 1, -1)" @keydown.space="onTimePickerElementMouseDown($event, 1, -1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
103
114
|
<span class="pi pi-chevron-down"></span>
|
|
104
115
|
</button>
|
|
@@ -107,12 +118,12 @@
|
|
|
107
118
|
<span>{{timeSeparator}}</span>
|
|
108
119
|
</div>
|
|
109
120
|
<div class="p-second-picker" v-if="showSeconds">
|
|
110
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 2, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="
|
|
121
|
+
<button class="p-link" :aria-label="$primevue.config.locale.nextSecond" @mousedown="onTimePickerElementMouseDown($event, 2, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled"
|
|
111
122
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 2, 1)" @keydown.space="onTimePickerElementMouseDown($event, 2, 1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
112
123
|
<span class="pi pi-chevron-up"></span>
|
|
113
124
|
</button>
|
|
114
125
|
<span>{{formattedCurrentSecond}}</span>
|
|
115
|
-
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 2, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="
|
|
126
|
+
<button class="p-link" :aria-label="$primevue.config.locale.prevSecond" @mousedown="onTimePickerElementMouseDown($event, 2, -1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple :disabled="disabled"
|
|
116
127
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 2, -1)" @keydown.space="onTimePickerElementMouseDown($event, 2, -1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
117
128
|
<span class="pi pi-chevron-down"></span>
|
|
118
129
|
</button>
|
|
@@ -121,11 +132,11 @@
|
|
|
121
132
|
<span>{{timeSeparator}}</span>
|
|
122
133
|
</div>
|
|
123
134
|
<div class="p-ampm-picker" v-if="hourFormat=='12'">
|
|
124
|
-
<button class="p-link" @click="toggleAMPM($event)" type="button" v-ripple :disabled="
|
|
135
|
+
<button class="p-link" :aria-label="$primevue.config.locale.am" @click="toggleAMPM($event)" type="button" v-ripple :disabled="disabled">
|
|
125
136
|
<span class="pi pi-chevron-up"></span>
|
|
126
137
|
</button>
|
|
127
138
|
<span>{{pm ? 'PM' : 'AM'}}</span>
|
|
128
|
-
<button class="p-link" @click="toggleAMPM($event)" type="button" v-ripple :disabled="
|
|
139
|
+
<button class="p-link" :aria-label="$primevue.config.locale.pm" @click="toggleAMPM($event)" type="button" v-ripple :disabled="disabled">
|
|
129
140
|
<span class="pi pi-chevron-down"></span>
|
|
130
141
|
</button>
|
|
131
142
|
</div>
|
|
@@ -150,7 +161,6 @@ import Portal from 'primevue/portal';
|
|
|
150
161
|
|
|
151
162
|
export default {
|
|
152
163
|
name: 'Calendar',
|
|
153
|
-
inheritAttrs: false,
|
|
154
164
|
emits: ['show', 'hide', 'input', 'month-change', 'year-change', 'date-select', 'update:modelValue', 'today-click', 'clear-click', 'focus', 'blur', 'keydown'],
|
|
155
165
|
props: {
|
|
156
166
|
modelValue: null,
|
|
@@ -207,10 +217,6 @@ export default {
|
|
|
207
217
|
type: String,
|
|
208
218
|
default: null
|
|
209
219
|
},
|
|
210
|
-
panelClass: {
|
|
211
|
-
type: String,
|
|
212
|
-
default: null
|
|
213
|
-
},
|
|
214
220
|
minDate: {
|
|
215
221
|
type: Date,
|
|
216
222
|
value: null
|
|
@@ -283,6 +289,10 @@ export default {
|
|
|
283
289
|
type: Boolean,
|
|
284
290
|
default: false
|
|
285
291
|
},
|
|
292
|
+
hideOnRangeSelection: {
|
|
293
|
+
type: Boolean,
|
|
294
|
+
default: false
|
|
295
|
+
},
|
|
286
296
|
timeSeparator: {
|
|
287
297
|
type: String,
|
|
288
298
|
default: ':'
|
|
@@ -299,10 +309,34 @@ export default {
|
|
|
299
309
|
type: String,
|
|
300
310
|
default: 'body'
|
|
301
311
|
},
|
|
312
|
+
disabled: {
|
|
313
|
+
type: Boolean,
|
|
314
|
+
default: false
|
|
315
|
+
},
|
|
316
|
+
readonly: {
|
|
317
|
+
type: Boolean,
|
|
318
|
+
default: false
|
|
319
|
+
},
|
|
320
|
+
placeholder: {
|
|
321
|
+
type: String,
|
|
322
|
+
default: null
|
|
323
|
+
},
|
|
324
|
+
id: null,
|
|
325
|
+
inputId: null,
|
|
302
326
|
inputClass: null,
|
|
303
327
|
inputStyle: null,
|
|
304
|
-
|
|
305
|
-
|
|
328
|
+
inputProps: null,
|
|
329
|
+
panelClass: null,
|
|
330
|
+
panelStyle: null,
|
|
331
|
+
panelProps: null,
|
|
332
|
+
'aria-labelledby': {
|
|
333
|
+
type: String,
|
|
334
|
+
default: null
|
|
335
|
+
},
|
|
336
|
+
'aria-label': {
|
|
337
|
+
type: String,
|
|
338
|
+
default: null
|
|
339
|
+
}
|
|
306
340
|
},
|
|
307
341
|
navigationState: null,
|
|
308
342
|
timePickerChange: false,
|
|
@@ -325,7 +359,7 @@ export default {
|
|
|
325
359
|
if (this.inline) {
|
|
326
360
|
this.overlay && this.overlay.setAttribute(this.attributeSelector, '');
|
|
327
361
|
|
|
328
|
-
if (!this
|
|
362
|
+
if (!this.disabled) {
|
|
329
363
|
this.preventFocus = true;
|
|
330
364
|
this.initFocusableCell();
|
|
331
365
|
|
|
@@ -656,15 +690,20 @@ export default {
|
|
|
656
690
|
this.decrementDecade();
|
|
657
691
|
}
|
|
658
692
|
else {
|
|
659
|
-
if (
|
|
660
|
-
this.currentMonth = 11;
|
|
693
|
+
if (event.shiftKey) {
|
|
661
694
|
this.decrementYear();
|
|
662
695
|
}
|
|
663
696
|
else {
|
|
664
|
-
this.currentMonth
|
|
665
|
-
|
|
697
|
+
if (this.currentMonth === 0) {
|
|
698
|
+
this.currentMonth = 11;
|
|
699
|
+
this.decrementYear();
|
|
700
|
+
}
|
|
701
|
+
else {
|
|
702
|
+
this.currentMonth--;
|
|
703
|
+
}
|
|
666
704
|
|
|
667
|
-
|
|
705
|
+
this.$emit('month-change', {month: this.currentMonth + 1, year: this.currentYear});
|
|
706
|
+
}
|
|
668
707
|
}
|
|
669
708
|
},
|
|
670
709
|
navForward(event) {
|
|
@@ -681,15 +720,20 @@ export default {
|
|
|
681
720
|
this.incrementDecade();
|
|
682
721
|
}
|
|
683
722
|
else {
|
|
684
|
-
if (
|
|
685
|
-
this.currentMonth = 0;
|
|
723
|
+
if (event.shiftKey) {
|
|
686
724
|
this.incrementYear();
|
|
687
725
|
}
|
|
688
726
|
else {
|
|
689
|
-
this.currentMonth
|
|
690
|
-
|
|
727
|
+
if (this.currentMonth === 11) {
|
|
728
|
+
this.currentMonth = 0;
|
|
729
|
+
this.incrementYear();
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
this.currentMonth++;
|
|
733
|
+
}
|
|
691
734
|
|
|
692
|
-
|
|
735
|
+
this.$emit('month-change', {month: this.currentMonth + 1, year: this.currentYear});
|
|
736
|
+
}
|
|
693
737
|
}
|
|
694
738
|
},
|
|
695
739
|
decrementYear() {
|
|
@@ -715,7 +759,7 @@ export default {
|
|
|
715
759
|
event.preventDefault();
|
|
716
760
|
},
|
|
717
761
|
isEnabled() {
|
|
718
|
-
return !this
|
|
762
|
+
return !this.disabled && !this.readonly;
|
|
719
763
|
},
|
|
720
764
|
updateCurrentTimeMeta(date) {
|
|
721
765
|
let currentHour = date.getHours();
|
|
@@ -849,7 +893,7 @@ export default {
|
|
|
849
893
|
this.$emit('year-change', {month: this.currentMonth + 1, year: this.currentYear});
|
|
850
894
|
},
|
|
851
895
|
onDateSelect(event, dateMeta) {
|
|
852
|
-
if (this
|
|
896
|
+
if (this.disabled || !dateMeta.selectable) {
|
|
853
897
|
return;
|
|
854
898
|
}
|
|
855
899
|
|
|
@@ -878,6 +922,7 @@ export default {
|
|
|
878
922
|
|
|
879
923
|
if (this.isSingleSelection() && (!this.showTime || this.hideOnDateTimeSelect)) {
|
|
880
924
|
setTimeout(() => {
|
|
925
|
+
this.input.focus();
|
|
881
926
|
this.overlayVisible = false;
|
|
882
927
|
}, 150);
|
|
883
928
|
}
|
|
@@ -939,6 +984,12 @@ export default {
|
|
|
939
984
|
if (modelVal !== null) {
|
|
940
985
|
this.updateModel(modelVal);
|
|
941
986
|
}
|
|
987
|
+
|
|
988
|
+
if (this.isRangeSelection() && this.hideOnRangeSelection && modelVal[1] !== null) {
|
|
989
|
+
setTimeout(() => {
|
|
990
|
+
this.overlayVisible = false;
|
|
991
|
+
}, 150);
|
|
992
|
+
}
|
|
942
993
|
this.$emit('date-select', date);
|
|
943
994
|
},
|
|
944
995
|
updateModel(value) {
|
|
@@ -1726,9 +1777,8 @@ export default {
|
|
|
1726
1777
|
const cellContent = event.currentTarget;
|
|
1727
1778
|
const cell = cellContent.parentElement;
|
|
1728
1779
|
|
|
1729
|
-
switch (event.
|
|
1730
|
-
|
|
1731
|
-
case 40: {
|
|
1780
|
+
switch (event.code) {
|
|
1781
|
+
case 'ArrowDown': {
|
|
1732
1782
|
cellContent.tabIndex = '-1';
|
|
1733
1783
|
let cellIndex = DomHandler.index(cell);
|
|
1734
1784
|
let nextRow = cell.parentElement.nextElementSibling;
|
|
@@ -1751,8 +1801,7 @@ export default {
|
|
|
1751
1801
|
break;
|
|
1752
1802
|
}
|
|
1753
1803
|
|
|
1754
|
-
|
|
1755
|
-
case 38: {
|
|
1804
|
+
case 'ArrowUp': {
|
|
1756
1805
|
cellContent.tabIndex = '-1';
|
|
1757
1806
|
let cellIndex = DomHandler.index(cell);
|
|
1758
1807
|
let prevRow = cell.parentElement.previousElementSibling;
|
|
@@ -1775,14 +1824,13 @@ export default {
|
|
|
1775
1824
|
break;
|
|
1776
1825
|
}
|
|
1777
1826
|
|
|
1778
|
-
|
|
1779
|
-
case 37: {
|
|
1827
|
+
case 'ArrowLeft': {
|
|
1780
1828
|
cellContent.tabIndex = '-1';
|
|
1781
1829
|
let prevCell = cell.previousElementSibling;
|
|
1782
1830
|
if (prevCell) {
|
|
1783
1831
|
let focusCell = prevCell.children[0];
|
|
1784
1832
|
if (DomHandler.hasClass(focusCell, 'p-disabled')) {
|
|
1785
|
-
this.navigateToMonth(true, groupIndex);
|
|
1833
|
+
this.navigateToMonth(event, true, groupIndex);
|
|
1786
1834
|
}
|
|
1787
1835
|
else {
|
|
1788
1836
|
focusCell.tabIndex = '0';
|
|
@@ -1790,20 +1838,19 @@ export default {
|
|
|
1790
1838
|
}
|
|
1791
1839
|
}
|
|
1792
1840
|
else {
|
|
1793
|
-
this.navigateToMonth(true, groupIndex);
|
|
1841
|
+
this.navigateToMonth(event, true, groupIndex);
|
|
1794
1842
|
}
|
|
1795
1843
|
event.preventDefault();
|
|
1796
1844
|
break;
|
|
1797
1845
|
}
|
|
1798
1846
|
|
|
1799
|
-
|
|
1800
|
-
case 39: {
|
|
1847
|
+
case 'ArrowRight': {
|
|
1801
1848
|
cellContent.tabIndex = '-1';
|
|
1802
1849
|
let nextCell = cell.nextElementSibling;
|
|
1803
1850
|
if (nextCell) {
|
|
1804
1851
|
let focusCell = nextCell.children[0];
|
|
1805
1852
|
if (DomHandler.hasClass(focusCell, 'p-disabled')) {
|
|
1806
|
-
this.navigateToMonth(false, groupIndex);
|
|
1853
|
+
this.navigateToMonth(event, false, groupIndex);
|
|
1807
1854
|
}
|
|
1808
1855
|
else {
|
|
1809
1856
|
focusCell.tabIndex = '0';
|
|
@@ -1811,42 +1858,94 @@ export default {
|
|
|
1811
1858
|
}
|
|
1812
1859
|
}
|
|
1813
1860
|
else {
|
|
1814
|
-
this.navigateToMonth(false, groupIndex);
|
|
1861
|
+
this.navigateToMonth(event, false, groupIndex);
|
|
1815
1862
|
}
|
|
1816
1863
|
event.preventDefault();
|
|
1817
1864
|
break;
|
|
1818
1865
|
}
|
|
1819
1866
|
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
case 13:
|
|
1823
|
-
case 32: {
|
|
1867
|
+
case 'Enter':
|
|
1868
|
+
case 'Space': {
|
|
1824
1869
|
this.onDateSelect(event, date);
|
|
1825
1870
|
event.preventDefault();
|
|
1826
1871
|
break;
|
|
1827
1872
|
}
|
|
1828
1873
|
|
|
1829
|
-
|
|
1830
|
-
case 27: {
|
|
1874
|
+
case 'Escape': {
|
|
1831
1875
|
this.overlayVisible = false;
|
|
1832
1876
|
event.preventDefault();
|
|
1833
1877
|
break;
|
|
1834
1878
|
}
|
|
1835
1879
|
|
|
1836
|
-
|
|
1837
|
-
case 9: {
|
|
1880
|
+
case 'Tab': {
|
|
1838
1881
|
if (!this.inline) {
|
|
1839
1882
|
this.trapFocus(event);
|
|
1840
1883
|
}
|
|
1841
1884
|
break;
|
|
1842
1885
|
}
|
|
1843
1886
|
|
|
1887
|
+
case 'Home': {
|
|
1888
|
+
cellContent.tabIndex = '-1';
|
|
1889
|
+
let currentRow = cell.parentElement;
|
|
1890
|
+
let focusCell = currentRow.children[0].children[0];
|
|
1891
|
+
if (DomHandler.hasClass(focusCell, 'p-disabled')) {
|
|
1892
|
+
this.navigateToMonth(event, true, groupIndex);
|
|
1893
|
+
}
|
|
1894
|
+
else {
|
|
1895
|
+
focusCell.tabIndex = '0';
|
|
1896
|
+
focusCell.focus();
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1899
|
+
event.preventDefault();
|
|
1900
|
+
break;
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
case 'End': {
|
|
1904
|
+
cellContent.tabIndex = '-1';
|
|
1905
|
+
let currentRow = cell.parentElement;
|
|
1906
|
+
let focusCell = currentRow.children[currentRow.children.length -1].children[0];
|
|
1907
|
+
if (DomHandler.hasClass(focusCell, 'p-disabled')) {
|
|
1908
|
+
this.navigateToMonth(event, false, groupIndex);
|
|
1909
|
+
}
|
|
1910
|
+
else {
|
|
1911
|
+
focusCell.tabIndex = '0';
|
|
1912
|
+
focusCell.focus();
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1915
|
+
event.preventDefault();
|
|
1916
|
+
break;
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1919
|
+
case 'PageUp': {
|
|
1920
|
+
cellContent.tabIndex = '-1';
|
|
1921
|
+
if (event.shiftKey) {
|
|
1922
|
+
this.navigationState = {backward: true};
|
|
1923
|
+
this.navBackward(event);
|
|
1924
|
+
}
|
|
1925
|
+
else this.navigateToMonth(event, true, groupIndex);
|
|
1926
|
+
|
|
1927
|
+
event.preventDefault();
|
|
1928
|
+
break;
|
|
1929
|
+
}
|
|
1930
|
+
|
|
1931
|
+
case 'PageDown': {
|
|
1932
|
+
cellContent.tabIndex = '-1';
|
|
1933
|
+
if (event.shiftKey) {
|
|
1934
|
+
this.navigationState = {backward: false};
|
|
1935
|
+
this.navForward(event);
|
|
1936
|
+
}
|
|
1937
|
+
else this.navigateToMonth(event, false, groupIndex);
|
|
1938
|
+
|
|
1939
|
+
event.preventDefault();
|
|
1940
|
+
break;
|
|
1941
|
+
}
|
|
1942
|
+
|
|
1844
1943
|
default:
|
|
1845
1944
|
//no op
|
|
1846
1945
|
break;
|
|
1847
1946
|
}
|
|
1848
1947
|
},
|
|
1849
|
-
navigateToMonth(prev, groupIndex) {
|
|
1948
|
+
navigateToMonth(event, prev, groupIndex) {
|
|
1850
1949
|
if (prev) {
|
|
1851
1950
|
if (this.numberOfMonths === 1 || (groupIndex === 0)) {
|
|
1852
1951
|
this.navigationState = {backward: true};
|
|
@@ -1876,14 +1975,13 @@ export default {
|
|
|
1876
1975
|
onMonthCellKeydown(event, index) {
|
|
1877
1976
|
const cell = event.currentTarget;
|
|
1878
1977
|
|
|
1879
|
-
switch (event.
|
|
1880
|
-
|
|
1881
|
-
case
|
|
1882
|
-
case 40: {
|
|
1978
|
+
switch (event.code) {
|
|
1979
|
+
case 'ArrowUp':
|
|
1980
|
+
case 'ArrowDown': {
|
|
1883
1981
|
cell.tabIndex = '-1';
|
|
1884
1982
|
var cells = cell.parentElement.children;
|
|
1885
1983
|
var cellIndex = DomHandler.index(cell);
|
|
1886
|
-
let nextCell = cells[event.
|
|
1984
|
+
let nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 3 : cellIndex -3];
|
|
1887
1985
|
if (nextCell) {
|
|
1888
1986
|
nextCell.tabIndex = '0';
|
|
1889
1987
|
nextCell.focus();
|
|
@@ -1892,8 +1990,7 @@ export default {
|
|
|
1892
1990
|
break;
|
|
1893
1991
|
}
|
|
1894
1992
|
|
|
1895
|
-
|
|
1896
|
-
case 37: {
|
|
1993
|
+
case 'ArrowLeft': {
|
|
1897
1994
|
cell.tabIndex = '-1';
|
|
1898
1995
|
let prevCell = cell.previousElementSibling;
|
|
1899
1996
|
if (prevCell) {
|
|
@@ -1908,8 +2005,7 @@ export default {
|
|
|
1908
2005
|
break;
|
|
1909
2006
|
}
|
|
1910
2007
|
|
|
1911
|
-
|
|
1912
|
-
case 39: {
|
|
2008
|
+
case 'ArrowRight': {
|
|
1913
2009
|
cell.tabIndex = '-1';
|
|
1914
2010
|
let nextCell = cell.nextElementSibling;
|
|
1915
2011
|
if (nextCell) {
|
|
@@ -1924,24 +2020,36 @@ export default {
|
|
|
1924
2020
|
break;
|
|
1925
2021
|
}
|
|
1926
2022
|
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
2023
|
+
case 'PageUp': {
|
|
2024
|
+
if (event.shiftKey) return;
|
|
2025
|
+
this.navigationState = {backward: true};
|
|
2026
|
+
this.navBackward(event);
|
|
2027
|
+
|
|
2028
|
+
break;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
case 'PageDown': {
|
|
2032
|
+
if (event.shiftKey) return;
|
|
2033
|
+
this.navigationState = {backward: false};
|
|
2034
|
+
this.navForward(event);
|
|
2035
|
+
|
|
2036
|
+
break;
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
case 'Enter':
|
|
2040
|
+
case 'Space': {
|
|
1931
2041
|
this.onMonthSelect(event, index);
|
|
1932
2042
|
event.preventDefault();
|
|
1933
2043
|
break;
|
|
1934
2044
|
}
|
|
1935
2045
|
|
|
1936
|
-
|
|
1937
|
-
case 27: {
|
|
2046
|
+
case 'Escape': {
|
|
1938
2047
|
this.overlayVisible = false;
|
|
1939
2048
|
event.preventDefault();
|
|
1940
2049
|
break;
|
|
1941
2050
|
}
|
|
1942
2051
|
|
|
1943
|
-
|
|
1944
|
-
case 9: {
|
|
2052
|
+
case 'Tab': {
|
|
1945
2053
|
this.trapFocus(event);
|
|
1946
2054
|
break;
|
|
1947
2055
|
}
|
|
@@ -1954,14 +2062,13 @@ export default {
|
|
|
1954
2062
|
onYearCellKeydown(event, index) {
|
|
1955
2063
|
const cell = event.currentTarget;
|
|
1956
2064
|
|
|
1957
|
-
switch (event.
|
|
1958
|
-
|
|
1959
|
-
case
|
|
1960
|
-
case 40: {
|
|
2065
|
+
switch (event.code) {
|
|
2066
|
+
case 'ArrowUp':
|
|
2067
|
+
case 'ArrowDown': {
|
|
1961
2068
|
cell.tabIndex = '-1';
|
|
1962
2069
|
var cells = cell.parentElement.children;
|
|
1963
2070
|
var cellIndex = DomHandler.index(cell);
|
|
1964
|
-
let nextCell = cells[event.
|
|
2071
|
+
let nextCell = cells[event.code === 'ArrowDown' ? cellIndex + 2 : cellIndex - 2];
|
|
1965
2072
|
if (nextCell) {
|
|
1966
2073
|
nextCell.tabIndex = '0';
|
|
1967
2074
|
nextCell.focus();
|
|
@@ -1970,8 +2077,7 @@ export default {
|
|
|
1970
2077
|
break;
|
|
1971
2078
|
}
|
|
1972
2079
|
|
|
1973
|
-
|
|
1974
|
-
case 37: {
|
|
2080
|
+
case 'ArrowLeft': {
|
|
1975
2081
|
cell.tabIndex = '-1';
|
|
1976
2082
|
let prevCell = cell.previousElementSibling;
|
|
1977
2083
|
if (prevCell) {
|
|
@@ -1986,8 +2092,7 @@ export default {
|
|
|
1986
2092
|
break;
|
|
1987
2093
|
}
|
|
1988
2094
|
|
|
1989
|
-
|
|
1990
|
-
case 39: {
|
|
2095
|
+
case 'ArrowRight': {
|
|
1991
2096
|
cell.tabIndex = '-1';
|
|
1992
2097
|
let nextCell = cell.nextElementSibling;
|
|
1993
2098
|
if (nextCell) {
|
|
@@ -2002,24 +2107,36 @@ export default {
|
|
|
2002
2107
|
break;
|
|
2003
2108
|
}
|
|
2004
2109
|
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2110
|
+
case 'PageUp': {
|
|
2111
|
+
if (event.shiftKey) return;
|
|
2112
|
+
this.navigationState = {backward: true};
|
|
2113
|
+
this.navBackward(event);
|
|
2114
|
+
|
|
2115
|
+
break;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
case 'PageDown': {
|
|
2119
|
+
if (event.shiftKey) return;
|
|
2120
|
+
this.navigationState = {backward: false};
|
|
2121
|
+
this.navForward(event);
|
|
2122
|
+
|
|
2123
|
+
break;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
case 'Enter':
|
|
2127
|
+
case 'Space': {
|
|
2009
2128
|
this.onYearSelect(event, index);
|
|
2010
2129
|
event.preventDefault();
|
|
2011
2130
|
break;
|
|
2012
2131
|
}
|
|
2013
2132
|
|
|
2014
|
-
|
|
2015
|
-
case 27: {
|
|
2133
|
+
case 'Escape': {
|
|
2016
2134
|
this.overlayVisible = false;
|
|
2017
2135
|
event.preventDefault();
|
|
2018
2136
|
break;
|
|
2019
2137
|
}
|
|
2020
2138
|
|
|
2021
|
-
|
|
2022
|
-
case 9: {
|
|
2139
|
+
case 'Tab': {
|
|
2023
2140
|
this.trapFocus(event);
|
|
2024
2141
|
break;
|
|
2025
2142
|
}
|
|
@@ -2131,13 +2248,26 @@ export default {
|
|
|
2131
2248
|
let focusedIndex = focusableElements.indexOf(document.activeElement);
|
|
2132
2249
|
|
|
2133
2250
|
if (event.shiftKey) {
|
|
2134
|
-
if (focusedIndex
|
|
2251
|
+
if (focusedIndex === -1 || focusedIndex === 0)
|
|
2135
2252
|
focusableElements[focusableElements.length - 1].focus();
|
|
2136
2253
|
else
|
|
2137
2254
|
focusableElements[focusedIndex - 1].focus();
|
|
2138
2255
|
}
|
|
2139
2256
|
else {
|
|
2140
|
-
if (focusedIndex
|
|
2257
|
+
if (focusedIndex === -1) {
|
|
2258
|
+
if (this.timeOnly) {
|
|
2259
|
+
focusableElements[0].focus();
|
|
2260
|
+
}
|
|
2261
|
+
else {
|
|
2262
|
+
let spanIndex = null;
|
|
2263
|
+
for (let i = 0; i < focusableElements.length; i++){
|
|
2264
|
+
if (focusableElements[i].tagName === 'SPAN')
|
|
2265
|
+
spanIndex = i;
|
|
2266
|
+
}
|
|
2267
|
+
focusableElements[spanIndex].focus();
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
else if (focusedIndex === (focusableElements.length - 1))
|
|
2141
2271
|
focusableElements[0].focus();
|
|
2142
2272
|
else
|
|
2143
2273
|
focusableElements[focusedIndex + 1].focus();
|
|
@@ -2146,14 +2276,12 @@ export default {
|
|
|
2146
2276
|
}
|
|
2147
2277
|
},
|
|
2148
2278
|
onContainerButtonKeydown(event) {
|
|
2149
|
-
switch (event.
|
|
2150
|
-
|
|
2151
|
-
case 9:
|
|
2279
|
+
switch (event.code) {
|
|
2280
|
+
case 'Tab':
|
|
2152
2281
|
this.trapFocus(event);
|
|
2153
2282
|
break;
|
|
2154
2283
|
|
|
2155
|
-
|
|
2156
|
-
case 27:
|
|
2284
|
+
case 'Escape':
|
|
2157
2285
|
this.overlayVisible = false;
|
|
2158
2286
|
event.preventDefault();
|
|
2159
2287
|
break;
|
|
@@ -2190,22 +2318,25 @@ export default {
|
|
|
2190
2318
|
this.$emit('focus', event);
|
|
2191
2319
|
},
|
|
2192
2320
|
onBlur(event) {
|
|
2193
|
-
this.$emit('blur', {originalEvent: event, value:
|
|
2321
|
+
this.$emit('blur', {originalEvent: event, value: event.target.value});
|
|
2194
2322
|
|
|
2195
2323
|
this.focused = false;
|
|
2196
|
-
|
|
2324
|
+
event.target.value = this.formatValue(this.modelValue);
|
|
2197
2325
|
},
|
|
2198
2326
|
onKeyDown(event) {
|
|
2199
|
-
if (event.
|
|
2327
|
+
if (event.code === 'ArrowDown' && this.overlay) {
|
|
2200
2328
|
this.trapFocus(event);
|
|
2201
2329
|
}
|
|
2202
|
-
else if (event.
|
|
2330
|
+
else if (event.code === 'ArrowDown' && !this.overlay) {
|
|
2331
|
+
this.overlayVisible = true;
|
|
2332
|
+
}
|
|
2333
|
+
else if (event.code === 'Escape') {
|
|
2203
2334
|
if (this.overlayVisible) {
|
|
2204
2335
|
this.overlayVisible = false;
|
|
2205
2336
|
event.preventDefault();
|
|
2206
2337
|
}
|
|
2207
2338
|
}
|
|
2208
|
-
else if (event.
|
|
2339
|
+
else if (event.code === 'Tab') {
|
|
2209
2340
|
if (this.overlay) {
|
|
2210
2341
|
DomHandler.getFocusableElements(this.overlay).forEach(el => el.tabIndex = '-1');
|
|
2211
2342
|
}
|
|
@@ -2235,6 +2366,17 @@ export default {
|
|
|
2235
2366
|
});
|
|
2236
2367
|
}
|
|
2237
2368
|
},
|
|
2369
|
+
onOverlayKeyDown(event) {
|
|
2370
|
+
switch (event.code) {
|
|
2371
|
+
case 'Escape':
|
|
2372
|
+
this.input.focus();
|
|
2373
|
+
this.overlayVisible = false;
|
|
2374
|
+
break;
|
|
2375
|
+
|
|
2376
|
+
default:
|
|
2377
|
+
break;
|
|
2378
|
+
}
|
|
2379
|
+
},
|
|
2238
2380
|
onOverlayMouseUp(event) {
|
|
2239
2381
|
this.onOverlayClick(event);
|
|
2240
2382
|
},
|
|
@@ -2320,11 +2462,11 @@ export default {
|
|
|
2320
2462
|
},
|
|
2321
2463
|
containerClass() {
|
|
2322
2464
|
return [
|
|
2323
|
-
'p-calendar p-component p-inputwrapper',
|
|
2465
|
+
'p-calendar p-component p-inputwrapper',
|
|
2324
2466
|
{
|
|
2325
2467
|
'p-calendar-w-btn': this.showIcon,
|
|
2326
2468
|
'p-calendar-timeonly': this.timeOnly,
|
|
2327
|
-
'p-calendar-disabled': this
|
|
2469
|
+
'p-calendar-disabled': this.disabled,
|
|
2328
2470
|
'p-inputwrapper-filled': this.modelValue,
|
|
2329
2471
|
'p-inputwrapper-focus': this.focused
|
|
2330
2472
|
}
|
|
@@ -2333,7 +2475,7 @@ export default {
|
|
|
2333
2475
|
panelStyleClass() {
|
|
2334
2476
|
return ['p-datepicker p-component', this.panelClass, {
|
|
2335
2477
|
'p-datepicker-inline': this.inline,
|
|
2336
|
-
'p-disabled': this
|
|
2478
|
+
'p-disabled': this.disabled,
|
|
2337
2479
|
'p-datepicker-timeonly': this.timeOnly,
|
|
2338
2480
|
'p-datepicker-multiple-month': this.numberOfMonths > 1,
|
|
2339
2481
|
'p-datepicker-monthpicker': (this.currentView === 'month'),
|
|
@@ -2499,7 +2641,10 @@ export default {
|
|
|
2499
2641
|
return UniqueComponentId();
|
|
2500
2642
|
},
|
|
2501
2643
|
switchViewButtonDisabled() {
|
|
2502
|
-
return this.numberOfMonths > 1 || this
|
|
2644
|
+
return this.numberOfMonths > 1 || this.disabled;
|
|
2645
|
+
},
|
|
2646
|
+
panelId() {
|
|
2647
|
+
return UniqueComponentId() + '_panel';
|
|
2503
2648
|
}
|
|
2504
2649
|
},
|
|
2505
2650
|
components: {
|