@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 2.73 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/template-part/variations.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getTemplatePartIcon } from './edit/utils/get-template-part-icon';\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) {\n\t\t\t\treturn area === variationAttributes.area;\n\t\t\t}\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getCurrentTheme, getEntityRecord } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst entity = getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme || getCurrentTheme()?.stylesheet }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"],
"mappings": ";AAGA,SAAS,SAAS,qBAAqB;AACvC,SAAS,cAAc;AAKvB,SAAS,2BAA2B;AAE7B,SAAS,8BAA+B,UAAU,MAAO;AAC/D,MAAK,SAAS,sBAAuB;AACpC,WAAO;AAAA,EACR;AAEA,MAAK,SAAS,YAAa;AAC1B,UAAM,WAAW,CAAE,iBAAiB,wBAAyB;AAC5D,YAAM,EAAE,MAAM,OAAO,KAAK,IAAI;AAG9B,UAAK,MAAO;AACX,eAAO,SAAS,oBAAoB;AAAA,MACrC;AAGA,UAAK,CAAE,MAAO;AACb,eAAO;AAAA,MACR;AACA,YAAM,EAAE,iBAAiB,gBAAgB,IACxC,OAAQ,aAAc;AACvB,YAAM,SAAS;AAAA,QACd;AAAA,QACA;AAAA,QACA,GAAI,SAAS,gBAAgB,GAAG,UAAW,KAAM,IAAK;AAAA,MACvD;AAEA,UAAK,QAAQ,MAAO;AACnB,eAAO,OAAO,SAAS,oBAAoB;AAAA,MAC5C;AACA,aAAO,QAAQ,SAAS,oBAAoB;AAAA,IAC7C;AAEA,UAAM,aAAa,SAAS,WAAW,IAAK,CAAE,cAAe;AAC5D,aAAO;AAAA,QACN,GAAG;AAAA,QACH,GAAK,CAAE,UAAU,YAAY,EAAE,SAAS;AAAA,QACxC,GAAK,OAAO,UAAU,SAAS,YAAY;AAAA,UAC1C,MAAM,oBAAqB,UAAU,IAAK;AAAA,QAC3C;AAAA,MACD;AAAA,IACD,CAAE;AAEF,WAAO;AAAA,MACN,GAAG;AAAA,MACH;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;",
"names": []
}