47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
var WHOLE_PIXEL_VALUE = /(?:^|\s|\()(-?\d+)px/;
|
||
|
|
||
|
var plugin = {
|
||
|
level1: {
|
||
|
value: function unit(_name, value, options) {
|
||
|
if (!WHOLE_PIXEL_VALUE.test(value)) {
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
return value.replace(WHOLE_PIXEL_VALUE, function(match, val) {
|
||
|
var newValue;
|
||
|
var intVal = parseInt(val);
|
||
|
|
||
|
if (intVal === 0) {
|
||
|
return match;
|
||
|
}
|
||
|
|
||
|
if (options.compatibility.properties.shorterLengthUnits
|
||
|
&& options.compatibility.units.pt
|
||
|
&& intVal * 3 % 4 === 0) {
|
||
|
newValue = intVal * 3 / 4 + 'pt';
|
||
|
}
|
||
|
|
||
|
if (options.compatibility.properties.shorterLengthUnits
|
||
|
&& options.compatibility.units.pc
|
||
|
&& intVal % 16 === 0) {
|
||
|
newValue = intVal / 16 + 'pc';
|
||
|
}
|
||
|
|
||
|
if (options.compatibility.properties.shorterLengthUnits
|
||
|
&& options.compatibility.units.in
|
||
|
&& intVal % 96 === 0) {
|
||
|
newValue = intVal / 96 + 'in';
|
||
|
}
|
||
|
|
||
|
if (newValue) {
|
||
|
newValue = match.substring(0, match.indexOf(val)) + newValue;
|
||
|
}
|
||
|
|
||
|
return newValue && newValue.length < match.length ? newValue : match;
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = plugin;
|