You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
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;
|
|
|