primevue 4.3.2 → 4.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/AutoComplete.vue +56 -10
- package/autocomplete/index.mjs +67 -33
- package/autocomplete/index.mjs.map +1 -1
- package/cascadeselect/CascadeSelect.vue +1 -1
- package/cascadeselect/index.mjs +1 -2
- package/cascadeselect/index.mjs.map +1 -1
- package/checkbox/Checkbox.vue +1 -1
- package/checkbox/index.mjs +2 -1
- package/checkbox/index.mjs.map +1 -1
- package/chip/BaseChip.vue +1 -1
- package/chip/index.d.ts +1 -1
- package/chip/index.mjs +1 -1
- package/chip/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +1 -1
- package/colorpicker/index.mjs +1 -1
- package/colorpicker/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +1 -0
- package/datatable/ColumnFilter.vue +1 -1
- package/datatable/DataTable.vue +103 -44
- package/datatable/HeaderCheckbox.vue +2 -2
- package/datatable/RowCheckbox.vue +1 -1
- package/datatable/TableBody.vue +12 -1
- package/datatable/TableFooter.vue +9 -1
- package/datatable/TableHeader.vue +9 -2
- package/datatable/index.d.ts +35 -27
- package/datatable/index.mjs +163 -99
- package/datatable/index.mjs.map +1 -1
- package/dataview/DataView.vue +4 -0
- package/dataview/index.d.ts +58 -1
- package/dataview/index.mjs +6 -2
- package/dataview/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +369 -233
- package/datepicker/index.d.ts +156 -0
- package/datepicker/index.mjs +643 -383
- package/datepicker/index.mjs.map +1 -1
- package/drawer/Drawer.vue +30 -20
- package/drawer/index.d.ts +10 -0
- package/drawer/index.mjs +42 -25
- package/drawer/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +1 -1
- package/fileupload/index.mjs +2 -2
- package/fileupload/index.mjs.map +1 -1
- package/galleria/Galleria.vue +39 -3
- package/galleria/index.mjs +40 -3
- package/galleria/index.mjs.map +1 -1
- package/inplace/Inplace.vue +1 -1
- package/inplace/index.mjs +3 -2
- package/inplace/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +4 -0
- package/inputnumber/InputNumber.vue +2 -9
- package/inputnumber/index.mjs +7 -8
- package/inputnumber/index.mjs.map +1 -1
- package/inputtext/index.d.ts +1 -2
- package/keyfilter/index.mjs +12 -19
- package/keyfilter/index.mjs.map +1 -1
- package/listbox/Listbox.vue +9 -2
- package/listbox/index.mjs +11 -3
- package/listbox/index.mjs.map +1 -1
- package/menu/Menu.vue +8 -2
- package/menu/Menuitem.vue +14 -4
- package/menu/index.mjs +36 -16
- package/menu/index.mjs.map +1 -1
- package/metergroup/MeterGroup.vue +9 -3
- package/metergroup/MeterGroupLabel.vue +10 -1
- package/metergroup/index.mjs +32 -7
- package/metergroup/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +36 -5
- package/multiselect/index.mjs +49 -20
- package/multiselect/index.mjs.map +1 -1
- package/package.json +3 -3
- package/paginator/Paginator.vue +2 -0
- package/paginator/index.d.ts +8 -0
- package/paginator/index.mjs +3 -1
- package/paginator/index.mjs.map +1 -1
- package/panelmenu/PanelMenuList.vue +1 -1
- package/panelmenu/index.mjs +1 -1
- package/panelmenu/index.mjs.map +1 -1
- package/password/Password.vue +21 -3
- package/password/index.d.ts +1 -1
- package/password/index.mjs +32 -10
- package/password/index.mjs.map +1 -1
- package/popover/Popover.vue +1 -1
- package/popover/index.mjs +1 -2
- package/popover/index.mjs.map +1 -1
- package/progressbar/ProgressBar.vue +4 -4
- package/progressbar/index.mjs +8 -12
- package/progressbar/index.mjs.map +1 -1
- package/scrolltop/ScrollTop.vue +2 -2
- package/scrolltop/index.mjs +4 -2
- package/scrolltop/index.mjs.map +1 -1
- package/select/Select.vue +48 -12
- package/select/index.mjs +104 -71
- package/select/index.mjs.map +1 -1
- package/splitter/Splitter.vue +10 -2
- package/splitter/index.mjs +19 -6
- package/splitter/index.mjs.map +1 -1
- package/step/Step.vue +25 -7
- package/step/index.mjs +44 -14
- package/step/index.mjs.map +1 -1
- package/steppanel/StepPanel.vue +9 -3
- package/steppanel/index.d.ts +8 -0
- package/steppanel/index.mjs +23 -8
- package/steppanel/index.mjs.map +1 -1
- package/stepper/StepperSeparator.vue +5 -2
- package/tab/Tab.vue +4 -4
- package/tab/index.mjs +4 -4
- package/tab/index.mjs.map +1 -1
- package/tablist/TabList.vue +3 -0
- package/tablist/index.mjs +1 -0
- package/tablist/index.mjs.map +1 -1
- package/tabpanel/TabPanel.vue +2 -2
- package/tabpanel/index.mjs +2 -2
- package/tabpanel/index.mjs.map +1 -1
- package/textarea/index.d.ts +1 -2
- package/tieredmenu/TieredMenu.vue +1 -1
- package/tieredmenu/index.mjs +1 -2
- package/tieredmenu/index.mjs.map +1 -1
- package/tooltip/index.mjs +22 -16
- package/tooltip/index.mjs.map +1 -1
- package/tree/Tree.vue +14 -2
- package/tree/TreeNode.vue +2 -2
- package/tree/index.mjs +28 -10
- package/tree/index.mjs.map +1 -1
- package/treeselect/TreeSelect.vue +1 -1
- package/treeselect/index.mjs +1 -2
- package/treeselect/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/virtualscroller/VirtualScroller.vue +13 -2
- package/virtualscroller/index.mjs +14 -4
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span ref="container" :id="$id" :class="cx('root')" :style="sx('root')" v-bind="ptmi('root')">
|
|
2
|
+
<span ref="container" :id="$id" :class="cx('root')" :style="sx('root')" :data-p="containerDataP" v-bind="ptmi('root')">
|
|
3
3
|
<InputText
|
|
4
4
|
v-if="!inline"
|
|
5
5
|
:ref="inputRef"
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
@focus="onFocus"
|
|
32
32
|
@blur="onBlur"
|
|
33
33
|
@keydown="onKeyDown"
|
|
34
|
+
:data-p-has-dropdown="showIcon && iconDisplay === 'button' && !inline"
|
|
35
|
+
:data-p-has-e-icon="showIcon && iconDisplay === 'input' && !inline"
|
|
34
36
|
:pt="ptm('pcInputText')"
|
|
35
37
|
/>
|
|
36
38
|
<slot v-if="showIcon && iconDisplay === 'button' && !inline" name="dropdownbutton" :toggleCallback="onButtonClick">
|
|
@@ -51,7 +53,7 @@
|
|
|
51
53
|
</button>
|
|
52
54
|
</slot>
|
|
53
55
|
<template v-else-if="showIcon && iconDisplay === 'input' && !inline">
|
|
54
|
-
<span v-if="$slots.inputicon || showIcon" :class="cx('inputIconContainer')" v-bind="ptm('inputIconContainer')">
|
|
56
|
+
<span v-if="$slots.inputicon || showIcon" :class="cx('inputIconContainer')" :data-p="inputIconDataP" v-bind="ptm('inputIconContainer')">
|
|
55
57
|
<slot name="inputicon" :class="cx('inputIcon')" :clickCallback="onButtonClick">
|
|
56
58
|
<component :is="icon ? 'i' : 'CalendarIcon'" :class="[icon, cx('inputIcon')]" @click="onButtonClick" v-bind="ptm('inputicon')" />
|
|
57
59
|
</slot>
|
|
@@ -71,6 +73,7 @@
|
|
|
71
73
|
@click="onOverlayClick"
|
|
72
74
|
@keydown="onOverlayKeyDown"
|
|
73
75
|
@mouseup="onOverlayMouseUp"
|
|
76
|
+
:data-p="panelDataP"
|
|
74
77
|
v-bind="ptm('panel')"
|
|
75
78
|
>
|
|
76
79
|
<template v-if="!timeOnly">
|
|
@@ -78,25 +81,27 @@
|
|
|
78
81
|
<div v-for="(month, groupIndex) of months" :key="month.month + month.year" :class="cx('calendar')" v-bind="ptm('calendar')">
|
|
79
82
|
<div :class="cx('header')" v-bind="ptm('header')">
|
|
80
83
|
<slot name="header"></slot>
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
<
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
84
|
+
<slot name="prevbutton" :actionCallback="(event) => onPrevButtonClick(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
85
|
+
<Button
|
|
86
|
+
v-show="groupIndex === 0"
|
|
87
|
+
:ref="previousButtonRef"
|
|
88
|
+
:class="cx('pcPrevButton')"
|
|
89
|
+
:disabled="disabled"
|
|
90
|
+
:aria-label="currentView === 'year' ? $primevue.config.locale.prevDecade : currentView === 'month' ? $primevue.config.locale.prevYear : $primevue.config.locale.prevMonth"
|
|
91
|
+
:unstyled="unstyled"
|
|
92
|
+
@click="onPrevButtonClick"
|
|
93
|
+
@keydown="onContainerButtonKeydown"
|
|
94
|
+
v-bind="navigatorButtonProps"
|
|
95
|
+
:pt="ptm('pcPrevButton')"
|
|
96
|
+
data-pc-group-section="navigator"
|
|
97
|
+
>
|
|
98
|
+
<template #icon="slotProps">
|
|
99
|
+
<slot name="previcon">
|
|
100
|
+
<component :is="prevIcon ? 'span' : 'ChevronLeftIcon'" :class="[prevIcon, slotProps.class]" v-bind="ptm('pcPrevButton')['icon']" />
|
|
101
|
+
</slot>
|
|
102
|
+
</template>
|
|
103
|
+
</Button>
|
|
104
|
+
</slot>
|
|
100
105
|
<div :class="cx('title')" v-bind="ptm('title')">
|
|
101
106
|
<template v-if="$primevue.config.locale.showMonthAfterYear">
|
|
102
107
|
<button
|
|
@@ -158,25 +163,27 @@
|
|
|
158
163
|
<slot name="decade" :years="yearPickerValues"> {{ yearPickerValues[0].value }} - {{ yearPickerValues[yearPickerValues.length - 1].value }} </slot>
|
|
159
164
|
</span>
|
|
160
165
|
</div>
|
|
161
|
-
<
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
<
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
166
|
+
<slot name="nextbutton" :actionCallback="(event) => onNextButtonClick(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
167
|
+
<Button
|
|
168
|
+
v-show="numberOfMonths === 1 ? true : groupIndex === numberOfMonths - 1"
|
|
169
|
+
:ref="nextButtonRef"
|
|
170
|
+
:class="cx('pcNextButton')"
|
|
171
|
+
:disabled="disabled"
|
|
172
|
+
:aria-label="currentView === 'year' ? $primevue.config.locale.nextDecade : currentView === 'month' ? $primevue.config.locale.nextYear : $primevue.config.locale.nextMonth"
|
|
173
|
+
:unstyled="unstyled"
|
|
174
|
+
@click="onNextButtonClick"
|
|
175
|
+
@keydown="onContainerButtonKeydown"
|
|
176
|
+
v-bind="navigatorButtonProps"
|
|
177
|
+
:pt="ptm('pcNextButton')"
|
|
178
|
+
data-pc-group-section="navigator"
|
|
179
|
+
>
|
|
180
|
+
<template #icon="slotProps">
|
|
181
|
+
<slot name="nexticon">
|
|
182
|
+
<component :is="nextIcon ? 'span' : 'ChevronRightIcon'" :class="[nextIcon, slotProps.class]" v-bind="ptm('pcNextButton')['icon']" />
|
|
183
|
+
</slot>
|
|
184
|
+
</template>
|
|
185
|
+
</Button>
|
|
186
|
+
</slot>
|
|
180
187
|
</div>
|
|
181
188
|
<table v-if="currentView === 'date'" :class="cx('dayView')" role="grid" v-bind="ptm('dayView')">
|
|
182
189
|
<thead v-bind="ptm('tableHeader')">
|
|
@@ -243,8 +250,7 @@
|
|
|
243
250
|
}
|
|
244
251
|
})
|
|
245
252
|
"
|
|
246
|
-
:data-p
|
|
247
|
-
:data-p-selected="isSelected(date)"
|
|
253
|
+
:data-p="dayDataP(date)"
|
|
248
254
|
data-pc-group-section="tablebodycelllabel"
|
|
249
255
|
>
|
|
250
256
|
<slot name="date" :date="date">{{ date.day }}</slot>
|
|
@@ -312,219 +318,239 @@
|
|
|
312
318
|
</span>
|
|
313
319
|
</div>
|
|
314
320
|
</template>
|
|
315
|
-
<div v-if="(showTime || timeOnly) && currentView === 'date'" :class="cx('timePicker')" v-bind="ptm('timePicker')">
|
|
321
|
+
<div v-if="(showTime || timeOnly) && currentView === 'date'" :class="cx('timePicker')" :data-p="timePickerDataP" v-bind="ptm('timePicker')">
|
|
316
322
|
<div :class="cx('hourPicker')" v-bind="ptm('hourPicker')" data-pc-group-section="timepickerContainer">
|
|
317
|
-
<
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
<
|
|
335
|
-
<
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
323
|
+
<slot name="hourincrementbutton" :callbacks="hourIncrementCallbacks">
|
|
324
|
+
<Button
|
|
325
|
+
:class="cx('pcIncrementButton')"
|
|
326
|
+
:aria-label="$primevue.config.locale.nextHour"
|
|
327
|
+
:unstyled="unstyled"
|
|
328
|
+
@mousedown="onTimePickerElementMouseDown($event, 0, 1)"
|
|
329
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
330
|
+
@keydown="onContainerButtonKeydown"
|
|
331
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
332
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 0, 1)"
|
|
333
|
+
@keydown.space="onTimePickerElementMouseDown($event, 0, 1)"
|
|
334
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
335
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
336
|
+
v-bind="timepickerButtonProps"
|
|
337
|
+
:pt="ptm('pcIncrementButton')"
|
|
338
|
+
data-pc-group-section="timepickerbutton"
|
|
339
|
+
>
|
|
340
|
+
<template #icon="slotProps">
|
|
341
|
+
<slot name="incrementicon">
|
|
342
|
+
<component :is="incrementIcon ? 'span' : 'ChevronUpIcon'" :class="[incrementIcon, slotProps.class]" v-bind="ptm('pcIncrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
343
|
+
</slot>
|
|
344
|
+
</template>
|
|
345
|
+
</Button>
|
|
346
|
+
</slot>
|
|
339
347
|
<span v-bind="ptm('hour')" data-pc-group-section="timepickerlabel">{{ formattedCurrentHour }}</span>
|
|
340
|
-
<
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
<
|
|
358
|
-
<
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
348
|
+
<slot name="hourdecrementbutton" :callbacks="hourDecrementCallbacks">
|
|
349
|
+
<Button
|
|
350
|
+
:class="cx('pcDecrementButton')"
|
|
351
|
+
:aria-label="$primevue.config.locale.prevHour"
|
|
352
|
+
:unstyled="unstyled"
|
|
353
|
+
@mousedown="onTimePickerElementMouseDown($event, 0, -1)"
|
|
354
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
355
|
+
@keydown="onContainerButtonKeydown"
|
|
356
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
357
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 0, -1)"
|
|
358
|
+
@keydown.space="onTimePickerElementMouseDown($event, 0, -1)"
|
|
359
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
360
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
361
|
+
v-bind="timepickerButtonProps"
|
|
362
|
+
:pt="ptm('pcDecrementButton')"
|
|
363
|
+
data-pc-group-section="timepickerbutton"
|
|
364
|
+
>
|
|
365
|
+
<template #icon="slotProps">
|
|
366
|
+
<slot name="decrementicon">
|
|
367
|
+
<component :is="decrementIcon ? 'span' : 'ChevronDownIcon'" :class="[decrementIcon, slotProps.class]" v-bind="ptm('pcDecrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
368
|
+
</slot>
|
|
369
|
+
</template>
|
|
370
|
+
</Button>
|
|
371
|
+
</slot>
|
|
362
372
|
</div>
|
|
363
373
|
<div v-bind="ptm('separatorContainer')" data-pc-group-section="timepickerContainer">
|
|
364
374
|
<span v-bind="ptm('separator')" data-pc-group-section="timepickerlabel">{{ timeSeparator }}</span>
|
|
365
375
|
</div>
|
|
366
376
|
<div :class="cx('minutePicker')" v-bind="ptm('minutePicker')" data-pc-group-section="timepickerContainer">
|
|
367
|
-
<
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
<
|
|
386
|
-
<
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
377
|
+
<slot name="minuteincrementbutton" :callbacks="minuteIncrementCallbacks">
|
|
378
|
+
<Button
|
|
379
|
+
:class="cx('pcIncrementButton')"
|
|
380
|
+
:aria-label="$primevue.config.locale.nextMinute"
|
|
381
|
+
:disabled="disabled"
|
|
382
|
+
:unstyled="unstyled"
|
|
383
|
+
@mousedown="onTimePickerElementMouseDown($event, 1, 1)"
|
|
384
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
385
|
+
@keydown="onContainerButtonKeydown"
|
|
386
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
387
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 1, 1)"
|
|
388
|
+
@keydown.space="onTimePickerElementMouseDown($event, 1, 1)"
|
|
389
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
390
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
391
|
+
v-bind="timepickerButtonProps"
|
|
392
|
+
:pt="ptm('pcIncrementButton')"
|
|
393
|
+
data-pc-group-section="timepickerbutton"
|
|
394
|
+
>
|
|
395
|
+
<template #icon="slotProps">
|
|
396
|
+
<slot name="incrementicon">
|
|
397
|
+
<component :is="incrementIcon ? 'span' : 'ChevronUpIcon'" :class="[incrementIcon, slotProps.class]" v-bind="ptm('pcIncrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
398
|
+
</slot>
|
|
399
|
+
</template>
|
|
400
|
+
</Button>
|
|
401
|
+
</slot>
|
|
390
402
|
<span v-bind="ptm('minute')" data-pc-group-section="timepickerlabel">{{ formattedCurrentMinute }}</span>
|
|
391
|
-
<
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
<
|
|
410
|
-
<
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
403
|
+
<slot name="minutedecrementbutton" :callbacks="minuteDecrementCallbacks">
|
|
404
|
+
<Button
|
|
405
|
+
:class="cx('pcDecrementButton')"
|
|
406
|
+
:aria-label="$primevue.config.locale.prevMinute"
|
|
407
|
+
:disabled="disabled"
|
|
408
|
+
:unstyled="unstyled"
|
|
409
|
+
@mousedown="onTimePickerElementMouseDown($event, 1, -1)"
|
|
410
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
411
|
+
@keydown="onContainerButtonKeydown"
|
|
412
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
413
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 1, -1)"
|
|
414
|
+
@keydown.space="onTimePickerElementMouseDown($event, 1, -1)"
|
|
415
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
416
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
417
|
+
v-bind="timepickerButtonProps"
|
|
418
|
+
:pt="ptm('pcDecrementButton')"
|
|
419
|
+
data-pc-group-section="timepickerbutton"
|
|
420
|
+
>
|
|
421
|
+
<template #icon="slotProps">
|
|
422
|
+
<slot name="decrementicon">
|
|
423
|
+
<component :is="decrementIcon ? 'span' : 'ChevronDownIcon'" :class="[decrementIcon, slotProps.class]" v-bind="ptm('pcDecrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
424
|
+
</slot>
|
|
425
|
+
</template>
|
|
426
|
+
</Button>
|
|
427
|
+
</slot>
|
|
414
428
|
</div>
|
|
415
429
|
<div v-if="showSeconds" :class="cx('separatorContainer')" v-bind="ptm('separatorContainer')" data-pc-group-section="timepickerContainer">
|
|
416
430
|
<span v-bind="ptm('separator')" data-pc-group-section="timepickerlabel">{{ timeSeparator }}</span>
|
|
417
431
|
</div>
|
|
418
432
|
<div v-if="showSeconds" :class="cx('secondPicker')" v-bind="ptm('secondPicker')" data-pc-group-section="timepickerContainer">
|
|
419
|
-
<
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
<
|
|
438
|
-
<
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
433
|
+
<slot name="secondincrementbutton" :callbacks="secondIncrementCallbacks">
|
|
434
|
+
<Button
|
|
435
|
+
:class="cx('pcIncrementButton')"
|
|
436
|
+
:aria-label="$primevue.config.locale.nextSecond"
|
|
437
|
+
:disabled="disabled"
|
|
438
|
+
:unstyled="unstyled"
|
|
439
|
+
@mousedown="onTimePickerElementMouseDown($event, 2, 1)"
|
|
440
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
441
|
+
@keydown="onContainerButtonKeydown"
|
|
442
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
443
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 2, 1)"
|
|
444
|
+
@keydown.space="onTimePickerElementMouseDown($event, 2, 1)"
|
|
445
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
446
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
447
|
+
v-bind="timepickerButtonProps"
|
|
448
|
+
:pt="ptm('pcIncrementButton')"
|
|
449
|
+
data-pc-group-section="timepickerbutton"
|
|
450
|
+
>
|
|
451
|
+
<template #icon="slotProps">
|
|
452
|
+
<slot name="incrementicon">
|
|
453
|
+
<component :is="incrementIcon ? 'span' : 'ChevronUpIcon'" :class="[incrementIcon, slotProps.class]" v-bind="ptm('pcIncrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
454
|
+
</slot>
|
|
455
|
+
</template>
|
|
456
|
+
</Button>
|
|
457
|
+
</slot>
|
|
442
458
|
<span v-bind="ptm('second')" data-pc-group-section="timepickerlabel">{{ formattedCurrentSecond }}</span>
|
|
443
|
-
<
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
<
|
|
462
|
-
<
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
459
|
+
<slot name="seconddecrementbutton" :callbacks="secondDecrementCallbacks">
|
|
460
|
+
<Button
|
|
461
|
+
:class="cx('pcDecrementButton')"
|
|
462
|
+
:aria-label="$primevue.config.locale.prevSecond"
|
|
463
|
+
:disabled="disabled"
|
|
464
|
+
:unstyled="unstyled"
|
|
465
|
+
@mousedown="onTimePickerElementMouseDown($event, 2, -1)"
|
|
466
|
+
@mouseup="onTimePickerElementMouseUp($event)"
|
|
467
|
+
@keydown="onContainerButtonKeydown"
|
|
468
|
+
@mouseleave="onTimePickerElementMouseLeave()"
|
|
469
|
+
@keydown.enter="onTimePickerElementMouseDown($event, 2, -1)"
|
|
470
|
+
@keydown.space="onTimePickerElementMouseDown($event, 2, -1)"
|
|
471
|
+
@keyup.enter="onTimePickerElementMouseUp($event)"
|
|
472
|
+
@keyup.space="onTimePickerElementMouseUp($event)"
|
|
473
|
+
v-bind="timepickerButtonProps"
|
|
474
|
+
:pt="ptm('pcDecrementButton')"
|
|
475
|
+
data-pc-group-section="timepickerbutton"
|
|
476
|
+
>
|
|
477
|
+
<template #icon="slotProps">
|
|
478
|
+
<slot name="decrementicon">
|
|
479
|
+
<component :is="decrementIcon ? 'span' : 'ChevronDownIcon'" :class="[decrementIcon, slotProps.class]" v-bind="ptm('pcDecrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
480
|
+
</slot>
|
|
481
|
+
</template>
|
|
482
|
+
</Button>
|
|
483
|
+
</slot>
|
|
466
484
|
</div>
|
|
467
485
|
<div v-if="hourFormat == '12'" :class="cx('separatorContainer')" v-bind="ptm('separatorContainer')" data-pc-group-section="timepickerContainer">
|
|
468
486
|
<span v-bind="ptm('separator')" data-pc-group-section="timepickerlabel">{{ timeSeparator }}</span>
|
|
469
487
|
</div>
|
|
470
488
|
<div v-if="hourFormat == '12'" :class="cx('ampmPicker')" v-bind="ptm('ampmPicker')">
|
|
489
|
+
<slot name="ampmincrementbutton" :toggleCallback="(event) => toggleAMPM(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
490
|
+
<Button
|
|
491
|
+
:class="cx('pcIncrementButton')"
|
|
492
|
+
:aria-label="$primevue.config.locale.am"
|
|
493
|
+
:disabled="disabled"
|
|
494
|
+
:unstyled="unstyled"
|
|
495
|
+
@click="toggleAMPM($event)"
|
|
496
|
+
@keydown="onContainerButtonKeydown"
|
|
497
|
+
v-bind="timepickerButtonProps"
|
|
498
|
+
:pt="ptm('pcIncrementButton')"
|
|
499
|
+
data-pc-group-section="timepickerbutton"
|
|
500
|
+
>
|
|
501
|
+
<template #icon="slotProps">
|
|
502
|
+
<slot name="incrementicon" :class="cx('incrementIcon')">
|
|
503
|
+
<component :is="incrementIcon ? 'span' : 'ChevronUpIcon'" :class="[cx('incrementIcon'), slotProps.class]" v-bind="ptm('pcIncrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
504
|
+
</slot>
|
|
505
|
+
</template>
|
|
506
|
+
</Button>
|
|
507
|
+
</slot>
|
|
508
|
+
<span v-bind="ptm('ampm')" data-pc-group-section="timepickerlabel">{{ pm ? $primevue.config.locale.pm : $primevue.config.locale.am }}</span>
|
|
509
|
+
<slot name="ampmdecrementbutton" :toggleCallback="(event) => toggleAMPM(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
510
|
+
<Button
|
|
511
|
+
:class="cx('pcDecrementButton')"
|
|
512
|
+
:aria-label="$primevue.config.locale.pm"
|
|
513
|
+
:disabled="disabled"
|
|
514
|
+
@click="toggleAMPM($event)"
|
|
515
|
+
@keydown="onContainerButtonKeydown"
|
|
516
|
+
v-bind="timepickerButtonProps"
|
|
517
|
+
:pt="ptm('pcDecrementButton')"
|
|
518
|
+
data-pc-group-section="timepickerbutton"
|
|
519
|
+
>
|
|
520
|
+
<template #icon="slotProps">
|
|
521
|
+
<slot name="decrementicon" :class="cx('decrementIcon')">
|
|
522
|
+
<component :is="decrementIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('decrementIcon'), slotProps.class]" v-bind="ptm('pcDecrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
523
|
+
</slot>
|
|
524
|
+
</template>
|
|
525
|
+
</Button>
|
|
526
|
+
</slot>
|
|
527
|
+
</div>
|
|
528
|
+
</div>
|
|
529
|
+
<div v-if="showButtonBar" :class="cx('buttonbar')" v-bind="ptm('buttonbar')">
|
|
530
|
+
<slot name="todaybutton" :actionCallback="(event) => onTodayButtonClick(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
471
531
|
<Button
|
|
472
|
-
:
|
|
473
|
-
|
|
474
|
-
:
|
|
532
|
+
:label="todayLabel"
|
|
533
|
+
@click="onTodayButtonClick($event)"
|
|
534
|
+
:class="cx('pcTodayButton')"
|
|
475
535
|
:unstyled="unstyled"
|
|
476
|
-
@click="toggleAMPM($event)"
|
|
477
536
|
@keydown="onContainerButtonKeydown"
|
|
478
|
-
v-bind="
|
|
479
|
-
:pt="ptm('
|
|
480
|
-
data-pc-group-section="
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
<component :is="incrementIcon ? 'span' : 'ChevronUpIcon'" :class="[cx('incrementIcon'), slotProps.class]" v-bind="ptm('pcIncrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
485
|
-
</slot>
|
|
486
|
-
</template>
|
|
487
|
-
</Button>
|
|
488
|
-
<span v-bind="ptm('ampm')" data-pc-group-section="timepickerlabel">{{ pm ? $primevue.config.locale.pm : $primevue.config.locale.am }}</span>
|
|
537
|
+
v-bind="todayButtonProps"
|
|
538
|
+
:pt="ptm('pcTodayButton')"
|
|
539
|
+
data-pc-group-section="button"
|
|
540
|
+
/>
|
|
541
|
+
</slot>
|
|
542
|
+
<slot name="clearbutton" :actionCallback="(event) => onClearButtonClick(event)" :keydownCallback="(event) => onContainerButtonKeydown(event)">
|
|
489
543
|
<Button
|
|
490
|
-
:
|
|
491
|
-
|
|
492
|
-
:
|
|
493
|
-
|
|
544
|
+
:label="clearLabel"
|
|
545
|
+
@click="onClearButtonClick($event)"
|
|
546
|
+
:class="cx('pcClearButton')"
|
|
547
|
+
:unstyled="unstyled"
|
|
494
548
|
@keydown="onContainerButtonKeydown"
|
|
495
|
-
v-bind="
|
|
496
|
-
:pt="ptm('
|
|
497
|
-
data-pc-group-section="
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
<slot name="decrementicon" :class="cx('decrementIcon')">
|
|
501
|
-
<component :is="decrementIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('decrementIcon'), slotProps.class]" v-bind="ptm('pcDecrementButton')['icon']" data-pc-group-section="timepickerlabel" />
|
|
502
|
-
</slot>
|
|
503
|
-
</template>
|
|
504
|
-
</Button>
|
|
505
|
-
</div>
|
|
506
|
-
</div>
|
|
507
|
-
<div v-if="showButtonBar" :class="cx('buttonbar')" v-bind="ptm('buttonbar')">
|
|
508
|
-
<Button
|
|
509
|
-
:label="todayLabel"
|
|
510
|
-
@click="onTodayButtonClick($event)"
|
|
511
|
-
:class="cx('pcTodayButton')"
|
|
512
|
-
:unstyled="unstyled"
|
|
513
|
-
@keydown="onContainerButtonKeydown"
|
|
514
|
-
v-bind="todayButtonProps"
|
|
515
|
-
:pt="ptm('pcTodayButton')"
|
|
516
|
-
data-pc-group-section="button"
|
|
517
|
-
/>
|
|
518
|
-
<Button
|
|
519
|
-
:label="clearLabel"
|
|
520
|
-
@click="onClearButtonClick($event)"
|
|
521
|
-
:class="cx('pcClearButton')"
|
|
522
|
-
:unstyled="unstyled"
|
|
523
|
-
@keydown="onContainerButtonKeydown"
|
|
524
|
-
v-bind="clearButtonProps"
|
|
525
|
-
:pt="ptm('pcClearButton')"
|
|
526
|
-
data-pc-group-section="button"
|
|
527
|
-
/>
|
|
549
|
+
v-bind="clearButtonProps"
|
|
550
|
+
:pt="ptm('pcClearButton')"
|
|
551
|
+
data-pc-group-section="button"
|
|
552
|
+
/>
|
|
553
|
+
</slot>
|
|
528
554
|
</div>
|
|
529
555
|
<slot name="footer"></slot>
|
|
530
556
|
</div>
|
|
@@ -534,6 +560,7 @@
|
|
|
534
560
|
</template>
|
|
535
561
|
|
|
536
562
|
<script>
|
|
563
|
+
import { cn } from '@primeuix/utils';
|
|
537
564
|
import { absolutePosition, addStyle, find, findSingle, getAttribute, getFocusableElements, getIndex, getOuterWidth, isTouchDevice, relativePosition, setAttribute } from '@primeuix/utils/dom';
|
|
538
565
|
import { localeComparator } from '@primeuix/utils/object';
|
|
539
566
|
import { ZIndex } from '@primeuix/utils/zindex';
|
|
@@ -874,7 +901,7 @@ export default {
|
|
|
874
901
|
return validMin && validMax && validDate && validDay;
|
|
875
902
|
},
|
|
876
903
|
onOverlayEnter(el) {
|
|
877
|
-
const styles = !this.inline ? { position: 'absolute', top: '0'
|
|
904
|
+
const styles = !this.inline ? { position: 'absolute', top: '0' } : undefined;
|
|
878
905
|
|
|
879
906
|
addStyle(el, styles);
|
|
880
907
|
|
|
@@ -1096,7 +1123,8 @@ export default {
|
|
|
1096
1123
|
}
|
|
1097
1124
|
},
|
|
1098
1125
|
isOutsideClicked(event) {
|
|
1099
|
-
|
|
1126
|
+
const composedPath = event.composedPath();
|
|
1127
|
+
return !(this.$el.isSameNode(event.target) || this.isNavIconClicked(event) || composedPath.includes(this.$el) || composedPath.includes(this.overlay));
|
|
1100
1128
|
},
|
|
1101
1129
|
isNavIconClicked(event) {
|
|
1102
1130
|
return (this.previousButton && (this.previousButton.isSameNode(event.target) || this.previousButton.contains(event.target))) || (this.nextButton && (this.nextButton.isSameNode(event.target) || this.nextButton.contains(event.target)));
|
|
@@ -1482,6 +1510,31 @@ export default {
|
|
|
1482
1510
|
onTimePickerElementMouseLeave() {
|
|
1483
1511
|
this.clearTimePickerTimer();
|
|
1484
1512
|
},
|
|
1513
|
+
onTimePickerElementKeyDown(event, type, direction) {
|
|
1514
|
+
switch (event.code) {
|
|
1515
|
+
case 'Enter':
|
|
1516
|
+
case 'NumpadEnter':
|
|
1517
|
+
case 'Space':
|
|
1518
|
+
if (this.isEnabled()) {
|
|
1519
|
+
this.repeat(event, null, type, direction);
|
|
1520
|
+
event.preventDefault();
|
|
1521
|
+
}
|
|
1522
|
+
break;
|
|
1523
|
+
}
|
|
1524
|
+
},
|
|
1525
|
+
onTimePickerElementKeyUp(event) {
|
|
1526
|
+
switch (event.code) {
|
|
1527
|
+
case 'Enter':
|
|
1528
|
+
case 'NumpadEnter':
|
|
1529
|
+
case 'Space':
|
|
1530
|
+
if (this.isEnabled()) {
|
|
1531
|
+
this.clearTimePickerTimer();
|
|
1532
|
+
this.updateModelTime();
|
|
1533
|
+
event.preventDefault();
|
|
1534
|
+
}
|
|
1535
|
+
break;
|
|
1536
|
+
}
|
|
1537
|
+
},
|
|
1485
1538
|
repeat(event, interval, type, direction) {
|
|
1486
1539
|
let i = interval || 500;
|
|
1487
1540
|
|
|
@@ -2769,6 +2822,14 @@ export default {
|
|
|
2769
2822
|
this.responsiveStyleElement.remove();
|
|
2770
2823
|
this.responsiveStyleElement = null;
|
|
2771
2824
|
}
|
|
2825
|
+
},
|
|
2826
|
+
dayDataP(date) {
|
|
2827
|
+
return cn({
|
|
2828
|
+
today: date.today,
|
|
2829
|
+
'other-month': date.otherMonth,
|
|
2830
|
+
selected: this.isSelected(date),
|
|
2831
|
+
disabled: !date.selectable
|
|
2832
|
+
});
|
|
2772
2833
|
}
|
|
2773
2834
|
},
|
|
2774
2835
|
computed: {
|
|
@@ -2980,6 +3041,81 @@ export default {
|
|
|
2980
3041
|
},
|
|
2981
3042
|
panelId() {
|
|
2982
3043
|
return this.$id + '_panel';
|
|
3044
|
+
},
|
|
3045
|
+
containerDataP() {
|
|
3046
|
+
return cn({
|
|
3047
|
+
fluid: this.$fluid
|
|
3048
|
+
});
|
|
3049
|
+
},
|
|
3050
|
+
panelDataP() {
|
|
3051
|
+
return cn({
|
|
3052
|
+
inline: this.inline,
|
|
3053
|
+
['portal-' + this.appendTo]: 'portal-' + this.appendTo
|
|
3054
|
+
});
|
|
3055
|
+
},
|
|
3056
|
+
inputIconDataP() {
|
|
3057
|
+
return cn({
|
|
3058
|
+
[this.size]: this.size
|
|
3059
|
+
});
|
|
3060
|
+
},
|
|
3061
|
+
timePickerDataP() {
|
|
3062
|
+
return cn({
|
|
3063
|
+
'time-only': this.timeOnly
|
|
3064
|
+
});
|
|
3065
|
+
},
|
|
3066
|
+
hourIncrementCallbacks() {
|
|
3067
|
+
return {
|
|
3068
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 0, 1),
|
|
3069
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3070
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3071
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 0, 1),
|
|
3072
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3073
|
+
};
|
|
3074
|
+
},
|
|
3075
|
+
hourDecrementCallbacks() {
|
|
3076
|
+
return {
|
|
3077
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 0, -1),
|
|
3078
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3079
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3080
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 0, -1),
|
|
3081
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3082
|
+
};
|
|
3083
|
+
},
|
|
3084
|
+
minuteIncrementCallbacks() {
|
|
3085
|
+
return {
|
|
3086
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 1, 1),
|
|
3087
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3088
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3089
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 1, 1),
|
|
3090
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3091
|
+
};
|
|
3092
|
+
},
|
|
3093
|
+
minuteDecrementCallbacks() {
|
|
3094
|
+
return {
|
|
3095
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 1, -1),
|
|
3096
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3097
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3098
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 1, -1),
|
|
3099
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3100
|
+
};
|
|
3101
|
+
},
|
|
3102
|
+
secondIncrementCallbacks() {
|
|
3103
|
+
return {
|
|
3104
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 2, 1),
|
|
3105
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3106
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3107
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 2, 1),
|
|
3108
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3109
|
+
};
|
|
3110
|
+
},
|
|
3111
|
+
secondDecrementCallbacks() {
|
|
3112
|
+
return {
|
|
3113
|
+
mousedown: (event) => this.onTimePickerElementMouseDown(event, 2, -1),
|
|
3114
|
+
mouseup: (event) => this.onTimePickerElementMouseUp(event),
|
|
3115
|
+
mouseleave: () => this.onTimePickerElementMouseLeave(),
|
|
3116
|
+
keydown: (event) => this.onTimePickerElementKeyDown(event, 2, -1),
|
|
3117
|
+
keyup: (event) => this.onTimePickerElementKeyUp(event)
|
|
3118
|
+
};
|
|
2983
3119
|
}
|
|
2984
3120
|
},
|
|
2985
3121
|
components: {
|