diff options
Diffstat (limited to 'node_modules/postcss-convert-values/dist/lib')
| -rw-r--r-- | node_modules/postcss-convert-values/dist/lib/convert.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/node_modules/postcss-convert-values/dist/lib/convert.js b/node_modules/postcss-convert-values/dist/lib/convert.js new file mode 100644 index 00000000..91400bc7 --- /dev/null +++ b/node_modules/postcss-convert-values/dist/lib/convert.js @@ -0,0 +1,88 @@ +'use strict'; + +exports.__esModule = true; + +exports.default = function (number, unit, _ref) { + var time = _ref.time, + length = _ref.length, + angle = _ref.angle; + + var value = dropLeadingZero(number) + (unit ? unit : ''); + var converted = void 0; + + 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; +}; + +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 = void 0, + base = void 0; + 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; + }); +} + +module.exports = exports['default'];
\ No newline at end of file |
