UNPKG

@activecollab/components

Version:

ActiveCollab Components

62 lines 3.77 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["value", "variant", "currencyCode", "currencyPosition", "thousandSeparator", "decimalSeparator", "trimDecimals", "decimalSpaces", "format", "disableTooltip", "className", "as", "currencyClassName"]; import React, { forwardRef } from "react"; import { formatCurrency, formatNumber } from "../../utils"; import { Tooltip } from "../Tooltip"; import { Typography } from "../Typography/Typography"; export const DisplayCurrency = /*#__PURE__*/forwardRef((_ref, ref) => { let value = _ref.value, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? "Body 2" : _ref$variant, _ref$currencyCode = _ref.currencyCode, currencyCode = _ref$currencyCode === void 0 ? "USD" : _ref$currencyCode, _ref$currencyPosition = _ref.currencyPosition, currencyPosition = _ref$currencyPosition === void 0 ? "right" : _ref$currencyPosition, _ref$thousandSeparato = _ref.thousandSeparator, thousandSeparator = _ref$thousandSeparato === void 0 ? "," : _ref$thousandSeparato, _ref$decimalSeparator = _ref.decimalSeparator, decimalSeparator = _ref$decimalSeparator === void 0 ? "." : _ref$decimalSeparator, _ref$trimDecimals = _ref.trimDecimals, trimDecimals = _ref$trimDecimals === void 0 ? true : _ref$trimDecimals, _ref$decimalSpaces = _ref.decimalSpaces, decimalSpaces = _ref$decimalSpaces === void 0 ? 2 : _ref$decimalSpaces, _ref$format = _ref.format, format = _ref$format === void 0 ? "long" : _ref$format, _ref$disableTooltip = _ref.disableTooltip, disableTooltip = _ref$disableTooltip === void 0 ? false : _ref$disableTooltip, className = _ref.className, _ref$as = _ref.as, as = _ref$as === void 0 ? "span" : _ref$as, currencyClassName = _ref.currencyClassName, rest = _objectWithoutPropertiesLoose(_ref, _excluded); const formattedValue = formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, "short", 10000); const formattedLongValue = formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, "long", 10000); if (format === "short") { return /*#__PURE__*/React.createElement(Tooltip, { title: formatCurrency(value, thousandSeparator, decimalSeparator, false, decimalSpaces, "long", currencyCode, currencyPosition), disable: disableTooltip || !formattedLongValue.includes(thousandSeparator) && !formattedLongValue.includes(decimalSeparator) }, /*#__PURE__*/React.createElement(Typography, _extends({ as: as, variant: variant, className: className, ref: ref }, rest), currencyPosition === "left" ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", { className: currencyClassName }, currencyCode), " ", formattedValue) : /*#__PURE__*/React.createElement(React.Fragment, null, formattedValue, " ", /*#__PURE__*/React.createElement("span", { className: currencyClassName }, currencyCode)))); } return /*#__PURE__*/React.createElement(Typography, _extends({ as: as, variant: variant, className: className, ref: ref }, rest), currencyPosition === "left" ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", { className: currencyClassName }, currencyCode), " ", formattedLongValue) : /*#__PURE__*/React.createElement(React.Fragment, null, formattedLongValue, " ", /*#__PURE__*/React.createElement("span", { className: currencyClassName }, currencyCode))); }); DisplayCurrency.displayName = "DisplayCurrency"; //# sourceMappingURL=DisplayCurrency.js.map