@wordpress/block-library 9.10.0 → 9.11.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/README.md +10 -5
- package/build/archives/index.js +6 -0
- package/build/archives/index.js.map +1 -1
- package/build/avatar/hooks.js +2 -3
- package/build/avatar/hooks.js.map +1 -1
- package/build/button/get-updated-link-attributes.js +1 -1
- package/build/button/get-updated-link-attributes.js.map +1 -1
- package/build/comments/index.js +12 -0
- package/build/comments/index.js.map +1 -1
- package/build/cover/constants.js +8 -0
- package/build/cover/constants.js.map +1 -0
- package/build/cover/edit/index.js +24 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +40 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +3 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/save.js +3 -1
- package/build/cover/save.js.map +1 -1
- package/build/file/edit.js +1 -2
- package/build/file/edit.js.map +1 -1
- package/build/gallery/constants.js +2 -1
- package/build/gallery/constants.js.map +1 -1
- package/build/gallery/edit.js +11 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/utils.js +26 -5
- package/build/gallery/utils.js.map +1 -1
- package/build/html/edit.js +5 -1
- package/build/html/edit.js.map +1 -1
- package/build/html/preview.js +2 -2
- package/build/html/preview.js.map +1 -1
- package/build/latest-posts/edit.js +3 -8
- package/build/latest-posts/edit.js.map +1 -1
- package/build/navigation/edit/index.js +23 -2
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +1 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +2 -2
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/paragraph/edit.js +1 -1
- package/build/paragraph/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +2 -2
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +2 -2
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query-title/edit.js +1 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/search/edit.js +19 -14
- package/build/search/edit.js.map +1 -1
- package/build/separator/transforms.js +12 -0
- package/build/separator/transforms.js.map +1 -1
- package/build/social-links/edit.js +0 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/spacer/index.js +2 -0
- package/build/spacer/index.js.map +1 -1
- package/build/spacer/transforms.js +27 -0
- package/build/spacer/transforms.js.map +1 -0
- package/build/table/edit.js +0 -1
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +2 -7
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/video/tracks-editor.js +1 -1
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/index.js +6 -0
- package/build-module/archives/index.js.map +1 -1
- package/build-module/avatar/hooks.js +2 -3
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/button/get-updated-link-attributes.js +1 -1
- package/build-module/button/get-updated-link-attributes.js.map +1 -1
- package/build-module/comments/index.js +12 -0
- package/build-module/comments/index.js.map +1 -1
- package/build-module/cover/constants.js +2 -0
- package/build-module/cover/constants.js.map +1 -0
- package/build-module/cover/edit/index.js +24 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +41 -3
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +3 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/save.js +3 -1
- package/build-module/cover/save.js.map +1 -1
- package/build-module/file/edit.js +1 -2
- package/build-module/file/edit.js.map +1 -1
- package/build-module/gallery/constants.js +1 -0
- package/build-module/gallery/constants.js.map +1 -1
- package/build-module/gallery/edit.js +14 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/utils.js +27 -6
- package/build-module/gallery/utils.js.map +1 -1
- package/build-module/html/edit.js +6 -2
- package/build-module/html/edit.js.map +1 -1
- package/build-module/html/preview.js +2 -2
- package/build-module/html/preview.js.map +1 -1
- package/build-module/latest-posts/edit.js +3 -8
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +23 -2
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +1 -3
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/paragraph/edit.js +1 -1
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +2 -2
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/query/edit/inspector-controls/order-control.js +2 -2
- package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build-module/query-title/edit.js +2 -2
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/search/edit.js +20 -15
- package/build-module/search/edit.js.map +1 -1
- package/build-module/separator/transforms.js +12 -0
- package/build-module/separator/transforms.js.map +1 -1
- package/build-module/social-links/edit.js +0 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/spacer/index.js +2 -0
- package/build-module/spacer/index.js.map +1 -1
- package/build-module/spacer/transforms.js +20 -0
- package/build-module/spacer/transforms.js.map +1 -0
- package/build-module/table/edit.js +0 -1
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +2 -7
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/video/tracks-editor.js +2 -2
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/archives/editor-rtl.css +5 -0
- package/build-style/archives/editor.css +5 -0
- package/build-style/button/style-rtl.css +3 -0
- package/build-style/button/style.css +3 -0
- package/build-style/comments/editor-rtl.css +4 -0
- package/build-style/comments/editor.css +4 -0
- package/build-style/comments/style-rtl.css +4 -0
- package/build-style/comments/style.css +4 -0
- package/build-style/cover/style-rtl.css +5 -0
- package/build-style/cover/style.css +5 -0
- package/build-style/editor-rtl.css +20 -0
- package/build-style/editor.css +20 -0
- package/build-style/group/editor-rtl.css +10 -0
- package/build-style/group/editor.css +10 -0
- package/build-style/image/style-rtl.css +2 -0
- package/build-style/image/style.css +2 -0
- package/build-style/navigation/editor-rtl.css +1 -0
- package/build-style/navigation/editor.css +1 -0
- package/build-style/style-rtl.css +14 -0
- package/build-style/style.css +14 -0
- package/package.json +36 -35
- package/src/archives/block.json +6 -0
- package/src/archives/editor.scss +8 -0
- package/src/avatar/hooks.js +2 -3
- package/src/avatar/index.php +4 -5
- package/src/button/get-updated-link-attributes.js +1 -1
- package/src/button/style.scss +3 -0
- package/src/button/test/get-updated-link-attributes.js +15 -0
- package/src/comment-author-avatar/index.php +1 -1
- package/src/comments/block.json +21 -3
- package/src/comments/style.scss +4 -1
- package/src/cover/block.json +3 -0
- package/src/cover/constants.js +1 -0
- package/src/cover/edit/index.js +20 -2
- package/src/cover/edit/inspector-controls.js +46 -1
- package/src/cover/save.js +2 -0
- package/src/cover/style.scss +6 -0
- package/src/cover/test/edit.js +1 -3
- package/src/file/edit.js +1 -2
- package/src/gallery/constants.js +1 -0
- package/src/gallery/edit.js +25 -2
- package/src/gallery/utils.js +23 -2
- package/src/group/editor.scss +12 -0
- package/src/html/edit.js +7 -1
- package/src/html/preview.js +3 -2
- package/src/image/style.scss +1 -0
- package/src/latest-posts/edit.js +3 -7
- package/src/latest-posts/index.php +1 -1
- package/src/navigation/edit/index.js +30 -3
- package/src/navigation/edit/menu-inspector-controls.js +2 -2
- package/src/navigation/edit/navigation-menu-selector.js +2 -2
- package/src/navigation/editor.scss +1 -0
- package/src/paragraph/edit.js +1 -1
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-time-to-read/edit.js +2 -2
- package/src/post-time-to-read/index.php +1 -1
- package/src/query/edit/inspector-controls/order-control.js +2 -2
- package/src/query-title/edit.js +2 -2
- package/src/rss/index.php +1 -1
- package/src/search/edit.js +28 -25
- package/src/separator/test/__snapshots__/transforms.native.js.snap +6 -0
- package/src/separator/test/transforms.native.js +1 -1
- package/src/separator/transforms.js +11 -0
- package/src/social-links/edit.js +0 -1
- package/src/spacer/index.js +2 -0
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +6 -0
- package/src/spacer/test/transforms.native.js +1 -1
- package/src/spacer/transforms.js +20 -0
- package/src/table/edit.js +0 -1
- package/src/table-of-contents/edit.js +2 -6
- package/src/template-part/edit/index.js +1 -1
- package/src/video/tracks-editor.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_blockEditor","_element","_i18n","_data","_primitives","_blocks","_blob","_notices","_icons","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","_jsxRuntime","MAX_COLUMNS","linkOptions","icon","customLink","label","__","value","LINK_DESTINATION_ATTACHMENT","noticeText","imageIcon","LINK_DESTINATION_MEDIA","linkOff","_x","LINK_DESTINATION_NONE","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","blob","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","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","jsx","MediaPlaceholder","handleUpload","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","clsx","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","jsxs","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","ToolbarDropdownMenu","linkIcon","onClose","MenuGroup","linkItem","isOptionSelected","MenuItem","iconPosition","onClick","role","MediaReplaceFlow","mediaIds","default","blockGap","style","spacing"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tMenuGroup,\n\tMenuItem,\n\tToolbarDropdownMenu,\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 { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n} from '@wordpress/icons';\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{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\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\nexport default function 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.blob\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 {\n\t\t\t\t\t\t\tblob: 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 {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\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.noticeText\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: clsx( 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\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{ Platform.isNative ? (\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={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null }\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\n\t\t\t\t\t\t\tclassName=\"gallery-image-sizes\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\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<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\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\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}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_blockEditor","_element","_i18n","_data","_primitives","_blocks","_blob","_notices","_icons","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","_jsxRuntime","MAX_COLUMNS","LINK_OPTIONS","icon","customLink","label","__","value","LINK_DESTINATION_ATTACHMENT","noticeText","imageIcon","LINK_DESTINATION_MEDIA","fullscreen","LINK_DESTINATION_LIGHTBOX","infoText","linkOff","_x","LINK_DESTINATION_NONE","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","lightboxSetting","useSettings","linkOptions","allowEditing","filter","option","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","blob","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","createBlobURL","processedImages","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","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","jsx","MediaPlaceholder","handleUpload","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","clsx","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","jsxs","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","ToolbarDropdownMenu","linkIcon","onClose","MenuGroup","linkItem","isOptionSelected","MenuItem","iconPosition","onClick","role","info","MediaReplaceFlow","mediaIds","default","blockGap","style","spacing"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tMenuGroup,\n\tMenuItem,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n\tuseSettings,\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 { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n\tfullscreen,\n} from '@wordpress/icons';\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\tLINK_DESTINATION_LIGHTBOX,\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 LINK_OPTIONS = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: fullscreen,\n\t\tlabel: __( 'Expand on click' ),\n\t\tvalue: LINK_DESTINATION_LIGHTBOX,\n\t\tnoticeText: __( 'Lightbox effect' ),\n\t\tinfoText: __( 'Scale images with a lightbox effect' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\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\nexport default function 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 [ lightboxSetting ] = useSettings( 'blocks.core/image.lightbox' );\n\n\tconst linkOptions = ! lightboxSetting?.allowEditing\n\t\t? LINK_OPTIONS.filter(\n\t\t\t\t( option ) => option.value !== LINK_DESTINATION_LIGHTBOX\n\t\t )\n\t\t: LINK_OPTIONS;\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.blob\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 {\n\t\t\t\t\t\t\tblob: 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 {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\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\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t\tblock.attributes,\n\t\t\t\tlightboxSetting\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.noticeText\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: clsx( 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\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{ Platform.isNative ? (\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={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null }\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\n\t\t\t\t\t\t\tclassName=\"gallery-image-sizes\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\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<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tinfo={ linkItem.infoText }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\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\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}\n"],"mappings":"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","ignoreList":[]}
|
package/build/gallery/utils.js
CHANGED
|
@@ -16,10 +16,13 @@ var _constants2 = require("../image/constants");
|
|
|
16
16
|
*
|
|
17
17
|
* @param {Object} image Gallery image.
|
|
18
18
|
* @param {string} galleryDestination Gallery's selected link destination.
|
|
19
|
-
* @param {Object} imageDestination Image
|
|
19
|
+
* @param {Object} imageDestination Image block link destination attribute.
|
|
20
|
+
* @param {Object} attributes Block attributes.
|
|
21
|
+
* @param {Object} lightboxSetting Lightbox setting.
|
|
22
|
+
*
|
|
20
23
|
* @return {Object} New attributes to assign to image block.
|
|
21
24
|
*/
|
|
22
|
-
function getHrefAndDestination(image, galleryDestination, imageDestination) {
|
|
25
|
+
function getHrefAndDestination(image, galleryDestination, imageDestination, attributes, lightboxSetting) {
|
|
23
26
|
// Gutenberg and WordPress use different constants so if image_default_link_type
|
|
24
27
|
// option is set we need to map from the WP Core values.
|
|
25
28
|
switch (imageDestination ? imageDestination : galleryDestination) {
|
|
@@ -28,19 +31,37 @@ function getHrefAndDestination(image, galleryDestination, imageDestination) {
|
|
|
28
31
|
return {
|
|
29
32
|
href: image?.source_url || image?.url,
|
|
30
33
|
// eslint-disable-line camelcase
|
|
31
|
-
linkDestination: _constants2.LINK_DESTINATION_MEDIA
|
|
34
|
+
linkDestination: _constants2.LINK_DESTINATION_MEDIA,
|
|
35
|
+
lightbox: lightboxSetting?.enabled ? {
|
|
36
|
+
...attributes?.lightbox,
|
|
37
|
+
enabled: false
|
|
38
|
+
} : undefined
|
|
32
39
|
};
|
|
33
40
|
case _constants.LINK_DESTINATION_ATTACHMENT_WP_CORE:
|
|
34
41
|
case _constants.LINK_DESTINATION_ATTACHMENT:
|
|
35
42
|
return {
|
|
36
43
|
href: image?.link,
|
|
37
|
-
linkDestination: _constants2.LINK_DESTINATION_ATTACHMENT
|
|
44
|
+
linkDestination: _constants2.LINK_DESTINATION_ATTACHMENT,
|
|
45
|
+
lightbox: lightboxSetting?.enabled ? {
|
|
46
|
+
...attributes?.lightbox,
|
|
47
|
+
enabled: false
|
|
48
|
+
} : undefined
|
|
38
49
|
};
|
|
39
|
-
case _constants.
|
|
50
|
+
case _constants.LINK_DESTINATION_LIGHTBOX:
|
|
40
51
|
return {
|
|
41
52
|
href: undefined,
|
|
53
|
+
lightbox: !lightboxSetting?.enabled ? {
|
|
54
|
+
...attributes?.lightbox,
|
|
55
|
+
enabled: true
|
|
56
|
+
} : undefined,
|
|
42
57
|
linkDestination: _constants2.LINK_DESTINATION_NONE
|
|
43
58
|
};
|
|
59
|
+
case _constants.LINK_DESTINATION_NONE:
|
|
60
|
+
return {
|
|
61
|
+
href: undefined,
|
|
62
|
+
linkDestination: _constants2.LINK_DESTINATION_NONE,
|
|
63
|
+
lightbox: undefined
|
|
64
|
+
};
|
|
44
65
|
}
|
|
45
66
|
return {};
|
|
46
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_constants2","getHrefAndDestination","image","galleryDestination","imageDestination","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_MEDIA","href","source_url","url","linkDestination","IMAGE_LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT_WP_CORE","LINK_DESTINATION_ATTACHMENT","link","IMAGE_LINK_DESTINATION_ATTACHMENT","
|
|
1
|
+
{"version":3,"names":["_constants","require","_constants2","getHrefAndDestination","image","galleryDestination","imageDestination","attributes","lightboxSetting","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_MEDIA","href","source_url","url","linkDestination","IMAGE_LINK_DESTINATION_MEDIA","lightbox","enabled","undefined","LINK_DESTINATION_ATTACHMENT_WP_CORE","LINK_DESTINATION_ATTACHMENT","link","IMAGE_LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_LIGHTBOX","IMAGE_LINK_DESTINATION_NONE","LINK_DESTINATION_NONE"],"sources":["@wordpress/block-library/src/gallery/utils.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA_WP_CORE,\n\tLINK_DESTINATION_ATTACHMENT_WP_CORE,\n\tLINK_DESTINATION_LIGHTBOX,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE,\n} from '../image/constants';\n\n/**\n * Determines new href and linkDestination values for an Image block from the\n * supplied Gallery link destination, or falls back to the Image blocks link.\n *\n * @param {Object} image Gallery image.\n * @param {string} galleryDestination Gallery's selected link destination.\n * @param {Object} imageDestination Image block link destination attribute.\n * @param {Object} attributes Block attributes.\n * @param {Object} lightboxSetting Lightbox setting.\n *\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination(\n\timage,\n\tgalleryDestination,\n\timageDestination,\n\tattributes,\n\tlightboxSetting\n) {\n\t// Gutenberg and WordPress use different constants so if image_default_link_type\n\t// option is set we need to map from the WP Core values.\n\tswitch ( imageDestination ? imageDestination : galleryDestination ) {\n\t\tcase LINK_DESTINATION_MEDIA_WP_CORE:\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url, // eslint-disable-line camelcase\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT_WP_CORE:\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_LIGHTBOX:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlightbox: ! lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: true }\n\t\t\t\t\t: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t\tlightbox: undefined,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAQA,IAAAC,WAAA,GAAAD,OAAA;AAXA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,qBAAqBA,CACpCC,KAAK,EACLC,kBAAkB,EAClBC,gBAAgB,EAChBC,UAAU,EACVC,eAAe,EACd;EACD;EACA;EACA,QAASF,gBAAgB,GAAGA,gBAAgB,GAAGD,kBAAkB;IAChE,KAAKI,yCAA8B;IACnC,KAAKC,iCAAsB;MAC1B,OAAO;QACNC,IAAI,EAAEP,KAAK,EAAEQ,UAAU,IAAIR,KAAK,EAAES,GAAG;QAAE;QACvCC,eAAe,EAAEC,kCAA4B;QAC7CC,QAAQ,EAAER,eAAe,EAAES,OAAO,GAC/B;UAAE,GAAGV,UAAU,EAAES,QAAQ;UAAEC,OAAO,EAAE;QAAM,CAAC,GAC3CC;MACJ,CAAC;IACF,KAAKC,8CAAmC;IACxC,KAAKC,sCAA2B;MAC/B,OAAO;QACNT,IAAI,EAAEP,KAAK,EAAEiB,IAAI;QACjBP,eAAe,EAAEQ,uCAAiC;QAClDN,QAAQ,EAAER,eAAe,EAAES,OAAO,GAC/B;UAAE,GAAGV,UAAU,EAAES,QAAQ;UAAEC,OAAO,EAAE;QAAM,CAAC,GAC3CC;MACJ,CAAC;IACF,KAAKK,oCAAyB;MAC7B,OAAO;QACNZ,IAAI,EAAEO,SAAS;QACfF,QAAQ,EAAE,CAAER,eAAe,EAAES,OAAO,GACjC;UAAE,GAAGV,UAAU,EAAES,QAAQ;UAAEC,OAAO,EAAE;QAAK,CAAC,GAC1CC,SAAS;QACZJ,eAAe,EAAEU;MAClB,CAAC;IACF,KAAKC,gCAAqB;MACzB,OAAO;QACNd,IAAI,EAAEO,SAAS;QACfJ,eAAe,EAAEU,iCAA2B;QAC5CR,QAAQ,EAAEE;MACX,CAAC;EACH;EAEA,OAAO,CAAC,CAAC;AACV","ignoreList":[]}
|
package/build/html/edit.js
CHANGED
|
@@ -9,6 +9,7 @@ var _i18n = require("@wordpress/i18n");
|
|
|
9
9
|
var _element = require("@wordpress/element");
|
|
10
10
|
var _blockEditor = require("@wordpress/block-editor");
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
|
+
var _data = require("@wordpress/data");
|
|
12
13
|
var _compose = require("@wordpress/compose");
|
|
13
14
|
var _preview = _interopRequireDefault(require("./preview"));
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -28,6 +29,9 @@ function HTMLEdit({
|
|
|
28
29
|
const [isPreview, setIsPreview] = (0, _element.useState)();
|
|
29
30
|
const isDisabled = (0, _element.useContext)(_components.Disabled.Context);
|
|
30
31
|
const instanceId = (0, _compose.useInstanceId)(HTMLEdit, 'html-edit-desc');
|
|
32
|
+
const isPreviewMode = (0, _data.useSelect)(select => {
|
|
33
|
+
return select(_blockEditor.store).getSettings().isPreviewMode;
|
|
34
|
+
}, []);
|
|
31
35
|
function switchToPreview() {
|
|
32
36
|
setIsPreview(true);
|
|
33
37
|
}
|
|
@@ -52,7 +56,7 @@ function HTMLEdit({
|
|
|
52
56
|
children: (0, _i18n.__)('Preview')
|
|
53
57
|
})]
|
|
54
58
|
})
|
|
55
|
-
}), isPreview || isDisabled ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
59
|
+
}), isPreview || isPreviewMode || isDisabled ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
56
60
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_preview.default, {
|
|
57
61
|
content: attributes.content,
|
|
58
62
|
isSelected: isSelected
|
package/build/html/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_blockEditor","_components","_compose","_preview","_interopRequireDefault","_jsxRuntime","HTMLEdit","attributes","setAttributes","isSelected","isPreview","setIsPreview","useState","isDisabled","useContext","Disabled","Context","instanceId","useInstanceId","switchToPreview","switchToHTML","blockProps","useBlockProps","className","undefined","jsxs","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","isPressed","onClick","__","Fragment","default","content","VisuallyHidden","id","PlainText","value","onChange","placeholder"],"sources":["@wordpress/block-library/src/html/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_blockEditor","_components","_data","_compose","_preview","_interopRequireDefault","_jsxRuntime","HTMLEdit","attributes","setAttributes","isSelected","isPreview","setIsPreview","useState","isDisabled","useContext","Disabled","Context","instanceId","useInstanceId","isPreviewMode","useSelect","select","blockEditorStore","getSettings","switchToPreview","switchToHTML","blockProps","useBlockProps","className","undefined","jsxs","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","isPressed","onClick","__","Fragment","default","content","VisuallyHidden","id","PlainText","value","onChange","placeholder"],"sources":["@wordpress/block-library/src/html/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tconst isPreviewMode = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().isPreviewMode;\n\t}, [] );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isPreviewMode || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/html/preview.js
CHANGED
|
@@ -28,8 +28,8 @@ function HTMLEditPreview({
|
|
|
28
28
|
content,
|
|
29
29
|
isSelected
|
|
30
30
|
}) {
|
|
31
|
-
const settingStyles = (0, _data.useSelect)(select => select(_blockEditor.store).getSettings().styles);
|
|
32
|
-
const styles = (0, _element.useMemo)(() => [DEFAULT_STYLES, ...(0, _blockEditor.transformStyles)(settingStyles.filter(style => style.css))], [settingStyles]);
|
|
31
|
+
const settingStyles = (0, _data.useSelect)(select => select(_blockEditor.store).getSettings().styles, []);
|
|
32
|
+
const styles = (0, _element.useMemo)(() => [DEFAULT_STYLES, ...(0, _blockEditor.transformStyles)((settingStyles !== null && settingStyles !== void 0 ? settingStyles : []).filter(style => style.css))], [settingStyles]);
|
|
33
33
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
34
34
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SandBox, {
|
|
35
35
|
html: content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_blockEditor","_components","_data","_i18n","_jsxRuntime","DEFAULT_STYLES","HTMLEditPreview","content","isSelected","settingStyles","useSelect","select","blockEditorStore","getSettings","styles","useMemo","transformStyles","filter","style","css","jsxs","Fragment","children","jsx","SandBox","html","title","__","tabIndex","className"],"sources":["@wordpress/block-library/src/html/preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\ttransformStyles,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SandBox } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n// Default styles used to unset some of the styles\n// that might be inherited from the editor style.\nconst DEFAULT_STYLES = `\n\thtml,body,:root {\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\toverflow: visible !important;\n\t\tmin-height: auto !important;\n\t}\n`;\n\nexport default function HTMLEditPreview( { content, isSelected } ) {\n\tconst settingStyles = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().styles\n\t);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\
|
|
1
|
+
{"version":3,"names":["_element","require","_blockEditor","_components","_data","_i18n","_jsxRuntime","DEFAULT_STYLES","HTMLEditPreview","content","isSelected","settingStyles","useSelect","select","blockEditorStore","getSettings","styles","useMemo","transformStyles","filter","style","css","jsxs","Fragment","children","jsx","SandBox","html","title","__","tabIndex","className"],"sources":["@wordpress/block-library/src/html/preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\ttransformStyles,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SandBox } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n// Default styles used to unset some of the styles\n// that might be inherited from the editor style.\nconst DEFAULT_STYLES = `\n\thtml,body,:root {\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\toverflow: visible !important;\n\t\tmin-height: auto !important;\n\t}\n`;\n\nexport default function HTMLEditPreview( { content, isSelected } ) {\n\tconst settingStyles = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().styles,\n\t\t[]\n\t);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\t( settingStyles ?? [] ).filter( ( style ) => style.css )\n\t\t\t),\n\t\t],\n\t\t[ settingStyles ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<SandBox\n\t\t\t\thtml={ content }\n\t\t\t\tstyles={ styles }\n\t\t\t\ttitle={ __( 'Custom HTML Preview' ) }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t/>\n\t\t\t{ /*\n\t\t\t\tAn overlay is added when the block is not selected in order to register click events.\n\t\t\t\tSome browsers do not bubble up the clicks from the sandboxed iframe, which makes it\n\t\t\t\tdifficult to reselect the block.\n\t\t\t*/ }\n\t\t\t{ ! isSelected && (\n\t\t\t\t<div className=\"block-library-html__preview-overlay\"></div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAqC,IAAAK,WAAA,GAAAL,OAAA;AAVrC;AACA;AACA;;AAUA;AACA;AACA,MAAMM,cAAc,GAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEc,SAASC,eAAeA,CAAE;EAAEC,OAAO;EAAEC;AAAW,CAAC,EAAG;EAClE,MAAMC,aAAa,GAAG,IAAAC,eAAS,EAC5BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,MAAM,EAC7D,EACD,CAAC;EAED,MAAMA,MAAM,GAAG,IAAAC,gBAAO,EACrB,MAAM,CACLV,cAAc,EACd,GAAG,IAAAW,4BAAe,EACjB,CAAEP,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,EAAGQ,MAAM,CAAIC,KAAK,IAAMA,KAAK,CAACC,GAAI,CACxD,CAAC,CACD,EACD,CAAEV,aAAa,CAChB,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAgB,IAAA,EAAAhB,WAAA,CAAAiB,QAAA;IAAAC,QAAA,gBACC,IAAAlB,WAAA,CAAAmB,GAAA,EAACtB,WAAA,CAAAuB,OAAO;MACPC,IAAI,EAAGlB,OAAS;MAChBO,MAAM,EAAGA,MAAQ;MACjBY,KAAK,EAAG,IAAAC,QAAE,EAAE,qBAAsB,CAAG;MACrCC,QAAQ,EAAG,CAAC;IAAG,CACf,CAAC,EAMA,CAAEpB,UAAU,iBACb,IAAAJ,WAAA,CAAAmB,GAAA;MAAKM,SAAS,EAAC;IAAqC,CAAM,CAC1D;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -110,17 +110,12 @@ function LatestPostsEdit({
|
|
|
110
110
|
|
|
111
111
|
// If a user clicks to a link prevent redirection and show a warning.
|
|
112
112
|
const {
|
|
113
|
-
createWarningNotice
|
|
114
|
-
removeNotice
|
|
113
|
+
createWarningNotice
|
|
115
114
|
} = (0, _data.useDispatch)(_notices.store);
|
|
116
|
-
let noticeId;
|
|
117
115
|
const showRedirectionPreventedNotice = event => {
|
|
118
116
|
event.preventDefault();
|
|
119
|
-
// Remove previous warning if any, to show one at a time per block.
|
|
120
|
-
removeNotice(noticeId);
|
|
121
|
-
noticeId = `block-library/core/latest-posts/redirection-prevented/${instanceId}`;
|
|
122
117
|
createWarningNotice((0, _i18n.__)('Links are disabled in the editor.'), {
|
|
123
|
-
id:
|
|
118
|
+
id: `block-library/core/latest-posts/redirection-prevented/${instanceId}`,
|
|
124
119
|
type: 'snackbar'
|
|
125
120
|
});
|
|
126
121
|
};
|
|
@@ -432,7 +427,7 @@ function LatestPostsEdit({
|
|
|
432
427
|
children: !titleTrimmed ? (0, _i18n.__)('(no title)') : null
|
|
433
428
|
}), displayAuthor && currentAuthor && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
434
429
|
className: "wp-block-latest-posts__post-author",
|
|
435
|
-
children: (0, _i18n.sprintf)(/* translators: byline. %s:
|
|
430
|
+
children: (0, _i18n.sprintf)(/* translators: byline. %s: author. */
|
|
436
431
|
(0, _i18n.__)('by %s'), currentAuthor.name)
|
|
437
432
|
}), displayPostDate && post.date_gmt && /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
|
|
438
433
|
dateTime: (0, _date.format)('c', post.date_gmt),
|