first commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* WordPress dependencies
|
||||
*/
|
||||
const TokenList = wp.tokenList;
|
||||
|
||||
/**
|
||||
* Returns the active style from the given className.
|
||||
*
|
||||
* @param {string} className Class name
|
||||
* @param {string} namespace The replacing class namespace.
|
||||
*
|
||||
* @return {string} The active style.
|
||||
*/
|
||||
export function getActiveClass( className, namespace ) {
|
||||
const list = new TokenList( className );
|
||||
|
||||
for ( const activeClass of list.values() ) {
|
||||
if ( activeClass.indexOf( `${ namespace }-` ) === -1 ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return activeClass;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the active class with namespace in the className.
|
||||
*
|
||||
* @param {string} className Class name.
|
||||
* @param {string} namespace The replacing class namespace.
|
||||
* @param {string} newClass The replacing class.
|
||||
*
|
||||
* @return {string} The updated className.
|
||||
*/
|
||||
export function replaceClass( className, namespace, newClass ) {
|
||||
const list = new TokenList( className );
|
||||
const namespaceRegExp = new RegExp( `${ namespace }-` );
|
||||
|
||||
// remove classes with the same namespace.
|
||||
for ( const activeClass of list.values() ) {
|
||||
if ( namespaceRegExp.test( activeClass ) ) {
|
||||
list.remove( activeClass );
|
||||
}
|
||||
}
|
||||
|
||||
// add new class.
|
||||
if ( newClass ) {
|
||||
list.add( `${ namespace }-${ newClass }` );
|
||||
}
|
||||
|
||||
return list.value;
|
||||
}
|
||||
Reference in New Issue
Block a user