A date range picker built with Svelte
In a Svelte App
npm i s-date-range-picker
yarn add s-date-range-picker
<script>
import SDateRangePicker from "s-date-range-picker";
// Manage start and end props from main app component
let startDate = new Date();
let endDate = new Date();
// Update state on apply event
function onApply({ detail }) {
startDate = detail.startDate;
endDate = detail.endDate;
}
</script>
<SDateRangePicker {startDate} {endDate} on:apply={onApply} />
git clone https://github.com/onx2/s-date-range-picker.git
cd svelte-date-range-picker
yarn
yarn serve
yarn test
yarn format
yarn lint
yarn build
applyBtnText: string = "Apply";
cancelBtnText: string = "Camcel";
dateFormat: string = "MMM dd, yyyy";
disabledDates: Date[] = [];
endDate: Date = endOfWeek(new Date());
firstDayOfWeek: string = "sunday";
locale?: Locale = undefined; // date-fns defaults to the system locale.
maxDate: Date = addYears(new Date(), 10);
minDate: Date = subYears(new Date(), 10);
monthDropdown: boolean = false;
monthFormat: string = "MMMM";
nextIcon: string | HTMLElement = "▸"; - ▸
prevIcon: string | HTMLElement = "◂"; // (html | string) - ◂
resetViewBtn: boolean = false;
resetViewBtnText: string | HTMLElement = "↚" // ↚
rtl: boolean = false;
singlePicker: boolean = false;
startDate: Date = startOfWeek(new Date());
timePicker: boolean = false;
timePickerControls: boolean = false;
timePickerIncrement: number = 1;
timePickerSeconds: boolean = false;
today: Date = new Date(); // Used as a reference in predefinedRanges and for underlining in calendar
todayBtn: boolean = false;
todayBtnText: string = "Today";
twoPages: boolean = true;
weekGuides: boolean = false; // Distance in calendar weeks from today
weekNumbers: boolean = false; // Local week numbers
yearDropdown: boolean = false;
// Fired when a selection is made (start or end date has been chosen)
selection(): { startDate: Date, endDate: Date};
// Fired when the "Cancel" button is clicked
cancel(): { startDate: Date, endDate: Date};
// Fired when the "Apply" button is clicked
apply(): { startDate: Date, endDate: Date};
Thanks geakstr for the Svelte component template!
This project is using date-fns under the hood for date calculations / manipulation.