| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 | | 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 |  |         }; |  |     } |  | }; | 
 |