@osindex/vue-hotel-datepicker v1.0.0
vue-hotel-datepicker
A responsive date range picker for Vue.js that displays the number of nights selected and allow several useful options like custom check-in/check-out rules, localisation support and more.
Demo
https://krystalcampioni.github.io/vue-hotel-datepicker/
Installation
NPM
Install the package:
npm install vue-hotel-datepicker --save
import HotelDatePicker from 'vue-hotel-datepicker'
export default {
components: {
HotelDatePicker,
},
}
<HotelDatePicker />
Props/Options
format
- Type:
String
- Default:
YYYY-MM-DD
The date format string.
startDate
- Type:
Date
orString
- Default:
new Date()
The start view date. All the dates before this date will be disabled.
startingDateValue
- Type:
Date
- Default:
null
The initial value of the start date.
endDate
- Type:
Date
orString
orBoolean
- Default:
false
The end view date. All the dates after this date will be disabled.
endingDateValue
- Type:
Date
- Default:
null
The initial value of the end date.
firstDayOfWeek
- Type:
Number
- Default:
0
The first day of the week. Where Sun = 0, Mon = 1, ... Sat = 6.
You need to set the right order in i18n.day-names
too.
minNights
- Type:
Number
- Default:
1
Minimum nights required to select a range of dates.
maxNights
- Type:
Number
- Default:
0
Maximum nights required to select a range of dates.
disabledDates
- Type:
Array
- Default:
[]
An array of strings in this format: YYYY-MM-DD
. All the dates passed to the list will be disabled.
disabledDaysOfWeek
- Type:
Array
- Default:
[]
An array of strings in this format: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
. All the days passed to the list will be disabled.
allowedRanges
- Type:
Array
- Default:
[]
An array of numbers. Example: [7,10,14]
.
After selecting the start date the calendar will be updated only allowing the checkout 7, 10 or 14 days after.
enableCheckout
- Type:
Boolean
- Default:
false
If true
, allows the checkout on a disabled date.
hoveringTooltip
- Type:
Boolean
orFunction
- Default:
true
Shows a tooltip with the number of nights when hovering a date.
tooltipMessage
- Type:
String
orFunction
- Default
null
If provided, it will override the default tooltip "X nights" with the text provided. You can use HTML in the string.
或:tooltipMessage="showEvent"
methods: {
...
showEvent(row) {
return `<div>
<h2>${fecha.format(row,"YYYY-MM-DD")}</h2>
<p>内容: 99.9912</p>
<p>内容</p>
<p>内容</p>
</div>
`
}
}
其中 typeof row === 'date'
singleDaySelection
- Type
boolean
- Default
false
showYear
- Type
boolean
- Default
false
Shows the year next to the month
closeDatepickerOnClickOutside
- Type:
boolean
- Default:
true
displayClearButton
- Type:
boolean
- Default:
true
If set to true, displays a clear button on the right side of the input if there are dates set
i18n
- Type:
Object
Default:
i18n: {
night: 'Night',
nights: 'Nights',
'day-names': ['Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat'],
'check-in': 'Check-in',
'check-out': 'Check-Out',
'month-names': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
}
API
⚠️ In order to open/close the datepicker from an external element, such as a button make sure to set closeDatepickerOnClickOutside
to false
hideDatepicker()
Hide datepicker
showDatepicker()
Show datepicker
toggleDatepicker()
Toggle datepicker
Events
checkInChanged
Emitted every time a new check in date is selected with the new date as payload
checkOutChanged
Emitted every time a new check out date is selected with the new date as payload
Credits
This component was originally built as a Vue wrapper component for the Hotel Datepicker by @benitolopez. Version 2.0.0 was completely rewritten with Vue, removing the original library, removing some features and introducing others.
License
6 years ago