UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

32 lines (31 loc) 1.42 kB
import type { NumberFormatOptionParams, NumberFormatReturnValue, NumberFormatValue } from './NumberUtils'; import type { NumberFormatter } from './useNumberFormat'; export type NumberFormatParts = { sign: string | null; signedNumber: string; number: string; currency: string | null; currencyPosition: 'before' | 'after' | null; spaceAfterCurrency: boolean; spaceBeforeCurrency: boolean; percent: string | null; percentSpacing: string; }; export type NumberFormatReturnWithParts = NumberFormatReturnValue & { parts: NumberFormatParts; }; /** * Same contract as `useNumberFormat`, but additionally splits the * formatted display string into structured `parts` (sign, number, currency, * percent) so consumers can style each piece independently. * * `formatter` defaults to `formatNumber`. Pass `formatCurrency` or * `formatPercent` for currency/percent output. The returned `parts` are * derived from the formatter's display string, so any formatter that * returns a `NumberFormatReturnValue` works. */ declare function useNumberFormatWithParts(value: NumberFormatValue, formatter: NumberFormatter, options: NumberFormatOptionParams & { returnAria: false; }): string; declare function useNumberFormatWithParts(value: NumberFormatValue, formatter?: NumberFormatter, options?: NumberFormatOptionParams): NumberFormatReturnWithParts; export default useNumberFormatWithParts;