calendar-set
Framework agnostic calendar components (demo)
Components
The components are implemented with Svelte, so they can be used with Svelte component API. The following is a simple example how you can use DateCalendar
component.
import { en, DateCalendar } from 'calendar-set'
DateCalendar.setLocale(en)
const calendar = new DateCalendar({
target: document.querySelector('#calendar'),
data: {
selected: new Date()
}
})
calendar.on('select', selected => {
console.log(selected)
})
calendar.set({
selected: new Date(2018, 0, 1)
})
calendar.destroy()
All components have a static method setLocale
to specify localized string shown in the calendar. You need to call the method before instantiating components. calendar-set
provides built in locales en
and ja
.
If you want to use with Vue.js, you may interested in vue-svelte-adapter.
DateCalendar
Data
{
current: {
year: number
month: number
}
selected: Date | Date[] | undefined
isHighlighted: (target: Date, selected: Date | Date[] | undefined) => boolean
getClass: (target: Date) => string
locale: Locale
}
Events
fire('select', selectedDate)
fire('hover', hoveredDate)
DateRangeCalendar
Similar to DateCalendar but can be selected range of two dates.
Data
{
current: {
year: number
month: number
}
selected: Date | Date[] | undefined
hovered: Date | undefined
getClass: (target: Date) => string
second: boolean
locale: Locale
}
Events
fire('select', selectedDate)
: selectedDate
is an array and always sorted with ASC order by date.fire('hover', hoveredDate)
MonthCalendar
Data
{
currentYear: number
selected: Date | Date[] | undefined
isHighlighted: (target: Date, selected: Date | Date[] | undefined) => boolean
getClass: (target: Date) => string
locale: Locale
}
Events
fire('select', selectedMonth)
fire('hover', hoveredMonth)
MonthRangeCalendar
Similar to MonthCalendar but can be selected range of two months.
Data
{
currentYear: number
selected: Date | Date[] | undefined
hovered: Date | undefined
getClass: (target: Date) => string
second: boolean
locale: Locale
}
Events
fire('select', selectedMonth)
: selectedMonth
is an array and always sorted with ASC order by month.fire('hover', hoveredMonth)
Styles
There is a default style at calendar-set/dist/calendar-set.css
. If you want to use it, import it by appropriate way of your project setup.
Example of webpack:
import 'calendar-set/dist/calendar-set.css'
import { DateCalendar, en } from 'calendar-set'
DateCalendar.setLocale(en)
Example loading from CDN:
<link rel="stylesheet" href="https://unpkg.com/calendar-set/dist/calendar-set.css">
<script src="https://unpkg.com/calendar-set"></script>
License
MIT