@gechiui/block-editor
Version:
70 lines (56 loc) • 1.62 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getActiveStyle = getActiveStyle;
exports.replaceActiveStyle = replaceActiveStyle;
var _lodash = require("lodash");
var _tokenList = _interopRequireDefault(require("@gechiui/token-list"));
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
/**
* Returns the active style from the given className.
*
* @param {Array} styles Block style variations.
* @param {string} className Class name
*
* @return {Object?} The active style.
*/
function getActiveStyle(styles, className) {
for (const style of new _tokenList.default(className).values()) {
if (style.indexOf('is-style-') === -1) {
continue;
}
const potentialStyleName = style.substring(9);
const activeStyle = (0, _lodash.find)(styles, {
name: potentialStyleName
});
if (activeStyle) {
return activeStyle;
}
}
return (0, _lodash.find)(styles, 'isDefault');
}
/**
* Replaces the active style in the block's className.
*
* @param {string} className Class name.
* @param {Object?} activeStyle The replaced style.
* @param {Object} newStyle The replacing style.
*
* @return {string} The updated className.
*/
function replaceActiveStyle(className, activeStyle, newStyle) {
const list = new _tokenList.default(className);
if (activeStyle) {
list.remove('is-style-' + activeStyle.name);
}
list.add('is-style-' + newStyle.name);
return list.value;
}
//# sourceMappingURL=utils.js.map