client/components/jkroso/classes/1.1.0/modern.js
/**
* Add class `name` if not already present.
*
* @param {String} name
* @param {Element} el
* @api public
*/
exports.add = function(name, el){
el.classList.add(name)
}
/**
* Remove `name` if present
*
* @param {String|RegExp} name
* @param {Element} el
* @api public
*/
exports.remove = function(name, el){
if (name instanceof RegExp) {
return exports.removeMatching(name, el)
}
el.classList.remove(name)
}
/**
* Remove all classes matching `re`.
*
* @param {RegExp} re
* @param {Element} el
* @api public
*/
exports.removeMatching = function(re, el){
var arr = exports.array(el)
for (var i = 0; i < arr.length; i++) {
if (re.test(arr[i])) el.classList.remove(arr[i])
}
}
/**
* Toggle class `name`.
*
* @param {String} name
* @param {Element} el
* @api public
*/
exports.toggle = function(name, el){
el.classList.toggle(name)
}
/**
* Return an array of classes.
*
* @param {Element} el
* @return {Array}
* @api public
*/
exports.array = function(el){
return el.className.match(/([^\s]+)/g) || []
}
/**
* Check if class `name` is present.
*
* @param {String} name
* @param {Element} el
* @api public
*/
exports.has =
exports.contains = function(name, el){
return el.classList.contains(name)
}