33 lines
922 B
JavaScript
33 lines
922 B
JavaScript
var OptimizationLevel = require('../../../options/optimization-level').OptimizationLevel;
|
|
|
|
function isNegative(value) {
|
|
return value && value[1][0] == '-' && parseFloat(value[1]) < 0;
|
|
}
|
|
|
|
var plugin = {
|
|
level1: {
|
|
property: function padding(_rule, property, options) {
|
|
var values = property.value;
|
|
|
|
// remove multiple zeros
|
|
if (values.length == 4 && values[0][1] === '0' && values[1][1] === '0' && values[2][1] === '0' && values[3][1] === '0') {
|
|
property.value.splice(1);
|
|
property.dirty = true;
|
|
}
|
|
|
|
// remove negative paddings
|
|
if (options.level[OptimizationLevel.One].removeNegativePaddings
|
|
&& (
|
|
isNegative(property.value[0])
|
|
|| isNegative(property.value[1])
|
|
|| isNegative(property.value[2])
|
|
|| isNegative(property.value[3])
|
|
)) {
|
|
property.unused = true;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = plugin;
|