Blame view

node_modules/clean-css/lib/optimizer/level-2/properties/find-component-in.js 953 Bytes
aaac7fed   liuqimichale   add
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
  var compactable = require('../compactable');
  
  function findComponentIn(shorthand, longhand) {
    var comparator = nameComparator(longhand);
  
    return findInDirectComponents(shorthand, comparator) || findInSubComponents(shorthand, comparator);
  }
  
  function nameComparator(to) {
    return function (property) {
      return to.name === property.name;
    };
  }
  
  function findInDirectComponents(shorthand, comparator) {
    return shorthand.components.filter(comparator)[0];
  }
  
  function findInSubComponents(shorthand, comparator) {
    var shorthandComponent;
    var longhandMatch;
    var i, l;
  
    if (!compactable[shorthand.name].shorthandComponents) {
      return;
    }
  
    for (i = 0, l = shorthand.components.length; i < l; i++) {
      shorthandComponent = shorthand.components[i];
      longhandMatch = findInDirectComponents(shorthandComponent, comparator);
  
      if (longhandMatch) {
        return longhandMatch;
      }
    }
  
    return;
  }
  
  module.exports = findComponentIn;