@quasar/quasar-ui-qcalendar
Version:
QCalendar - Day/Month/Week Calendars, Popups, Date Pickers, Schedules, Agendas, Planners and Tasks for your Vue Apps
565 lines (564 loc) • 26.4 kB
TypeScript
import { App as Application } from 'vue';
import QCalendarResource from './components/QCalendarResource';
import { version } from './version.js';
import * as Timestamp from './utils/Timestamp';
import * as helpers from './utils/helpers';
export * from './utils/Timestamp';
export * from './utils/helpers';
export { version, QCalendarResource };
declare const _default: {
install(app: Application): void;
convertToUnit(input: any, unit?: string): string | undefined;
indexOf(array: any[], cb: (_element: any, _index: number) => boolean): number;
minCharWidth(str: string, count: number): string;
default: {
convertToUnit: typeof helpers.convertToUnit;
indexOf: typeof helpers.indexOf;
minCharWidth: typeof helpers.minCharWidth;
};
validateTimestamp(input: string): boolean;
parsed(input: string): Timestamp.Timestamp | null;
parseDate(date: Date, utc?: boolean): Timestamp.Timestamp | null;
padNumber(x: number, length: number): string;
isLeapYear(year: number): boolean;
daysInMonth(year: number, month: number): number;
nextDay(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
prevDay(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
today(): string;
isToday(date: string): boolean;
getStartOfWeek(timestamp: Timestamp.Timestamp, weekdays: number[], today: Timestamp.Timestamp): Timestamp.Timestamp;
getEndOfWeek(timestamp: Timestamp.Timestamp, weekdays: number[], today: Timestamp.Timestamp): Timestamp.Timestamp;
getStartOfMonth(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
getEndOfMonth(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
parseTime(input: number | string | {
hour: number;
minute: number;
}): number | false;
compareTimestamps(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): boolean;
compareDate(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): boolean;
compareTime(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): boolean;
compareDateTime(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): boolean;
parseTimestamp(input: string, now?: Timestamp.Timestamp | null): Timestamp.Timestamp | null;
getDayIdentifier(timestamp: Timestamp.Timestamp): number;
getTimeIdentifier(timestamp: Timestamp.Timestamp): number;
getDayTimeIdentifier(timestamp: Timestamp.Timestamp): number;
diffTimestamp(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp, strict?: boolean): number;
updateRelative(timestamp: Timestamp.Timestamp, now: Timestamp.Timestamp, time?: boolean): Timestamp.Timestamp;
updateMinutes(timestamp: Timestamp.Timestamp, minutes: number, now?: Timestamp.Timestamp | null): Timestamp.Timestamp;
updateWeekday(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
updateDayOfYear(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
updateWorkWeek(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
updateDisabled(timestamp: Timestamp.Timestamp, disabledBefore?: string, disabledAfter?: string, disabledWeekdays?: number[], disabledDays?: string[] | string[][]): Timestamp.Timestamp;
updateFormatted(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
getDayOfYear(timestamp: Timestamp.Timestamp): number | void;
getWorkWeek(timestamp: Timestamp.Timestamp): number;
getWeekday(timestamp: Timestamp.Timestamp): number;
copyTimestamp(timestamp: Timestamp.Timestamp): Timestamp.Timestamp;
getDate(timestamp: Timestamp.Timestamp): string;
getTime(timestamp: Timestamp.Timestamp): string;
getDateTime(timestamp: Timestamp.Timestamp): string;
moveRelativeDays(timestamp: Timestamp.Timestamp, mover?: typeof Timestamp.nextDay, days?: number, allowedWeekdays?: number[]): Timestamp.Timestamp;
relativeDays(timestamp: Timestamp.Timestamp, mover?: typeof Timestamp.nextDay, days?: number, allowedWeekdays?: number[]): Timestamp.Timestamp;
findWeekday(timestamp: Timestamp.Timestamp, weekday: number, mover?: typeof Timestamp.nextDay, maxDays?: number): Timestamp.Timestamp;
createDayList(start: Timestamp.Timestamp, end: Timestamp.Timestamp, now: Timestamp.Timestamp, weekdays?: number[], disabledBefore?: string | undefined, disabledAfter?: string | undefined, disabledWeekdays?: number[], disabledDays?: string[], max?: number, min?: number): Timestamp.Timestamp[];
createIntervalList(timestamp: Timestamp.Timestamp, first: number, minutes: number, count: number, now: Timestamp.Timestamp): Timestamp.Timestamp[];
createNativeLocaleFormatter(locale: string, cb: Timestamp.LocaleFormatter): (_timestamp: Timestamp.Timestamp, _short: boolean) => string;
makeDate(timestamp: Timestamp.Timestamp, utc?: boolean): Date;
makeDateTime(timestamp: Timestamp.Timestamp, utc?: boolean): Date;
validateNumber(input: string | number): boolean;
maxTimestamp(timestamps: Timestamp.Timestamp[], useTime?: boolean): Timestamp.Timestamp;
minTimestamp(timestamps: Timestamp.Timestamp[], useTime?: boolean): Timestamp.Timestamp;
isBetweenDates(timestamp: Timestamp.Timestamp, startTimestamp: Timestamp.Timestamp, endTimestamp: Timestamp.Timestamp, useTime?: boolean): boolean;
isOverlappingDates(startTimestamp: Timestamp.Timestamp, endTimestamp: Timestamp.Timestamp, firstTimestamp: Timestamp.Timestamp, lastTimestamp: Timestamp.Timestamp): boolean;
addToDate(timestamp: Timestamp.Timestamp, options: Timestamp.AddToDateOptions): Timestamp.Timestamp;
daysBetween(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): number;
weeksBetween(ts1: Timestamp.Timestamp, ts2: Timestamp.Timestamp): number;
getWeekdayFormatter(): Timestamp.WeekdayFormatter;
getWeekdayNames(type: string, locale: string): string[];
getMonthFormatter(): Timestamp.MonthFormatter;
getMonthNames(type: string, locale: string): string[];
PARSE_DATETIME: RegExp;
PARSE_DATE: RegExp;
PARSE_TIME: RegExp;
DAYS_IN_MONTH: number[];
DAYS_IN_MONTH_LEAP: number[];
TIME_CONSTANTS: {
MILLISECONDS_IN: {
SECOND: number;
MINUTE: number;
HOUR: number;
DAY: number;
WEEK: number;
};
SECONDS_IN: {
MINUTE: number;
HOUR: number;
DAY: number;
WEEK: number;
};
MINUTES_IN: {
MINUTE: number;
HOUR: number;
DAY: number;
WEEK: number;
};
HOURS_IN: {
DAY: number;
WEEK: number;
};
DAYS_IN: {
WEEK: number;
};
};
DAYS_IN_MONTH_MIN: 28;
DAYS_IN_MONTH_MAX: 31;
MONTH_MAX: 12;
MONTH_MIN: 1;
DAY_MIN: 1;
FIRST_HOUR: 0;
version: string;
QCalendarResource: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
useNavigation: BooleanConstructor;
now: {
type: StringConstructor;
validator: (v: string) => boolean;
default: string;
};
maxDays: {
readonly type: import("vue").PropType<import("./composables/useMaxDays").MaxDaysProps["maxDays"]>;
readonly default: 1;
};
columnCount: {
readonly type: import("vue").PropType<import("./composables/useColumn").ColumnProps["columnCount"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
columnIndexStart: {
readonly type: import("vue").PropType<import("./composables/useColumn").ColumnProps["columnIndexStart"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
view: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["view"]>;
readonly validator: (v: string) => boolean;
readonly default: "day";
};
shortIntervalLabel: BooleanConstructor;
intervalHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalHeight"]>;
readonly default: 40;
readonly validator: typeof Timestamp.validateNumber;
};
intervalMinutes: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalMinutes"]>;
readonly default: 60;
readonly validator: typeof Timestamp.validateNumber;
};
intervalStart: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalStart"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
intervalCount: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalCount"]>;
readonly default: 24;
readonly validator: typeof Timestamp.validateNumber;
};
intervalStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalStyle"]>;
readonly default: null;
};
intervalClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalClass"]>;
readonly default: null;
};
weekdayStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["weekdayStyle"]>;
readonly default: null;
};
weekdayClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["weekdayClass"]>;
readonly default: null;
};
showIntervalLabel: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["showIntervalLabel"]>;
readonly default: null;
};
hour24Format: BooleanConstructor;
timeClicksClamped: BooleanConstructor;
dateHeader: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["dateHeader"]>;
readonly default: "stacked";
readonly validator: (v: string) => boolean;
};
modelResources: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["modelResources"]>;
};
resourceKey: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceKey"]>;
readonly default: "id";
};
resourceLabel: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceLabel"]>;
readonly default: "label";
};
resourceHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceHeight"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
resourceMinHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceMinHeight"]>;
readonly default: 70;
readonly validator: typeof Timestamp.validateNumber;
};
resourceStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceStyle"]>;
readonly default: null;
};
resourceClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceClass"]>;
readonly default: null;
};
cellWidth: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["cellWidth"]>;
readonly default: 100;
};
intervalHeaderHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["intervalHeaderHeight"]>;
readonly default: 20;
readonly validator: typeof Timestamp.validateNumber;
};
noSticky: import("vue").PropType<import("./composables/useInterval").ResourceProps["noSticky"]>;
modelValue: {
type: StringConstructor;
default: string;
validator: (v: string) => boolean;
};
weekdays: {
type: () => number[];
default: () => number[];
};
dateType: {
type: () => "round" | "rounded" | "square";
default: string;
validator: (v: string) => boolean;
};
weekdayAlign: {
type: () => "left" | "center" | "right";
default: string;
validator: (v: string) => boolean;
};
dateAlign: {
type: () => "left" | "center" | "right";
default: string;
validator: (v: string) => boolean;
};
bordered: BooleanConstructor;
dark: BooleanConstructor;
noAria: BooleanConstructor;
noActiveDate: BooleanConstructor;
noHeader: BooleanConstructor;
noScroll: BooleanConstructor;
shortWeekdayLabel: BooleanConstructor;
noDefaultHeaderText: BooleanConstructor;
noDefaultHeaderBtn: BooleanConstructor;
minWeekdayLabel: {
type: import("vue").PropType<number | string>;
default: number;
};
weekdayBreakpoints: {
type: () => number[];
default: () => number[];
validator: (v: number[]) => boolean;
};
locale: {
type: StringConstructor;
default: string;
};
animated: BooleanConstructor;
transitionPrev: {
type: StringConstructor;
default: string;
};
transitionNext: {
type: StringConstructor;
default: string;
};
disabledDays: () => string[];
disabledBefore: StringConstructor;
disabledAfter: StringConstructor;
disabledWeekdays: {
type: () => number[];
default: () => string[] | Set<string>;
};
dragEnterFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dragOverFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dragLeaveFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dropFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
selectedDates: {
type: import("vue").PropType<string[] | Set<string>>;
default: () => string[] | Set<string>;
};
selectedStartEndDates: {
type: () => string[];
default: () => string[];
};
hoverable: BooleanConstructor;
focusable: BooleanConstructor;
focusType: {
type: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[];
default: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[];
validator: (v: string[]) => boolean;
};
}>, () => import("vue").VNode, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
useNavigation: BooleanConstructor;
now: {
type: StringConstructor;
validator: (v: string) => boolean;
default: string;
};
maxDays: {
readonly type: import("vue").PropType<import("./composables/useMaxDays").MaxDaysProps["maxDays"]>;
readonly default: 1;
};
columnCount: {
readonly type: import("vue").PropType<import("./composables/useColumn").ColumnProps["columnCount"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
columnIndexStart: {
readonly type: import("vue").PropType<import("./composables/useColumn").ColumnProps["columnIndexStart"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
view: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["view"]>;
readonly validator: (v: string) => boolean;
readonly default: "day";
};
shortIntervalLabel: BooleanConstructor;
intervalHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalHeight"]>;
readonly default: 40;
readonly validator: typeof Timestamp.validateNumber;
};
intervalMinutes: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalMinutes"]>;
readonly default: 60;
readonly validator: typeof Timestamp.validateNumber;
};
intervalStart: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalStart"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
intervalCount: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalCount"]>;
readonly default: 24;
readonly validator: typeof Timestamp.validateNumber;
};
intervalStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalStyle"]>;
readonly default: null;
};
intervalClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["intervalClass"]>;
readonly default: null;
};
weekdayStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["weekdayStyle"]>;
readonly default: null;
};
weekdayClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["weekdayClass"]>;
readonly default: null;
};
showIntervalLabel: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["showIntervalLabel"]>;
readonly default: null;
};
hour24Format: BooleanConstructor;
timeClicksClamped: BooleanConstructor;
dateHeader: {
readonly type: import("vue").PropType<import("./composables/useInterval").IntervalProps["dateHeader"]>;
readonly default: "stacked";
readonly validator: (v: string) => boolean;
};
modelResources: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["modelResources"]>;
};
resourceKey: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceKey"]>;
readonly default: "id";
};
resourceLabel: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceLabel"]>;
readonly default: "label";
};
resourceHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceHeight"]>;
readonly default: 0;
readonly validator: typeof Timestamp.validateNumber;
};
resourceMinHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceMinHeight"]>;
readonly default: 70;
readonly validator: typeof Timestamp.validateNumber;
};
resourceStyle: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceStyle"]>;
readonly default: null;
};
resourceClass: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["resourceClass"]>;
readonly default: null;
};
cellWidth: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["cellWidth"]>;
readonly default: 100;
};
intervalHeaderHeight: {
readonly type: import("vue").PropType<import("./composables/useInterval").ResourceProps["intervalHeaderHeight"]>;
readonly default: 20;
readonly validator: typeof Timestamp.validateNumber;
};
noSticky: import("vue").PropType<import("./composables/useInterval").ResourceProps["noSticky"]>;
modelValue: {
type: StringConstructor;
default: string;
validator: (v: string) => boolean;
};
weekdays: {
type: () => number[];
default: () => number[];
};
dateType: {
type: () => "round" | "rounded" | "square";
default: string;
validator: (v: string) => boolean;
};
weekdayAlign: {
type: () => "left" | "center" | "right";
default: string;
validator: (v: string) => boolean;
};
dateAlign: {
type: () => "left" | "center" | "right";
default: string;
validator: (v: string) => boolean;
};
bordered: BooleanConstructor;
dark: BooleanConstructor;
noAria: BooleanConstructor;
noActiveDate: BooleanConstructor;
noHeader: BooleanConstructor;
noScroll: BooleanConstructor;
shortWeekdayLabel: BooleanConstructor;
noDefaultHeaderText: BooleanConstructor;
noDefaultHeaderBtn: BooleanConstructor;
minWeekdayLabel: {
type: import("vue").PropType<number | string>;
default: number;
};
weekdayBreakpoints: {
type: () => number[];
default: () => number[];
validator: (v: number[]) => boolean;
};
locale: {
type: StringConstructor;
default: string;
};
animated: BooleanConstructor;
transitionPrev: {
type: StringConstructor;
default: string;
};
transitionNext: {
type: StringConstructor;
default: string;
};
disabledDays: () => string[];
disabledBefore: StringConstructor;
disabledAfter: StringConstructor;
disabledWeekdays: {
type: () => number[];
default: () => string[] | Set<string>;
};
dragEnterFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dragOverFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dragLeaveFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
dropFunc: import("vue").PropType<(_event: Event, _type: string, _scope: any) => boolean>;
selectedDates: {
type: import("vue").PropType<string[] | Set<string>>;
default: () => string[] | Set<string>;
};
selectedStartEndDates: {
type: () => string[];
default: () => string[];
};
hoverable: BooleanConstructor;
focusable: BooleanConstructor;
focusType: {
type: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[];
default: () => ("day" | "date" | "weekday" | "interval" | "time" | "resource" | "task")[];
validator: (v: string[]) => boolean;
};
}>> & Readonly<{}>, {
view: "day" | "month" | "week" | "month-interval";
columnCount: string | number;
dark: boolean;
focusable: boolean;
columnIndexStart: string | number;
now: string;
maxDays: number;
shortIntervalLabel: boolean;
intervalHeight: string | number;
intervalMinutes: string | number;
intervalStart: string | number;
intervalCount: string | number;
intervalStyle: ((_scope: import("./composables/useInterval").Scope) => any) | undefined;
intervalClass: ((_scope: import("./composables/useInterval").Scope) => string) | undefined;
weekdayStyle: ((_scope: import("./composables/useInterval").Scope) => any) | undefined;
weekdayClass: ((_scope: import("./composables/useInterval").Scope) => string) | undefined;
showIntervalLabel: ((_timestamp: Timestamp.Timestamp) => any) | undefined;
hour24Format: boolean;
timeClicksClamped: boolean;
dateHeader: "inline" | "stacked" | "inverted";
modelValue: string;
weekdays: number[];
dateType: "square" | "round" | "rounded";
weekdayAlign: "center" | "left" | "right";
dateAlign: "center" | "left" | "right";
bordered: boolean;
noAria: boolean;
noActiveDate: boolean;
noHeader: boolean;
noScroll: boolean;
shortWeekdayLabel: boolean;
noDefaultHeaderText: boolean;
noDefaultHeaderBtn: boolean;
minWeekdayLabel: string | number;
weekdayBreakpoints: number[];
locale: string;
animated: boolean;
transitionPrev: string;
transitionNext: string;
disabledWeekdays: number[];
selectedDates: string[] | Set<string>;
selectedStartEndDates: string[];
hoverable: boolean;
focusType: ("time" | "interval" | "day" | "weekday" | "date" | "resource" | "task")[];
resourceKey: string;
resourceLabel: string;
resourceHeight: string | number;
resourceMinHeight: string | number;
resourceStyle: ((_scope: any) => any) | undefined;
resourceClass: ((_scope: any) => string) | undefined;
cellWidth: string | number;
intervalHeaderHeight: string | number;
useNavigation: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
export default _default;