@byndyusoft-ui/formatted-number
Version:
Byndyusoft UI FormattedNumber React Component
29 lines (22 loc) • 1.78 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var index = require('./node_modules/nanoid/index.js');
var FormattedNumber_utilities = require('./FormattedNumber.utilities.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
const SYMBOL_BETWEEN_FORMATTED_NUMBER_PARTS_LABEL = 'Symbol between formatted number parts';
const FormattedNumber = ({ number, defaultFormatterOptions, formatter = FormattedNumber_utilities.getDefaultFormatter(defaultFormatterOptions), parseNumberToParts = FormattedNumber_utilities.parseNumberToPartsByDefault, numberPartsDividerClassName = '' }) => {
const numberParts = React.useMemo(() => parseNumberToParts(formatter.format(number)), [parseNumberToParts, formatter, number]);
return (React__default["default"].createElement(React__default["default"].Fragment, null, numberParts.map((numberPart, numberPartIndex) => {
const isLastNumberPart = numberPartIndex === numberParts.length - 1;
return (React__default["default"].createElement(React.Fragment, { key: index.nanoid() },
numberPart,
!isLastNumberPart && (
/* eslint-disable react/forbid-dom-props */
// eslint-disable-next-line react/self-closing-comp
React__default["default"].createElement("span", { style: { userSelect: 'none' }, className: numberPartsDividerClassName, "aria-label": SYMBOL_BETWEEN_FORMATTED_NUMBER_PARTS_LABEL }, "\u202F"))));
})));
};
exports.SYMBOL_BETWEEN_FORMATTED_NUMBER_PARTS_LABEL = SYMBOL_BETWEEN_FORMATTED_NUMBER_PARTS_LABEL;
exports["default"] = FormattedNumber;
;