UNPKG

@ipohjs/qwik-calendar

Version:

Stream-able and resumable calendar component, built with Qwik

44 lines (39 loc) 1.36 kB
import type { JSX } from '@builder.io/qwik/jsx-runtime'; import type { GetWeekdaysInit } from '@ipohjs/calendar/dist/helpers/typings.js'; import type { CalendarInit, DatesGridColumn, SerializableCalendarGrid, } from '@ipohjs/calendar/dist/typings.js'; import type { BaseComponentProps } from '@ipohjs/types'; import type { DataCellPropsRenderInit } from './data-cell/types'; import type { WeekLabelProps } from './week-label/types'; import type { WeekdayPropsRenderInit } from './weekday/types'; type CalendarGridInit = CalendarInit<'grid'>; export interface QwikCalendarProps extends Omit<OmitAllFormatFunctions<CalendarGridInit>, 'calendarMode'>, OmitAllFormatFunctions<GetWeekdaysInit>, BaseComponentProps<'table'> { onDateChangeByKey$?( ev: KeyboardEvent, calendarGrid: SerializableCalendarGrid ): void; renderDataCell$?( init: DataCellPropsRenderInit<'td', DatesGridColumn>, rowIndex: number, colIndex: number ): JSX.Element; renderHeader$?(init: WeekdayPropsRenderInit, index: number): JSX.Element; renderWeekLabel$?: WeekLabelProps['render$']; renderWeekNumber$?( init: WeekdayPropsRenderInit, rowIndex: number, colIndex: number ): JSX.Element; } type OmitAllFormatFunctions<T extends object> = Omit< T, { [K in keyof T]: K extends `${string}Format` ? K : never; }[keyof T] >;