You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
673 lines
16 KiB
673 lines
16 KiB
2 years ago
|
declare module "react-date-object" {
|
||
|
export type DateType = Date | number | string | DateObject;
|
||
|
|
||
|
export type Calendar = {
|
||
|
name: string;
|
||
|
/**
|
||
|
* specifies what number the calendar year begins with.
|
||
|
* some calendars start with year 0
|
||
|
*/
|
||
|
startYear: number;
|
||
|
yearLength: number;
|
||
|
epoch: number;
|
||
|
century: number;
|
||
|
weekStartDayIndex: number;
|
||
|
/**
|
||
|
*
|
||
|
* @param isLeap
|
||
|
*
|
||
|
* return an array containing the number of days in each month.
|
||
|
*/
|
||
|
getMonthLengths(isLeap: boolean): number[];
|
||
|
isLeap(year: number): boolean;
|
||
|
/**
|
||
|
*
|
||
|
* @param currentYear
|
||
|
*
|
||
|
* returns all leap years including the current year
|
||
|
* (if the current year is a leap year).
|
||
|
*/
|
||
|
getLeaps(currentYear: number): number[] | [];
|
||
|
getDayOfYear(date: DateObject): number;
|
||
|
getAllDays(date: DateObject): number;
|
||
|
/**
|
||
|
*
|
||
|
* @param year
|
||
|
*
|
||
|
* Returns the number of leap years before the specified year.
|
||
|
*/
|
||
|
leapsLength?(year: number): number;
|
||
|
guessYear(days: number, currentYear: number): number;
|
||
|
};
|
||
|
|
||
|
export type Locale = {
|
||
|
name: string;
|
||
|
months: Array<string[]>;
|
||
|
weekDays: Array<string[]>;
|
||
|
digits: string[];
|
||
|
meridiems: Array<string[]>;
|
||
|
};
|
||
|
|
||
|
export type Month = {
|
||
|
name: string;
|
||
|
shortName: string;
|
||
|
number: number;
|
||
|
index: number;
|
||
|
/**
|
||
|
* specifies the number of days in this month.
|
||
|
*/
|
||
|
length: number;
|
||
|
valueOf(): number;
|
||
|
toString(): string;
|
||
|
};
|
||
|
|
||
|
export type WeekDay = Omit<Month, "length">;
|
||
|
|
||
|
export type Meridiem = {
|
||
|
name: string;
|
||
|
shortName: string;
|
||
|
};
|
||
|
|
||
|
export type ObjectType = {
|
||
|
year: number | undefined;
|
||
|
month: Month | undefined;
|
||
|
day: number | undefined;
|
||
|
weekDay: WeekDay | undefined;
|
||
|
hour: number | undefined;
|
||
|
minute: number | undefined;
|
||
|
second: number | undefined;
|
||
|
millisecond: number | undefined;
|
||
|
weekOfYear: number | undefined;
|
||
|
dayOfYear: number | undefined;
|
||
|
daysLeft: number | undefined;
|
||
|
calendar: Calendar;
|
||
|
locale: Locale;
|
||
|
format: string | undefined;
|
||
|
ignoreList: string[];
|
||
|
};
|
||
|
|
||
|
class DateObject {
|
||
|
constructor();
|
||
|
constructor(object: {
|
||
|
year: number;
|
||
|
month: number;
|
||
|
day: number;
|
||
|
hour?: number;
|
||
|
minute?: number;
|
||
|
second?: number;
|
||
|
millisecond?: number;
|
||
|
calendar?: Calendar;
|
||
|
locale?: Locale;
|
||
|
format?: string;
|
||
|
ignoreList?: string[];
|
||
|
});
|
||
|
constructor(object: {
|
||
|
date?: DateType;
|
||
|
calendar?: Calendar;
|
||
|
locale?: Locale;
|
||
|
format?: string;
|
||
|
ignoreList?: string[];
|
||
|
});
|
||
|
constructor(date: DateType);
|
||
|
|
||
|
/**
|
||
|
* Parse string from the given formatting token.
|
||
|
* Default formatting token: "YYYY MM DD hh mm ss SSS a".
|
||
|
*
|
||
|
* If you do not specify a formatting token, The default token is considered.
|
||
|
* @param date
|
||
|
* @example
|
||
|
* var date = new DateObject();
|
||
|
*
|
||
|
* date.setFormat("dddd DD MMMM YYYY");
|
||
|
* date.parse("Monday 24 August 2020");
|
||
|
*/
|
||
|
parse(date: string): this;
|
||
|
|
||
|
convert(calendar: Calendar | undefined, locale?: Locale): this;
|
||
|
/**
|
||
|
* Formatting current time from given token.
|
||
|
* Default token is "YYYY/MM/DD".
|
||
|
*
|
||
|
* If you do not specify a formatting token, The default token is considered.
|
||
|
* @param format
|
||
|
* @param ignoreList
|
||
|
* @example
|
||
|
* var date = new DateObject();
|
||
|
*
|
||
|
* date.format(); //2020/12/02
|
||
|
* date.format("MM/DD/YYYY"); //12/02/2020
|
||
|
*
|
||
|
* @example
|
||
|
* Ignoring `Date` & `Time`
|
||
|
*
|
||
|
* var date = new DateObject();
|
||
|
*
|
||
|
* date.format("Date:MM/DD/YYYY Time:HH:mm:ss", ["Date", "Time"]); //Date:12/02/2020 Time:11:03:12
|
||
|
*/
|
||
|
format(format?: string, ignoreList?: string[]): string;
|
||
|
getValue(key: string): number | string;
|
||
|
|
||
|
setYear(year: number): this;
|
||
|
/**
|
||
|
* Use this method if you want to specify the names of the months manually.
|
||
|
*
|
||
|
* @param months
|
||
|
* @example
|
||
|
*
|
||
|
* var Date = new DateObject()
|
||
|
*
|
||
|
* date.setMonths([
|
||
|
* ["jan", "j"],
|
||
|
* ["feb", "f"],
|
||
|
* ["mar", "m"],
|
||
|
* ["apr", "a"],
|
||
|
* ["may", "m"],
|
||
|
* ["jun", "j"],
|
||
|
* ["jul", "j"],
|
||
|
* ["aug", "a"],
|
||
|
* ["sep", "s"],
|
||
|
* ["oct", "o"],
|
||
|
* ["nov", "n"],
|
||
|
* ["dec", "d"],
|
||
|
* ])
|
||
|
*
|
||
|
* date.format("MMMM MMM") //dec d
|
||
|
*/
|
||
|
setMonths(months: Array<string[]>): this;
|
||
|
setMonth(month: number): this;
|
||
|
/**
|
||
|
* Use this method if you want to specify the names of week days manually.
|
||
|
*
|
||
|
* @param weekDays
|
||
|
* @example
|
||
|
*
|
||
|
* var Date = new DateObject()
|
||
|
*
|
||
|
* date.setWeekDays([
|
||
|
* ["su", "s"],
|
||
|
* ["mo", "m"],
|
||
|
* ["tu", "t"],
|
||
|
* ["we", "w"],
|
||
|
* ["th", "t"],
|
||
|
* ["fr", "f"],
|
||
|
* ["sa", "s"],
|
||
|
* ])
|
||
|
*
|
||
|
* date.format("dddd ddd") //su s
|
||
|
*/
|
||
|
setWeekDays(weekDays: Array<string[]>): this;
|
||
|
setDigits(digits: string[]): this;
|
||
|
/**
|
||
|
* @param dayOfMonth
|
||
|
*/
|
||
|
setDay(day: number): this;
|
||
|
setHour(hour: number): this;
|
||
|
setMinute(minute: number): this;
|
||
|
setSecond(second: number): this;
|
||
|
setMillisecond(millisecond: number): this;
|
||
|
/**
|
||
|
*
|
||
|
* @param formattingToken
|
||
|
* @example
|
||
|
* var date = new DateObject()
|
||
|
*
|
||
|
* date.setFormat("dddd MMMM YYYY")
|
||
|
*
|
||
|
* date.format() //Sunday December 2020
|
||
|
*/
|
||
|
setFormat(format?: string): this;
|
||
|
setLocale(locale: Locale): this;
|
||
|
setCalendar(calendar: Calendar | undefined): this;
|
||
|
setDate(date: DateType): this;
|
||
|
set(key: string, value: any): this;
|
||
|
|
||
|
set(obj: {
|
||
|
date?: DateType;
|
||
|
year?: number;
|
||
|
month?: number;
|
||
|
months?: Array<string[]>;
|
||
|
weekDays?: Array<string[]>;
|
||
|
day?: number;
|
||
|
hour?: number;
|
||
|
minute?: number;
|
||
|
second?: number;
|
||
|
millisecond?: number;
|
||
|
calendar?: Calendar;
|
||
|
locale?: Locale;
|
||
|
format?: string;
|
||
|
ignoreList?: string[];
|
||
|
digits?: string[];
|
||
|
}): this;
|
||
|
/**
|
||
|
* Availbe Types:
|
||
|
* - `years` `year` `y`
|
||
|
* - `months` `month` `M`
|
||
|
* - `days` `day` `d`
|
||
|
* - `hours` `hour` `h`
|
||
|
* - `minutes` `minute` `m`
|
||
|
* - `seconds` `second` `s`
|
||
|
* - `milliseconds` `millisecond` `ms`
|
||
|
*
|
||
|
* @param duration
|
||
|
* @param type
|
||
|
* @example
|
||
|
*
|
||
|
* var tomorrow = new DateObject().add(1, "day")
|
||
|
*/
|
||
|
add(duration: number | string, type: string): this;
|
||
|
/**
|
||
|
* Availbe Types:
|
||
|
* - `years` `year` `y`
|
||
|
* - `months` `month` `M`
|
||
|
* - `days` `day` `d`
|
||
|
* - `hours` `hour` `h`
|
||
|
* - `minutes` `minute` `m`
|
||
|
* - `seconds` `second` `s`
|
||
|
* - `milliseconds` `millisecond` `ms`
|
||
|
*
|
||
|
* @param duration
|
||
|
* @param type
|
||
|
* @example
|
||
|
*
|
||
|
* var yesterday = new DateObject().subtract(1, "day")
|
||
|
*/
|
||
|
subtract(duration: number | string, type: string): this;
|
||
|
|
||
|
toFirstOfYear(): this;
|
||
|
toLastOfYear(): this;
|
||
|
toFirstOfMonth(): this;
|
||
|
toLastOfMonth(): this;
|
||
|
toFirstOfWeek(): this;
|
||
|
toLastOfWeek(): this;
|
||
|
toFirstWeekOfYear(): this;
|
||
|
toLastWeekOfYear(): this;
|
||
|
|
||
|
toString(): string;
|
||
|
/**
|
||
|
* convert current calendar to JavaScript Date
|
||
|
*/
|
||
|
toDate(): Date;
|
||
|
/**
|
||
|
* convert current calendar to UTC
|
||
|
*/
|
||
|
toUTC(): this;
|
||
|
/**
|
||
|
* Unix time in seconds
|
||
|
*/
|
||
|
toUnix(): number;
|
||
|
toJulianDay(): number;
|
||
|
toObject(): ObjectType;
|
||
|
toJSON(): number;
|
||
|
/**
|
||
|
* Unix time in milliseconds
|
||
|
*/
|
||
|
valueOf(): number;
|
||
|
|
||
|
/**
|
||
|
* Count number of days passed from 1/1/1 (0/1/1 in indian calendar)
|
||
|
*/
|
||
|
toDays(): number;
|
||
|
/**
|
||
|
* Count number of days passed from current year
|
||
|
*/
|
||
|
dayOfYear: number;
|
||
|
/**
|
||
|
* Count number of weeks passed from current year
|
||
|
*/
|
||
|
weekOfYear: number;
|
||
|
/**
|
||
|
* Number of days remaining from current year
|
||
|
*/
|
||
|
daysLeft: number;
|
||
|
/**
|
||
|
* @get current year
|
||
|
* @set year
|
||
|
*/
|
||
|
year: number;
|
||
|
/**
|
||
|
* @get object (Month of year in current locale)
|
||
|
* @example { name: "January", shortName: "Jan", index: 0, number: 1 }
|
||
|
* @set number 1-12
|
||
|
*/
|
||
|
get month(): Month;
|
||
|
// set month(month: number);
|
||
|
get monthIndex(): number;
|
||
|
/**
|
||
|
* Day of month
|
||
|
* @get number
|
||
|
* @set number
|
||
|
*/
|
||
|
day: number;
|
||
|
/**
|
||
|
* Day of week in current locale
|
||
|
* @get object
|
||
|
* @example { name: "Sunday", shortName: "Sun", index: 0, number: 1 }
|
||
|
*/
|
||
|
get weekDay(): WeekDay;
|
||
|
/**
|
||
|
* @get current hour
|
||
|
* @set hour
|
||
|
*/
|
||
|
hour: number;
|
||
|
/**
|
||
|
* @get current minute
|
||
|
* @set minute
|
||
|
*/
|
||
|
minute: number;
|
||
|
/**
|
||
|
* @get current second
|
||
|
* @set second
|
||
|
*/
|
||
|
second: number;
|
||
|
/**
|
||
|
* @get current millisecond
|
||
|
* @set millisecond
|
||
|
*/
|
||
|
millisecond: number;
|
||
|
/**
|
||
|
* @get Array of months in current locale
|
||
|
* @example [{ name: "January", shortName: "Jan", index: 0, number: 1 }, ...]
|
||
|
* @set custom months
|
||
|
* @example [["name1" , "shortName1"], ["name2" , "shortName2"] ...]
|
||
|
* @example
|
||
|
*
|
||
|
* var Date = new DateObject()
|
||
|
*
|
||
|
* date.months = [
|
||
|
* ["jan", "j"],
|
||
|
* ["feb", "f"],
|
||
|
* ["mar", "m"],
|
||
|
* ["apr", "a"],
|
||
|
* ["may", "m"],
|
||
|
* ["jun", "j"],
|
||
|
* ["jul", "j"],
|
||
|
* ["aug", "a"],
|
||
|
* ["sep", "s"],
|
||
|
* ["oct", "o"],
|
||
|
* ["nov", "n"],
|
||
|
* ["dec", "d"],
|
||
|
* ]
|
||
|
*
|
||
|
* date.format("MMMM MMM") //dec d
|
||
|
*/
|
||
|
get months(): Month[];
|
||
|
// set months(months: string[]);
|
||
|
/**
|
||
|
* @get Array of week days in current locale
|
||
|
* @example [{ name: "Sunday", shortName: "Sun", index: 0, number: 1 }, ...]
|
||
|
* @set custom week days
|
||
|
* @example [["name1" , "shortName1"], ["name2" , "shortName2"] ...]
|
||
|
* @example
|
||
|
*
|
||
|
* var Date = new DateObject()
|
||
|
*
|
||
|
* date.setWeekDays([
|
||
|
* ["su", "s"],
|
||
|
* ["mo", "m"],
|
||
|
* ["tu", "t"],
|
||
|
* ["we", "w"],
|
||
|
* ["th", "t"],
|
||
|
* ["fr", "f"],
|
||
|
* ["sa", "s"],
|
||
|
* ])
|
||
|
*
|
||
|
* date.format("dddd ddd") //su s
|
||
|
*/
|
||
|
get weekDays(): WeekDay[];
|
||
|
// set weekDays(weekDays: string[]);
|
||
|
/**
|
||
|
* Array of leap years until now
|
||
|
*
|
||
|
* @example
|
||
|
*
|
||
|
* var date = new DateObject()
|
||
|
*
|
||
|
* date.leaps //[4, 8, 12, 16, 20, ...]
|
||
|
*/
|
||
|
leaps: number[];
|
||
|
|
||
|
get calendar(): Calendar;
|
||
|
set calendar(calendar: Calendar);
|
||
|
|
||
|
get locale(): Locale;
|
||
|
set locale(locale: Locale);
|
||
|
/**
|
||
|
* @get meridiems in current locale
|
||
|
* @example
|
||
|
*
|
||
|
* var date = new DateObject()
|
||
|
*
|
||
|
* date.meridiems //[{ name: "AM", shortName: "am" }, { name: "PM", shortName: "pm" }]
|
||
|
*/
|
||
|
get meridiems(): Meridiem[];
|
||
|
/**
|
||
|
* Array of locale numbers from 0 to 9
|
||
|
*/
|
||
|
digits: string[];
|
||
|
/**
|
||
|
* @get current formatting token
|
||
|
* @set formatting token
|
||
|
* @default "YYYY/MM/DD"
|
||
|
*
|
||
|
* var date = new DateObject()
|
||
|
*
|
||
|
* date._format = "dddd MMMM YYYY"
|
||
|
*
|
||
|
* date.format() //Sunday December 2020
|
||
|
*/
|
||
|
_format: string;
|
||
|
/**
|
||
|
* @get true if current year is leap
|
||
|
*/
|
||
|
isLeap: boolean;
|
||
|
/**
|
||
|
* @get true if the year, month and day are correct
|
||
|
*/
|
||
|
isValid: boolean;
|
||
|
isUTC: boolean;
|
||
|
/**
|
||
|
* @get Unix time in seconds
|
||
|
*/
|
||
|
unix: number;
|
||
|
/**
|
||
|
* formatting ignore list
|
||
|
*
|
||
|
* @example
|
||
|
* var date = new DateObject()
|
||
|
*
|
||
|
* date._format = "Date:MM/DD/YYYY"
|
||
|
* date.ignoreList = ["Date"]
|
||
|
*
|
||
|
* date.format() //Date:12/04/2020
|
||
|
*
|
||
|
* @example
|
||
|
* var date = new DateObject({
|
||
|
* format: "Date:MM/DD/YYYY",
|
||
|
* ignoreList: ["Date"]
|
||
|
* })
|
||
|
*
|
||
|
* date.format() //Date:12/04/2020
|
||
|
* date.format("time:hh:mm a", ["time"]) //time:06:50 pm
|
||
|
*/
|
||
|
ignoreList: string[];
|
||
|
custom: {
|
||
|
digits: string[] | undefined;
|
||
|
months: string[] | undefined;
|
||
|
weekDays: string[] | undefined;
|
||
|
};
|
||
|
set date(date: DateType);
|
||
|
weekStartDayIndex: number;
|
||
|
}
|
||
|
|
||
|
export default DateObject;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/calendars/gregorian" {
|
||
|
import type { Calendar } from "react-date-object";
|
||
|
|
||
|
const gregorian: Calendar;
|
||
|
|
||
|
export default gregorian;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/calendars/persian" {
|
||
|
import type { Calendar } from "react-date-object";
|
||
|
|
||
|
const persian: Omit<Calendar, "leapsLength">;
|
||
|
|
||
|
export default persian;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/calendars/jalali" {
|
||
|
import type { Calendar } from "react-date-object";
|
||
|
|
||
|
const jalali: Calendar;
|
||
|
|
||
|
export default jalali;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/calendars/arabic" {
|
||
|
import type { Calendar } from "react-date-object";
|
||
|
|
||
|
const arabic: Calendar;
|
||
|
|
||
|
export default arabic;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/calendars/indian" {
|
||
|
import type { Calendar } from "react-date-object";
|
||
|
|
||
|
const indian: Calendar;
|
||
|
|
||
|
export default indian;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/gregorian_en" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const gregorian_en: Locale;
|
||
|
|
||
|
export default gregorian_en;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/gregorian_fa" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const gregorian_fa: Locale;
|
||
|
|
||
|
export default gregorian_fa;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/gregorian_ar" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const gregorian_ar: Locale;
|
||
|
|
||
|
export default gregorian_ar;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/gregorian_hi" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const gregorian_hi: Locale;
|
||
|
|
||
|
export default gregorian_hi;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/persian_en" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const persian_en: Locale;
|
||
|
|
||
|
export default persian_en;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/persian_fa" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const persian_fa: Locale;
|
||
|
|
||
|
export default persian_fa;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/persian_ar" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const persian_ar: Locale;
|
||
|
|
||
|
export default persian_ar;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/persian_hi" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const persian_hi: Locale;
|
||
|
|
||
|
export default persian_hi;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/arabic_en" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const arabic_en: Locale;
|
||
|
|
||
|
export default arabic_en;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/arabic_fa" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const arabic_fa: Locale;
|
||
|
|
||
|
export default arabic_fa;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/arabic_ar" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const arabic_ar: Locale;
|
||
|
|
||
|
export default arabic_ar;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/arabic_hi" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const arabic_hi: Locale;
|
||
|
|
||
|
export default arabic_hi;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/indian_en" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const indian_en: Locale;
|
||
|
|
||
|
export default indian_en;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/indian_fa" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const indian_fa: Locale;
|
||
|
|
||
|
export default indian_fa;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/indian_ar" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const indian_ar: Locale;
|
||
|
|
||
|
export default indian_ar;
|
||
|
}
|
||
|
|
||
|
declare module "react-date-object/locales/indian_hi" {
|
||
|
import type { Locale } from "react-date-object";
|
||
|
|
||
|
const indian_hi: Locale;
|
||
|
|
||
|
export default indian_hi;
|
||
|
}
|