@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
32 lines (31 loc) • 1.42 kB
TypeScript
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;