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.
		
		
		
		
		
			
		
			
				
					
					
						
							39 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							39 lines
						
					
					
						
							1.1 KiB
						
					
					
				var OMIT_PLUSSIGN = /^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/; | 
						|
var KEEP_PLUSSIGN = /^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/; | 
						|
var unsafeToRemovePlusSignAfter = { | 
						|
    Dimension: true, | 
						|
    HexColor: true, | 
						|
    Identifier: true, | 
						|
    Number: true, | 
						|
    Raw: true, | 
						|
    UnicodeRange: true | 
						|
}; | 
						|
 | 
						|
function packNumber(value, item) { | 
						|
    // omit plus sign only if no prev or prev is safe type | 
						|
    var regexp = item && item.prev !== null && unsafeToRemovePlusSignAfter.hasOwnProperty(item.prev.data.type) | 
						|
        ? KEEP_PLUSSIGN | 
						|
        : OMIT_PLUSSIGN; | 
						|
 | 
						|
    // 100 -> '100' | 
						|
    // 00100 -> '100' | 
						|
    // +100 -> '100' (only when safe, e.g. omitting plus sign for 1px+1px leads to single dimension instead of two) | 
						|
    // -100 -> '-100' | 
						|
    // 0.123 -> '.123' | 
						|
    // 0.12300 -> '.123' | 
						|
    // 0.0 -> '' | 
						|
    // 0 -> '' | 
						|
    // -0 -> '-' | 
						|
    value = String(value).replace(regexp, '$1$2$3'); | 
						|
 | 
						|
    if (value === '' || value === '-') { | 
						|
        value = '0'; | 
						|
    } | 
						|
 | 
						|
    return value; | 
						|
} | 
						|
 | 
						|
module.exports = function(node, item) { | 
						|
    node.value = packNumber(node.value, item); | 
						|
}; | 
						|
module.exports.pack = packNumber;
 | 
						|
 |