"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; const lengthConv = { in: 96, px: 1, pt: 4 / 3, pc: 16 }; const timeConv = { s: 1000, ms: 1 }; const angleConv = { turn: 360, deg: 1 }; function dropLeadingZero(number) { const value = String(number); if (number % 1) { if (value[0] === '0') { return value.slice(1); } if (value[0] === '-' && value[1] === '0') { return '-' + value.slice(2); } } return value; } function transform(number, unit, conversion) { const lowerCasedUnit = unit.toLowerCase(); let one, base; let convertionUnits = Object.keys(conversion).filter(u => { if (conversion[u] === 1) { one = u; } return lowerCasedUnit !== u; }); if (lowerCasedUnit === one) { base = number / conversion[lowerCasedUnit]; } else { base = number * conversion[lowerCasedUnit]; } return convertionUnits.map(u => dropLeadingZero(base / conversion[u]) + u).reduce((a, b) => a.length < b.length ? a : b); } function _default(number, unit, { time, length, angle }) { let value = dropLeadingZero(number) + (unit ? unit : ''); let converted; if (length !== false && unit.toLowerCase() in lengthConv) { converted = transform(number, unit, lengthConv); } if (time !== false && unit.toLowerCase() in timeConv) { converted = transform(number, unit, timeConv); } if (angle !== false && unit.toLowerCase() in angleConv) { converted = transform(number, unit, angleConv); } if (converted && converted.length < value.length) { value = converted; } return value; } module.exports = exports.default;