'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
var toArr = require('./toArr');
var some = require('./some');
var $safeEls = require('./$safeEls');
var isStr = require('./isStr');
var each = require('./each');
exports = {
    add: function(els, name) {
        els = $safeEls(els);
        var names = safeName(name);
        each(els, function(el) {
            var classList = [];
            each(names, function(name) {
                if (!exports.has(el, name)) classList.push(name);
            });
            if (classList.length !== 0) {
                el.className += (el.className ? ' ' : '') + classList.join(' ');
            }
        });
    },
    has: function(els, name) {
        els = $safeEls(els);
        var regName = new RegExp('(^|\\s)' + name + '(\\s|$)');
        return some(els, function(el) {
            return regName.test(el.className);
        });
    },
    toggle: function(els, name) {
        els = $safeEls(els);
        each(els, function(el) {
            if (!exports.has(el, name)) return exports.add(el, name);
            exports.remove(el, name);
        });
    },
    remove: function(els, name) {
        els = $safeEls(els);
        var names = safeName(name);
        each(els, function(el) {
            each(names, function(name) {
                el.classList.remove(name);
            });
        });
    }
};
function safeName(name) {
    return isStr(name) ? name.split(/\s+/) : toArr(name);
}
 
module.exports = exports;