UNPKG

@byndyusoft-ui/formatted-number

Version:
29 lines (22 loc) 1.78 kB
'use strict'; 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;