ep-react-ui
Version:
EP react UI elements.
72 lines (56 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _uniq2 = require('lodash/uniq');
var _uniq3 = _interopRequireDefault(_uniq2);
var _filter2 = require('lodash/filter');
var _filter3 = _interopRequireDefault(_filter2);
var _pull2 = require('lodash/pull');
var _pull3 = _interopRequireDefault(_pull2);
exports.addClass = addClass;
exports.removeClass = removeClass;
exports.hasClass = hasClass;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Add new CSS class to element
*
* @params
* - {element} el : Target element
* - {array/string} newClass : New CSS class(es)
*/
function addClass(el, newClass) {
var classes = el.className.split(' ');
if (typeof newClass === 'string') {
classes.push(newClass);
} else {
classes = classes.concat(newClass);
}
el.className = (0, _filter3.default)((0, _uniq3.default)(classes), function (val) {
return val !== '';
}).join(' ');
}
/**
* Remove CSS class from element
*
* @params
* - {element} el : Target element
* - {array/string} oldClass : CSS class(es) to be removed
*/
function removeClass(el, oldClass) {
var classes = el.className.split(' ');
(0, _pull3.default)(classes, oldClass);
el.className = (0, _filter3.default)((0, _uniq3.default)(classes), function (val) {
return val !== '';
}).join(' ');
}
/**
* Check if element contains of a CSS class
*
* @params
* - {element} el : Target element
* - {string} checkClass : CSS class to be checked
*/
function hasClass(el, checkClass) {
return (' ' + el.className + ' ').indexOf(' ' + checkClass + ' ') > -1;
}