UNPKG

@gechiui/block-editor

Version:
57 lines (49 loc) 1.3 kB
/** * External dependencies */ import { find } from 'lodash'; /** * GeChiUI dependencies */ import TokenList from '@gechiui/token-list'; /** * Returns the active style from the given className. * * @param {Array} styles Block style variations. * @param {string} className Class name * * @return {Object?} The active style. */ export function getActiveStyle(styles, className) { for (const style of new TokenList(className).values()) { if (style.indexOf('is-style-') === -1) { continue; } const potentialStyleName = style.substring(9); const activeStyle = find(styles, { name: potentialStyleName }); if (activeStyle) { return activeStyle; } } return 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. */ export function replaceActiveStyle(className, activeStyle, newStyle) { const list = new TokenList(className); if (activeStyle) { list.remove('is-style-' + activeStyle.name); } list.add('is-style-' + newStyle.name); return list.value; } //# sourceMappingURL=utils.js.map