UNPKG

@chayns-components/core

Version:

A set of beautiful React components for developing your own applications with chayns.

97 lines (93 loc) 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseFloatWithDecimals = exports.isValidString = exports.formateNumber = void 0; var _numberInput = require("../constants/numberInput"); const parseFloatWithDecimals = ({ stringValue, decimals }) => { const parsed = parseFloat(stringValue); if (decimals) { return parseFloat(parsed.toFixed(decimals)); } return parsed; }; exports.parseFloatWithDecimals = parseFloatWithDecimals; const formateNumber = ({ number, isMoneyInput, isTimeInput }) => { if (isTimeInput && typeof number === 'string') { let hours = 0; let minutes = 0; let firstTwoDigits = number.substring(0, 2); if (firstTwoDigits.includes(':')) { firstTwoDigits = firstTwoDigits.replace(':', ''); firstTwoDigits = `0${firstTwoDigits}`; } const firstTwoNumbers = Number(firstTwoDigits); let lastTwoNumbers = 0; let lastTwoNumbersLength = 0; if (number.includes(':')) { lastTwoNumbers = Number(number.substring(3, 5)); lastTwoNumbersLength = number.substring(3, 5).length; } else { lastTwoNumbers = Number(number.substring(2, 4)); lastTwoNumbersLength = number.substring(2, 4).length; } hours = firstTwoNumbers > 23 ? 23 : firstTwoNumbers; if (lastTwoNumbers < 7 && lastTwoNumbersLength === 1) { minutes = lastTwoNumbers * 10; } else { minutes = lastTwoNumbers > 59 ? 59 : lastTwoNumbers; } const hoursStr = hours < 10 ? `0${hours}` : `${hours}`; const minutesStr = minutes < 10 ? `0${minutes}` : `${minutes}`; return `${hoursStr}:${minutesStr}`; } if (typeof number !== 'number') { return ''; } return number.toLocaleString('de-DE', { useGrouping: true, minimumFractionDigits: isMoneyInput ? 2 : undefined, maximumFractionDigits: isMoneyInput ? 2 : undefined, maximumSignificantDigits: !isMoneyInput ? 20 : undefined }); }; exports.formateNumber = formateNumber; const isValidString = ({ isDecimalInput, isMoneyInput, isTimeInput, string }) => { let isValid = false; // Allows numbers, one (comma/point) and any number of decimal places if (isDecimalInput && _numberInput.DECIMAL_TEST.test(string)) { isValid = true; } // Allows numbers but excludes numbers with leading 0 if (isMoneyInput && _numberInput.MONEY_TEST.test(string)) { isValid = true; } if (isTimeInput && _numberInput.TIME_TEST) { isValid = true; } // Allows numbers but excludes numbers with leading 0 if (!isDecimalInput && !isMoneyInput && !isTimeInput && _numberInput.INTEGER_TEST.test(string)) { isValid = true; } if (string.length === 0) { isValid = true; } if (string.startsWith('0')) { isValid = true; } return isValid; }; exports.isValidString = isValidString; //# sourceMappingURL=numberInput.js.map