UNPKG

messageformat-number-skeleton

Version:

A parser & formatter for ICU NumberFormat skeleton strings & patterns

68 lines (67 loc) 2.56 kB
import { Unit } from './unit.js'; /** * An object representation of a parsed string skeleton, with token values * grouped by type. * * @public */ export interface Skeleton { /** * @remarks * The prefix and suffix of an ICU NumberFormatter pattern. Not used for skeletons. */ affix?: { pos: [string, string]; neg?: [string, string]; }; decimal?: 'decimal-auto' | 'decimal-always'; group?: 'group-off' | 'group-min2' | 'group-auto' | 'group-on-aligned' | 'group-thousands'; integerWidth?: { min: number; max?: number; source?: string; }; notation?: { style: 'compact-short' | 'compact-long' | 'notation-simple'; } | { style: 'scientific' | 'engineering'; expDigits?: number; expSign?: Skeleton['sign']; source?: string; }; /** * @remarks * List collected from * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat | MDN documentation} */ numberingSystem?: 'arab' | 'arabext' | 'bali' | 'beng' | 'deva' | 'fullwide' | 'gujr' | 'guru' | 'hanidec' | 'khmr' | 'knda' | 'laoo' | 'latn' | 'limb' | 'mlym' | 'mong' | 'mymr' | 'orya' | 'tamldec' | 'telu' | 'thai' | 'tibt'; precision?: { style: 'precision-integer' | 'precision-unlimited' | 'precision-currency-standard' | 'precision-currency-cash'; } | { style: 'precision-increment'; increment: number; } | { style: 'precision-fraction'; minFraction?: number; maxFraction?: number; minSignificant?: number; maxSignificant?: number; source?: string; }; roundingMode?: 'rounding-mode-ceiling' | 'rounding-mode-floor' | 'rounding-mode-down' | 'rounding-mode-up' | 'rounding-mode-half-even' | 'rounding-mode-half-down' | 'rounding-mode-half-up' | 'rounding-mode-unnecessary'; scale?: number; sign?: 'sign-auto' | 'sign-always' | 'sign-never' | 'sign-accounting' | 'sign-accounting-always' | 'sign-except-zero' | 'sign-accounting-except-zero'; unit?: { style: 'percent' | 'permille' | 'base-unit'; } | { style: 'currency'; currency: string; } | { style: 'measure-unit'; unit: Unit; }; unitPer?: Unit; unitWidth?: 'unit-width-narrow' | 'unit-width-short' | 'unit-width-full-name' | 'unit-width-iso-code' | 'unit-width-hidden'; } /** @internal */ export declare function isNumberingSystem(ns: string): ns is string & Skeleton['numberingSystem'];