'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
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
63
var selector = require('./selector');
var each = require('./each');
var startWith = require('./startWith');
var contain = require('./contain');
var cmpVersion = require('./cmpVersion');
 
exports = function(sel) {
    var _ref =
            arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : {},
        _ref$important = _ref.important,
        important = _ref$important === void 0 ? false : _ref$important,
        _ref$inlineStyle = _ref.inlineStyle,
        inlineStyle = _ref$inlineStyle === void 0 ? false : _ref$inlineStyle,
        _ref$position = _ref.position,
        position = _ref$position === void 0 ? 0 : _ref$position;
    var ret = [0, 0, 0, 0, 0, position];
    if (important) ret[0] = 1;
    if (inlineStyle) ret[1] = 1;
    var group = selector.parse(sel)[0];
    each(group, function(_ref2) {
        var type = _ref2.type,
            value = _ref2.value;
        switch (type) {
            case 'id':
                ret[2]++;
                break;
            case 'class':
            case 'attribute':
                ret[3]++;
                break;
            case 'pseudo':
                if (contain(PSEUDO_ELEMS, value.replace(/:/g, ''))) {
                    ret[4]++;
                } else if (!startWith(value, '::')) {
                    ret[3]++;
                }
                break;
            case 'tag':
                if (value !== '*') {
                    ret[4]++;
                }
                break;
        }
    });
    return ret;
};
var PSEUDO_ELEMS = [
    'first-letter',
    'last-letter',
    'first-line',
    'last-line',
    'first-child',
    'last-child',
    'before',
    'after'
];
exports.compare = function(p1, p2) {
    return cmpVersion(p1.join('.'), p2.join('.'));
};
 
module.exports = exports;