UNPKG

@harvest-profit/npk

Version:
32 lines 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const ThemeContext_1 = __importDefault(require("../ThemeContext")); const _1 = __importDefault(require(".")); const NumberInput = ({ onChange = (_v) => null, value, ...props }) => { return ((0, jsx_runtime_1.jsx)(_1.default, { mask: "number", value: `${value || ''}`, onChange: (v) => { const parsedValue = parseFloat(`${v}`.replaceAll(',', '')); onChange(isNaN(parsedValue) ? null : parsedValue); }, ...props })); }; const NumberInputWrapper = (props) => { const theme = (0, react_1.useContext)(ThemeContext_1.default); let suggestedProps = {}; let suggestedFormatOptions = {}; if (props.type === 'currency') { suggestedProps.leadingVisual = theme.currencySymbol || '$'; suggestedFormatOptions.minimumFractionDigits = 2; suggestedFormatOptions.maximumFractionDigits = 4; } if (props.type === 'percentage') { suggestedProps.trailingVisual = '%'; } const formatOptions = { ...suggestedFormatOptions, ...(props.formatOptions || {}) }; return ((0, jsx_runtime_1.jsx)(NumberInput, { ...suggestedProps, ...props, formatOptions: formatOptions })); }; exports.default = NumberInputWrapper; //# sourceMappingURL=NumberInput.js.map