ifui
Version:
58 lines (46 loc) • 1.28 kB
JavaScript
exports.__esModule = true;
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* bem helper
* b() // 'button'
* b('text') // 'button__text'
* b({ disabled }) // 'button button--disabled'
* b('text', { disabled }) // 'button__text button__text--disabled'
* b(['disabled', 'primary']) // 'button button--disabled button--primary'
*/
var ELEMENT = '__';
var MODS = '--';
var join = function join(name, el, symbol) {
return el ? name + symbol + el : name;
};
var prefix = function prefix(name, mods) {
if (typeof mods == 'string') {
return join(name, mods, MODS);
}
if (Array.isArray(mods)) {
return mods.map(function (item) {
return prefix(name, item);
});
}
var ret = {};
(0, _keys2.default)(mods).forEach(function (key) {
ret[name + MODS + key] = mods[key];
});
return ret;
};
exports.default = {
methods: {
b: function b(el, mods) {
var name = this.$options.name;
if (el && typeof el !== 'string') {
mods = el;
el = '';
}
el = join(name, el, ELEMENT);
return mods ? [el, prefix(el, mods)] : el;
}
}
};
;