A lightweight month picker for Vue.js with no dependencies
vue-month-picker
A lightweight month picker for Vue.js with no dependencies.
Install
npm
npm install --save vue-month-picker
yarn
yarn add --save vue-month-picker
Usage
Bundler (Webpack, Rollup)
import Vue from 'vue'
import MonthPicker from 'vue-month-picker'
import MonthPickerInput from 'vue-month-picker'
Vue.use(MonthPicker)
Vue.use(MonthPickerInput)
Examples
Input
<template>
<month-picker-input :no-default="true"></month-picker-input>
</template>
<script>
import MonthPickerInput from 'vue-month-picker'
export default {
components: {
MonthPickerInput
}
}
</script>
Inline
<template>
<p>{{ date.month }}</p>
<month-picker @change="showDate"></month-picker>
</template>
<script>
import MonthPicker from 'vue-month-picker'
export default {
data() {
return {
date: {
from: null,
to: null,
month: null,
year: null
}
}
},
components: {
MonthPicker
},
methods: {
showDate (date) {
this.date = date
}
}
}
</script>
Api
The MonthPicker and the MonthPickerInput shares the same props and events.
Props
Prop | Type | Default | Description |
---|---|---|---|
lang | String | en | The language of the months. |
months | Array | [] | Custom months if language is unsupported. |
default-month | Integer | The default selected month of the month picker. To show the month picker unselected, use the no-default prop. | |
default-year | Integer | The default year of the month picker. | |
no-default | Boolean | false | Show the month picker unselected. |
show-year | Boolean | false | Show the year picker. |
editable-year | Boolean | false | Year appears as a input field. |
clearable | Boolean | false | Possible to clear the chosen month. |
variant | String | default | Color variant. Currently supports default and dark. |
Events
Event | Returns | Description |
---|---|---|
@change | Object | Indicates that the value has been changed. NB, this will fire when a default value has been selected when the month picker is mounted. Use the input event if you want the value the user has selected. |
@change-year | Number | Indicates that the year has been changed. Will emit the year value. |
@input | Object | Indicates that the value has been changed by the user. |
@clear | Indicates that user have cleared the selected value |
Date object
Change and input events returns a date object with the following properties:
from
: Start of the month.to
: End of the month.month
: Selected month.monthIndex
: Selected month index.year
: Selected year.
Translations
Available languages
Abbr | Language |
---|---|
af | Afrikaans |
ar | Arabic |
cs | Czech |
da | Danish |
el | Greek |
en | English |
es | Spanish |
et | Estonian |
fi | Finnish |
fr | French |
hi | Hindi |
hr | Croatian |
hu | Hungarian |
id | Indonesian |
is | Icelandic |
it | Italian |
ja | Japanese |
km | Khmer |
ku | Kurdish |
lt | Lithuanian |
lv | Latvian |
ms | Malay |
ne | Nepali |
nl | Dutch |
no | Norwegian |
pa | Panjabi |
pl | Polish |
pt | Portuguese |
ru | Russian |
sv | Swedish |
sk | Slovak |
sl | Slovenian |
so | Somali |
sq | Albanian |
th | Thai |
tr | Turkish |
uk | Ukrainian |
ur | Urdu |
vi | Vietnamese |
yi | Yiddish |
zh | Chinese |
zu | Zulu |
My language is unsupported
You could add it in the languages.js file and create a pull request. You could also create a issue about the missing language. If you don't want to do that you can use the months property and supply your own array of 12 string values.