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