@fesjs/fes-design
Version:
fes-design for PC
61 lines (60 loc) • 1.84 kB
TypeScript
import type { PropType, SlotsType } from 'vue';
import type { ComponentInnerProps, ComponentSlots, ExtractPublicPropTypes } from '../_util/interface';
import type { UnixTime } from './types';
/**
* Calendar 显示模式
*
* month - 月历
* date - 日历
*/
export type CalendarMode = 'month' | 'date';
export interface CalendarShortcut {
label: string;
time: UnixTime | (() => UnixTime);
}
export declare const calendarProps: {
/** 当前高亮标记的日期 */
readonly modelValue: {
readonly type: PropType<number>;
readonly default: () => number;
};
/** 显示模式 */
readonly mode: {
readonly type: PropType<CalendarMode>;
readonly default: "date";
readonly validator: (value: unknown) => boolean;
};
/** 是否展示分割线 */
readonly splitLine: {
readonly type: BooleanConstructor;
readonly default: true;
};
/** 组件高度 */
readonly height: {
readonly type: PropType<string | number>;
};
/** 快捷选项 */
readonly shortcuts: {
readonly type: PropType<CalendarShortcut[]>;
readonly default: () => CalendarShortcut[];
};
};
export type CalendarProps = ExtractPublicPropTypes<typeof calendarProps>;
export type CalendarInnerProps = ComponentInnerProps<typeof calendarProps>;
export declare const CalendarEvent: {
readonly UPDATE_MODEL: "update:modelValue";
readonly UPDATE_MODE: "update:mode";
readonly CELL_CLICK: "cellClick";
};
export type CalendarSlotsParams = {
cellMain: {
date: UnixTime;
mode: CalendarMode;
};
cellAppendant: {
date: UnixTime;
mode: CalendarMode;
};
};
export type CalendarSlots = SlotsType<CalendarSlotsParams>;
export type CalendarUnboxSlots = ComponentSlots<CalendarSlotsParams>;