@wordpress/block-editor
Version:
8 lines (7 loc) • 3.84 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/block-allowed-blocks/allowed-blocks-control.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockAllowedBlocksModal from './modal';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockAllowedBlocksControl( { clientId } ) {\n\tconst [ isBlockControlOpened, setIsBlockControlOpened ] = useState( false );\n\tconst { blockTypes, selectedBlockNames } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tselectedBlockNames:\n\t\t\t\t\tgetBlockAttributes( clientId )?.allowedBlocks,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst filteredBlockTypes = blockTypes.filter(\n\t\t( blockType ) =>\n\t\t\thasBlockSupport( blockType, 'inserter', true ) &&\n\t\t\t( ! blockType.parent ||\n\t\t\t\tblockType.parent.includes( 'core/post-content' ) )\n\t);\n\n\tif ( ! filteredBlockTypes ) {\n\t\treturn null;\n\t}\n\n\tconst selectedBlockTypes =\n\t\tselectedBlockNames === undefined\n\t\t\t? filteredBlockTypes\n\t\t\t: filteredBlockTypes.filter( ( blockType ) =>\n\t\t\t\t\tselectedBlockNames.includes( blockType.name )\n\t\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-allowed-blocks-control\">\n\t\t\t<BaseControl\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Specify which blocks are allowed inside this container.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Allowed Blocks' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsBlockControlOpened( true );\n\t\t\t\t\t} }\n\t\t\t\t\tclassName=\"block-editor-block-allowed-blocks-control__button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage allowed blocks' ) }\n\t\t\t\t</Button>\n\t\t\t</BaseControl>\n\t\t\t{ isBlockControlOpened && (\n\t\t\t\t<BlockAllowedBlocksModal\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockTypes={ filteredBlockTypes }\n\t\t\t\t\tselectedBlockTypes={ selectedBlockTypes }\n\t\t\t\t\tonClose={ () => setIsBlockControlOpened( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAoC;AACpC,kBAAmB;AACnB,qBAAyB;AACzB,kBAA0B;AAC1B,oBAAsD;AAKtD,mBAAoC;AACpC,mBAA0C;AAoCvC;AAlCY,SAAR,0BAA4C,EAAE,SAAS,GAAI;AACjE,QAAM,CAAE,sBAAsB,uBAAwB,QAAI,yBAAU,KAAM;AAC1E,QAAM,EAAE,YAAY,mBAAmB,QAAI;AAAA,IAC1C,CAAE,WAAY;AACb,YAAM,EAAE,mBAAmB,IAAI,OAAQ,aAAAA,KAAiB;AACxD,aAAO;AAAA,QACN,YAAY,OAAQ,cAAAC,KAAY,EAAE,cAAc;AAAA,QAChD,oBACC,mBAAoB,QAAS,GAAG;AAAA,MAClC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,qBAAqB,WAAW;AAAA,IACrC,CAAE,kBACD,+BAAiB,WAAW,YAAY,IAAK,MAC3C,CAAE,UAAU,UACb,UAAU,OAAO,SAAU,mBAAoB;AAAA,EAClD;AAEA,MAAK,CAAE,oBAAqB;AAC3B,WAAO;AAAA,EACR;AAEA,QAAM,qBACL,uBAAuB,SACpB,qBACA,mBAAmB;AAAA,IAAQ,CAAE,cAC7B,mBAAmB,SAAU,UAAU,IAAK;AAAA,EAC5C;AAEJ,SACC,6CAAC,SAAI,WAAU,6CACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,UAAO;AAAA,UACN;AAAA,QACD;AAAA,QAEA;AAAA,sDAAC,8BAAY,aAAZ,EACE,8BAAI,gBAAiB,GACxB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,SAAU,MAAM;AACf,wCAAyB,IAAK;AAAA,cAC/B;AAAA,cACA,WAAU;AAAA,cAER,8BAAI,uBAAwB;AAAA;AAAA,UAC/B;AAAA;AAAA;AAAA,IACD;AAAA,IACE,wBACD;AAAA,MAAC,aAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA,YAAa;AAAA,QACb;AAAA,QACA,SAAU,MAAM,wBAAyB,KAAM;AAAA;AAAA,IAChD;AAAA,KAEF;AAEF;",
"names": ["blockEditorStore", "blocksStore", "BlockAllowedBlocksModal"]
}