UNPKG

react-application-core

Version:

A react-based application core for the business applications.

723 lines (722 loc) 22.1 kB
import * as moment from 'moment'; import 'moment-timezone'; import { IKeyValue } from '../../definitions.interface'; import { IDateConverter } from './date-converter.interface'; import { DateTimeLikeTypeT, ICalendarConfigEntity, ICalendarEntity, ICalendarWeekEntity, IDateTimeConfigEntity, IDateTimeIndexConfigEntity, IDayOfYearEntity, IFromToDayOfYearEntity, IMinMaxDatesRangeConfigEntity, IPersonAgeConfigEntity, IWeekConfigEntity } from '../../definition'; /** * @stable [14.01.2021] */ declare type MomentT = moment.Moment; declare type DateTimeConfigEntityT = IDateTimeConfigEntity<MomentT>; export declare class DateConverter implements IDateConverter<MomentT> { /** * @stable [27.12.2020] * @private */ private static readonly DEFAULT_CALENDAR_WEEK_ENTITIES; /** * @stable [14.01.2020] * @private */ private static readonly ISO_CALENDAR_WEEK_ENTITIES; private readonly environment; private readonly settings; private readonly appOnlineStartingDate; /** * @stable [22.01.2020] */ constructor(); /** * @stable [15.01.2021] */ get currentDate(): Date; /** * @stable [23.09.2020] */ get uiDateFormat(): string; /** * @stable [14.01.2021] */ get weekdays(): string[]; /** * @stable [10.08.2021] */ get weekdaysShort(): string[]; /** * @stable [14.01.2021] */ get weekdaysShortest(): string[]; /** * @stable [22.01.2020] * @returns {number} */ get appOnlineLifeTimeInSeconds(): number; /** * @stable [22.01.2020] * @returns {number} */ get appOnlineLifeTimeInHours(): number; /** * @stable [20.10.2020] * @param date1 * @param date2 */ compare(date1: DateTimeLikeTypeT, date2: DateTimeLikeTypeT): number; /** * @stable [20.10.2020] * @param date1 * @param date2 */ equal(date1: DateTimeLikeTypeT, date2: DateTimeLikeTypeT): boolean; /** * @deprecated */ format(date: DateTimeLikeTypeT, inputFormat: string, outputFormat: string): string; /** * @stable [26.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [03.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asStartUnitOf(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {IDayOfYearEntity} */ asDayOfYearEntity(cfg?: IDateTimeConfigEntity<MomentT>): IDayOfYearEntity; /** * @stable [03.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asEndUnitOf(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asFirstDayOfWeek(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [03.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asFirstDayOfMonth(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asFirstDayOfQuarter(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asFirstDayOfYear(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asFirstDayOfWeekAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [06.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asFirstDayOfMonthAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asFirstDayOfQuarterAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [21.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asFirstDayOfYearAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [03.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asLastDayOfQuarter(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asLastDayOfQuarterAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [03.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asLastDayOfMonth(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asLastDayOfMonthAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asLastDayOfWeek(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asLastDayOfWeekAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [08.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asLastDayOfYear(cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [08.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asLastDayOfYearAsDate(cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addDuration(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [06.01.2020] * @tested * @param {IDateTimeConfigEntity} cfg * @returns {number} */ asAbsoluteDayOfYear(cfg?: IDateTimeConfigEntity<MomentT>): number; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {moment.Moment} */ addDays(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [08.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addDaysAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [03.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addMonths(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [06.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addMonthsAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [06.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addQuartersAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addQuarters(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [08.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addYears(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [08.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addYearsAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addWeeks(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addWeeksAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ addDaysToUiDate(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [02.01.2019] * @tested * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ addDaysToUiDateAsDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [05.11.2020] * @param cfg */ asDaysOfMonth(cfg: IDateTimeConfigEntity<MomentT>): MomentT[]; /** * @stable [05.11.2020] * @param cfg */ asDaysOfMonthAsDates(cfg: IDateTimeConfigEntity<MomentT>): Date[]; /** * @stable [23.01.2021] * @param cfg */ fromDateTimeToDateString(cfg: DateTimeConfigEntityT): string; /** * @stable [23.01.2021] * @param cfg */ fromDateTimeToPstTimeString(cfg: DateTimeConfigEntityT): string; /** * @deprecated */ fromDateTimeToArbitraryFormat(date: DateTimeLikeTypeT, outputFormat: string): string; /** * @stable [09.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsPstDateString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [09.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsPstTimeString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @deprecated */ fromDateTimeToDate(date: DateTimeLikeTypeT): string; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsDateTimeString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [05.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsDateString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [26.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ dateAsUiDateString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [07.12.2020] * @param cfg */ fromDateTimeToUiDateTimeString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [09.11.2018] * @param {DateTimeLikeTypeT} date [Example: 2018-04-07T20:54:45+03:00] * @returns {string} [Example: 20:54:45] */ fromDateTimeToTime(date: DateTimeLikeTypeT): string; /** * @deptecated */ fromDateTimeToDateTime(date: DateTimeLikeTypeT): string; /** * @stable [21.12.2020] * @param cfg */ fromUiDateTimeToDateTimeString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [03.05.2020] * @param {IDateTimeConfigEntity} cfg * @returns {number} */ asWeekdayNumber(cfg?: IDateTimeConfigEntity<MomentT>): number; /** * @stable [14.01.2020] * @param cfg */ isoWeekDayAsOrdinaryDay(cfg: IDateTimeIndexConfigEntity): number; /** * @stable [15.01.2020] * @param date1 * @param date2 */ isFuture(date1: DateTimeLikeTypeT, date2?: DateTimeLikeTypeT): boolean; /** * @stable [15.01.2021] * @param date1 * @param date2 */ isPast(date1: DateTimeLikeTypeT, date2?: DateTimeLikeTypeT): boolean; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ fromUiDateToDateTimeString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [09.11.2018] * @param {TEntity} entity * @param {string} dateFieldName * @param {string} timeFieldName * @param {(entity: TEntity) => string} dateResolver * @returns {IKeyValue} */ splitToDateTimeFields<TEntity>(entity: TEntity, dateFieldName: string, timeFieldName: string, dateResolver: (entity: TEntity) => string): IKeyValue; /** * @deprecated */ tryAddXDurationAsMomentDate(unit: moment.DurationInputArg2, duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): moment.Moment; /** * @stable [07.01.2019] * @param {moment.DurationInputArg2} unit * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryAddXDuration(unit: moment.DurationInputArg2, duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [07.01.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryAddXDays(duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [15.01.2021] * @param date */ asDayOfYear(date?: Date): Date; /** * @stable [07.01.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryAddXMonths(duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [10.02.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryAddXQuarters(duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [10.02.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryAddXYears(duration: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [09.02.2019] * @param {moment.DurationInputArg2} unit * @param {moment.unitOfTime.StartOf} startOf * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {moment.Moment} */ tryGetFirstDayOfXAsMomentDate(unit: moment.DurationInputArg2, startOf: moment.unitOfTime.StartOf, duration?: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): moment.Moment; /** * @stable [09.02.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {moment.Moment} */ tryGetFirstDayOfWeekAsMomentDate(duration?: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): moment.Moment; /** * @stable [09.02.2019] * @param {moment.DurationInputArg1} duration * @param {DateTimeLikeTypeT} date * @param {string | undefined} inputFormat * @returns {Date} */ tryGetFirstDayOfWeek(duration?: moment.DurationInputArg1, date?: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @stable [08.08.2019] * @param {DateTimeLikeTypeT} date * @param {string} inputFormat * @returns {boolean} */ isDateBelongsToCurrentWeek(date: DateTimeLikeTypeT, inputFormat?: string): boolean; /** * @stable [26.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ fromDateToUiDateString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [26.03.2020] * @param {IDateTimeConfigEntity} cfg * @returns {string} */ fromDateTimeToUiDateString(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [08.01.2020] * @param {IDayOfYearEntity} entity * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ fromDayOfYearEntity(entity: IDayOfYearEntity, cfg?: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [08.01.2020] * @param {IDayOfYearEntity} entity * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ fromDayOfYearEntityAsDate(entity: IDayOfYearEntity, cfg?: IDateTimeConfigEntity<MomentT>): Date; /** * @deprecated */ get30DaysAgo(): Date; /** * @deprecated */ getXDaysAgo(days: number): Date; /** * @stable [25.12.2019] * @tested * @returns {Date} */ getCurrentDate(): Date; /** * @stable [26.03.2020] * @returns {string} */ currentDateAsUiDateString(cfg?: IDateTimeConfigEntity<MomentT>): string; /** * @stable [14.01.2020] * @param cfg */ getWeekdays(cfg?: IWeekConfigEntity): string[]; /** * @stable [14.01.2020] * @param cfg */ getWeekdaysShort(cfg?: IWeekConfigEntity): string[]; /** * @stable [14.01.2020] * @param cfg */ getWeekdaysShortest(cfg?: IWeekConfigEntity): string[]; /** * @stable [27.12.2020] * @param cfg */ getCalendarWeekEntity(cfg?: IDateTimeConfigEntity<MomentT>): ICalendarWeekEntity; /** * @stable [28.12.2020] * @param cfg */ asCronDay(cfg?: IDateTimeConfigEntity<MomentT>): number; /** * @stable [14.01.2021] * @param cfg */ getWeekday(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [14.01.2021] * @param cfg */ getWeekdayShort(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [14.01.2021] * @param cfg */ getWeekdayShortest(cfg: IDateTimeConfigEntity<MomentT>): string; /** * @stable [22.01.2020] * @param {IPersonAgeConfigEntity} cfg * @returns {number} */ asPersonAge(cfg: IPersonAgeConfigEntity<MomentT>): number; /** * @stable [03.04.2019] * @param {DateTimeLikeTypeT} date * @param {string} inputFormat * @returns {Date} */ toDate(date: DateTimeLikeTypeT, inputFormat?: string): Date; /** * @deprecated Use asMomentDate */ toMomentDate(date: DateTimeLikeTypeT, inputFormat?: string, strict?: boolean): moment.Moment; /** * @stable [02.01.2019] * @param {IDateTimeConfigEntity} cfg * @returns {MomentT} */ asMomentDate(cfg: IDateTimeConfigEntity<MomentT>): MomentT; /** * @stable [07.01.2020] * @param {IDateTimeConfigEntity} cfg * @returns {Date} */ asDate(cfg: IDateTimeConfigEntity<MomentT>): Date; /** * @stable [07.01.2020] * @tested * @param {IDayOfYearEntity} o1 * @param {IDayOfYearEntity} o2 * @returns {number} */ compareDayOfYearEntity(o1: IDayOfYearEntity, o2: IDayOfYearEntity): number; /** * @stable [07.01.2020] * @tested * @param {IFromToDayOfYearEntity} range * @param {IDayOfYearEntity} entity * @returns {IFromToDayOfYearEntity} */ selectDaysOfYearRange(range: IFromToDayOfYearEntity, entity: IDayOfYearEntity): IFromToDayOfYearEntity; /** * @stable [08.01.2020] * @param {IMinMaxDatesRangeConfigEntity} cfg * @returns {boolean} */ isDateBelongToDatesRange(cfg: IMinMaxDatesRangeConfigEntity): boolean; /** * @stable [07.01.2020] * @tested * @param {IFromToDayOfYearEntity} range * @param {IDayOfYearEntity} entity * @returns {boolean} */ isDayOfYearBelongToDaysOfYearRange(range: IFromToDayOfYearEntity, entity: IDayOfYearEntity): boolean; /** * @stable [07.03.2020] * @param {IDayOfYearEntity} entity1 * @param {IDayOfYearEntity} entity2 * @returns {boolean} */ isDayOfYearEqualOtherDayOfYear(entity1: IDayOfYearEntity, entity2: IDayOfYearEntity): boolean; /** * @stable [28.09.2020] * @param cfg */ isDateValid(cfg?: ICalendarConfigEntity): boolean; /** * @stable [03.01.2020] * @param {IDateTimeConfigEntity} $cfg * @returns {ICalendarEntity} */ asCalendar($cfg?: ICalendarConfigEntity): ICalendarEntity; /** * @stable [28.12.2020] * @param cfg */ asCalendarWeekEntity(cfg?: ICalendarConfigEntity<MomentT>): ICalendarEntity; /** * @stable [21.12.2020] * @param cfg * @param handler * @private */ private processValidMomentDate; /** * @deprecated */ private getCurrentMomentDate; /** * @stable [07.12.2020] * @param uiDateFormat * @param uiTimeFormat * @private */ private concatUiDateTime; /** * @stable [14.01.2020] * @param cfg * @private */ private getWeekLocale; /** * @stable [11.08.2018] * @returns {string} */ private get timeZone(); private get dateTimeFormat(); /** * @stable [24.09.2020] */ private get dateFormat(); private get timeFormat(); /** * @stable [25.12.2019] * @returns {string} */ private get uiTimeFormat(); /** * @stable [25.12.2019] * @returns {string} */ private get uiDefaultTime(); /** * @stable [02.01.2019] * @returns {string} */ private get pstTimeFormat(); /** * @stable [03.05.2020] * @returns {string} */ private get weekUnit(); /** * https://en.wikipedia.org/wiki/ISO_week_date * Weeks start with Monday. * * @stable [28.12.2020] * @private */ private get isIsoWeek(); /** * @stable [14.01.2020] * @private */ private get locale(); private get pstDateFormat(); /** * @stable [03.05.2020] * @returns {IDateTimeSettings} */ private get dateTimeSettings(); } export {};