UNPKG

vuetify

Version:

Vue Material Component Framework

237 lines (235 loc) 11.1 kB
import { validateNumber, validateTime } from '../util/timestamp.js'; import type { PropType, StyleValue } from 'vue'; import type { CalendarBaseProps } from './calendarBase.js'; import type { CalendarDayBodySlotScope, CalendarFormatter, CalendarTimestamp } from '../types.js'; import type { VTime } from '../util/timestamp.js'; export declare const makeCalendarWithIntervalsProps: <Defaults extends { maxDays?: unknown; intervalHeight?: unknown; intervalWidth?: unknown; intervalMinutes?: unknown; firstInterval?: unknown; firstTime?: unknown; intervalCount?: unknown; intervalFormat?: unknown; intervalStyle?: unknown; showIntervalLabel?: unknown; } = {}>(defaults?: Defaults | undefined) => { maxDays: unknown extends Defaults["maxDays"] ? { type: NumberConstructor; default: number; } : Omit<{ type: NumberConstructor; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["maxDays"] ? number : number | Defaults["maxDays"]>; default: unknown extends Defaults["maxDays"] ? number : number | Defaults["maxDays"]; }; intervalHeight: unknown extends Defaults["intervalHeight"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalHeight"] ? string | number : string | number | Defaults["intervalHeight"]>; default: unknown extends Defaults["intervalHeight"] ? string | number : NonNullable<string | number> | Defaults["intervalHeight"]; }; intervalWidth: unknown extends Defaults["intervalWidth"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalWidth"] ? string | number : string | number | Defaults["intervalWidth"]>; default: unknown extends Defaults["intervalWidth"] ? string | number : NonNullable<string | number> | Defaults["intervalWidth"]; }; intervalMinutes: unknown extends Defaults["intervalMinutes"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalMinutes"] ? string | number : string | number | Defaults["intervalMinutes"]>; default: unknown extends Defaults["intervalMinutes"] ? string | number : NonNullable<string | number> | Defaults["intervalMinutes"]; }; firstInterval: unknown extends Defaults["firstInterval"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; }, "type" | "default"> & { type: PropType<unknown extends Defaults["firstInterval"] ? string | number : string | number | Defaults["firstInterval"]>; default: unknown extends Defaults["firstInterval"] ? string | number : NonNullable<string | number> | Defaults["firstInterval"]; }; firstTime: unknown extends Defaults["firstTime"] ? { type: PropType<VTime>; validate: typeof validateTime; } : Omit<{ type: PropType<VTime>; validate: typeof validateTime; }, "type" | "default"> & { type: PropType<unknown extends Defaults["firstTime"] ? VTime : VTime | Defaults["firstTime"]>; default: unknown extends Defaults["firstTime"] ? VTime : Defaults["firstTime"] | NonNullable<VTime>; }; intervalCount: unknown extends Defaults["intervalCount"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; validate: typeof validateNumber; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalCount"] ? string | number : string | number | Defaults["intervalCount"]>; default: unknown extends Defaults["intervalCount"] ? string | number : NonNullable<string | number> | Defaults["intervalCount"]; }; intervalFormat: unknown extends Defaults["intervalFormat"] ? { type: PropType<CalendarFormatter>; default: null; } : Omit<{ type: PropType<CalendarFormatter>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalFormat"] ? CalendarFormatter : CalendarFormatter | Defaults["intervalFormat"]>; default: unknown extends Defaults["intervalFormat"] ? CalendarFormatter : CalendarFormatter | Defaults["intervalFormat"]; }; intervalStyle: unknown extends Defaults["intervalStyle"] ? { type: PropType<(interval: CalendarTimestamp) => StyleValue>; default: null; } : Omit<{ type: PropType<(interval: CalendarTimestamp) => StyleValue>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["intervalStyle"] ? (interval: CalendarTimestamp) => StyleValue : ((interval: CalendarTimestamp) => StyleValue) | Defaults["intervalStyle"]>; default: unknown extends Defaults["intervalStyle"] ? (interval: CalendarTimestamp) => StyleValue : ((interval: CalendarTimestamp) => StyleValue) | Defaults["intervalStyle"]; }; showIntervalLabel: unknown extends Defaults["showIntervalLabel"] ? { type: PropType<(interval: CalendarTimestamp) => boolean>; default: null; } : Omit<{ type: PropType<(interval: CalendarTimestamp) => boolean>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["showIntervalLabel"] ? (interval: CalendarTimestamp) => boolean : ((interval: CalendarTimestamp) => boolean) | Defaults["showIntervalLabel"]>; default: unknown extends Defaults["showIntervalLabel"] ? (interval: CalendarTimestamp) => boolean : ((interval: CalendarTimestamp) => boolean) | Defaults["showIntervalLabel"]; }; }; interface CalendarWithIntervalsProps extends CalendarBaseProps { maxDays: number; intervalHeight: string | number; intervalMinutes: string | number; firstInterval: string | number; firstTime: VTime | undefined; intervalCount: string | number; intervalFormat: CalendarFormatter | string | undefined; } export declare function useCalendarWithIntervals(props: CalendarWithIntervalsProps): { scrollAreaRef: import("vue").ShallowRef<HTMLElement | undefined, HTMLElement | undefined>; parsedFirstInterval: import("vue").ComputedRef<number>; parsedIntervalMinutes: import("vue").ComputedRef<number>; parsedIntervalCount: import("vue").ComputedRef<number>; parsedIntervalHeight: import("vue").ComputedRef<number>; parsedFirstTime: import("vue").ComputedRef<number | false>; firstMinute: import("vue").ComputedRef<number>; bodyHeight: import("vue").ComputedRef<number>; days: import("vue").ComputedRef<CalendarTimestamp[]>; intervals: import("vue").ComputedRef<CalendarTimestamp[][]>; intervalFormatter: import("vue").ComputedRef<CalendarFormatter>; showIntervalLabelDefault: (interval: CalendarTimestamp) => boolean; intervalStyleDefault: (_interval: CalendarTimestamp) => StyleValue; getTimestampAtEvent: (e: Event, day: CalendarTimestamp) => CalendarTimestamp; getSlotScope: (timestamp: CalendarTimestamp) => CalendarDayBodySlotScope; scrollToTime: (time: VTime) => boolean; minutesToPixels: (minutes: number) => number; timeToY: (time: VTime, clamp?: boolean) => number | false; timeDelta: (time: VTime) => number | false; times: { now: { date: string; time: string; year: number; month: number; day: number; weekday: number; hour: number; minute: number; hasDay: boolean; hasTime: boolean; past: boolean; present: boolean; future: boolean; category?: string | { [x: string]: any; name?: string | undefined; categoryName?: string | undefined; } | undefined; }; today: { date: string; time: string; year: number; month: number; day: number; weekday: number; hour: number; minute: number; hasDay: boolean; hasTime: boolean; past: boolean; present: boolean; future: boolean; category?: string | { [x: string]: any; name?: string | undefined; categoryName?: string | undefined; } | undefined; }; }; locale: { isRtl: import("vue").Ref<boolean>; rtl: import("vue").Ref<Record<string, boolean>>; rtlClasses: import("vue").Ref<string>; name: string; decimalSeparator: import("vue").ShallowRef<string>; messages: import("vue").Ref<import("../../../types.js").LocaleMessages>; current: import("vue").Ref<string>; fallback: import("vue").Ref<string>; t: (key: string, ...params: unknown[]) => string; n: (value: number) => string; provide: (props: import("../../../types.js").LocaleOptions) => import("../../../types.js").LocaleInstance; }; parsedWeekdays: import("vue").ComputedRef<number[]>; weekdaySkips: import("vue").ComputedRef<number[]>; parsedStart: import("vue").ComputedRef<CalendarTimestamp>; parsedEnd: import("vue").ComputedRef<CalendarTimestamp>; dayFormatter: import("vue").ComputedRef<CalendarFormatter>; weekdayFormatter: import("vue").ComputedRef<CalendarFormatter>; getColorProps: (colors: { background?: import("../../../composables/color.js").ColorValue; text?: import("../../../composables/color.js").ColorValue; }) => { class: string[]; style: import("vue").CSSProperties; }; getRelativeClasses: (timestamp: CalendarTimestamp, outside?: boolean) => { 'v-present': boolean; 'v-past': boolean; 'v-future': boolean; 'v-outside': boolean; }; getStartOfWeek: (timestamp: CalendarTimestamp) => CalendarTimestamp; getEndOfWeek: (timestamp: CalendarTimestamp) => CalendarTimestamp; getFormatter: (options: Intl.DateTimeFormatOptions) => CalendarFormatter; };