UNPKG

ep-react-ui

Version:
72 lines (56 loc) 1.73 kB
'use strict'; 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; }