react-application-core
Version:
A react-based application core for the business applications.
723 lines (722 loc) • 22.1 kB
TypeScript
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 {};