@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
60 lines (59 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _index = _interopRequireDefault(require("../../ValueBlock/index.js"));
var _useValueProps = _interopRequireDefault(require("../../hooks/useValueProps.js"));
var _utils = require("../../../../components/flex/utils.js");
var _NumberFormatBase = _interopRequireDefault(require("../../../../components/number-format/NumberFormatBase.js"));
var _formatCurrency = require("../../../../components/number-format/utils/formatCurrency.js");
var _formatPercent = require("../../../../components/number-format/utils/formatPercent.js");
var _formatNumber = require("../../../../components/number-format/utils/formatNumber.js");
var _withComponentMarkers = _interopRequireDefault(require("../../../../shared/helpers/withComponentMarkers.js"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function NumberValue(props) {
const {
value: valueProp,
minimum = Number.MIN_SAFE_INTEGER,
maximum = Number.MAX_SAFE_INTEGER,
inline,
showEmpty,
className,
path,
itemPath,
inheritLabel,
...rest
} = (0, _useValueProps.default)(props);
const {
percent,
...numberFormatRest
} = (0, _utils.omitSpacingProps)(rest);
let value = valueProp;
if (value < minimum) {
value = minimum;
}
if (value > maximum) {
value = maximum;
}
const formatter = percent ? _formatPercent.formatPercent : numberFormatRest.currency === true || typeof numberFormatRest.currency === 'string' ? _formatCurrency.formatCurrency : _formatNumber.formatNumber;
return (0, _jsxRuntime.jsx)(_index.default, {
className: (0, _clsx.default)('dnb-forms-value-number', className),
inline: inline,
showEmpty: showEmpty,
...rest,
children: typeof value !== 'undefined' || showEmpty ? (0, _jsxRuntime.jsx)(_NumberFormatBase.default, {
value: value,
...numberFormatRest,
__format: formatter
}) : null
});
}
(0, _withComponentMarkers.default)(NumberValue, {
_supportsSpacingProps: true
});
var _default = exports.default = NumberValue;
//# sourceMappingURL=Number.js.map