UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

53 lines 1.82 kB
import React from 'react'; import clsx from 'clsx'; import ValueBlock from "../../ValueBlock/index.js"; import useValueProps from "../../hooks/useValueProps.js"; import { omitSpacingProps } from "../../../../components/flex/utils.js"; import NumberFormatBase from "../../../../components/number-format/NumberFormatBase.js"; import { formatCurrency } from "../../../../components/number-format/utils/formatCurrency.js"; import { formatPercent } from "../../../../components/number-format/utils/formatPercent.js"; import { formatNumber } from "../../../../components/number-format/utils/formatNumber.js"; import withComponentMarkers from "../../../../shared/helpers/withComponentMarkers.js"; import { jsx as _jsx } from "react/jsx-runtime"; function NumberValue(props) { const { value: valueProp, minimum = Number.MIN_SAFE_INTEGER, maximum = Number.MAX_SAFE_INTEGER, inline, showEmpty, className, path, itemPath, inheritLabel, ...rest } = useValueProps(props); const { percent, ...numberFormatRest } = omitSpacingProps(rest); let value = valueProp; if (value < minimum) { value = minimum; } if (value > maximum) { value = maximum; } const formatter = percent ? formatPercent : numberFormatRest.currency === true || typeof numberFormatRest.currency === 'string' ? formatCurrency : formatNumber; return _jsx(ValueBlock, { className: clsx('dnb-forms-value-number', className), inline: inline, showEmpty: showEmpty, ...rest, children: typeof value !== 'undefined' || showEmpty ? _jsx(NumberFormatBase, { value: value, ...numberFormatRest, __format: formatter }) : null }); } withComponentMarkers(NumberValue, { _supportsSpacingProps: true }); export default NumberValue; //# sourceMappingURL=Number.js.map