Sha256: e48e2516af8f1541a4556c8110a85bb49ac99d8a37e282adfe88184a0457fb1d

Contents?: true

Size: 1.35 KB

Versions: 18

Compression:

Stored size: 1.35 KB

Contents

var packNumber = require('./Number').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, 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'] && this['function'].name === 'calc') {
            return;
        }

        item.data = {
            type: 'Number',
            loc: node.loc,
            value: value
        };
    }
};

Version data entries

18 entries across 18 versions & 4 rubygems

Version Path
disco_app-0.18.0 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.18.2 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.16.1 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.15.2 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.18.4 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.18.1 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.14.0 test/dummy/node_modules/csso/lib/replace/Dimension.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/csso/lib/replace/Dimension.js
jester-data-8.0.0 node_modules/csso/lib/replace/Dimension.js
ezii-os-5.2.1 node_modules/csso/lib/replace/Dimension.js
ezii-os-2.0.1 node_modules/csso/lib/replace/Dimension.js
ezii-os-1.1.0 node_modules/csso/lib/replace/Dimension.js
ezii-os-1.0.0 node_modules/csso/lib/replace/Dimension.js
ezii-os-0.0.0.1.0 node_modules/csso/lib/replace/Dimension.js
ezii-os-0.0.0.0.1 node_modules/csso/lib/replace/Dimension.js
locomotivecms-4.0.0.alpha1 app/javascript/node_modules/csso/lib/replace/Dimension.js
locomotivecms-3.4.0 app/javascript/node_modules/csso/lib/replace/Dimension.js