UNPKG

@phensley/cldr-core

Version:
107 lines (106 loc) 5.04 kB
import { CalendarSchema, TimeZoneSchema, Vector2Arrow } from '@phensley/cldr-schema'; import { Bundle, WrapperInternals } from '../..'; import { Internals } from '../internals'; import { CalendarDate } from '../../systems/calendars'; import { NumberingSystem } from '../../systems/numbering'; import { DateTimeNode } from '../../parsing/patterns/date'; import { Renderer } from '../../utils/render'; /** * All context needed for a single format operation. */ export interface CalendarContext<T extends CalendarDate> { /** * Calendar-specific date */ date: T; /** * Resource bundle for accessing strings */ bundle: Bundle; /** * Numbering system for formatting decimal numbers into strings */ system: NumberingSystem; /** * Latin decimal digit numbering system. */ latnSystem: NumberingSystem; } export declare class CalendarFormatter<T extends CalendarDate> { readonly internals: Internals; readonly cal: CalendarSchema; readonly wrapper: WrapperInternals; readonly tz: TimeZoneSchema; constructor(internals: Internals, cal: CalendarSchema); format<R>(rnd: Renderer<R>, ctx: CalendarContext<T>, nodes: DateTimeNode[]): void; /** * Format a number using the main numbering system, with the given minimum integers. */ _num(ctx: CalendarContext<T>, n: number, minInt: number): string; era(ctx: CalendarContext<T>, width: number): string; year(ctx: CalendarContext<T>, width: number): string; yearOfWeekYear(ctx: CalendarContext<T>, width: number): string; extendedYear(ctx: CalendarContext<T>, width: number): string; /** * Cyclic year. */ cyclicYear(ctx: CalendarContext<T>, width: number): string; /** * Related Gregorian year. */ relatedYear(ctx: CalendarContext<T>, width: number): string; _year(ctx: CalendarContext<T>, year: number, width: number): string; _formatQuarterOrMonth(ctx: CalendarContext<T>, format: Vector2Arrow<string, string>, value: number, width: number): string; quarter(ctx: CalendarContext<T>, node: [string, number]): string; month(ctx: CalendarContext<T>, node: [string, number]): string; weekOfWeekYear(ctx: CalendarContext<T>, node: [string, number]): string; weekOfMonth(ctx: CalendarContext<T>, node: [string, number]): string; dayOfMonth(ctx: CalendarContext<T>, node: [string, number]): string; dayOfYear(ctx: CalendarContext<T>, node: [string, number]): string; dayOfWeekInMonth(ctx: CalendarContext<T>, node: [string, number]): string; modifiedJulianDay(ctx: CalendarContext<T>, node: [string, number]): string; weekday(ctx: CalendarContext<T>, node: [string, number]): string; weekdayLocal(ctx: CalendarContext<T>, node: [string, number]): string; weekdayLocalStandalone(ctx: CalendarContext<T>, node: [string, number]): string; _weekday(bundle: Bundle, format: Vector2Arrow<string, string>, date: CalendarDate, width: number): string; _weekdayLocal(ctx: CalendarContext<T>, node: [string, number], standAlone: boolean): string; dayPeriod(ctx: CalendarContext<T>, node: [string, number]): string; dayPeriodExt(ctx: CalendarContext<T>, node: [string, number]): string; dayPeriodFlex(ctx: CalendarContext<T>, node: [string, number]): string; hour(ctx: CalendarContext<T>, node: [string, number]): string; hourAlt(ctx: CalendarContext<T>, node: [string, number]): string; minute(ctx: CalendarContext<T>, node: [string, number]): string; second(ctx: CalendarContext<T>, node: [string, number]): string; fractionalSecond(ctx: CalendarContext<T>, node: [string, number]): string; millisInDay(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: short/long specific non-location format. * https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone */ timezone_z(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: ISO8601 basic/extended format, long localized GMT format. * https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone */ timezone_Z(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: short/long localized GMT format. */ timezone_O(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: short/long generic non-location format. */ timezone_v(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: short/long zone ID, exemplar city, generic location format. * https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone */ timezone_V(ctx: CalendarContext<T>, node: [string, number]): string; /** * Timezone: ISO8601 basic format * https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone */ timezone_x(ctx: CalendarContext<T>, node: [string, number]): string; _wrapGMT(ctx: CalendarContext<T>, short: boolean): string; _hourPattern(bundle: Bundle, negative: boolean): DateTimeNode[]; }