UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.84 kB
{ "version": 3, "sources": ["../../src/list-item/edit.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseMerge,\n} from './hooks';\n\nexport function IndentUI( { clientId } ) {\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockIndex, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: getBlockIndex( clientId ) > 0,\n\t\t\t\tcanOutdent:\n\t\t\t\t\tgetBlockName(\n\t\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t\t) === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tshortcut={ displayShortcut.shift( 'Tab' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tshortcut=\"Tab\"\n\t\t\t\tdescription={ __( 'Indent list item' ) }\n\t\t\t\tdisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAMO;AACP,kBAA0B;AAC1B,wBAA8B;AAC9B,mBAKO;AACP,qBAA6B;AAC7B,kBAA0B;AAC1B,sBAAgC;AAKhC,mBAMO;AAqBL;AAnBK,SAAS,SAAU,EAAE,SAAS,GAAI;AACxC,QAAM,qBAAiB,gCAAmB,QAAS;AACnD,QAAM,sBAAkB,iCAAmB;AAC3C,QAAM,EAAE,WAAW,WAAW,QAAI;AAAA,IACjC,CAAE,WAAY;AACb,YAAM,EAAE,eAAe,sBAAsB,aAAa,IACzD,OAAQ,oBAAAA,KAAiB;AAC1B,aAAO;AAAA,QACN,WAAW,cAAe,QAAS,IAAI;AAAA,QACvC,YACC;AAAA,UACC,qBAAsB,qBAAsB,QAAS,CAAE;AAAA,QACxD,MAAM;AAAA,MACR;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,4EACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,UAAO,mBAAM,IAAI,gCAAmB;AAAA,QACpC,WAAQ,gBAAI,SAAU;AAAA,QACtB,UAAW,gCAAgB,MAAO,KAAM;AAAA,QACxC,iBAAc,gBAAI,mBAAoB;AAAA,QACtC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,gBAAgB;AAAA;AAAA,IACjC;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,UAAO,mBAAM,IAAI,+BAAkB;AAAA,QACnC,WAAQ,gBAAI,QAAS;AAAA,QACrB,UAAS;AAAA,QACT,iBAAc,gBAAI,kBAAmB;AAAA,QACrC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,eAAe;AAAA;AAAA,IAChC;AAAA,KACD;AAEF;AAEe,SAAR,aAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,aAAa,QAAQ,IAAI;AACjC,QAAM,iBAAa,mCAAc;AACjC,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,gBAAgB;AAAA,IAChB,2BAA2B;AAAA,EAC5B,CAAE;AACF,QAAM,kBAAc,uBAAU,EAAE,SAAS,SAAS,CAAE;AACpD,QAAM,kBAAc,uBAAU,QAAS;AACvC,QAAM,cAAU,uBAAU,UAAU,WAAY;AAChD,SACC,4EACC;AAAA,iDAAC,QAAK,GAAG,kBACR;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,SAAM,6BAAc,CAAE,aAAa,WAAY,CAAE;AAAA,UACjD,YAAW;AAAA,UACX,SAAQ;AAAA,UACR,UAAW,CAAE,gBACZ,cAAe,EAAE,SAAS,YAAY,CAAE;AAAA,UAEzC,OAAQ;AAAA,UACR,kBAAa,gBAAI,WAAY;AAAA,UAC7B,aAAc,mBAAe,gBAAI,MAAO;AAAA,UACxC;AAAA;AAAA,MACD;AAAA,MACE,iBAAiB;AAAA,OACpB;AAAA,IACA,4CAAC,qCAAc,OAAM,SACpB,sDAAC,YAAS,UAAsB,GACjC;AAAA,KACD;AAEF;", "names": ["blockEditorStore"] }