@wordpress/block-library 8.28.3 → 8.29.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/CHANGELOG.md +2 -0
- package/build/buttons/edit.js +1 -6
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -7
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/edit.js +5 -0
- package/build/columns/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/details/index.js +1 -0
- package/build/details/index.js.map +1 -1
- package/build/gallery/edit.js +5 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/group/variations.js +12 -15
- package/build/group/variations.js.map +1 -1
- package/build/list/edit.js +5 -0
- package/build/list/edit.js.map +1 -1
- package/build/pattern/edit.js +12 -9
- package/build/pattern/edit.js.map +1 -1
- package/build-module/buttons/edit.js +2 -7
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -7
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +5 -0
- package/build-module/columns/edit.js.map +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/details/index.js +1 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/gallery/edit.js +5 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/group/variations.js +12 -15
- package/build-module/group/variations.js.map +1 -1
- package/build-module/list/edit.js +5 -0
- package/build-module/list/edit.js.map +1 -1
- package/build-module/pattern/edit.js +13 -10
- package/build-module/pattern/edit.js.map +1 -1
- package/package.json +34 -34
- package/src/avatar/index.php +12 -1
- package/src/buttons/edit.js +3 -16
- package/src/buttons/edit.native.js +1 -17
- package/src/columns/edit.js +6 -0
- package/src/cover/edit/inspector-controls.js +5 -1
- package/src/details/block.json +1 -0
- package/src/gallery/edit.js +3 -9
- package/src/group/variations.js +3 -6
- package/src/list/edit.js +5 -0
- package/src/pattern/edit.js +13 -10
- package/src/post-author-biography/index.php +4 -3
- package/src/post-author-name/index.php +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_blockEditor","_element","_i18n","_data","_viewport","_primitives","_blocks","_blob","_notices","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","_x","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","innerBlockImages","blockWasJustInserted","multiGallerySelection","useSelect","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","preferredStyleVariations","__experimentalPreferredStyleVariations","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","useMemo","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","useGetMedia","newImages","useGetNewImages","useEffect","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","useImageSizes","imageAttributes","image","find","newClassName","newLinkTarget","rel","getUpdatedLinkTargetSettings","pickRelevantMediaFiles","getHrefAndDestination","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","createBlobURL","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","createBlock","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","sprintf","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","_react","createElement","MediaPlaceholder","handleUpload","icon","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","classnames","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","orientation","renderAppender","View","children","hasLinkTo","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","defaultColumnsNumber","onChange","min","max","Math","required","__next40pxDefaultSize","SelectControl","help","options","hideCancelButton","ToggleControl","checked","isWeb","BaseControl","VisualLabel","Spinner","BlockControls","group","MediaReplaceFlow","name","mediaIds","default","blockGap","style","spacing","_default","exports","compose","withViewportMatch","isNarrow"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst EMPTY_ARRAY = [];\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tpreferredStyle,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst preferredStyleVariations =\n\t\t\t\t_getSettings().__experimentalPreferredStyleVariations;\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tpreferredStyle:\n\t\t\t\t\tpreferredStyleVariations?.value?.[ 'core/image' ],\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_blockEditor","_element","_i18n","_data","_viewport","_primitives","_blocks","_blob","_notices","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","_x","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","DEFAULT_BLOCK","name","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","innerBlockImages","blockWasJustInserted","multiGallerySelection","useSelect","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","useMemo","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","useGetMedia","newImages","useGetNewImages","useEffect","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","useImageSizes","imageAttributes","image","find","newClassName","newLinkTarget","rel","getUpdatedLinkTargetSettings","pickRelevantMediaFiles","getHrefAndDestination","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","createBlobURL","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","createBlock","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","sprintf","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","_react","createElement","MediaPlaceholder","handleUpload","icon","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","classnames","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","View","children","hasLinkTo","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","defaultColumnsNumber","onChange","min","max","Math","required","__next40pxDefaultSize","SelectControl","help","options","hideCancelButton","ToggleControl","checked","isWeb","BaseControl","VisualLabel","Spinner","BlockControls","group","MediaReplaceFlow","mediaIds","default","blockGap","style","spacing","_default","exports","compose","withViewportMatch","isNarrow"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"],"mappings":"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"}
|
|
@@ -49,21 +49,18 @@ const variations = [{
|
|
|
49
49
|
scope: ['block', 'inserter', 'transform'],
|
|
50
50
|
isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && blockAttributes.layout?.orientation === 'vertical',
|
|
51
51
|
icon: _icons.stack
|
|
52
|
+
}, {
|
|
53
|
+
name: 'group-grid',
|
|
54
|
+
title: (0, _i18n.__)('Grid'),
|
|
55
|
+
description: (0, _i18n.__)('Arrange blocks in a grid.'),
|
|
56
|
+
attributes: {
|
|
57
|
+
layout: {
|
|
58
|
+
type: 'grid'
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
scope: ['block', 'inserter', 'transform'],
|
|
62
|
+
isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
|
|
63
|
+
icon: _icons.grid
|
|
52
64
|
}];
|
|
53
|
-
if (window?.__experimentalEnableGroupGridVariation) {
|
|
54
|
-
variations.push({
|
|
55
|
-
name: 'group-grid',
|
|
56
|
-
title: (0, _i18n.__)('Grid'),
|
|
57
|
-
description: (0, _i18n.__)('Arrange blocks in a grid.'),
|
|
58
|
-
attributes: {
|
|
59
|
-
layout: {
|
|
60
|
-
type: 'grid'
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
scope: ['block', 'inserter', 'transform'],
|
|
64
|
-
isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
|
|
65
|
-
icon: _icons.grid
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
65
|
var _default = exports.default = variations;
|
|
69
66
|
//# sourceMappingURL=variations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_icons","variations","name","title","__","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","group","_x","flexWrap","orientation","row","stack","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icons","variations","name","title","__","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","group","_x","flexWrap","orientation","row","stack","grid","_default","exports","default"],"sources":["@wordpress/block-library/src/group/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack, grid } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'group',\n\t\ttitle: __( 'Group' ),\n\t\tdescription: __( 'Gather blocks in a container.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes.layout ||\n\t\t\t! blockAttributes.layout?.type ||\n\t\t\tblockAttributes.layout?.type === 'default' ||\n\t\t\tblockAttributes.layout?.type === 'constrained',\n\t\ticon: group,\n\t},\n\t{\n\t\tname: 'group-row',\n\t\ttitle: _x( 'Row', 'single horizontal line' ),\n\t\tdescription: __( 'Arrange blocks horizontally.' ),\n\t\tattributes: { layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\t( ! blockAttributes.layout?.orientation ||\n\t\t\t\tblockAttributes.layout?.orientation === 'horizontal' ),\n\t\ticon: row,\n\t},\n\t{\n\t\tname: 'group-stack',\n\t\ttitle: __( 'Stack' ),\n\t\tdescription: __( 'Arrange blocks vertically.' ),\n\t\tattributes: { layout: { type: 'flex', orientation: 'vertical' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\tblockAttributes.layout?.orientation === 'vertical',\n\t\ticon: stack,\n\t},\n\t{\n\t\tname: 'group-grid',\n\t\ttitle: __( 'Grid' ),\n\t\tdescription: __( 'Arrange blocks in a grid.' ),\n\t\tattributes: { layout: { type: 'grid' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'grid',\n\t\ticon: grid,\n\t},\n];\n\nexport default variations;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,UAAU,GAAG,CAClB;EACCC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,WAAW,EAAE,IAAAD,QAAE,EAAE,+BAAgC,CAAC;EAClDE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAc;EAAE,CAAC;EAC/CC,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1B,CAAEA,eAAe,CAACL,MAAM,IACxB,CAAEK,eAAe,CAACL,MAAM,EAAEC,IAAI,IAC9BI,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,SAAS,IAC1CI,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,aAAa;EAC/CK,IAAI,EAAEC;AACP,CAAC,EACD;EACCZ,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE,IAAAY,QAAE,EAAE,KAAK,EAAE,wBAAyB,CAAC;EAC5CV,WAAW,EAAE,IAAAD,QAAE,EAAE,8BAA+B,CAAC;EACjDE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAEQ,QAAQ,EAAE;IAAS;EAAE,CAAC;EAC5DN,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM,KACrC,CAAEI,eAAe,CAACL,MAAM,EAAEU,WAAW,IACtCL,eAAe,CAACL,MAAM,EAAEU,WAAW,KAAK,YAAY,CAAE;EACxDJ,IAAI,EAAEK;AACP,CAAC,EACD;EACChB,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,WAAW,EAAE,IAAAD,QAAE,EAAE,4BAA6B,CAAC;EAC/CE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAES,WAAW,EAAE;IAAW;EAAE,CAAC;EACjEP,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM,IACvCI,eAAe,CAACL,MAAM,EAAEU,WAAW,KAAK,UAAU;EACnDJ,IAAI,EAAEM;AACP,CAAC,EACD;EACCjB,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,WAAW,EAAE,IAAAD,QAAE,EAAE,2BAA4B,CAAC;EAC9CE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAO;EAAE,CAAC;EACxCE,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM;EACxCK,IAAI,EAAEO;AACP,CAAC,CACD;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEatB,UAAU"}
|
package/build/list/edit.js
CHANGED
|
@@ -25,6 +25,9 @@ var _tagName = _interopRequireDefault(require("./tag-name"));
|
|
|
25
25
|
* Internal dependencies
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
+
const DEFAULT_BLOCK = {
|
|
29
|
+
name: 'core/list-item'
|
|
30
|
+
};
|
|
28
31
|
const TEMPLATE = [['core/list-item']];
|
|
29
32
|
const NATIVE_MARGIN_SPACING = 8;
|
|
30
33
|
|
|
@@ -123,6 +126,8 @@ function Edit({
|
|
|
123
126
|
}
|
|
124
127
|
});
|
|
125
128
|
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
|
|
129
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
130
|
+
directInsert: true,
|
|
126
131
|
template: TEMPLATE,
|
|
127
132
|
templateLock: false,
|
|
128
133
|
templateInsertUpdatesSelection: true,
|
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","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","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\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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"}
|
|
1
|
+
{"version":3,"names":["_blockEditor","require","_components","_data","_i18n","_icons","_blocks","_element","_deprecated","_interopRequireDefault","_orderedListSettings","_utils","_tagName","DEFAULT_BLOCK","name","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","defaultBlock","directInsert","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 DEFAULT_BLOCK = {\n\tname: 'core/list-item',\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\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\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/pattern/edit.js
CHANGED
|
@@ -24,6 +24,7 @@ const PatternEdit = ({
|
|
|
24
24
|
attributes,
|
|
25
25
|
clientId
|
|
26
26
|
}) => {
|
|
27
|
+
const registry = (0, _data.useRegistry)();
|
|
27
28
|
const selectedPattern = (0, _data.useSelect)(select => select(_blockEditor.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
|
|
28
29
|
const currentThemeStylesheet = (0, _data.useSelect)(select => select(_coreData.store).getCurrentTheme()?.stylesheet, []);
|
|
29
30
|
const {
|
|
@@ -78,15 +79,17 @@ const PatternEdit = ({
|
|
|
78
79
|
// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
|
|
79
80
|
const clonedBlocks = selectedPattern.blocks.map(block => (0, _blocks.cloneBlock)(injectThemeAttributeInBlockTemplateContent(block)));
|
|
80
81
|
const rootEditingMode = getBlockEditingMode(rootClientId);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
registry.batch(() => {
|
|
83
|
+
// Temporarily set the root block to default mode to allow replacing the pattern.
|
|
84
|
+
// This could happen when the page is disabling edits of non-content blocks.
|
|
85
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
86
|
+
setBlockEditingMode(rootClientId, 'default');
|
|
87
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
88
|
+
replaceBlocks(clientId, clonedBlocks);
|
|
89
|
+
// Restore the root block's original mode.
|
|
90
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
91
|
+
setBlockEditingMode(rootClientId, rootEditingMode);
|
|
92
|
+
});
|
|
90
93
|
});
|
|
91
94
|
}
|
|
92
95
|
}, [clientId, hasRecursionError, selectedPattern, __unstableMarkNextChangeAsNotPersistent, replaceBlocks, getBlockEditingMode, setBlockEditingMode, getBlockRootClientId]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_data","_element","_blockEditor","_coreData","_i18n","_recursionDetector","PatternEdit","attributes","clientId","selectedPattern","useSelect","select","blockEditorStore","__experimentalGetParsedPattern","slug","currentThemeStylesheet","coreStore","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","useDispatch","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","useState","parsePatternDependencies","useParsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","useEffect","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","cloneBlock","rootEditingMode","props","useBlockProps","_react","createElement","Warning","sprintf","__","_default","exports","default"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAKA,IAAAM,kBAAA,GAAAN,OAAA;AAjBA;AACA;AACA;;AAYA;AACA;AACA;;AAGA,MAAMO,WAAW,GAAGA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,KAAM;EACnD,MAAMC,eAAe,GAAG,IAAAC,eAAS,EAC9BC,MAAM,IACPA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,8BAA8B,
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_element","_blockEditor","_coreData","_i18n","_recursionDetector","PatternEdit","attributes","clientId","registry","useRegistry","selectedPattern","useSelect","select","blockEditorStore","__experimentalGetParsedPattern","slug","currentThemeStylesheet","coreStore","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","useDispatch","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","useState","parsePatternDependencies","useParsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","useEffect","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","cloneBlock","rootEditingMode","batch","props","useBlockProps","_react","createElement","Warning","sprintf","__","_default","exports","default"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst registry = useRegistry();\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import classnames from 'classnames';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { useBlockProps, useInnerBlocksProps
|
|
10
|
+
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
11
11
|
import { useSelect } from '@wordpress/data';
|
|
12
12
|
import { store as blocksStore } from '@wordpress/blocks';
|
|
13
13
|
const DEFAULT_BLOCK = {
|
|
@@ -30,13 +30,10 @@ function ButtonsEdit({
|
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
32
|
const {
|
|
33
|
-
preferredStyle,
|
|
34
33
|
hasButtonVariations
|
|
35
34
|
} = useSelect(select => {
|
|
36
|
-
const preferredStyleVariations = select(blockEditorStore).getSettings().__experimentalPreferredStyleVariations;
|
|
37
35
|
const buttonVariations = select(blocksStore).getBlockVariations('core/button', 'inserter');
|
|
38
36
|
return {
|
|
39
|
-
preferredStyle: preferredStyleVariations?.value?.['core/button'],
|
|
40
37
|
hasButtonVariations: buttonVariations.length > 0
|
|
41
38
|
};
|
|
42
39
|
}, []);
|
|
@@ -44,9 +41,7 @@ function ButtonsEdit({
|
|
|
44
41
|
defaultBlock: DEFAULT_BLOCK,
|
|
45
42
|
// This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.
|
|
46
43
|
directInsert: !hasButtonVariations,
|
|
47
|
-
template: [['core/button',
|
|
48
|
-
className: preferredStyle && `is-style-${preferredStyle}`
|
|
49
|
-
}]],
|
|
44
|
+
template: [['core/button']],
|
|
50
45
|
templateInsertUpdatesSelection: true,
|
|
51
46
|
orientation: (_layout$orientation = layout?.orientation) !== null && _layout$orientation !== void 0 ? _layout$orientation : 'horizontal'
|
|
52
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useBlockProps","useInnerBlocksProps","
|
|
1
|
+
{"version":3,"names":["classnames","useBlockProps","useInnerBlocksProps","useSelect","store","blocksStore","DEFAULT_BLOCK","name","attributesToCopy","ButtonsEdit","attributes","className","_layout$orientation","fontSize","layout","style","blockProps","typography","hasButtonVariations","select","buttonVariations","getBlockVariations","length","innerBlocksProps","defaultBlock","directInsert","template","templateInsertUpdatesSelection","orientation","createElement"],"sources":["@wordpress/block-library/src/buttons/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/button',\n\tattributesToCopy: [\n\t\t'backgroundColor',\n\t\t'border',\n\t\t'className',\n\t\t'fontFamily',\n\t\t'fontSize',\n\t\t'gradient',\n\t\t'style',\n\t\t'textColor',\n\t\t'width',\n\t],\n};\n\nfunction ButtonsEdit( { attributes, className } ) {\n\tconst { fontSize, layout, style } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, {\n\t\t\t'has-custom-font-size': fontSize || style?.typography?.fontSize,\n\t\t} ),\n\t} );\n\tconst { hasButtonVariations } = useSelect( ( select ) => {\n\t\tconst buttonVariations = select( blocksStore ).getBlockVariations(\n\t\t\t'core/button',\n\t\t\t'inserter'\n\t\t);\n\t\treturn {\n\t\t\thasButtonVariations: buttonVariations.length > 0,\n\t\t};\n\t}, [] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t// This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.\n\t\tdirectInsert: ! hasButtonVariations,\n\t\ttemplate: [ [ 'core/button' ] ],\n\t\ttemplateInsertUpdatesSelection: true,\n\t\torientation: layout?.orientation ?? 'horizontal',\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n\nexport default ButtonsEdit;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC5E,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AAExD,MAAMC,aAAa,GAAG;EACrBC,IAAI,EAAE,aAAa;EACnBC,gBAAgB,EAAE,CACjB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,OAAO;AAET,CAAC;AAED,SAASC,WAAWA,CAAE;EAAEC,UAAU;EAAEC;AAAU,CAAC,EAAG;EAAA,IAAAC,mBAAA;EACjD,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGL,UAAU;EAC9C,MAAMM,UAAU,GAAGf,aAAa,CAAE;IACjCU,SAAS,EAAEX,UAAU,CAAEW,SAAS,EAAE;MACjC,sBAAsB,EAAEE,QAAQ,IAAIE,KAAK,EAAEE,UAAU,EAAEJ;IACxD,CAAE;EACH,CAAE,CAAC;EACH,MAAM;IAAEK;EAAoB,CAAC,GAAGf,SAAS,CAAIgB,MAAM,IAAM;IACxD,MAAMC,gBAAgB,GAAGD,MAAM,CAAEd,WAAY,CAAC,CAACgB,kBAAkB,CAChE,aAAa,EACb,UACD,CAAC;IACD,OAAO;MACNH,mBAAmB,EAAEE,gBAAgB,CAACE,MAAM,GAAG;IAChD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,gBAAgB,GAAGrB,mBAAmB,CAAEc,UAAU,EAAE;IACzDQ,YAAY,EAAElB,aAAa;IAC3B;IACAmB,YAAY,EAAE,CAAEP,mBAAmB;IACnCQ,QAAQ,EAAE,CAAE,CAAE,aAAa,CAAE,CAAE;IAC/BC,8BAA8B,EAAE,IAAI;IACpCC,WAAW,GAAAhB,mBAAA,GAAEE,MAAM,EAAEc,WAAW,cAAAhB,mBAAA,cAAAA,mBAAA,GAAI;EACrC,CAAE,CAAC;EAEH,OAAOiB,aAAA;IAAA,GAAUN;EAAgB,CAAI,CAAC;AACvC;AAEA,eAAed,WAAW"}
|
|
@@ -69,10 +69,6 @@ export default function ButtonsEdit({
|
|
|
69
69
|
shouldDelete: getBlockCount(clientId) === 1
|
|
70
70
|
};
|
|
71
71
|
}, [clientId]);
|
|
72
|
-
const preferredStyle = useSelect(select => {
|
|
73
|
-
const preferredStyleVariations = select(blockEditorStore).getSettings().__experimentalPreferredStyleVariations;
|
|
74
|
-
return preferredStyleVariations?.value?.['core/button'];
|
|
75
|
-
}, []);
|
|
76
72
|
const {
|
|
77
73
|
getBlockOrder
|
|
78
74
|
} = useSelect(blockEditorStore);
|
|
@@ -123,9 +119,7 @@ export default function ButtonsEdit({
|
|
|
123
119
|
}),
|
|
124
120
|
popoverProps: POPOVER_PROPS
|
|
125
121
|
})), resizeObserver, createElement(InnerBlocks, {
|
|
126
|
-
template: [['core/button',
|
|
127
|
-
className: preferredStyle && `is-style-${preferredStyle}`
|
|
128
|
-
}]],
|
|
122
|
+
template: [['core/button']],
|
|
129
123
|
renderFooterAppender: shouldRenderFooterAppender && renderFooterAppender.current,
|
|
130
124
|
orientation: "horizontal",
|
|
131
125
|
horizontalAlignment: justifyContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","BlockControls","InnerBlocks","JustifyContentControl","store","blockEditorStore","createBlock","getBlockSupport","debounce","useResizeObserver","useDispatch","useSelect","useState","useEffect","useRef","useCallback","alignmentHelpers","styles","layoutProp","type","alignments","POPOVER_PROPS","placement","ButtonsEdit","attributes","layout","align","clientId","isSelected","setAttributes","blockWidth","name","resizeObserver","sizes","maxWidth","setMaxWidth","marginLeft","spacing","layoutBlockSupport","defaultBlockLayout","default","usedLayout","justifyContent","isInnerButtonSelected","shouldDelete","select","getBlockCount","getBlockParents","getSelectedBlockClientId","selectedBlockClientId","selectedBlockParents","preferredStyle","preferredStyleVariations","getSettings","__experimentalPreferredStyleVariations","value","getBlockOrder","insertBlock","removeBlock","selectBlock","width","isFullWidth","isFullWidthBlock","onAddNextButton","selectedId","order","selectedButtonIndex","findIndex","i","index","length","insertedBlock","renderFooterAppender","createElement","style","appenderContainer","ButtonBlockAppender","isFloating","onAddBlock","justifyControls","remove","shouldRenderFooterAppender","Fragment","group","allowedControls","onChange","popoverProps","template","className","current","orientation","horizontalAlignment","onDeleteBlock","undefined","parentWidth","marginHorizontal","marginVertical","templateInsertUpdatesSelection"],"sources":["@wordpress/block-library/src/buttons/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tJustifyContentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { createBlock, getBlockSupport } from '@wordpress/blocks';\nimport { debounce, useResizeObserver } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport { alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\n\nconst layoutProp = { type: 'default', alignments: [] };\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nexport default function ButtonsEdit( {\n\tattributes: { layout, align },\n\tclientId,\n\tisSelected,\n\tsetAttributes,\n\tblockWidth,\n\tname,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tconst { marginLeft: spacing } = styles.spacing;\n\n\t// Extract attributes from block layout\n\tconst layoutBlockSupport = getBlockSupport( name, 'layout' );\n\tconst defaultBlockLayout = layoutBlockSupport?.default;\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst { justifyContent } = usedLayout;\n\n\tconst { isInnerButtonSelected, shouldDelete } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, getBlockParents, getSelectedBlockClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst selectedBlockParents = getBlockParents(\n\t\t\t\tselectedBlockClientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisInnerButtonSelected: selectedBlockParents[ 0 ] === clientId,\n\t\t\t\t// The purpose of `shouldDelete` check is giving the ability to\n\t\t\t\t// pass to mobile toolbar function called `onDelete` which removes\n\t\t\t\t// the whole `Buttons` container along with the last inner button\n\t\t\t\t// when there is exactly one button.\n\t\t\t\tshouldDelete: getBlockCount( clientId ) === 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst preferredStyle = useSelect( ( select ) => {\n\t\tconst preferredStyleVariations =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalPreferredStyleVariations;\n\t\treturn preferredStyleVariations?.value?.[ 'core/button' ];\n\t}, [] );\n\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tconst { isFullWidth } = alignmentHelpers;\n\n\t\tif ( width ) {\n\t\t\tconst isFullWidthBlock = isFullWidth( align );\n\t\t\tsetMaxWidth( isFullWidthBlock ? blockWidth : width );\n\t\t}\n\t}, [ sizes, align ] );\n\n\tconst onAddNextButton = useCallback(\n\t\tdebounce( ( selectedId ) => {\n\t\t\tconst order = getBlockOrder( clientId );\n\t\t\tconst selectedButtonIndex = order.findIndex(\n\t\t\t\t( i ) => i === selectedId\n\t\t\t);\n\n\t\t\tconst index =\n\t\t\t\tselectedButtonIndex === -1\n\t\t\t\t\t? order.length + 1\n\t\t\t\t\t: selectedButtonIndex;\n\n\t\t\tconst insertedBlock = createBlock( 'core/button' );\n\n\t\t\tinsertBlock( insertedBlock, index, clientId, false );\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t}, 200 ),\n\t\t[]\n\t);\n\n\tconst renderFooterAppender = useRef( () => (\n\t\t<View style={ styles.appenderContainer }>\n\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\tisFloating={ true }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t/>\n\t\t</View>\n\t) );\n\n\tconst justifyControls = [ 'left', 'center', 'right' ];\n\n\tconst remove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\tconst shouldRenderFooterAppender = isSelected || isInnerButtonSelected;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<JustifyContentControl\n\t\t\t\t\t\tallowedControls={ justifyControls }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t...usedLayout,\n\t\t\t\t\t\t\t\t\tjustifyContent: value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ resizeObserver }\n\t\t\t<InnerBlocks\n\t\t\t\ttemplate={ [\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\tpreferredStyle &&\n\t\t\t\t\t\t\t\t`is-style-${ preferredStyle }`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t] }\n\t\t\t\trenderFooterAppender={\n\t\t\t\t\tshouldRenderFooterAppender && renderFooterAppender.current\n\t\t\t\t}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\thorizontalAlignment={ justifyContent }\n\t\t\t\tonDeleteBlock={ shouldDelete ? remove : undefined }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t\tparentWidth={ maxWidth } // This value controls the width of that the buttons are able to expand to.\n\t\t\t\tmarginHorizontal={ spacing }\n\t\t\t\tmarginVertical={ spacing }\n\t\t\t\tlayout={ layoutProp }\n\t\t\t\ttemplateInsertUpdatesSelection\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["View","BlockControls","InnerBlocks","JustifyContentControl","store","blockEditorStore","createBlock","getBlockSupport","debounce","useResizeObserver","useDispatch","useSelect","useState","useEffect","useRef","useCallback","alignmentHelpers","styles","layoutProp","type","alignments","POPOVER_PROPS","placement","ButtonsEdit","attributes","layout","align","clientId","isSelected","setAttributes","blockWidth","name","resizeObserver","sizes","maxWidth","setMaxWidth","marginLeft","spacing","layoutBlockSupport","defaultBlockLayout","default","usedLayout","justifyContent","isInnerButtonSelected","shouldDelete","select","getBlockCount","getBlockParents","getSelectedBlockClientId","selectedBlockClientId","selectedBlockParents","getBlockOrder","insertBlock","removeBlock","selectBlock","width","isFullWidth","isFullWidthBlock","onAddNextButton","selectedId","order","selectedButtonIndex","findIndex","i","index","length","insertedBlock","renderFooterAppender","createElement","style","appenderContainer","ButtonBlockAppender","isFloating","onAddBlock","justifyControls","remove","shouldRenderFooterAppender","Fragment","group","allowedControls","value","onChange","popoverProps","template","current","orientation","horizontalAlignment","onDeleteBlock","undefined","parentWidth","marginHorizontal","marginVertical","templateInsertUpdatesSelection"],"sources":["@wordpress/block-library/src/buttons/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tJustifyContentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { createBlock, getBlockSupport } from '@wordpress/blocks';\nimport { debounce, useResizeObserver } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport { alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\n\nconst layoutProp = { type: 'default', alignments: [] };\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nexport default function ButtonsEdit( {\n\tattributes: { layout, align },\n\tclientId,\n\tisSelected,\n\tsetAttributes,\n\tblockWidth,\n\tname,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tconst { marginLeft: spacing } = styles.spacing;\n\n\t// Extract attributes from block layout\n\tconst layoutBlockSupport = getBlockSupport( name, 'layout' );\n\tconst defaultBlockLayout = layoutBlockSupport?.default;\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst { justifyContent } = usedLayout;\n\n\tconst { isInnerButtonSelected, shouldDelete } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, getBlockParents, getSelectedBlockClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst selectedBlockParents = getBlockParents(\n\t\t\t\tselectedBlockClientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisInnerButtonSelected: selectedBlockParents[ 0 ] === clientId,\n\t\t\t\t// The purpose of `shouldDelete` check is giving the ability to\n\t\t\t\t// pass to mobile toolbar function called `onDelete` which removes\n\t\t\t\t// the whole `Buttons` container along with the last inner button\n\t\t\t\t// when there is exactly one button.\n\t\t\t\tshouldDelete: getBlockCount( clientId ) === 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tconst { isFullWidth } = alignmentHelpers;\n\n\t\tif ( width ) {\n\t\t\tconst isFullWidthBlock = isFullWidth( align );\n\t\t\tsetMaxWidth( isFullWidthBlock ? blockWidth : width );\n\t\t}\n\t}, [ sizes, align ] );\n\n\tconst onAddNextButton = useCallback(\n\t\tdebounce( ( selectedId ) => {\n\t\t\tconst order = getBlockOrder( clientId );\n\t\t\tconst selectedButtonIndex = order.findIndex(\n\t\t\t\t( i ) => i === selectedId\n\t\t\t);\n\n\t\t\tconst index =\n\t\t\t\tselectedButtonIndex === -1\n\t\t\t\t\t? order.length + 1\n\t\t\t\t\t: selectedButtonIndex;\n\n\t\t\tconst insertedBlock = createBlock( 'core/button' );\n\n\t\t\tinsertBlock( insertedBlock, index, clientId, false );\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t}, 200 ),\n\t\t[]\n\t);\n\n\tconst renderFooterAppender = useRef( () => (\n\t\t<View style={ styles.appenderContainer }>\n\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\tisFloating={ true }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t/>\n\t\t</View>\n\t) );\n\n\tconst justifyControls = [ 'left', 'center', 'right' ];\n\n\tconst remove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\tconst shouldRenderFooterAppender = isSelected || isInnerButtonSelected;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<JustifyContentControl\n\t\t\t\t\t\tallowedControls={ justifyControls }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t...usedLayout,\n\t\t\t\t\t\t\t\t\tjustifyContent: value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ resizeObserver }\n\t\t\t<InnerBlocks\n\t\t\t\ttemplate={ [ [ 'core/button' ] ] }\n\t\t\t\trenderFooterAppender={\n\t\t\t\t\tshouldRenderFooterAppender && renderFooterAppender.current\n\t\t\t\t}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\thorizontalAlignment={ justifyContent }\n\t\t\t\tonDeleteBlock={ shouldDelete ? remove : undefined }\n\t\t\t\tonAddBlock={ onAddNextButton }\n\t\t\t\tparentWidth={ maxWidth } // This value controls the width of that the buttons are able to expand to.\n\t\t\t\tmarginHorizontal={ spacing }\n\t\t\t\tmarginVertical={ spacing }\n\t\t\t\tlayout={ layoutProp }\n\t\t\t\ttemplateInsertUpdatesSelection\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -17,6 +17,9 @@ import { createBlock, createBlocksFromInnerBlocksTemplate, store as blocksStore
|
|
|
17
17
|
* Internal dependencies
|
|
18
18
|
*/
|
|
19
19
|
import { hasExplicitPercentColumnWidths, getMappedColumnWidths, getRedistributedColumnWidths, toWidthPrecision } from './utils';
|
|
20
|
+
const DEFAULT_BLOCK = {
|
|
21
|
+
name: 'core/column'
|
|
22
|
+
};
|
|
20
23
|
function ColumnsEditContainer({
|
|
21
24
|
attributes,
|
|
22
25
|
setAttributes,
|
|
@@ -71,6 +74,8 @@ function ColumnsEditContainer({
|
|
|
71
74
|
className: classes
|
|
72
75
|
});
|
|
73
76
|
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
77
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
78
|
+
directInsert: true,
|
|
74
79
|
orientation: 'horizontal',
|
|
75
80
|
renderAppender: false,
|
|
76
81
|
templateLock
|