UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 3.73 kB
{ "version": 3, "sources": ["../../src/template-part/index.js"], "sourcesContent": ["/**\n * External dependencies\n */\nimport { capitalCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { symbolFilled } from '@wordpress/icons';\nimport { addFilter } from '@wordpress/hooks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport { enhanceTemplatePartVariations } from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: symbolFilled,\n\t__experimentalLabel: ( { slug, theme } ) => {\n\t\t// Attempt to find entity title if block is a template part.\n\t\t// Require slug to request, otherwise entity is uncreated and will throw 404.\n\t\tif ( ! slug ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getCurrentTheme, getEditedEntityRecord } =\n\t\t\tselect( coreDataStore );\n\t\tconst entity = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t( theme || getCurrentTheme()?.stylesheet ) + '//' + slug\n\t\t);\n\t\tif ( ! entity ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tdecodeEntities( entity.title ) || capitalCase( entity.slug || '' )\n\t\t);\n\t},\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/template-part',\n\t\tenhanceTemplatePartVariations\n\t);\n\n\t// Prevent adding template parts inside post templates.\n\tconst DISALLOWED_PARENTS = [ 'core/post-template', 'core/post-content' ];\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/block-library/removeTemplatePartsFromPostTemplates',\n\t\t(\n\t\t\tcanInsert,\n\t\t\tblockType,\n\t\t\trootClientId,\n\t\t\t{ getBlock, getBlockParentsByBlockName }\n\t\t) => {\n\t\t\tif ( blockType.name !== 'core/template-part' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\t\tconst hasDisallowedParent =\n\t\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tdisallowedParentType\n\t\t\t\t\t).length;\n\t\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,yBAA4B;AAK5B,uBAAuC;AACvC,kBAAuB;AACvB,mBAA6B;AAC7B,mBAA0B;AAC1B,2BAA+B;AAK/B,wBAAsB;AACtB,mBAAqB;AACrB,kBAAiB;AACjB,wBAA8C;AAE9C,IAAM,EAAE,KAAK,IAAI,aAAAA;AAGV,IAAM,WAAW;AAAA,EACvB,MAAM;AAAA,EACN,qBAAqB,CAAE,EAAE,MAAM,MAAM,MAAO;AAG3C,QAAK,CAAE,MAAO;AACb;AAAA,IACD;AAEA,UAAM,EAAE,iBAAiB,sBAAsB,QAC9C,oBAAQ,iBAAAC,KAAc;AACvB,UAAM,SAAS;AAAA,MACd;AAAA,MACA;AAAA,OACE,SAAS,gBAAgB,GAAG,cAAe,OAAO;AAAA,IACrD;AACA,QAAK,CAAE,QAAS;AACf;AAAA,IACD;AAEA,eACC,qCAAgB,OAAO,KAAM,SAAK,gCAAa,OAAO,QAAQ,EAAG;AAAA,EAEnE;AAAA,EACA,kBAAAC;AACD;AAEO,IAAM,OAAO,MAAM;AACzB;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,QAAM,qBAAqB,CAAE,sBAAsB,mBAAoB;AACvE;AAAA,IACC;AAAA,IACA;AAAA,IACA,CACC,WACA,WACA,cACA,EAAE,UAAU,2BAA2B,MACnC;AACJ,UAAK,UAAU,SAAS,sBAAuB;AAC9C,eAAO;AAAA,MACR;AAEA,iBAAY,wBAAwB,oBAAqB;AACxD,cAAM,sBACL,SAAU,YAAa,GAAG,SAAS,wBACnC;AAAA,UACC;AAAA,UACA;AAAA,QACD,EAAE;AACH,YAAK,qBAAsB;AAC1B,iBAAO;AAAA,QACR;AAAA,MACD;AACA,aAAO;AAAA,IACR;AAAA,EACD;AAEA,aAAO,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;AAChD;", "names": ["metadata", "coreDataStore", "edit", "initBlock", "metadata"] }