@vuetify/nightly
Version:
Vue Material Component Framework
240 lines (238 loc) • 11.4 kB
TypeScript
import { validateNumber, validateTime } from '../util/timestamp.js';
// Types
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;
}, "default" | "type"> & {
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: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
} : Omit<{
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["intervalHeight"] ? string | number : string | number | Defaults["intervalHeight"]>;
default: unknown extends Defaults["intervalHeight"] ? string | number : Defaults["intervalHeight"] | NonNullable<string | number>;
};
intervalWidth: unknown extends Defaults["intervalWidth"] ? {
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
} : Omit<{
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["intervalWidth"] ? string | number : string | number | Defaults["intervalWidth"]>;
default: unknown extends Defaults["intervalWidth"] ? string | number : Defaults["intervalWidth"] | NonNullable<string | number>;
};
intervalMinutes: unknown extends Defaults["intervalMinutes"] ? {
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
} : Omit<{
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["intervalMinutes"] ? string | number : string | number | Defaults["intervalMinutes"]>;
default: unknown extends Defaults["intervalMinutes"] ? string | number : Defaults["intervalMinutes"] | NonNullable<string | number>;
};
firstInterval: unknown extends Defaults["firstInterval"] ? {
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
} : Omit<{
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["firstInterval"] ? string | number : string | number | Defaults["firstInterval"]>;
default: unknown extends Defaults["firstInterval"] ? string | number : Defaults["firstInterval"] | NonNullable<string | number>;
};
firstTime: unknown extends Defaults["firstTime"] ? {
type: PropType<VTime>;
validate: typeof validateTime;
} : Omit<{
type: PropType<VTime>;
validate: typeof validateTime;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["firstTime"] ? VTime : Defaults["firstTime"] | VTime>;
default: unknown extends Defaults["firstTime"] ? VTime : Defaults["firstTime"] | NonNullable<VTime>;
};
intervalCount: unknown extends Defaults["intervalCount"] ? {
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
} : Omit<{
type: (NumberConstructor | StringConstructor)[];
default: number;
validate: typeof validateNumber;
}, "default" | "type"> & {
type: PropType<unknown extends Defaults["intervalCount"] ? string | number : string | number | Defaults["intervalCount"]>;
default: unknown extends Defaults["intervalCount"] ? string | number : Defaults["intervalCount"] | NonNullable<string | number>;
};
intervalFormat: unknown extends Defaults["intervalFormat"] ? {
type: PropType<CalendarFormatter>;
default: null;
} : Omit<{
type: PropType<CalendarFormatter>;
default: null;
}, "default" | "type"> & {
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;
}, "default" | "type"> & {
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;
}, "default" | "type"> & {
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): {
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: {
name: string;
decimalSeparator: import("vue").ShallowRef<string>;
messages: import("vue").Ref<import("../../../types.js").LocaleMessages, import("../../../types.js").LocaleMessages>;
current: import("vue").Ref<string, string>;
fallback: import("vue").Ref<string, string>;
t: (key: string, ...params: unknown[]) => string;
n: (value: number) => string;
provide: (props: import("../../../types.js").LocaleOptions) => import("../../../types.js").LocaleInstance;
isRtl: import("vue").Ref<boolean, boolean>;
rtl: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>;
rtlClasses: import("vue").Ref<string, string>;
};
parsedValue: import("vue").ComputedRef<CalendarTimestamp>;
parsedWeekdays: import("vue").ComputedRef<number[]>;
effectiveWeekdays: 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;
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;
};