@wordpress/block-library 8.25.0 → 8.25.1-next.79a6196f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/build/audio/edit.js +10 -12
- package/build/audio/edit.js.map +1 -1
- package/build/block/edit.js +81 -34
- package/build/block/edit.js.map +1 -1
- package/build/comments-title/deprecated.js +1 -1
- package/build/comments-title/index.js +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +1 -0
- package/build/cover/edit.native.js.map +1 -1
- package/build/embed/util.js +4 -4
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.js +19 -27
- package/build/file/edit.js.map +1 -1
- package/build/gallery/edit.js +36 -17
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +3 -2
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/index.js +4 -0
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/transforms.js +4 -68
- package/build/gallery/transforms.js.map +1 -1
- package/build/group/index.js +5 -1
- package/build/group/index.js.map +1 -1
- package/build/image/deprecated.js +11 -0
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.native.js +3 -0
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +22 -21
- package/build/image/image.js.map +1 -1
- package/build/image/view.js +7 -1
- package/build/image/view.js.map +1 -1
- package/build/list/edit.js +10 -15
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.js +17 -2
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-enter.js +5 -3
- package/build/list-item/hooks/use-enter.js.map +1 -1
- package/build/list-item/hooks/use-enter.native.js +4 -3
- package/build/list-item/hooks/use-enter.native.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +2 -3
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +1 -1
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +3 -17
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +8 -4
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/media-text/media-container.native.js +3 -0
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/constants.js +3 -1
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/index.js +4 -0
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/view.js +25 -1
- package/build/navigation/view.js.map +1 -1
- package/build/paragraph/index.js +0 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +0 -1
- package/build/paragraph/transforms.js.map +1 -1
- package/build/pattern/edit.js +24 -2
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/recursion-detector.js +147 -0
- package/build/pattern/recursion-detector.js.map +1 -0
- package/build/post-featured-image/edit.js +19 -2
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +4 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +3 -1
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query-pagination-numbers/index.js +1 -1
- package/build/search/edit.js +3 -5
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +0 -4
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +7 -6
- package/build/site-logo/edit.js.map +1 -1
- package/build/spacer/edit.native.js +2 -2
- package/build/spacer/edit.native.js.map +1 -1
- package/build/tag-cloud/edit.js +5 -9
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/utils/constants.js +16 -0
- package/build/utils/constants.js.map +1 -0
- package/build/video/edit.js +11 -8
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +10 -12
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/block/edit.js +85 -38
- package/build-module/block/edit.js.map +1 -1
- package/build-module/comments-title/deprecated.js +1 -1
- package/build-module/comments-title/index.js +1 -1
- package/build-module/cover/edit/inspector-controls.js +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit.native.js +1 -0
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/embed/util.js +4 -4
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.js +19 -27
- package/build-module/file/edit.js.map +1 -1
- package/build-module/gallery/edit.js +36 -17
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +3 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/index.js +4 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/transforms.js +4 -68
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/group/index.js +5 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/deprecated.js +11 -0
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.native.js +3 -0
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +17 -16
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/view.js +7 -1
- package/build-module/image/view.js.map +1 -1
- package/build-module/list/edit.js +10 -15
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.js +18 -3
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-enter.js +5 -3
- package/build-module/list-item/hooks/use-enter.js.map +1 -1
- package/build-module/list-item/hooks/use-enter.native.js +4 -3
- package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +1 -1
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +8 -4
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/media-text/media-container.native.js +3 -0
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/constants.js +1 -0
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/index.js +5 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/view.js +25 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/paragraph/index.js +0 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +0 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/pattern/edit.js +26 -4
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/pattern/recursion-detector.js +139 -0
- package/build-module/pattern/recursion-detector.js.map +1 -0
- package/build-module/post-featured-image/edit.js +19 -2
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +4 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +3 -1
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +1 -1
- package/build-module/search/edit.js +3 -5
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +0 -4
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -6
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/spacer/edit.native.js +2 -2
- package/build-module/spacer/edit.native.js.map +1 -1
- package/build-module/tag-cloud/edit.js +6 -10
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/utils/constants.js +9 -0
- package/build-module/utils/constants.js.map +1 -0
- package/build-module/video/edit.js +11 -8
- package/build-module/video/edit.js.map +1 -1
- package/build-style/button/editor-rtl.css +0 -37
- package/build-style/button/editor.css +0 -37
- package/build-style/button/style-rtl.css +6 -6
- package/build-style/button/style.css +6 -6
- package/build-style/editor-rtl.css +2 -44
- package/build-style/editor.css +2 -44
- package/build-style/navigation/editor-rtl.css +2 -4
- package/build-style/navigation/editor.css +2 -4
- package/build-style/navigation/style-rtl.css +14 -18
- package/build-style/navigation/style.css +14 -18
- package/build-style/search/style-rtl.css +26 -27
- package/build-style/search/style.css +26 -27
- package/build-style/style-rtl.css +46 -51
- package/build-style/style.css +46 -51
- package/build-style/table/editor-rtl.css +0 -3
- package/build-style/table/editor.css +0 -3
- package/package.json +32 -32
- package/src/audio/edit.js +19 -19
- package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
- package/src/audio/test/edit.native.js +29 -0
- package/src/block/edit.js +120 -66
- package/src/button/editor.scss +0 -43
- package/src/button/style.scss +6 -6
- package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
- package/src/buttons/test/edit.native.js +49 -0
- package/src/comments-title/block.json +1 -1
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit.native.js +1 -0
- package/src/embed/util.js +2 -2
- package/src/file/edit.js +17 -24
- package/src/gallery/block.json +4 -0
- package/src/gallery/edit.js +69 -42
- package/src/gallery/gallery.js +4 -1
- package/src/gallery/index.php +15 -0
- package/src/gallery/transforms.js +2 -55
- package/src/group/block.json +5 -1
- package/src/image/deprecated.js +8 -0
- package/src/image/edit.native.js +3 -0
- package/src/image/image.js +54 -35
- package/src/image/index.php +1 -6
- package/src/image/view.js +5 -2
- package/src/list/edit.js +27 -35
- package/src/list-item/edit.js +18 -2
- package/src/list-item/hooks/use-enter.js +63 -62
- package/src/list-item/hooks/use-enter.native.js +9 -5
- package/src/list-item/hooks/use-indent-list-item.js +43 -53
- package/src/list-item/hooks/use-merge.js +1 -1
- package/src/list-item/hooks/use-outdent-list-item.js +50 -69
- package/src/list-item/hooks/use-space.js +7 -4
- package/src/media-text/media-container.native.js +3 -1
- package/src/navigation/constants.js +2 -0
- package/src/navigation/edit/index.js +11 -1
- package/src/navigation/editor.scss +1 -1
- package/src/navigation/style.scss +18 -16
- package/src/navigation/view.js +29 -3
- package/src/paragraph/block.json +0 -1
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
- package/src/paragraph/test/edit.native.js +114 -0
- package/src/pattern/edit.js +35 -3
- package/src/pattern/index.php +16 -0
- package/src/pattern/recursion-detector.js +145 -0
- package/src/pattern/test/index.js +74 -0
- package/src/post-featured-image/block.json +4 -0
- package/src/post-featured-image/edit.js +32 -1
- package/src/post-featured-image/index.php +31 -0
- package/src/query/edit/inspector-controls/index.js +2 -0
- package/src/query-pagination-numbers/block.json +1 -1
- package/src/search/block.json +0 -4
- package/src/search/edit.js +2 -8
- package/src/search/index.php +3 -7
- package/src/search/style.scss +27 -29
- package/src/site-logo/edit.js +3 -4
- package/src/social-link/index.php +1 -1
- package/src/spacer/edit.native.js +4 -2
- package/src/table/editor.scss +0 -3
- package/src/tag-cloud/edit.js +7 -7
- package/src/template-part/index.php +6 -0
- package/src/utils/constants.js +8 -0
- package/src/video/edit.js +29 -27
package/build/list/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blockEditor","require","_components","_data","_i18n","_icons","_blocks","_element","_deprecated","_interopRequireDefault","_orderedListSettings","_utils","_tagName","TEMPLATE","NATIVE_MARGIN_SPACING","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","values","newAttributes","newInnerBlocks","migrateToListV2","deprecated","since","version","alternative","batch","useOutdentList","canOutdent","useSelect","innerSelect","getBlockRootClientId","getBlock","parentId","name","replaceBlocks","selectionChange","getBlockAttributes","useCallback","parentBlockId","parentBlockAttributes","newParentBlock","createBlock","innerBlocks","length","IndentUI","outdentList","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","Edit","setAttributes","style","ordered","type","reversed","start","blockProps","useBlockProps","Platform","isNative","listStyleType","undefined","innerBlocksProps","useInnerBlocksProps","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","marginVertical","marginHorizontal","renderAppender","__experimentalCaptureToolbars","controls","BlockControls","group","formatListBulletsRTL","formatListBullets","isActive","formatListNumberedRTL","formatListNumbered","default"],"sources":["@wordpress/block-library/src/list/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { canOutdent } = useSelect(\n\t\t( innerSelect ) => {\n\t\t\tconst { getBlockRootClientId, getBlock } =\n\t\t\t\tinnerSelect( blockEditorStore );\n\t\t\tconst parentId = getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tcanOutdent:\n\t\t\t\t\t!! parentId &&\n\t\t\t\t\tgetBlock( parentId ).name === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn [\n\t\tcanOutdent,\n\t\tuseCallback( () => {\n\t\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t\t// Create a new parent block without the inner blocks.\n\t\t\tconst newParentBlock = createBlock(\n\t\t\t\t'core/list-item',\n\t\t\t\tparentBlockAttributes\n\t\t\t);\n\t\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t\t// and make the inner blocks siblings of the parent.\n\t\t\treplaceBlocks(\n\t\t\t\t[ parentBlockId ],\n\t\t\t\t[ newParentBlock, ...innerBlocks ]\n\t\t\t);\n\t\t\t// Select the last child of the list being outdent.\n\t\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t\t}, [ clientId ] ),\n\t];\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst [ canOutdent, outdentList ] = useOutdentList( clientId );\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\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list-item' ],\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAQA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAC,sBAAA,CAAAR,OAAA;AAKA,IAAAS,oBAAA,GAAAD,sBAAA,CAAAR,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAH,sBAAA,CAAAR,OAAA;AA7BA;AACA;AACA;;AAsBA;AACA;AACA;;AAKA,MAAMY,QAAQ,GAAG,CAAE,CAAE,gBAAgB,CAAE,CAAE;AACzC,MAAMC,qBAAqB,GAAG,CAAC;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAEC,UAAU,EAAEC,QAAQ,EAAG;EACjD,MAAMC,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC,qBAAqB;IAAEC;EAAmB,CAAC,GAClD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAEhC,IAAAC,kBAAS,EAAE,MAAM;IAChB;;IAEA,IAAK,CAAER,UAAU,CAACS,MAAM,EAAG;MAC1B;IACD;IAEA,MAAM,CAAEC,aAAa,EAAEC,cAAc,CAAE,GAAG,IAAAC,sBAAe,EAAEZ,UAAW,CAAC;IAEvE,IAAAa,mBAAU,EAAE,mCAAmC,EAAE;MAChDC,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACd,CAAE,CAAC;IAEHd,QAAQ,CAACe,KAAK,CAAE,MAAM;MACrBb,qBAAqB,CAAEH,QAAQ,EAAES,aAAc,CAAC;MAChDL,kBAAkB,CAAEJ,QAAQ,EAAEU,cAAe,CAAC;IAC/C,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEX,UAAU,CAACS,MAAM,CAAG,CAAC;AAC3B;AAEA,SAASS,cAAcA,CAAEjB,QAAQ,EAAG;EACnC,MAAM;IAAEkB;EAAW,CAAC,GAAG,IAAAC,eAAS,EAC7BC,WAAW,IAAM;IAClB,MAAM;MAAEC,oBAAoB;MAAEC;IAAS,CAAC,GACvCF,WAAW,CAAEd,kBAAiB,CAAC;IAChC,MAAMiB,QAAQ,GAAGF,oBAAoB,CAAErB,QAAS,CAAC;IACjD,OAAO;MACNkB,UAAU,EACT,CAAC,CAAEK,QAAQ,IACXD,QAAQ,CAAEC,QAAS,CAAC,CAACC,IAAI,KAAK;IAChC,CAAC;EACF,CAAC,EACD,CAAExB,QAAQ,CACX,CAAC;EACD,MAAM;IAAEyB,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAArB,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEe,oBAAoB;IAAEM,kBAAkB;IAAEL;EAAS,CAAC,GAC3D,IAAAH,eAAS,EAAEb,kBAAiB,CAAC;EAE9B,OAAO,CACNY,UAAU,EACV,IAAAU,oBAAW,EAAE,MAAM;IAClB,MAAMC,aAAa,GAAGR,oBAAoB,CAAErB,QAAS,CAAC;IACtD,MAAM8B,qBAAqB,GAAGH,kBAAkB,CAAEE,aAAc,CAAC;IACjE;IACA,MAAME,cAAc,GAAG,IAAAC,mBAAW,EACjC,gBAAgB,EAChBF,qBACD,CAAC;IACD,MAAM;MAAEG;IAAY,CAAC,GAAGX,QAAQ,CAAEtB,QAAS,CAAC;IAC5C;IACA;IACAyB,aAAa,CACZ,CAAEI,aAAa,CAAE,EACjB,CAAEE,cAAc,EAAE,GAAGE,WAAW,CACjC,CAAC;IACD;IACAP,eAAe,CAAEO,WAAW,CAAEA,WAAW,CAACC,MAAM,GAAG,CAAC,CAAE,CAAClC,QAAS,CAAC;EAClE,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC,CACjB;AACF;AAEA,SAASmC,QAAQA,CAAE;EAAEnC;AAAS,CAAC,EAAG;EACjC,MAAM,CAAEkB,UAAU,EAAEkB,WAAW,CAAE,GAAGnB,cAAc,CAAEjB,QAAS,CAAC;EAC9D,OACC,IAAAqC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,uBAAgB,GAAGC,oBAAe;IACnDC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,mBAAoB,CAAG;IACzCE,QAAQ,EAAG,CAAE9B,UAAY;IACzB+B,OAAO,EAAGb;EAAa,CACvB,CACA,CAAC;AAEL;AAEe,SAASc,IAAIA,CAAE;EAAEnD,UAAU;EAAEoD,aAAa;EAAEnD,QAAQ;EAAEoD;AAAM,CAAC,EAAG;EAC9E,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGzD,UAAU;EACrD,MAAM0D,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCN,KAAK,EAAE;MACN,IAAKO,iBAAQ,CAACC,QAAQ,IAAIR,KAAK,CAAE;MACjCS,aAAa,EAAER,OAAO,IAAIC,IAAI,KAAK,SAAS,GAAGA,IAAI,GAAGQ;IACvD;EACD,CAAE,CAAC;EAEH,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEP,UAAU,EAAE;IACzDQ,aAAa,EAAE,CAAE,gBAAgB,CAAE;IACnCC,QAAQ,EAAEtE,QAAQ;IAClBuE,YAAY,EAAE,KAAK;IACnBC,8BAA8B,EAAE,IAAI;IACpC,IAAKT,iBAAQ,CAACC,QAAQ,IAAI;MACzBS,cAAc,EAAExE,qBAAqB;MACrCyE,gBAAgB,EAAEzE,qBAAqB;MACvC0E,cAAc,EAAE;IACjB,CAAC,CAAE;IACHC,6BAA6B,EAAE;EAChC,CAAE,CAAC;EACH1E,gBAAgB,CAAEC,UAAU,EAAEC,QAAS,CAAC;EAExC,MAAMyE,QAAQ,GACb,IAAApC,MAAA,CAAAC,aAAA,EAACvD,YAAA,CAAA2F,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAAtC,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGkC,2BAAoB,GAAGC,wBAAmB;IAC3DhC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAC3BC,WAAW,EAAG,IAAAD,QAAE,EAAE,2BAA4B,CAAG;IACjDgC,QAAQ,EAAGzB,OAAO,KAAK,KAAO;IAC9BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,aAAa,CAAE;QAAEE,OAAO,EAAE;MAAM,CAAE,CAAC;IACpC;EAAG,CACH,CAAC,EACF,IAAAhB,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGqC,4BAAqB,GAAGC,yBAAoB;IAC7DnC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,yBAA0B,CAAG;IAC/CgC,QAAQ,EAAGzB,OAAO,KAAK,IAAM;IAC7BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,aAAa,CAAE;QAAEE,OAAO,EAAE;MAAK,CAAE,CAAC;IACnC;EAAG,CACH,CAAC,EACF,IAAAhB,MAAA,CAAAC,aAAA,EAACH,QAAQ;IAACnC,QAAQ,EAAGA;EAAU,CAAE,CACnB,CACf;EAED,OACC,IAAAqC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC3C,QAAA,CAAAsF,OAAO;IACP5B,OAAO,EAAGA,OAAS;IACnBE,QAAQ,EAAGA,QAAU;IACrBC,KAAK,EAAGA,KAAO;IAAA,GACVO;EAAgB,CACrB,CAAC,EACAU,QAAQ,EACRpB,OAAO,IACR,IAAAhB,MAAA,CAAAC,aAAA,EAAC7C,oBAAA,CAAAwF,OAAmB;IAElB9B,aAAa;IACbI,QAAQ;IACRC,KAAK;IACLF;EAAI,CAEL,CAED,CAAC;AAEL"}
|
|
1
|
+
{"version":3,"names":["_blockEditor","require","_components","_data","_i18n","_icons","_blocks","_element","_deprecated","_interopRequireDefault","_orderedListSettings","_utils","_tagName","TEMPLATE","NATIVE_MARGIN_SPACING","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","values","newAttributes","newInnerBlocks","migrateToListV2","deprecated","since","version","alternative","batch","useOutdentList","replaceBlocks","selectionChange","getBlockRootClientId","getBlockAttributes","getBlock","useSelect","useCallback","parentBlockId","parentBlockAttributes","newParentBlock","createBlock","innerBlocks","length","IndentUI","outdentList","canOutdent","select","getBlockName","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","Edit","setAttributes","style","ordered","type","reversed","start","blockProps","useBlockProps","Platform","isNative","listStyleType","undefined","innerBlocksProps","useInnerBlocksProps","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","marginVertical","marginHorizontal","renderAppender","__experimentalCaptureToolbars","controls","BlockControls","group","formatListBulletsRTL","formatListBullets","isActive","formatListNumberedRTL","formatListNumbered","default"],"sources":["@wordpress/block-library/src/list/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn useCallback( () => {\n\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t// Create a new parent block without the inner blocks.\n\t\tconst newParentBlock = createBlock(\n\t\t\t'core/list-item',\n\t\t\tparentBlockAttributes\n\t\t);\n\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t// and make the inner blocks siblings of the parent.\n\t\treplaceBlocks( [ parentBlockId ], [ newParentBlock, ...innerBlocks ] );\n\t\t// Select the last child of the list being outdent.\n\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t}, [ clientId ] );\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst outdentList = useOutdentList( clientId );\n\tconst canOutdent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t'core/list-item'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\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\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list-item' ],\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
package/build/list-item/edit.js
CHANGED
|
@@ -11,6 +11,7 @@ var _i18n = require("@wordpress/i18n");
|
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _icons = require("@wordpress/icons");
|
|
13
13
|
var _compose = require("@wordpress/compose");
|
|
14
|
+
var _data = require("@wordpress/data");
|
|
14
15
|
var _hooks = require("./hooks");
|
|
15
16
|
var _utils = require("./utils");
|
|
16
17
|
/**
|
|
@@ -24,8 +25,22 @@ var _utils = require("./utils");
|
|
|
24
25
|
function IndentUI({
|
|
25
26
|
clientId
|
|
26
27
|
}) {
|
|
27
|
-
const
|
|
28
|
-
const
|
|
28
|
+
const indentListItem = (0, _hooks.useIndentListItem)(clientId);
|
|
29
|
+
const outdentListItem = (0, _hooks.useOutdentListItem)();
|
|
30
|
+
const {
|
|
31
|
+
canIndent,
|
|
32
|
+
canOutdent
|
|
33
|
+
} = (0, _data.useSelect)(select => {
|
|
34
|
+
const {
|
|
35
|
+
getBlockIndex,
|
|
36
|
+
getBlockRootClientId,
|
|
37
|
+
getBlockName
|
|
38
|
+
} = select(_blockEditor.store);
|
|
39
|
+
return {
|
|
40
|
+
canIndent: getBlockIndex(clientId) > 0,
|
|
41
|
+
canOutdent: getBlockName(getBlockRootClientId(getBlockRootClientId(clientId))) === 'core/list-item'
|
|
42
|
+
};
|
|
43
|
+
}, [clientId]);
|
|
29
44
|
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.ToolbarButton, {
|
|
30
45
|
icon: (0, _i18n.isRTL)() ? _icons.formatOutdentRTL : _icons.formatOutdent,
|
|
31
46
|
title: (0, _i18n.__)('Outdent'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_compose","_hooks","_utils","IndentUI","clientId","
|
|
1
|
+
{"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_compose","_data","_hooks","_utils","IndentUI","clientId","indentListItem","useIndentListItem","outdentListItem","useOutdentListItem","canIndent","canOutdent","useSelect","select","getBlockIndex","getBlockRootClientId","getBlockName","blockEditorStore","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","formatIndentRTL","formatIndent","isDisabled","ListItemEdit","attributes","setAttributes","onReplace","mergeBlocks","placeholder","content","blockProps","useBlockProps","ref","useCopy","innerBlocksProps","useInnerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","useEnterRef","useEnter","useSpaceRef","useSpace","onSplit","useSplit","onMerge","useMerge","RichText","useMergeRefs","identifier","tagName","onChange","nextContent","value","blocks","args","convertToListItems","undefined","children","BlockControls","group"],"sources":["@wordpress/block-library/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';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\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\tdescribedBy={ __( '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\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! 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\tonReplace,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( 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\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={\n\t\t\t\t\t\tonReplace\n\t\t\t\t\t\t\t? ( blocks, ...args ) => {\n\t\t\t\t\t\t\t\t\tonReplace(\n\t\t\t\t\t\t\t\t\t\tconvertToListItems( blocks ),\n\t\t\t\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\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":"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"}
|
|
@@ -28,11 +28,12 @@ function useEnter(props) {
|
|
|
28
28
|
const {
|
|
29
29
|
getBlock,
|
|
30
30
|
getBlockRootClientId,
|
|
31
|
-
getBlockIndex
|
|
31
|
+
getBlockIndex,
|
|
32
|
+
getBlockName
|
|
32
33
|
} = (0, _data.useSelect)(_blockEditor.store);
|
|
33
34
|
const propsRef = (0, _element.useRef)(props);
|
|
34
35
|
propsRef.current = props;
|
|
35
|
-
const
|
|
36
|
+
const outdentListItem = (0, _useOutdentListItem.default)();
|
|
36
37
|
return (0, _compose.useRefEffect)(element => {
|
|
37
38
|
function onKeyDown(event) {
|
|
38
39
|
if (event.defaultPrevented || event.keyCode !== _keycodes.ENTER) {
|
|
@@ -46,6 +47,7 @@ function useEnter(props) {
|
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
49
|
event.preventDefault();
|
|
50
|
+
const canOutdent = getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item';
|
|
49
51
|
if (canOutdent) {
|
|
50
52
|
outdentListItem();
|
|
51
53
|
return;
|
|
@@ -74,6 +76,6 @@ function useEnter(props) {
|
|
|
74
76
|
return () => {
|
|
75
77
|
element.removeEventListener('keydown', onKeyDown);
|
|
76
78
|
};
|
|
77
|
-
}, [
|
|
79
|
+
}, []);
|
|
78
80
|
}
|
|
79
81
|
//# sourceMappingURL=use-enter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_element","_compose","_keycodes","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","
|
|
1
|
+
{"version":3,"names":["_blocks","require","_element","_compose","_keycodes","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","getBlockName","useSelect","propsRef","useRef","current","outdentListItem","useOutdentListItem","useRefEffect","element","onKeyDown","event","defaultPrevented","keyCode","ENTER","content","clientId","length","preventDefault","canOutdent","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst canOutdent =\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item';\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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"}
|
|
@@ -26,11 +26,12 @@ function useEnter(props, preventDefault) {
|
|
|
26
26
|
const {
|
|
27
27
|
getBlock,
|
|
28
28
|
getBlockRootClientId,
|
|
29
|
-
getBlockIndex
|
|
29
|
+
getBlockIndex,
|
|
30
|
+
getBlockName
|
|
30
31
|
} = (0, _data.useSelect)(_blockEditor.store);
|
|
31
32
|
const propsRef = (0, _element.useRef)(props);
|
|
32
33
|
propsRef.current = props;
|
|
33
|
-
const
|
|
34
|
+
const outdentListItem = (0, _useOutdentListItem.default)();
|
|
34
35
|
return {
|
|
35
36
|
onEnter() {
|
|
36
37
|
const {
|
|
@@ -41,7 +42,7 @@ function useEnter(props, preventDefault) {
|
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
preventDefault.current = true;
|
|
44
|
-
if (
|
|
45
|
+
if (getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item') {
|
|
45
46
|
outdentListItem();
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_element","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","preventDefault","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","
|
|
1
|
+
{"version":3,"names":["_blocks","require","_element","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","preventDefault","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","getBlockName","useSelect","propsRef","useRef","current","outdentListItem","useOutdentListItem","onEnter","content","clientId","length","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props, preventDefault ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn {\n\t\tonEnter() {\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpreventDefault.current = true;\n\t\t\tif (\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item'\n\t\t\t) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t},\n\t};\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,mBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAfA;AACA;AACA;;AAUA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,KAAK,EAAEC,cAAc,EAAG;EACzD,MAAM;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC,aAAa;IAAEC;EAAa,CAAC,GACpE,IAAAC,eAAS,EAAEL,kBAAiB,CAAC;EAC9B,MAAMM,QAAQ,GAAG,IAAAC,eAAM,EAAEZ,KAAM,CAAC;EAChCW,QAAQ,CAACE,OAAO,GAAGb,KAAK;EACxB,MAAMc,eAAe,GAAG,IAAAC,2BAAkB,EAAC,CAAC;EAE5C,OAAO;IACNC,OAAOA,CAAA,EAAG;MACT,MAAM;QAAEC,OAAO;QAAEC;MAAS,CAAC,GAAGP,QAAQ,CAACE,OAAO;MAC9C,IAAKI,OAAO,CAACE,MAAM,EAAG;QACrB;MACD;MACAlB,cAAc,CAACY,OAAO,GAAG,IAAI;MAC7B,IACCJ,YAAY,CACXF,oBAAoB,CACnBA,oBAAoB,CAAEI,QAAQ,CAACE,OAAO,CAACK,QAAS,CACjD,CACD,CAAC,KAAK,gBAAgB,EACrB;QACDJ,eAAe,CAAC,CAAC;QACjB;MACD;MACA;MACA,MAAMM,kBAAkB,GAAGd,QAAQ,CAClCC,oBAAoB,CAAEW,QAAS,CAChC,CAAC;MACD,MAAMG,UAAU,GAAGb,aAAa,CAAEU,QAAS,CAAC;MAC5C,MAAMI,IAAI,GAAG,IAAAC,kBAAU,EAAE;QACxB,GAAGH,kBAAkB;QACrBI,WAAW,EAAEJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAChD,CAAC,EACDJ,UACD;MACD,CAAE,CAAC;MACH,MAAMK,MAAM,GAAG,IAAAC,mBAAW,EAAE,IAAAC,2BAAmB,EAAC,CAAE,CAAC;MACnD;MACA;MACA,MAAMC,KAAK,GAAG,CACb,IAAKT,kBAAkB,CAACI,WAAW,CAAEH,UAAU,CAAE,CAC/CG,WAAW,CAAE,CAAC,CAAE,EAAEA,WAAW,IAAI,EAAE,CAAE,EACvC,GAAGJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAAEJ,UAAU,GAAG,CAAE,CAAC,CACzD;MACD,MAAMS,IAAI,GAAGD,KAAK,CAACV,MAAM,GACtB,CACA,IAAAI,kBAAU,EAAE;QACX,GAAGH,kBAAkB;QACrBI,WAAW,EAAEK;MACd,CAAE,CAAC,CACF,GACD,EAAE;MACL3B,aAAa,CACZkB,kBAAkB,CAACF,QAAQ,EAC3B,CAAEI,IAAI,EAAEI,MAAM,EAAE,GAAGI,IAAI,CAAE,EACzB,CACD,CAAC;MACD;MACA;MACA3B,eAAe,CAAEuB,MAAM,CAACR,QAAS,CAAC;IACnC;EACD,CAAC;AACF"}
|
|
@@ -13,7 +13,6 @@ var _blocks = require("@wordpress/blocks");
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
function useIndentListItem(clientId) {
|
|
16
|
-
const canIndent = (0, _data.useSelect)(select => select(_blockEditor.store).getBlockIndex(clientId) > 0, [clientId]);
|
|
17
16
|
const {
|
|
18
17
|
replaceBlocks,
|
|
19
18
|
selectionChange,
|
|
@@ -27,7 +26,7 @@ function useIndentListItem(clientId) {
|
|
|
27
26
|
hasMultiSelection,
|
|
28
27
|
getMultiSelectedBlockClientIds
|
|
29
28
|
} = (0, _data.useSelect)(_blockEditor.store);
|
|
30
|
-
return
|
|
29
|
+
return (0, _element.useCallback)(() => {
|
|
31
30
|
const _hasMultiSelection = hasMultiSelection();
|
|
32
31
|
const clientIds = _hasMultiSelection ? getMultiSelectedBlockClientIds() : [clientId];
|
|
33
32
|
const clonedBlocks = clientIds.map(_clientId => (0, _blocks.cloneBlock)(getBlock(_clientId)));
|
|
@@ -55,6 +54,6 @@ function useIndentListItem(clientId) {
|
|
|
55
54
|
} else {
|
|
56
55
|
multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId);
|
|
57
56
|
}
|
|
58
|
-
}, [clientId])
|
|
57
|
+
}, [clientId]);
|
|
59
58
|
}
|
|
60
59
|
//# sourceMappingURL=use-indent-list-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","replaceBlocks","selectionChange","multiSelect","useDispatch","blockEditorStore","getBlock","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","getMultiSelectedBlockClientIds","useSelect","useCallback","_hasMultiSelection","clientIds","clonedBlocks","map","_clientId","cloneBlock","previousSiblingId","newListItem","innerBlocks","length","createBlock","push","selectionStart","selectionEnd","attributeKey","offset"],"sources":["@wordpress/block-library/src/list-item/hooks/use-indent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn useCallback( () => {\n\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\tconst clientIds = _hasMultiSelection\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: [ clientId ];\n\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t);\n\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t}\n\t\t// A list item usually has one `list`, but it's possible to have\n\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t// merge the new blocks to the last `list`.\n\t\tnewListItem.innerBlocks[\n\t\t\tnewListItem.innerBlocks.length - 1\n\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t// We get the selection start/end here, because when\n\t\t// we replace blocks, the selection is updated too.\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\treplaceBlocks( [ previousSiblingId, ...clientIds ], [ newListItem ] );\n\t\tif ( ! _hasMultiSelection ) {\n\t\t\tselectionChange(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\tselectionEnd.offset\n\t\t\t);\n\t\t} else {\n\t\t\tmultiSelect(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}, [ clientId ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,iBAAiBA,CAAEC,QAAQ,EAAG;EACrD,MAAM;IAAEC,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACpD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAChC,MAAM;IACLC,QAAQ;IACRC,wBAAwB;IACxBC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEP,kBAAiB,CAAC;EACjC,OAAO,IAAAQ,oBAAW,EAAE,MAAM;IACzB,MAAMC,kBAAkB,GAAGJ,iBAAiB,CAAC,CAAC;IAC9C,MAAMK,SAAS,GAAGD,kBAAkB,GACjCH,8BAA8B,CAAC,CAAC,GAChC,CAAEX,QAAQ,CAAE;IACf,MAAMgB,YAAY,GAAGD,SAAS,CAACE,GAAG,CAAIC,SAAS,IAC9C,IAAAC,kBAAU,EAAEb,QAAQ,CAAEY,SAAU,CAAE,CACnC,CAAC;IACD,MAAME,iBAAiB,GAAGb,wBAAwB,CAAEP,QAAS,CAAC;IAC9D,MAAMqB,WAAW,GAAG,IAAAF,kBAAU,EAAEb,QAAQ,CAAEc,iBAAkB,CAAE,CAAC;IAC/D;IACA,IAAK,CAAEC,WAAW,CAACC,WAAW,EAAEC,MAAM,EAAG;MACxCF,WAAW,CAACC,WAAW,GAAG,CAAE,IAAAE,mBAAW,EAAE,WAAY,CAAC,CAAE;IACzD;IACA;IACA;IACA;IACAH,WAAW,CAACC,WAAW,CACtBD,WAAW,CAACC,WAAW,CAACC,MAAM,GAAG,CAAC,CAClC,CAACD,WAAW,CAACG,IAAI,CAAE,GAAGT,YAAa,CAAC;;IAErC;IACA;IACA,MAAMU,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;IAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;IACtC;IACA;IACA;IACAR,aAAa,CAAE,CAAEmB,iBAAiB,EAAE,GAAGL,SAAS,CAAE,EAAE,CAAEM,WAAW,CAAG,CAAC;IACrE,IAAK,CAAEP,kBAAkB,EAAG;MAC3BZ,eAAe,CACdc,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1B2B,YAAY,CAACC,YAAY,EACzBD,YAAY,CAAC3B,QAAQ,KAAK0B,cAAc,CAAC1B,QAAQ,GAC9C0B,cAAc,CAACG,MAAM,GACrBF,YAAY,CAACE,MAAM,EACtBF,YAAY,CAACE,MACd,CAAC;IACF,CAAC,MAAM;MACN1B,WAAW,CACVa,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1BgB,YAAY,CAAEA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAE,CAACvB,QACzC,CAAC;IACF;EACD,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;AAClB"}
|
|
@@ -29,7 +29,7 @@ function useMerge(clientId, onMerge) {
|
|
|
29
29
|
mergeBlocks,
|
|
30
30
|
moveBlocksToPosition
|
|
31
31
|
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
32
|
-
const
|
|
32
|
+
const outdentListItem = (0, _useOutdentListItem.default)();
|
|
33
33
|
function getTrailingId(id) {
|
|
34
34
|
const order = getBlockOrder(id);
|
|
35
35
|
if (!order.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_blockEditor","_useOutdentListItem","_interopRequireDefault","useMerge","clientId","onMerge","registry","useRegistry","getPreviousBlockClientId","getNextBlockClientId","getBlockOrder","getBlockRootClientId","getBlockName","useSelect","blockEditorStore","mergeBlocks","moveBlocksToPosition","useDispatch","outdentListItem","useOutdentListItem","getTrailingId","id","order","length","getParentListItemId","listId","parentListItemId","_getNextId","next","getNextId","forward","mergeWithNested","clientIdA","clientIdB","batch","nestedListClientId","nextBlockClientId","previousBlockClientId","trailingId"],"sources":["@wordpress/block-library/src/list-item/hooks/use-merge.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useMerge( clientId, onMerge ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition } =\n\t\tuseDispatch( blockEditorStore );\n\tconst
|
|
1
|
+
{"version":3,"names":["_data","require","_blockEditor","_useOutdentListItem","_interopRequireDefault","useMerge","clientId","onMerge","registry","useRegistry","getPreviousBlockClientId","getNextBlockClientId","getBlockOrder","getBlockRootClientId","getBlockName","useSelect","blockEditorStore","mergeBlocks","moveBlocksToPosition","useDispatch","outdentListItem","useOutdentListItem","getTrailingId","id","order","length","getParentListItemId","listId","parentListItemId","_getNextId","next","getNextId","forward","mergeWithNested","clientIdA","clientIdB","batch","nestedListClientId","nextBlockClientId","previousBlockClientId","trailingId"],"sources":["@wordpress/block-library/src/list-item/hooks/use-merge.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useMerge( clientId, onMerge ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition } =\n\t\tuseDispatch( blockEditorStore );\n\tconst outdentListItem = useOutdentListItem();\n\n\tfunction getTrailingId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn id;\n\t\t}\n\n\t\treturn getTrailingId( order[ order.length - 1 ] );\n\t}\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\t/**\n\t * Return the next list item with respect to the given list item. If none,\n\t * return the next list item of the parent list item if it exists.\n\t *\n\t * @param {string} id A list item client ID.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction _getNextId( id ) {\n\t\tconst next = getNextBlockClientId( id );\n\t\tif ( next ) return next;\n\t\tconst parentListItemId = getParentListItemId( id );\n\t\tif ( ! parentListItemId ) return;\n\t\treturn _getNextId( parentListItemId );\n\t}\n\n\t/**\n\t * Given a client ID, return the client ID of the list item on the next\n\t * line, regardless of indentation level.\n\t *\n\t * @param {string} id The client ID of the current list item.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction getNextId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\t// If the list item does not have a nested list, return the next list\n\t\t// item.\n\t\tif ( ! order.length ) {\n\t\t\treturn _getNextId( id );\n\t\t}\n\n\t\t// Get the first list item in the nested list.\n\t\treturn getBlockOrder( order[ 0 ] )[ 0 ];\n\t}\n\n\treturn ( forward ) => {\n\t\tfunction mergeWithNested( clientIdA, clientIdB ) {\n\t\t\tregistry.batch( () => {\n\t\t\t\t// When merging a sub list item with a higher next list item, we\n\t\t\t\t// also need to move any nested list items. Check if there's a\n\t\t\t\t// listed list, and append its nested list items to the current\n\t\t\t\t// list.\n\t\t\t\tconst [ nestedListClientId ] = getBlockOrder( clientIdB );\n\t\t\t\tif ( nestedListClientId ) {\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tgetBlockOrder( nestedListClientId ),\n\t\t\t\t\t\tnestedListClientId,\n\t\t\t\t\t\tgetBlockRootClientId( clientIdA )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmergeBlocks( clientIdA, clientIdB );\n\t\t\t} );\n\t\t}\n\n\t\tif ( forward ) {\n\t\t\tconst nextBlockClientId = getNextId( clientId );\n\n\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\tonMerge( forward );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( getParentListItemId( nextBlockClientId ) ) {\n\t\t\t\toutdentListItem( nextBlockClientId );\n\t\t\t} else {\n\t\t\t\tmergeWithNested( clientId, nextBlockClientId );\n\t\t\t}\n\t\t} else {\n\t\t\t// Merging is only done from the top level. For lowel levels, the\n\t\t\t// list item is outdented instead.\n\t\t\tconst previousBlockClientId = getPreviousBlockClientId( clientId );\n\t\t\tif ( getParentListItemId( clientId ) ) {\n\t\t\t\toutdentListItem( clientId );\n\t\t\t} else if ( previousBlockClientId ) {\n\t\t\t\tconst trailingId = getTrailingId( previousBlockClientId );\n\t\t\t\tmergeWithNested( trailingId, clientId );\n\t\t\t} else {\n\t\t\t\tonMerge( forward );\n\t\t\t}\n\t\t}\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -12,22 +12,8 @@ var _blocks = require("@wordpress/blocks");
|
|
|
12
12
|
* WordPress dependencies
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
function useOutdentListItem(
|
|
15
|
+
function useOutdentListItem() {
|
|
16
16
|
const registry = (0, _data.useRegistry)();
|
|
17
|
-
const {
|
|
18
|
-
canOutdent
|
|
19
|
-
} = (0, _data.useSelect)(innerSelect => {
|
|
20
|
-
const {
|
|
21
|
-
getBlockRootClientId,
|
|
22
|
-
getBlockName
|
|
23
|
-
} = innerSelect(_blockEditor.store);
|
|
24
|
-
const grandParentId = getBlockRootClientId(getBlockRootClientId(clientId));
|
|
25
|
-
const grandParentName = getBlockName(grandParentId);
|
|
26
|
-
const isListItem = grandParentName === 'core/list-item';
|
|
27
|
-
return {
|
|
28
|
-
canOutdent: isListItem
|
|
29
|
-
};
|
|
30
|
-
}, [clientId]);
|
|
31
17
|
const {
|
|
32
18
|
moveBlocksToPosition,
|
|
33
19
|
removeBlock,
|
|
@@ -50,7 +36,7 @@ function useOutdentListItem(clientId) {
|
|
|
50
36
|
if (getBlockName(parentListItemId) !== 'core/list-item') return;
|
|
51
37
|
return parentListItemId;
|
|
52
38
|
}
|
|
53
|
-
return
|
|
39
|
+
return (0, _element.useCallback)((clientIds = getSelectedBlockClientIds()) => {
|
|
54
40
|
if (!Array.isArray(clientIds)) {
|
|
55
41
|
clientIds = [clientIds];
|
|
56
42
|
}
|
|
@@ -86,6 +72,6 @@ function useOutdentListItem(clientId) {
|
|
|
86
72
|
removeBlock(parentListId, shouldSelectParent);
|
|
87
73
|
}
|
|
88
74
|
});
|
|
89
|
-
}, [])
|
|
75
|
+
}, []);
|
|
90
76
|
}
|
|
91
77
|
//# sourceMappingURL=use-outdent-list-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","registry","useRegistry","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","useDispatch","blockEditorStore","getBlockRootClientId","getBlockName","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","useSelect","getParentListItemId","id","listId","parentListItemId","useCallback","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","cloneBlock","clientId","shouldSelectParent"],"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn useCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\tclientIds = [ clientIds ];\n\t\t}\n\n\t\tif ( ! clientIds.length ) return;\n\n\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t// Can't outdent if it's not a list item.\n\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) return;\n\n\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t// Can't outdent if it's at the top level.\n\t\tif ( ! parentListItemId ) return;\n\n\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\tconst order = getBlockOrder( parentListId );\n\t\tconst followingListItems = order.slice(\n\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t);\n\n\t\tregistry.batch( () => {\n\t\t\tif ( followingListItems.length ) {\n\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\tgetBlock( parentListId ),\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tfollowingListItems,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tnestedListId\n\t\t\t\t);\n\t\t\t}\n\t\t\tmoveBlocksToPosition(\n\t\t\t\tclientIds,\n\t\t\t\tparentListId,\n\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t);\n\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n"],"mappings":"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"}
|
|
@@ -21,9 +21,10 @@ var _useIndentListItem = _interopRequireDefault(require("./use-indent-list-item"
|
|
|
21
21
|
function useSpace(clientId) {
|
|
22
22
|
const {
|
|
23
23
|
getSelectionStart,
|
|
24
|
-
getSelectionEnd
|
|
24
|
+
getSelectionEnd,
|
|
25
|
+
getBlockIndex
|
|
25
26
|
} = (0, _data.useSelect)(_blockEditor.store);
|
|
26
|
-
const
|
|
27
|
+
const indentListItem = (0, _useIndentListItem.default)(clientId);
|
|
27
28
|
return (0, _compose.useRefEffect)(element => {
|
|
28
29
|
function onKeyDown(event) {
|
|
29
30
|
const {
|
|
@@ -33,11 +34,14 @@ function useSpace(clientId) {
|
|
|
33
34
|
metaKey,
|
|
34
35
|
ctrlKey
|
|
35
36
|
} = event;
|
|
36
|
-
if (event.defaultPrevented ||
|
|
37
|
+
if (event.defaultPrevented || keyCode !== _keycodes.SPACE ||
|
|
37
38
|
// Only override when no modifiers are pressed.
|
|
38
39
|
shiftKey || altKey || metaKey || ctrlKey) {
|
|
39
40
|
return;
|
|
40
41
|
}
|
|
42
|
+
if (getBlockIndex(clientId) === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
41
45
|
const selectionStart = getSelectionStart();
|
|
42
46
|
const selectionEnd = getSelectionEnd();
|
|
43
47
|
if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
|
|
@@ -49,6 +53,6 @@ function useSpace(clientId) {
|
|
|
49
53
|
return () => {
|
|
50
54
|
element.removeEventListener('keydown', onKeyDown);
|
|
51
55
|
};
|
|
52
|
-
}, [
|
|
56
|
+
}, [clientId, indentListItem]);
|
|
53
57
|
}
|
|
54
58
|
//# sourceMappingURL=use-space.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","useSpace","clientId","getSelectionStart","getSelectionEnd","
|
|
1
|
+
{"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","useSpace","clientId","getSelectionStart","getSelectionEnd","getBlockIndex","useSelect","blockEditorStore","indentListItem","useIndentListItem","useRefEffect","element","onKeyDown","event","keyCode","shiftKey","altKey","metaKey","ctrlKey","defaultPrevented","SPACE","selectionStart","selectionEnd","offset","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-space.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\tkeyCode !== SPACE ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\tshiftKey ||\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockIndex( clientId ) === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tindentListItem();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,QAAQ,EAAG;EAC5C,MAAM;IAAEC,iBAAiB;IAAEC,eAAe;IAAEC;EAAc,CAAC,GAC1D,IAAAC,eAAS,EAAEC,kBAAiB,CAAC;EAC9B,MAAMC,cAAc,GAAG,IAAAC,0BAAiB,EAAEP,QAAS,CAAC;EAEpD,OAAO,IAAAQ,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC,QAAQ;QAAEC,MAAM;QAAEC,OAAO;QAAEC;MAAQ,CAAC,GAAGL,KAAK;MAE7D,IACCA,KAAK,CAACM,gBAAgB,IACtBL,OAAO,KAAKM,eAAK;MACjB;MACAL,QAAQ,IACRC,MAAM,IACNC,OAAO,IACPC,OAAO,EACN;QACD;MACD;MAEA,IAAKb,aAAa,CAAEH,QAAS,CAAC,KAAK,CAAC,EAAG;QACtC;MACD;MAEA,MAAMmB,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;MAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;MACtC,IACCiB,cAAc,CAACE,MAAM,KAAK,CAAC,IAC3BD,YAAY,CAACC,MAAM,KAAK,CAAC,EACxB;QACDV,KAAK,CAACW,cAAc,CAAC,CAAC;QACtBhB,cAAc,CAAC,CAAC;MACjB;IACD;IAEAG,OAAO,CAACc,gBAAgB,CAAE,SAAS,EAAEb,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACe,mBAAmB,CAAE,SAAS,EAAEd,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,EAAEM,cAAc,CAC3B,CAAC;AACF"}
|
|
@@ -180,6 +180,7 @@ class MediaContainer extends _element.Component {
|
|
|
180
180
|
} = this.props;
|
|
181
181
|
const {
|
|
182
182
|
isUploadFailed,
|
|
183
|
+
isUploadPaused,
|
|
183
184
|
retryMessage
|
|
184
185
|
} = params;
|
|
185
186
|
const focalPointValues = !focalPoint ? _components.IMAGE_DEFAULT_FOCAL_POINT : focalPoint;
|
|
@@ -199,6 +200,7 @@ class MediaContainer extends _element.Component {
|
|
|
199
200
|
focalPoint: imageFill && focalPointValues,
|
|
200
201
|
isSelected: isMediaSelected,
|
|
201
202
|
isUploadFailed: isUploadFailed,
|
|
203
|
+
isUploadPaused: isUploadPaused,
|
|
202
204
|
isUploadInProgress: isUploadInProgress,
|
|
203
205
|
onSelectMediaUploadOption: this.onSelectMediaUploadOption,
|
|
204
206
|
openMediaOptions: openMediaOptions,
|
|
@@ -300,6 +302,7 @@ class MediaContainer extends _element.Component {
|
|
|
300
302
|
}) => {
|
|
301
303
|
onSetOpenPickerRef(open);
|
|
302
304
|
return (0, _react.createElement)(_react.Fragment, null, getMediaOptions(), (0, _react.createElement)(_blockEditor.MediaUploadProgress, {
|
|
305
|
+
enablePausedUploads: true,
|
|
303
306
|
coverUrl: coverUrl,
|
|
304
307
|
mediaId: mediaId,
|
|
305
308
|
onUpdateMediaProgress: this.updateMediaProgress,
|