Vue3 Inline Calendar
The simple, functional inline calendar component for Vue3 (you can find the version for Vue2 here) based on Intersection Observer API — just drag and scroll to get future and past dates.
Installation
npm i vue-inline-calendar -S
or
yarn add vue-inline-calendar
Usage
Options API
<template>
<div id="app">
<vue-inline-calendar @update:selected-date="selectedDate = $event" />
</div>
</template>
<script>
import VueInlineCalendar from 'vue-inline-calendar';
import "vue-inline-calendar/dist/style.css";
export default {
name: 'App',
components: {
VueInlineCalendar
},
data() {
return {
selectedDate: null
}
},
}
</script>
Composition API
<template>
<div id="app">
<vue-inline-calendar @update:selected-date="selectedDate = $event" />
</div>
</template>
<script>
import { ref } from 'vue;
import VueInlineCalendar from 'vue-inline-calendar';
import "vue-inline-calendar/dist/style.css";
export default {
name: 'App',
components: {
VueInlineCalendar
},
setup() {
const selectedDate = ref(null);
return {
selectedDate
}
}
</script>
Available props
Prop name | Description | Type | Default value |
---|---|---|---|
selectedDate | Initial selected date | Date | null |
selectedRange | Initial selected range of dates | Object | null |
daysRange | Number of days, which will be loaded on scroll | Number | 7 |
itemWidth | Width of date element (.date-item ) |
Number | 80 |
itemsGap | Distance between date elements | Number | 10 |
locale | A string with a BCP 47 language tag | String | "en-US" |
scrollSpeed | Speed of dates scroll | Number | 4 |
disableWeekends | Excluding weekends from selection | Boolean | false |
specMinDate | Minimum allowed date | Date | null |
specMaxDate | Maximum allowed date | Date | null |
disablePastDays | Excluding dates before today's date from selection | Boolean | false |
disableNextDays | Excluding dates after today's date from selection | Boolean | false |
isRange | Setting up range mode — selection of start and end dates | Boolean | false |
showYear | Showing of the current year (pass false , if you want to hide the year) |
Boolean | true |
showMonth | Showing of the date's month (pass false , if you want to hide the month) |
Boolean | true |
showWeekday | Showing of the date's weekend (pass false , if you want to hide the weekend) |
Boolean | true |
enableMousewheelScroll | Enabling of the calendar scrolling when using the mousewheel | Boolean | false |
Available events
Event name | Description | Payload |
---|---|---|
update:selected-date | Fires on date selection | Selected date (instance of Date object) |
update:selected-range | Fires on date range selection (when endDate is selected) |
Object with startDate and endDate keys and dates as values: {startDate: this.startDate, endDate: this.endDate } |
License
MIT License
Support the author
If you would like to support me and my work, you can make a donation via Buy Me a Coffee (link at the section Sponsor this project) or with cryptocurrency:
Platform | Address |
---|---|
Bitcoin | bc1q0rygfalnctew4cla3ed9wfw2pv0uh4r0eyfuag |
Ethereum/Tether USDT (TRC20) | 0x38b3822213c6BDCc01eF770442F5BF0842AB740f |
Litecoin | ltc1qdgs0jult63k6ggjzaedh3er2z7w70aktl5j2wu |