input-value-utils.js 833 B

123456789101112131415161718192021222324252627282930
  1. const {
  2. toFiniteNumber
  3. } = require('./calculation-context')
  4. function getInputTextWithoutUnit(item, value) {
  5. const text = String(value === undefined || value === null ? '' : value).trim()
  6. if (!item || !item.unit || !text) return text
  7. const lowerText = text.toLowerCase()
  8. const lowerUnit = String(item.unit).toLowerCase()
  9. return lowerText.endsWith(lowerUnit)
  10. ? text.slice(0, -item.unit.length).trim()
  11. : text
  12. }
  13. function appendInputUnit(item, value) {
  14. const text = String(value === undefined || value === null ? '' : value).trim()
  15. if (!item || !item.unit || !text) return text
  16. const valueText = getInputTextWithoutUnit(item, text)
  17. if (!Number.isFinite(toFiniteNumber(valueText, NaN))) return text
  18. return `${valueText} ${item.unit}`
  19. }
  20. module.exports = {
  21. appendInputUnit,
  22. getInputTextWithoutUnit
  23. }