amis-rpc-design/node_modules/clean-css/lib/optimizer/level-1/value-optimizers/unit.js
2023-10-07 19:42:30 +08:00

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;