@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 4.8 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/list-item/edit.jsx"],
"sourcesContent": ["import {\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, useRegistry } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useEnter, useTab, useMultiSelectTab, useMerge } from './hooks';\nimport {\n\tindentListItems,\n\toutdentListItems,\n\tgetIndentTarget,\n\tgetOutdentTarget,\n} from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst registry = useRegistry();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst storeSelect = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: !! getIndentTarget( storeSelect, clientId ),\n\t\t\t\tcanOutdent: !! getOutdentTarget( storeSelect, clientId ),\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={ () => outdentListItems( registry ) }\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={ () => indentListItems( registry, clientId ) }\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( clientId );\n\tconst useTabRef = useTab();\n\tconst useMultiSelectTabRef = useMultiSelectTab( 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( [\n\t\t\t\t\t\tuseEnterRef,\n\t\t\t\t\t\tuseTabRef,\n\t\t\t\t\t\tuseMultiSelectTabRef,\n\t\t\t\t\t] ) }\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;AAAA,0BAMO;AACP,kBAA0B;AAC1B,wBAA8B;AAC9B,mBAKO;AACP,qBAA6B;AAC7B,kBAAuC;AACvC,sBAAgC;AAChC,mBAA8D;AAC9D,mBAKO;AAgBL;AAdK,SAAS,SAAU,EAAE,SAAS,GAAI;AACxC,QAAM,eAAW,yBAAY;AAC7B,QAAM,EAAE,WAAW,WAAW,QAAI;AAAA,IACjC,CAAE,WAAY;AACb,YAAM,cAAc,OAAQ,oBAAAA,KAAiB;AAC7C,aAAO;AAAA,QACN,WAAW,CAAC,KAAE,8BAAiB,aAAa,QAAS;AAAA,QACrD,YAAY,CAAC,KAAE,+BAAkB,aAAa,QAAS;AAAA,MACxD;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,UAAM,+BAAkB,QAAS;AAAA;AAAA,IAC5C;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,UAAM,8BAAiB,UAAU,QAAS;AAAA;AAAA,IACrD;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,QAAS;AACvC,QAAM,gBAAY,qBAAO;AACzB,QAAM,2BAAuB,gCAAmB,QAAS;AACzD,QAAM,cAAU,uBAAU,UAAU,WAAY;AAChD,SACC,4EACC;AAAA,iDAAC,QAAK,GAAG,kBACR;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,SAAM,6BAAc;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACD,CAAE;AAAA,UACF,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"]
}