primevue 3.11.1 → 3.12.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/README.md +256 -2
- package/calendar/Calendar.d.ts +15 -0
- package/calendar/Calendar.vue +15 -10
- package/calendar/calendar.cjs.js +15 -10
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +15 -10
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +15 -10
- package/calendar/calendar.min.js +1 -1
- package/column/Column.d.ts +4 -0
- package/column/Column.vue +6 -2
- package/column/column.cjs.js +6 -2
- package/column/column.cjs.min.js +1 -1
- package/column/column.esm.js +6 -2
- package/column/column.esm.min.js +1 -1
- package/column/column.js +6 -2
- package/column/column.min.js +1 -1
- package/confirmationoptions/ConfirmationOptions.d.ts +4 -0
- package/core/core.js +37 -22
- package/core/core.min.js +2 -2
- package/datatable/DataTable.vue +1 -1
- package/datatable/datatable.cjs.js +1 -1
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +1 -1
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +1 -1
- package/datatable/datatable.min.js +1 -1
- package/dropdown/Dropdown.vue +13 -9
- package/dropdown/dropdown.cjs.js +14 -9
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +14 -9
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +14 -9
- package/dropdown/dropdown.min.js +1 -1
- package/knob/Knob.vue +1 -1
- package/knob/knob.cjs.js +1 -1
- package/knob/knob.cjs.min.js +1 -1
- package/knob/knob.esm.js +1 -1
- package/knob/knob.esm.min.js +1 -1
- package/knob/knob.js +1 -1
- package/knob/knob.min.js +1 -1
- package/multiselect/MultiSelect.vue +13 -9
- package/multiselect/multiselect.cjs.js +14 -8
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +14 -8
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +14 -8
- package/multiselect/multiselect.min.js +1 -1
- package/orderlist/OrderList.d.ts +4 -0
- package/orderlist/OrderList.vue +10 -1
- package/orderlist/orderlist.cjs.js +17 -9
- package/orderlist/orderlist.cjs.min.js +1 -1
- package/orderlist/orderlist.esm.js +17 -9
- package/orderlist/orderlist.esm.min.js +1 -1
- package/orderlist/orderlist.js +17 -9
- package/orderlist/orderlist.min.js +1 -1
- package/organizationchart/OrganizationChart.d.ts +1 -1
- package/package.json +1 -1
- package/picklist/PickList.d.ts +5 -1
- package/picklist/PickList.vue +10 -1
- package/picklist/picklist.cjs.js +25 -17
- package/picklist/picklist.cjs.min.js +1 -1
- package/picklist/picklist.esm.js +25 -17
- package/picklist/picklist.esm.min.js +1 -1
- package/picklist/picklist.js +25 -17
- package/picklist/picklist.min.js +1 -1
- package/resources/themes/arya-blue/theme.css +12 -0
- package/resources/themes/arya-green/theme.css +12 -0
- package/resources/themes/arya-orange/theme.css +12 -0
- package/resources/themes/arya-purple/theme.css +12 -0
- package/resources/themes/bootstrap4-dark-blue/theme.css +16 -0
- package/resources/themes/bootstrap4-dark-purple/theme.css +16 -0
- package/resources/themes/bootstrap4-light-blue/theme.css +16 -0
- package/resources/themes/bootstrap4-light-purple/theme.css +16 -0
- package/resources/themes/fluent-light/theme.css +12 -0
- package/resources/themes/lara-dark-blue/theme.css +12 -9
- package/resources/themes/lara-dark-indigo/theme.css +12 -9
- package/resources/themes/lara-dark-purple/theme.css +12 -9
- package/resources/themes/lara-dark-teal/theme.css +12 -9
- package/resources/themes/lara-light-blue/theme.css +12 -9
- package/resources/themes/lara-light-indigo/theme.css +12 -9
- package/resources/themes/lara-light-purple/theme.css +12 -9
- package/resources/themes/lara-light-teal/theme.css +12 -9
- package/resources/themes/luna-amber/theme.css +12 -0
- package/resources/themes/luna-blue/theme.css +12 -0
- package/resources/themes/luna-green/theme.css +12 -0
- package/resources/themes/luna-pink/theme.css +12 -0
- package/resources/themes/md-dark-deeppurple/theme.css +12 -0
- package/resources/themes/md-dark-indigo/theme.css +12 -0
- package/resources/themes/md-light-deeppurple/theme.css +12 -0
- package/resources/themes/md-light-indigo/theme.css +12 -0
- package/resources/themes/mdc-dark-deeppurple/theme.css +12 -0
- package/resources/themes/mdc-dark-indigo/theme.css +12 -0
- package/resources/themes/mdc-light-deeppurple/theme.css +12 -0
- package/resources/themes/mdc-light-indigo/theme.css +12 -0
- package/resources/themes/nova/theme.css +12 -0
- package/resources/themes/nova-accent/theme.css +12 -0
- package/resources/themes/nova-alt/theme.css +12 -0
- package/resources/themes/nova-vue/theme.css +12 -0
- package/resources/themes/rhea/theme.css +12 -0
- package/resources/themes/saga-blue/theme.css +12 -0
- package/resources/themes/saga-green/theme.css +12 -0
- package/resources/themes/saga-orange/theme.css +12 -0
- package/resources/themes/saga-purple/theme.css +12 -0
- package/resources/themes/tailwind-light/theme.css +12 -0
- package/resources/themes/vela-blue/theme.css +12 -0
- package/resources/themes/vela-green/theme.css +12 -0
- package/resources/themes/vela-orange/theme.css +12 -0
- package/resources/themes/vela-purple/theme.css +12 -0
- package/splitter/Splitter.vue +1 -1
- package/splitter/splitter.cjs.js +1 -1
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.esm.js +1 -1
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +1 -1
- package/splitter/splitter.min.js +1 -1
- package/tabview/TabView.vue +1 -1
- package/tabview/tabview.cjs.js +1 -1
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.esm.js +1 -1
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +1 -1
- package/tabview/tabview.min.js +1 -1
- package/treetable/FooterCell.vue +1 -1
- package/treetable/TreeTable.d.ts +1 -1
- package/treetable/treetable.cjs.js +1 -1
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.esm.js +1 -1
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +1 -1
- package/treetable/treetable.min.js +1 -1
- package/vetur-attributes.json +12 -0
- package/vetur-tags.json +5 -2
- package/virtualscroller/VirtualScroller.vue +23 -13
- package/virtualscroller/virtualscroller.cjs.js +23 -13
- package/virtualscroller/virtualscroller.cjs.min.js +1 -1
- package/virtualscroller/virtualscroller.esm.js +23 -13
- package/virtualscroller/virtualscroller.esm.min.js +1 -1
- package/virtualscroller/virtualscroller.js +23 -13
- package/virtualscroller/virtualscroller.min.js +1 -1
- package/web-types.json +76 -7
package/README.md
CHANGED
|
@@ -5,6 +5,260 @@
|
|
|
5
5
|
|
|
6
6
|
[](https://www.primefaces.org/primevue)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
# PrimeVue
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
PrimeVue is a rich set of open source UI Components for Vue. See [PrimeVue homepage](https://www.primefaces.org/primevue/) for live showcase and documentation.
|
|
11
|
+
|
|
12
|
+
## Download
|
|
13
|
+
|
|
14
|
+
PrimeVue is available at npm, if you have an existing application run the following command to download it to your project.
|
|
15
|
+
|
|
16
|
+
````
|
|
17
|
+
npm install primevue@^3 --save
|
|
18
|
+
npm install primeicons --save
|
|
19
|
+
````
|
|
20
|
+
|
|
21
|
+
or
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
yarn add primevue
|
|
25
|
+
yarn add primeicons
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Next step is setting up PrimeVue configuration.
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
import {createApp} from 'vue';
|
|
32
|
+
import App from './App.vue';
|
|
33
|
+
import PrimeVue from 'primevue/config';
|
|
34
|
+
const app = createApp(App);
|
|
35
|
+
|
|
36
|
+
app.use(PrimeVue);
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Import
|
|
40
|
+
|
|
41
|
+
### Module
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
import {createApp} from 'vue';
|
|
45
|
+
import App from './App.vue';
|
|
46
|
+
import PrimeVue from 'primevue/config';
|
|
47
|
+
import Dialog from 'primevue/dialog';
|
|
48
|
+
const app = createApp(App);
|
|
49
|
+
|
|
50
|
+
app.use(PrimeVue);
|
|
51
|
+
|
|
52
|
+
app.component('Dialog', Dialog);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Finally you'll be able to utilize the component in your application. See the Styles section to apply styling.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
<Dialog></Dialog>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### CDN
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
<script src="https://unpkg.com/primevue@^3/core/core.min.js"></script>/script>
|
|
65
|
+
<script src="https://unpkg.com/primevue@^3/multiselect/multiselect.min.js"></script>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Single File Components
|
|
69
|
+
|
|
70
|
+
SFC files are available in the npm distribution and if you'd like to use SFCs directly, add ***/sfc*** as a suffix when referencing an import path. This will instruct your bundler to process the *.vue files in your local build instead of using the compiled output. One use case for this approach is optimizing for SSR by removing whitespaces.
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
import Dialog from 'primevue/dialog/sfc';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Script Tag
|
|
77
|
+
|
|
78
|
+
Other alternative is utilizing the components directly within the browser with the ***iife*** build. Note that PrimeVue does not provide a ***umd*** build.
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
<html>
|
|
82
|
+
<head>
|
|
83
|
+
<meta charset="utf-8">
|
|
84
|
+
<title>PrimeVue Demo</title>
|
|
85
|
+
<link href="https://unpkg.com/primevue/resources/themes/lara-light-indigo/theme.css" rel="stylesheet">
|
|
86
|
+
<link href="https://unpkg.com/primevue/resources/primevue.min.css" rel="stylesheet">
|
|
87
|
+
<link href="https://unpkg.com/primeicons/primeicons.css" rel="stylesheet">
|
|
88
|
+
|
|
89
|
+
<script src="https://unpkg.com/vue@next"></script>
|
|
90
|
+
<script src="https://unpkg.com/primevue^3/core/core.min.js"></script>
|
|
91
|
+
<script src="https://unpkg.com/primevue^3/slider/slider.min.js"></script>
|
|
92
|
+
</head>
|
|
93
|
+
|
|
94
|
+
<body>
|
|
95
|
+
<div id="app">
|
|
96
|
+
<p-slider v-model="val"></p-slider>
|
|
97
|
+
<h6>{{val}}</h6>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<script>
|
|
101
|
+
const {createApp, ref} = Vue;
|
|
102
|
+
|
|
103
|
+
const App = {
|
|
104
|
+
setup() {
|
|
105
|
+
const val = ref(null);
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
val
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
components: {
|
|
112
|
+
'p-slider': primevue.slider
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
createApp(App).use(primevue.config.default).mount("#app");
|
|
117
|
+
</script>
|
|
118
|
+
</body>
|
|
119
|
+
</html>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Styles
|
|
123
|
+
|
|
124
|
+
The css dependencies are as follows, note that you may change the theme with another one of your choice.
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
primevue/resources/themes/saga-blue/theme.css //theme
|
|
128
|
+
primevue/resources/primevue.min.css //core css
|
|
129
|
+
primeicons/primeicons.css //icons
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
If you are using a bundler such as webpack with a css loader you may also import them to your main application component.
|
|
133
|
+
|
|
134
|
+
```javascript
|
|
135
|
+
import 'primevue/resources/themes/lara-light-indigo/theme.css';
|
|
136
|
+
import 'primevue/resources/primevue.min.css';
|
|
137
|
+
import 'primeicons/primeicons.css';
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Nuxt Integration
|
|
141
|
+
|
|
142
|
+
Nuxt 3 is currently in beta and an official module is planned after the final release. At the moment, PrimeVue can easily be used with Nuxt 3 using a custom plugin.
|
|
143
|
+
|
|
144
|
+
**nuxt.config.js**
|
|
145
|
+
|
|
146
|
+
Open the nuxt configuration file and add the css dependencies.
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
import { defineNuxtConfig } from 'nuxt3';
|
|
150
|
+
|
|
151
|
+
export default defineNuxtConfig({
|
|
152
|
+
css: [
|
|
153
|
+
'primevue/resources/themes/saga-blue/theme.css',
|
|
154
|
+
'primevue/resources/primevue.css',
|
|
155
|
+
'primeicons/primeicons.css'
|
|
156
|
+
]
|
|
157
|
+
})
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**primevue.js**
|
|
161
|
+
|
|
162
|
+
Create a file like **primevue.js** under the plugins directory for the configuration.
|
|
163
|
+
|
|
164
|
+
```javascript
|
|
165
|
+
import { defineNuxtPlugin } from "#app";
|
|
166
|
+
import PrimeVue from "primevue/config";
|
|
167
|
+
import Button from "primevue/button";
|
|
168
|
+
|
|
169
|
+
export default defineNuxtPlugin((nuxtApp) => {
|
|
170
|
+
nuxtApp.vueApp.use(PrimeVue, {ripple: true});
|
|
171
|
+
nuxtApp.vueApp.component('Button', Button);
|
|
172
|
+
//other components that you need
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Configuration
|
|
177
|
+
|
|
178
|
+
### Dependencies
|
|
179
|
+
|
|
180
|
+
PrimeVue components are not wrappers and implemented natively with the Vue APIs. There are some exceptions having 3rd party dependencies such as Quill for Editor.
|
|
181
|
+
|
|
182
|
+
In addition, components require PrimeIcons library for icons.
|
|
183
|
+
|
|
184
|
+
```javascript
|
|
185
|
+
dependencies: {
|
|
186
|
+
"vue": "^3.0.0",
|
|
187
|
+
"primeicons": "^5.0.0"
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Prop Cases
|
|
192
|
+
|
|
193
|
+
Component prop names are described as camel case throughout the documentation however camel-case is also fully supported. Events on the other hand should always be camel-case.
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
<Dialog :showHeader="false"></Dialog>
|
|
197
|
+
|
|
198
|
+
<!-- can be written as -->
|
|
199
|
+
|
|
200
|
+
<Dialog :show-header="false"></Dialog>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Ripple
|
|
204
|
+
|
|
205
|
+
Ripple is an optional animation for the supported components such as buttons. It is disabled by default and needs to be enabled at your app's entry file (e.g. main.js) during the PrimeVue setup.
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
import {createApp} from 'vue';
|
|
209
|
+
import PrimeVue from 'primevue/config';
|
|
210
|
+
const app = createApp(App);
|
|
211
|
+
|
|
212
|
+
app.use(PrimeVue, {ripple: true});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Outlined vs Filled Input Styles
|
|
216
|
+
|
|
217
|
+
Input fields come in two styles, default is ***outlined*** with borders around the field whereas ***filled*** alternative adds a background color to the field. Applying *p-input-filled* to an ancestor of an input enables the filled style. If you prefer to use filled inputs in the entire application, use a global container such as the document body or the application element to apply the style class. Note that in case you add it to the application element, components that are teleported to the document body such as Dialog will not be able to display filled inputs as they are not a descendant of the application root element in the DOM tree, to resolve this case set inputStyle to 'filled' at PrimeVue configuration as well.
|
|
218
|
+
|
|
219
|
+
```javascript
|
|
220
|
+
import {createApp} from 'vue';
|
|
221
|
+
import PrimeVue from 'primevue/config';
|
|
222
|
+
const app = createApp(App);
|
|
223
|
+
|
|
224
|
+
app.use(PrimeVue, {inputStyle: 'filled'});
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## ZIndex Layering
|
|
228
|
+
|
|
229
|
+
ZIndexes are managed automatically to make sure layering of overlay components work seamlessly when combining multiple components. Still there may be cases where you'd like to configure the configure default values such as a custom layout where header section is fixed. In a case like this, dropdown needs to be displayed below the application header but a modal dialog should be displayed above. PrimeVue configuration offers the ***zIndex*** property to customize the default values for components categories. Default values are described below and can be customized when setting up PrimeVue.
|
|
230
|
+
|
|
231
|
+
```javascript
|
|
232
|
+
import {createApp} from 'vue';
|
|
233
|
+
import PrimeVue from 'primevue/config';
|
|
234
|
+
const app = createApp(App);
|
|
235
|
+
|
|
236
|
+
app.use(PrimeVue, {
|
|
237
|
+
zIndex: {
|
|
238
|
+
modal: 1100, //dialog, sidebar
|
|
239
|
+
overlay: 1000, //dropdown, overlaypanel
|
|
240
|
+
menu: 1000, //overlay menus
|
|
241
|
+
tooltip: 1100 //tooltip
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Locale
|
|
247
|
+
|
|
248
|
+
PrimeVue provides a Locale API to support i18n and l7n, visit the [Locale](https://www.primefaces.org/primevue/showcase/#/locale) documentation for more information.
|
|
249
|
+
|
|
250
|
+
## Quickstart with Vue CLI
|
|
251
|
+
|
|
252
|
+
An [example application](https://github.com/primefaces/primevue-quickstart) based on Vue CLI is available at github.
|
|
253
|
+
|
|
254
|
+
## Quickstart with Vite
|
|
255
|
+
|
|
256
|
+
A [starter application](https://github.com/primefaces/primevue-quickstart-vite) is also provided for Vite users.
|
|
257
|
+
|
|
258
|
+
## Quickstart with Nuxt
|
|
259
|
+
|
|
260
|
+
A [sample application](https://github.com/primefaces/primevue-quickstart-nuxt3) is created for Nuxt 3 users.
|
|
261
|
+
|
|
262
|
+
## Quickstart with TypeScript
|
|
263
|
+
|
|
264
|
+
Typescript is fully supported as type definition files are provided in the npm package of PrimeVue. A sample [typescript-primevue](https://github.com/primefaces/primevue-typescript-quickstart) application with Vue CLI is available as at github.
|
package/calendar/Calendar.d.ts
CHANGED
|
@@ -276,6 +276,11 @@ export declare type CalendarEmits = {
|
|
|
276
276
|
* @param {CalendarValueType} value - New value.
|
|
277
277
|
*/
|
|
278
278
|
'update:modelValue': (value: CalendarValueType) => void;
|
|
279
|
+
/**
|
|
280
|
+
* Callback to invoke when input field is being typed.
|
|
281
|
+
* @param {Event} event - Browser event
|
|
282
|
+
*/
|
|
283
|
+
'input': (event: Event) => void;
|
|
279
284
|
/**
|
|
280
285
|
* Callback to invoke when a date is selected.
|
|
281
286
|
* @param {Date} value - Selected value.
|
|
@@ -309,6 +314,16 @@ export declare type CalendarEmits = {
|
|
|
309
314
|
* @param {CalendarYearChangeEvent} event - Custom year change event.
|
|
310
315
|
*/
|
|
311
316
|
'year-change': (event: CalendarYearChangeEvent) => void;
|
|
317
|
+
/**
|
|
318
|
+
* Callback to invoke on focus of input field.
|
|
319
|
+
* @param {Event} event - Focus event
|
|
320
|
+
*/
|
|
321
|
+
'focus': (event: Event) => void;
|
|
322
|
+
/**
|
|
323
|
+
* Callback to invoke on blur of input field.
|
|
324
|
+
* @param {Event} event - Blur event
|
|
325
|
+
*/
|
|
326
|
+
'blur': (event: Event) => void;
|
|
312
327
|
}
|
|
313
328
|
|
|
314
329
|
declare class Calendar extends ClassComponent<CalendarProps, CalendarSlots, CalendarEmits> { }
|
package/calendar/Calendar.vue
CHANGED
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
</span>
|
|
78
78
|
</div>
|
|
79
79
|
</template>
|
|
80
|
-
<div class="p-timepicker" v-if="showTime||timeOnly">
|
|
80
|
+
<div class="p-timepicker" v-if="(showTime||timeOnly) && currentView === 'date'">
|
|
81
81
|
<div class="p-hour-picker">
|
|
82
82
|
<button class="p-link" @mousedown="onTimePickerElementMouseDown($event, 0, 1)" @mouseup="onTimePickerElementMouseUp($event)" @keydown="onContainerButtonKeydown" v-ripple
|
|
83
83
|
@mouseleave="onTimePickerElementMouseLeave()" @keydown.enter="onTimePickerElementMouseDown($event, 0, 1)" @keydown.space="onTimePickerElementMouseDown($event, 0, 1)" @keyup.enter="onTimePickerElementMouseUp($event)" @keyup.space="onTimePickerElementMouseUp($event)" type="button">
|
|
@@ -150,7 +150,7 @@ import Ripple from 'primevue/ripple';
|
|
|
150
150
|
export default {
|
|
151
151
|
name: 'Calendar',
|
|
152
152
|
inheritAttrs: false,
|
|
153
|
-
emits: ['show', 'hide', 'month-change', 'year-change', 'date-select', 'update:modelValue', 'today-click', 'clear-click'],
|
|
153
|
+
emits: ['show', 'hide', 'input', 'month-change', 'year-change', 'date-select', 'update:modelValue', 'today-click', 'clear-click', 'focus', 'blur'],
|
|
154
154
|
props: {
|
|
155
155
|
modelValue: null,
|
|
156
156
|
selectionMode: {
|
|
@@ -355,7 +355,7 @@ export default {
|
|
|
355
355
|
}
|
|
356
356
|
|
|
357
357
|
if (this.mask) {
|
|
358
|
-
|
|
358
|
+
this.destroyMask();
|
|
359
359
|
}
|
|
360
360
|
this.destroyResponsiveStyleElement();
|
|
361
361
|
|
|
@@ -1237,9 +1237,9 @@ export default {
|
|
|
1237
1237
|
return false;
|
|
1238
1238
|
}
|
|
1239
1239
|
if (this.maxDate.getMinutes() === minute) {
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1240
|
+
if (this.maxDate.getSeconds() < second) {
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1243
1243
|
}
|
|
1244
1244
|
}
|
|
1245
1245
|
}
|
|
@@ -2140,7 +2140,7 @@ export default {
|
|
|
2140
2140
|
}
|
|
2141
2141
|
},
|
|
2142
2142
|
onContainerButtonKeydown(event) {
|
|
2143
|
-
|
|
2143
|
+
switch (event.which) {
|
|
2144
2144
|
//tab
|
|
2145
2145
|
case 9:
|
|
2146
2146
|
this.trapFocus(event);
|
|
@@ -2155,7 +2155,7 @@ export default {
|
|
|
2155
2155
|
default:
|
|
2156
2156
|
//Noop
|
|
2157
2157
|
break;
|
|
2158
|
-
|
|
2158
|
+
}
|
|
2159
2159
|
},
|
|
2160
2160
|
onInput(event) {
|
|
2161
2161
|
try {
|
|
@@ -2171,16 +2171,21 @@ export default {
|
|
|
2171
2171
|
catch(err) {
|
|
2172
2172
|
/* NoOp */
|
|
2173
2173
|
}
|
|
2174
|
+
|
|
2175
|
+
this.$emit('input', event);
|
|
2174
2176
|
},
|
|
2175
|
-
onFocus() {
|
|
2177
|
+
onFocus(event) {
|
|
2176
2178
|
if (this.showOnFocus && this.isEnabled()) {
|
|
2177
2179
|
this.overlayVisible = true;
|
|
2178
2180
|
}
|
|
2179
2181
|
this.focused = true;
|
|
2182
|
+
this.$emit('focus', event);
|
|
2180
2183
|
},
|
|
2181
|
-
onBlur() {
|
|
2184
|
+
onBlur(event) {
|
|
2182
2185
|
this.focused = false;
|
|
2183
2186
|
this.input.value = this.formatValue(this.modelValue);
|
|
2187
|
+
|
|
2188
|
+
this.$emit('blur', event);
|
|
2184
2189
|
},
|
|
2185
2190
|
onKeyDown() {
|
|
2186
2191
|
if (event.keyCode === 40 && this.overlay) {
|
package/calendar/calendar.cjs.js
CHANGED
|
@@ -15,7 +15,7 @@ var Ripple__default = /*#__PURE__*/_interopDefaultLegacy(Ripple);
|
|
|
15
15
|
var script = {
|
|
16
16
|
name: 'Calendar',
|
|
17
17
|
inheritAttrs: false,
|
|
18
|
-
emits: ['show', 'hide', 'month-change', 'year-change', 'date-select', 'update:modelValue', 'today-click', 'clear-click'],
|
|
18
|
+
emits: ['show', 'hide', 'input', 'month-change', 'year-change', 'date-select', 'update:modelValue', 'today-click', 'clear-click', 'focus', 'blur'],
|
|
19
19
|
props: {
|
|
20
20
|
modelValue: null,
|
|
21
21
|
selectionMode: {
|
|
@@ -220,7 +220,7 @@ var script = {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
if (this.mask) {
|
|
223
|
-
|
|
223
|
+
this.destroyMask();
|
|
224
224
|
}
|
|
225
225
|
this.destroyResponsiveStyleElement();
|
|
226
226
|
|
|
@@ -1102,9 +1102,9 @@ var script = {
|
|
|
1102
1102
|
return false;
|
|
1103
1103
|
}
|
|
1104
1104
|
if (this.maxDate.getMinutes() === minute) {
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1105
|
+
if (this.maxDate.getSeconds() < second) {
|
|
1106
|
+
return false;
|
|
1107
|
+
}
|
|
1108
1108
|
}
|
|
1109
1109
|
}
|
|
1110
1110
|
}
|
|
@@ -1993,7 +1993,7 @@ var script = {
|
|
|
1993
1993
|
}
|
|
1994
1994
|
},
|
|
1995
1995
|
onContainerButtonKeydown(event) {
|
|
1996
|
-
|
|
1996
|
+
switch (event.which) {
|
|
1997
1997
|
//tab
|
|
1998
1998
|
case 9:
|
|
1999
1999
|
this.trapFocus(event);
|
|
@@ -2004,7 +2004,7 @@ var script = {
|
|
|
2004
2004
|
this.overlayVisible = false;
|
|
2005
2005
|
event.preventDefault();
|
|
2006
2006
|
break;
|
|
2007
|
-
|
|
2007
|
+
}
|
|
2008
2008
|
},
|
|
2009
2009
|
onInput(event) {
|
|
2010
2010
|
try {
|
|
@@ -2020,16 +2020,21 @@ var script = {
|
|
|
2020
2020
|
catch(err) {
|
|
2021
2021
|
/* NoOp */
|
|
2022
2022
|
}
|
|
2023
|
+
|
|
2024
|
+
this.$emit('input', event);
|
|
2023
2025
|
},
|
|
2024
|
-
onFocus() {
|
|
2026
|
+
onFocus(event) {
|
|
2025
2027
|
if (this.showOnFocus && this.isEnabled()) {
|
|
2026
2028
|
this.overlayVisible = true;
|
|
2027
2029
|
}
|
|
2028
2030
|
this.focused = true;
|
|
2031
|
+
this.$emit('focus', event);
|
|
2029
2032
|
},
|
|
2030
|
-
onBlur() {
|
|
2033
|
+
onBlur(event) {
|
|
2031
2034
|
this.focused = false;
|
|
2032
2035
|
this.input.value = this.formatValue(this.modelValue);
|
|
2036
|
+
|
|
2037
|
+
this.$emit('blur', event);
|
|
2033
2038
|
},
|
|
2034
2039
|
onKeyDown() {
|
|
2035
2040
|
if (event.keyCode === 40 && this.overlay) {
|
|
@@ -2634,7 +2639,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2634
2639
|
: vue.createCommentVNode("", true)
|
|
2635
2640
|
], 64))
|
|
2636
2641
|
: vue.createCommentVNode("", true),
|
|
2637
|
-
($props.showTime||$props.timeOnly)
|
|
2642
|
+
(($props.showTime||$props.timeOnly) && $data.currentView === 'date')
|
|
2638
2643
|
? (vue.openBlock(), vue.createBlock("div", _hoisted_15, [
|
|
2639
2644
|
vue.createVNode("div", _hoisted_16, [
|
|
2640
2645
|
vue.withDirectives(vue.createVNode("button", {
|