diff --git a/src/lib/DateInput.svelte b/src/lib/DateInput.svelte index d8f91f4..3394781 100644 --- a/src/lib/DateInput.svelte +++ b/src/lib/DateInput.svelte @@ -24,6 +24,7 @@ invalidMessage?: string; class?: ClassValue | undefined | null; format?: FormatString[]; + onchange?: (date: CalendarDate | null) => void; } let { @@ -37,7 +38,8 @@ required = false, invalidMessage = 'Valid date is required', class: classValue, - format = ['year', 'month', 'day'] + format = ['year', 'month', 'day'], + onchange }: Props = $props(); const id = $derived(generateIdentifier('dateinput', name)); @@ -109,6 +111,7 @@ setPrevious(); previousYearValue = undefined; value = null; + onchange?.(value); } return; } @@ -122,6 +125,7 @@ setPrevious(); previousMonthValue = undefined; value = null; + onchange?.(value); } return; } @@ -135,6 +139,7 @@ setPrevious(); previousDayValue = undefined; value = null; + onchange?.(value); } return; } @@ -146,6 +151,7 @@ day ?? (value ? value.day : min.day) ); value = newDate; + onchange?.(value); }; type caretPos = { start: number; end: number } | null;