UNPKG

@wordpress/block-editor

Version:
8 lines (7 loc) 3.49 kB
{ "version": 3, "sources": ["../../../src/components/block-styles/utils.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport TokenList from '@wordpress/token-list';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Returns the active style from the given className.\n *\n * @param {Array} styles Block styles.\n * @param {string} className Class name\n *\n * @return {?Object} The active style.\n */\nexport function getActiveStyle( styles, className ) {\n\tfor ( const style of new TokenList( className ).values() ) {\n\t\tif ( style.indexOf( 'is-style-' ) === -1 ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst potentialStyleName = style.substring( 9 );\n\t\tconst activeStyle = styles?.find(\n\t\t\t( { name } ) => name === potentialStyleName\n\t\t);\n\t\tif ( activeStyle ) {\n\t\t\treturn activeStyle;\n\t\t}\n\t}\n\n\treturn getDefaultStyle( styles );\n}\n\n/**\n * Replaces the active style in the block's className.\n *\n * @param {string} className Class name.\n * @param {?Object} activeStyle The replaced style.\n * @param {Object} newStyle The replacing style.\n *\n * @return {string} The updated className.\n */\nexport function replaceActiveStyle( className, activeStyle, newStyle ) {\n\tconst list = new TokenList( className );\n\n\tif ( activeStyle ) {\n\t\tlist.remove( 'is-style-' + activeStyle.name );\n\t}\n\n\tlist.add( 'is-style-' + newStyle.name );\n\n\treturn list.value;\n}\n\n/**\n * Returns a collection of styles that can be represented on the frontend.\n * The function checks a style collection for a default style. If none is found, it adds one to\n * act as a fallback for when there is no active style applied to a block. The default item also serves\n * as a switch on the frontend to deactivate non-default styles.\n *\n * @param {Array} styles Block styles.\n *\n * @return {Array<Object?>} The style collection.\n */\nexport function getRenderedStyles( styles ) {\n\tif ( ! styles || styles.length === 0 ) {\n\t\treturn [];\n\t}\n\n\treturn getDefaultStyle( styles )\n\t\t? styles\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tname: 'default',\n\t\t\t\t\tlabel: _x( 'Default', 'block style' ),\n\t\t\t\t\tisDefault: true,\n\t\t\t\t},\n\t\t\t\t...styles,\n\t\t ];\n}\n\n/**\n * Returns a style object from a collection of styles where that style object is the default block style.\n *\n * @param {Array} styles Block styles.\n *\n * @return {?Object} The default style object, if found.\n */\nexport function getDefaultStyle( styles ) {\n\treturn styles?.find( ( style ) => style.isDefault );\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAsB;AACtB,kBAAmB;AAUZ,SAAS,eAAgB,QAAQ,WAAY;AACnD,aAAY,SAAS,IAAI,kBAAAA,QAAW,SAAU,EAAE,OAAO,GAAI;AAC1D,QAAK,MAAM,QAAS,WAAY,MAAM,IAAK;AAC1C;AAAA,IACD;AAEA,UAAM,qBAAqB,MAAM,UAAW,CAAE;AAC9C,UAAM,cAAc,QAAQ;AAAA,MAC3B,CAAE,EAAE,KAAK,MAAO,SAAS;AAAA,IAC1B;AACA,QAAK,aAAc;AAClB,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO,gBAAiB,MAAO;AAChC;AAWO,SAAS,mBAAoB,WAAW,aAAa,UAAW;AACtE,QAAM,OAAO,IAAI,kBAAAA,QAAW,SAAU;AAEtC,MAAK,aAAc;AAClB,SAAK,OAAQ,cAAc,YAAY,IAAK;AAAA,EAC7C;AAEA,OAAK,IAAK,cAAc,SAAS,IAAK;AAEtC,SAAO,KAAK;AACb;AAYO,SAAS,kBAAmB,QAAS;AAC3C,MAAK,CAAE,UAAU,OAAO,WAAW,GAAI;AACtC,WAAO,CAAC;AAAA,EACT;AAEA,SAAO,gBAAiB,MAAO,IAC5B,SACA;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,WAAO,gBAAI,WAAW,aAAc;AAAA,MACpC,WAAW;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACH;AACJ;AASO,SAAS,gBAAiB,QAAS;AACzC,SAAO,QAAQ,KAAM,CAAE,UAAW,MAAM,SAAU;AACnD;", "names": ["TokenList"] }