UNPKG

@gechiui/block-editor

Version:
70 lines (56 loc) 1.62 kB
"use strict"; 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