sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
426 lines (425 loc) • 13.7 kB
TypeScript
import { type StyleValue } from 'vue';
import { type LocaleTranslate } from '../locale';
import { type Bem } from '../../utils';
export type CalendarType = 'single' | 'multiple' | 'range';
export interface CalendarDay {
date: Date;
disabled: boolean;
type: 'same' | 'start' | 'middle' | 'end' | 'selected' | 'normal';
top: string;
text: string | number;
bottom: string;
className?: string;
style?: StyleValue;
}
export interface CalendarProps {
rootStyle?: StyleValue;
rootClass?: string;
type?: CalendarType;
modelValue?: Date | Date[] | string | string[];
min?: Date;
max?: Date;
currentDate?: Date;
disabledDate?: (date: Date) => boolean;
maxDays?: number;
overMaxDays?: () => void;
weekStartsOn?: number;
formatter?: (day: CalendarDay) => void;
allowSameDay?: boolean;
severalMonths?: boolean;
valueFormat?: string;
startDateText?: string;
endDateText?: string;
sameDateText?: string;
}
export declare const defaultCalendarProps: {
rootStyle?: (string | false | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string | false | import("vue").CSSProperties | StyleValue[]) | null) | undefined;
rootClass?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string)) | undefined;
type?: (CalendarType | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => "multiple" | "single" | "range")) | undefined;
modelValue?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string | string[] | Date | Date[])) | undefined;
min?: ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => Date) | undefined;
max?: ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => Date) | undefined;
currentDate?: ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => Date) | undefined;
disabledDate?: (((date: Date) => boolean) | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => (date: Date) => boolean)) | undefined;
maxDays?: (number | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => number)) | undefined;
overMaxDays?: ((() => void) | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => () => void)) | undefined;
weekStartsOn?: (number | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => number)) | undefined;
formatter?: (((day: CalendarDay) => void) | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => (day: CalendarDay) => void)) | undefined;
allowSameDay?: (boolean | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => boolean)) | undefined;
severalMonths?: (boolean | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => boolean)) | undefined;
valueFormat?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string)) | undefined;
startDateText?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string)) | undefined;
endDateText?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string)) | undefined;
sameDateText?: (string | ((props: {
rootStyle: StyleValue;
rootClass: string;
type: CalendarType;
modelValue: Date | Date[] | string | string[];
min: Date;
max: Date;
currentDate: Date;
disabledDate: (date: Date) => boolean;
maxDays: number;
overMaxDays: () => void;
weekStartsOn: number;
formatter: (day: CalendarDay) => void;
allowSameDay: boolean;
severalMonths: boolean;
valueFormat: string;
startDateText: string;
endDateText: string;
sameDateText: string;
}) => string)) | undefined;
};
export interface CalendarEmits {
(e: 'update:model-value', value: Date | Date[] | string | string[]): void;
(e: 'change', value: Date | Date[] | string | string[]): void;
}
export interface CalendarMonthProps {
year: number;
month: number;
type: CalendarType;
minDate: Date;
maxDate: Date;
currentDates: Date[];
formatter?: (day: CalendarDay) => void;
disabledDate?: (date: Date) => boolean;
todayNumber: number;
weekStartsOn: number;
severalMonths?: boolean;
t: LocaleTranslate;
bem: Bem;
startDateText?: string;
endDateText?: string;
sameDateText?: string;
}
export interface CalendarMonthEmits {
(e: 'day-click', date: Date): void;
}
export declare const getMinDate: (severalMonths?: boolean) => Date;
export declare const getMaxDate: (severalMonths?: boolean) => Date;
export declare const sortDates: (dates: Date[]) => Date[];
export declare const weeksIndex: number[];