@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
138 lines (137 loc) • 6.46 kB
TypeScript
/**
* Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { CalendarWeekItem } from "../types/calendar";
import { DateObject, Period, MarkedDates, MarkStatus, DataRangePicked, FirstDayOfTheWeek } from "../types/common";
import { DateModel } from "../types/date-model";
import { ActiveMonth, MonthViewItem, NameOfMonths } from "../types/month";
import { YearViewItem } from "../types/year";
export interface DateFormatInfo {
value: string;
format: string;
}
export interface UseDateFormat {
formatDate: (date: DateObject, dateFormat: string, monthLabels: NameOfMonths) => string;
getDateValue: (dateStr: string, dateFormat: string, delimeters: string[] | null) => DateFormatInfo[];
preZero: (val: number) => string;
remove: (format: string, delStr: string) => string;
}
export interface UseDate {
emptyDate: () => DateObject;
getDate: (date: DateObject) => Date;
getDate2: (date: DateObject) => Date;
getDayNumber: (date: DateObject) => number;
getWeekdayIndex: (wd: string) => number;
getTimeInMilliseconds: (date: DateObject) => number;
getEpocTime: (date: DateObject) => number;
getNearDate: (now: DateObject, min: DateObject, max: DateObject) => DateObject;
getToday(): Required<DateObject>;
getDateObject(dateString: string, dateFormat: string): DateObject;
getMinDate(value: Date | string | null | undefined): DateObject;
getMaxDate(value: Date | string | null | undefined): DateObject;
getTimeValue(timeValue: string, isDateRange?: boolean): {
hour: number;
minute: number;
second: number;
};
getEndTimeValue(timeValue: string): {
hour: number;
minute: number;
second: number;
};
convertDateToDateObject(date: Date): DateObject;
}
export interface UseNumber {
getDayNumber: (date: DateObject) => number;
getNumberByValue: (df: DateFormatInfo) => number;
getMonthNumberByMonthName: (df: DateFormatInfo, monthLabels: NameOfMonths) => number;
getWeekNumber: (date: DateObject) => number;
}
export interface UseNormalizeDate {
normalizeDate: (dateString: string, useValueFormat: boolean) => DateObject;
normalizeDateRange: (dateRangeString: string) => Period;
setNewDateRange: (period: Period, newDate: DateObject) => DataRangePicked;
getActiveMonth: (dateValue: string) => {
dateRange: Period;
beginDateActiveMonth?: any;
endDateActiveMonth?: any;
beginTime?: any;
endTime?: any;
selectedWeekInfo?: any;
};
getTimeStr: (date: Date) => string;
getMonthAndYear: () => {
startMonth: {
month: number;
year: number;
};
endMonth: {
month: number;
year: number;
};
};
}
export interface UseCompare {
isDateEarlier: (firstDate: DateObject, secondDate: DateObject) => boolean;
equal: (firstDate: DateObject, secondDate: DateObject) => boolean;
inPeriod: (date: DateObject, period: Period | null) => boolean;
isPoint: (period: Period, date: DateObject) => boolean;
equalOrEarlier: (firstDate: DateObject, secondDate: DateObject) => boolean;
isInitializedDate: (date: DateObject) => boolean;
isInitializedMonth: (date: DateObject) => boolean;
isInitializedYear: (date: DateObject) => boolean;
isMonthDisabledByDisableSince: (date: DateObject, disableSince: DateObject) => boolean;
isMonthDisabledByDisableUntil: (date: DateObject, disableUntil: DateObject) => boolean;
}
export interface UseMonth {
parseDefaultMonth: (monthString: string) => ActiveMonth;
daysInMonth: (month: number, year: number) => number;
daysInPreMonth: (month: number, year: number) => number;
generateMonths: (nameOfMonths: string[], selectedMonth: DateObject, disableSince: DateObject, disableUntil: DateObject) => MonthViewItem[][];
getNextMonth: (month: number, year: number) => DateObject;
getPreviousMonth: (month: number, year: number) => DateObject;
}
export interface UseMark {
isMarkedDate: (date: DateObject, markedDates: MarkedDates[], markWeekends: MarkStatus) => MarkStatus;
isHighlightedDate: (date: DateObject, sunHighlight: boolean, satHighlight: boolean, highlightDates: DateObject[]) => boolean;
}
export interface UseWeek {
getNowWeekTime: (date: Date, firstDayOfWeek: FirstDayOfTheWeek) => Period;
}
export interface UseDisableTime {
disabledHours: (min: DateObject, max: DateObject, currentDate: DateObject) => number[];
disabledMinutes: (min: DateObject, max: DateObject, currentDate: DateObject) => number[];
disabledSeconds: (min: DateObject, max: DateObject, _hour: number, _minute: number, currentDate: DateObject) => number[];
}
export interface UseDateModel {
getDateModel: (date: DateObject, period: Period, dateFormat: string, nameOfMonths: NameOfMonths, rangeDelimiter: string, returnFormat: string, dateStr: string) => DateModel;
getFormattedDate: (model: DateModel) => string | undefined;
}
export interface UseDisableDate {
isDisabledDate: (date: DateObject) => boolean;
}
export interface UseEvent {
getKeyCodeFromEvent: (event: KeyboardEvent) => number;
}
export interface UseDisableMonth {
isMonthDisabledByDisableUntil: (date: DateObject, disableUntil: DateObject) => boolean;
isMonthDisabledByDisableSince: (date: DateObject, disableSince: DateObject) => boolean;
}
export interface UseYear {
generateYears: (input: number, selectedMonth: DateObject, min: number, max: number, disableSince: DateObject, disableUntil: DateObject) => YearViewItem[][];
}
export interface UseCalendar {
generateCalendar: (month: number, year: number, firstDayOfWeek: string, markedDates: MarkedDates[], markWeekends: MarkStatus, highlightDates: DateObject[], highlightSaturday: boolean, highlightSunday: boolean, showWeekNumber: boolean) => CalendarWeekItem[];
}