Opal-Estate-Pro/node_modules/postcss-convert-values/dist/lib/convert.js
2019-09-13 11:27:52 +07:00

88 lines
1.8 KiB
JavaScript
Executable File

'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'];