UNPKG

d2-ui

Version:
89 lines (71 loc) 1.86 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var lengthConv = { 'in': 96, 'px': 1, 'pt': 4 / 3, 'pc': 16 }; var timeConv = { 's': 1000, 'ms': 1 }; var angleConv = { 'turn': 360, 'deg': 1 }; function dropLeadingZero(number) { var 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) { var one = undefined, base = undefined; var convertionUnits = Object.keys(conversion).filter(function (u) { if (conversion[u] === 1) { one = u; } return unit !== u; }); if (unit === one) { base = number / conversion[unit]; } else { base = number * conversion[unit]; } return convertionUnits.map(function (u) { return dropLeadingZero(base / conversion[u]) + u; }).reduce(function (a, b) { return a.length < b.length ? a : b; }); } exports['default'] = function (number, unit, _ref) { var time = _ref.time; var length = _ref.length; var angle = _ref.angle; var value = dropLeadingZero(number) + (unit ? unit : ''); var converted = undefined; if (length !== false && unit in lengthConv) { converted = transform(number, unit, lengthConv); } if (time !== false && unit in timeConv) { converted = transform(number, unit, timeConv); } if (angle !== false && unit in angleConv) { converted = transform(number, unit, angleConv); } if (converted && converted.length < value.length) { value = converted; } return value; }; module.exports = exports['default'];