1
0

input-value-utils.js 809 B

1234567891011121314151617181920212223242526272829
  1. const {
  2. toFiniteNumber
  3. } = require('./calculation-context.js')
  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. }