var packNumber = require('./Number.js').pack; var LENGTH_UNIT = { // absolute length units 'px': true, 'mm': true, 'cm': true, 'in': true, 'pt': true, 'pc': true, // relative length units 'em': true, 'ex': true, 'ch': true, 'rem': true, // viewport-percentage lengths 'vh': true, 'vw': true, 'vmin': true, 'vmax': true, 'vm': true }; module.exports = function compressDimension(node, item) { var value = packNumber(node.value); node.value = value; if (value === '0' && this.declaration) { var unit = node.unit.toLowerCase(); // only length values can be compressed if (!LENGTH_UNIT.hasOwnProperty(unit)) { return; } // issue #200: don't remove units in flex property as it could change value meaning if (this.declaration.property.name === 'flex') { return; } // issue #222: don't remove units inside calc if (this['function'] && this['function'].name === 'calc') { return; } item.data = { type: 'Number', info: node.info, value: value }; } };