| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | var packNumber = require('./Number').pack;var MATH_FUNCTIONS = {    'calc': true,    'min': true,    'max': true,    'clamp': true};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, item);    node.value = value;    if (value === '0' && this.declaration !== null && this.atrulePrelude === null) {        var unit = node.unit.toLowerCase();        // only length values can be compressed        if (!LENGTH_UNIT.hasOwnProperty(unit)) {            return;        }        // issue #362: shouldn't remove unit in -ms-flex since it breaks flex in IE10/11        // issue #200: shouldn't remove unit in flex since it breaks flex in IE10/11        if (this.declaration.property === '-ms-flex' ||            this.declaration.property === 'flex') {            return;        }        // issue #222: don't remove units inside calc        if (this.function && MATH_FUNCTIONS.hasOwnProperty(this.function.name)) {            return;        }        item.data = {            type: 'Number',            loc: node.loc,            value: value        };    }};
 |