UNPKG

bem.js

Version:

DOM selection and manipulation using BEM (Block, Element, Modifier).

1 lines 2.35 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(){function e(){n(this,e)}return r(e,null,[{key:"getBEMNode",value:function(t,n,r){var o="."+e.getBEMClassName(t,n,r);return document.querySelector(o)}},{key:"getBEMNodes",value:function(t,n,r){var o="."+e.getBEMClassName(t,n,r);return document.querySelectorAll(o)}},{key:"getChildBEMNode",value:function(t,n,r,o){var a="."+e.getBEMClassName(n,r,o);return t.querySelector(a)}},{key:"getChildBEMNodes",value:function(t,n,r,o){var a="."+e.getBEMClassName(n,r,o);return t.querySelectorAll(a)}},{key:"getBEMSelector",value:function(t,n,r){var o="."+e.getBEMClassName(t,n);return r&&(o+="."+e.getBEMClassName(t,n,r)),o}},{key:"getBEMClassName",value:function(e,t,n){var r=e;return t&&(r+="__"+t),n&&(r+="--"+n),r}},{key:"addModifier",value:function(e,t){(!(arguments.length>2&&void 0!==arguments[2])||arguments[2])&&[].forEach.call(e.classList,function(n){if(!n.match("--")){var r=n+"--"+t;e.classList.contains(r)||e.classList.add(r)}})}},{key:"removeModifier",value:function(e,t){if(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]){var n=new RegExp("--"+t+"$","g"),r=[].filter.call(e.classList,function(e){return!e.match(n)});e.className=r.join(" ")}}},{key:"toggleModifier",value:function(t,n){if(arguments.length>2&&void 0!==arguments[2]?arguments[2]:!e.hasModifier(t,n))return void e.addModifier(t,n);e.removeModifier(t,n)}},{key:"hasModifier",value:function(e,t){var n=new RegExp("--"+t+"(?=\\s|$)","g");return e.className.match(n)}}]),e}();t.default=o,t.BEM=o}])});