| 123456789101112131415161718192021222324252627282930313233343536373839 | var OMIT_PLUSSIGN = /^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;var KEEP_PLUSSIGN = /^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;var unsafeToRemovePlusSignAfter = {    Dimension: true,    Hash: 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;
 |