@wordpress/block-library 8.10.0 → 8.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/build/block/edit.native.js +17 -10
- package/build/block/edit.native.js.map +1 -1
- package/build/code/index.js +1 -0
- package/build/code/index.js.map +1 -1
- package/build/column/index.js +1 -1
- package/build/columns/transforms.js +1 -5
- package/build/columns/transforms.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +3 -3
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/file/interactivity.js +19 -0
- package/build/file/interactivity.js.map +1 -0
- package/build/file/{utils.js → utils/index.js} +1 -1
- package/build/file/utils/index.js.map +1 -0
- package/build/freeform/modal.js +20 -17
- package/build/freeform/modal.js.map +1 -1
- package/build/gallery/v1/edit.js +1 -7
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js +1 -3
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/group/transforms.js +0 -5
- package/build/group/transforms.js.map +1 -1
- package/build/image/deprecated.js +2 -4
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +13 -11
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +7 -12
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +3 -0
- package/build/image/index.js.map +1 -1
- package/build/image/interactivity.js +102 -0
- package/build/image/interactivity.js.map +1 -0
- package/build/image/save.js +2 -4
- package/build/image/save.js.map +1 -1
- package/build/image/utils.js +10 -18
- package/build/image/utils.js.map +1 -1
- package/build/latest-posts/edit.native.js +1 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +1 -1
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.native.js +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/transforms.js +4 -1
- package/build/list-item/transforms.js.map +1 -1
- package/build/media-text/deprecated.js +4 -6
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +13 -11
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/media-container.js +3 -3
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +1 -3
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/constants.js +3 -1
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -0
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +148 -0
- package/build/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build/navigation/edit/menu-inspector-controls.js +53 -8
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +6 -6
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +8 -19
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/interactivity.js +24 -6
- package/build/navigation/interactivity.js.map +1 -1
- package/build/navigation-link/edit.js +6 -4
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/update-attributes.js +5 -5
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +6 -4
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/edit.js +42 -8
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/index.js +12 -5
- package/build/pattern/index.js.map +1 -1
- package/build/pattern/v1/edit.js +57 -0
- package/build/pattern/v1/edit.js.map +1 -0
- package/build/post-title/edit.js +10 -3
- package/build/post-title/edit.js.map +1 -1
- package/build/quote/transforms.js +9 -12
- package/build/quote/transforms.js.map +1 -1
- package/build/social-link/edit.js +21 -4
- package/build/social-link/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -7
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/utils/interactivity/directives.js +50 -22
- package/build/utils/interactivity/directives.js.map +1 -1
- package/build/utils/interactivity/hooks.js +76 -12
- package/build/utils/interactivity/hooks.js.map +1 -1
- package/build/utils/interactivity/portals.js +108 -0
- package/build/utils/interactivity/portals.js.map +1 -0
- package/build-module/block/edit.native.js +7 -1
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/code/index.js +1 -0
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/index.js +1 -1
- package/build-module/columns/transforms.js +1 -5
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +3 -3
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/file/interactivity.js +15 -0
- package/build-module/file/interactivity.js.map +1 -0
- package/build-module/file/{utils.js → utils/index.js} +1 -1
- package/build-module/file/utils/index.js.map +1 -0
- package/build-module/freeform/modal.js +19 -18
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/gallery/v1/edit.js +1 -6
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js +1 -2
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/group/transforms.js +0 -5
- package/build-module/group/transforms.js.map +1 -1
- package/build-module/image/deprecated.js +2 -3
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +12 -11
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +7 -11
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +3 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/interactivity.js +99 -0
- package/build-module/image/interactivity.js.map +1 -0
- package/build-module/image/save.js +2 -3
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/utils.js +10 -17
- package/build-module/image/utils.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +1 -2
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +1 -1
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/transforms.js +5 -2
- package/build-module/list-item/transforms.js.map +1 -1
- package/build-module/media-text/deprecated.js +4 -5
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +13 -12
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/media-container.js +3 -3
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +1 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/constants.js +1 -0
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -1
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +132 -0
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build-module/navigation/edit/menu-inspector-controls.js +52 -9
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +7 -7
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +8 -16
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/interactivity.js +24 -6
- package/build-module/navigation/interactivity.js.map +1 -1
- package/build-module/navigation-link/edit.js +6 -4
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +4 -4
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +6 -4
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/edit.js +42 -9
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/pattern/index.js +12 -3
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/pattern/v1/edit.js +48 -0
- package/build-module/pattern/v1/edit.js.map +1 -0
- package/build-module/post-title/edit.js +10 -3
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/quote/transforms.js +9 -12
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/social-link/edit.js +20 -5
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -6
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +1 -1
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/utils/interactivity/directives.js +49 -22
- package/build-module/utils/interactivity/directives.js.map +1 -1
- package/build-module/utils/interactivity/hooks.js +77 -13
- package/build-module/utils/interactivity/hooks.js.map +1 -1
- package/build-module/utils/interactivity/portals.js +100 -0
- package/build-module/utils/interactivity/portals.js.map +1 -0
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/style-rtl.css +1 -2
- package/build-style/cover/style.css +1 -2
- package/build-style/editor-rtl.css +68 -0
- package/build-style/editor.css +68 -0
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/freeform/editor-rtl.css +29 -0
- package/build-style/freeform/editor.css +29 -0
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/image/style-rtl.css +98 -0
- package/build-style/image/style.css +98 -0
- package/build-style/navigation/editor-rtl.css +36 -0
- package/build-style/navigation/editor.css +36 -0
- package/build-style/post-comments-form/style-rtl.css +1 -1
- package/build-style/post-comments-form/style.css +1 -1
- package/build-style/style-rtl.css +103 -9
- package/build-style/style.css +103 -9
- package/build-style/video/style-rtl.css +1 -2
- package/build-style/video/style.css +1 -2
- package/package.json +32 -32
- package/src/block/edit.native.js +18 -4
- package/src/buttons/test/edit.native.js +0 -9
- package/src/code/block.json +1 -0
- package/src/column/block.json +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/columns/test/transforms.native.js +3 -5
- package/src/columns/transforms.js +2 -8
- package/src/comments/index.php +1 -6
- package/src/cover/edit/resizable-cover-popover.js +2 -1
- package/src/file/editor.scss +4 -0
- package/src/file/interactivity.js +15 -0
- package/src/freeform/editor.scss +45 -0
- package/src/freeform/modal.js +22 -19
- package/src/gallery/v1/edit.js +1 -6
- package/src/gallery/v1/gallery-image.native.js +1 -2
- package/src/group/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/group/test/transforms.native.js +3 -5
- package/src/group/transforms.js +0 -7
- package/src/image/block.json +3 -0
- package/src/image/deprecated.js +2 -3
- package/src/image/edit.js +18 -18
- package/src/image/image.js +8 -11
- package/src/image/index.php +75 -2
- package/src/image/interactivity.js +113 -0
- package/src/image/save.js +4 -3
- package/src/image/style.scss +113 -0
- package/src/image/utils.js +11 -18
- package/src/latest-posts/edit.native.js +1 -4
- package/src/list/edit.js +1 -1
- package/src/list/test/edit.native.js +80 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/transforms.js +4 -2
- package/src/media-text/deprecated.js +4 -5
- package/src/media-text/edit.js +12 -10
- package/src/media-text/media-container.js +3 -3
- package/src/media-text/save.js +1 -2
- package/src/navigation/constants.js +5 -0
- package/src/navigation/edit/inner-blocks.js +6 -1
- package/src/navigation/edit/leaf-more-menu.js +170 -0
- package/src/navigation/edit/menu-inspector-controls.js +78 -10
- package/src/navigation/edit/navigation-menu-delete-control.js +29 -29
- package/src/navigation/edit/unsaved-inner-blocks.js +11 -24
- package/src/navigation/editor.scss +10 -0
- package/src/navigation/index.php +4 -1
- package/src/navigation/interactivity.js +9 -2
- package/src/navigation-link/edit.js +8 -2
- package/src/navigation-link/update-attributes.js +2 -2
- package/src/navigation-submenu/edit.js +8 -2
- package/src/pattern/block.json +4 -0
- package/src/pattern/edit.js +53 -16
- package/src/pattern/index.js +5 -4
- package/src/pattern/index.php +14 -1
- package/src/pattern/v1/edit.js +57 -0
- package/src/post-comments-form/style.scss +3 -1
- package/src/post-title/edit.js +50 -44
- package/src/quote/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/quote/test/transforms.native.js +3 -5
- package/src/quote/transforms.js +9 -13
- package/src/social-link/edit.js +51 -26
- package/src/template-part/edit/index.js +4 -6
- package/src/template-part/edit/utils/hooks.js +1 -1
- package/src/template-part/index.php +2 -2
- package/src/utils/interactivity/directives.js +27 -6
- package/src/utils/interactivity/hooks.js +83 -14
- package/src/utils/interactivity/portals.js +98 -0
- package/build/file/utils.js.map +0 -1
- package/build-module/file/utils.js.map +0 -1
- /package/src/file/{utils.js → utils/index.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["isEmpty","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\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{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = image?.sizes?.[ size.slug ]?.url;\n\t\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\t\timage?.media_details?.sizes?.[ size.slug ]\n\t\t\t\t\t\t\t\t?.source_url;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\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 getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url =\n\t\t\t\tresizedImages[ parseInt( image.id, 10 ) ]?.[ newSizeSlug ];\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// 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\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\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={ columns }\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/>\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' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\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/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\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={ __( 'Image size' ) }\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/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\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{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = image?.sizes?.[ size.slug ]?.url;\n\t\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\t\timage?.media_details?.sizes?.[ size.slug ]\n\t\t\t\t\t\t\t\t?.source_url;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\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 getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url =\n\t\t\t\tresizedImages[ parseInt( image.id, 10 ) ]?.[ newSizeSlug ];\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// 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\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && imageSizeOptions.length > 0;\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={ columns }\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/>\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' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\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/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\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={ __( 'Image size' ) }\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/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
@@ -4,7 +4,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
6
|
import { StyleSheet, View, ScrollView, TouchableWithoutFeedback } from 'react-native';
|
|
7
|
-
import { isEmpty } from 'lodash';
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
10
9
|
*/
|
|
@@ -292,7 +291,7 @@ class GalleryImage extends Component {
|
|
|
292
291
|
caption,
|
|
293
292
|
'aria-label': ariaLabel
|
|
294
293
|
} = this.props;
|
|
295
|
-
return
|
|
294
|
+
return !caption ? ariaLabel : ariaLabel + '. ' + sprintf(
|
|
296
295
|
/* translators: accessibility text. %s: image caption. */
|
|
297
296
|
__('Image caption. %s'), caption);
|
|
298
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["StyleSheet","View","ScrollView","TouchableWithoutFeedback","isEmpty","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","Component","Image","__","sprintf","Caption","MediaUploadProgress","getProtocol","withPreferredColorScheme","arrowLeft","arrowRight","warning","Button","style","compose","separatorStyle","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","toolbarContainer","toolbar","moverButtonContainer","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst { captionSelected, isUploadInProgress, didUploadFail } =\n\t\t\tthis.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { id, onRemove, getStylesFromColorScheme, isSelected } =\n\t\t\tthis.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn isEmpty( caption )\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["StyleSheet","View","ScrollView","TouchableWithoutFeedback","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","Component","Image","__","sprintf","Caption","MediaUploadProgress","getProtocol","withPreferredColorScheme","arrowLeft","arrowRight","warning","Button","style","compose","separatorStyle","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","toolbarContainer","toolbar","moverButtonContainer","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst { captionSelected, isUploadInProgress, didUploadFail } =\n\t\t\tthis.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { id, onRemove, getStylesFromColorScheme, isSelected } =\n\t\t\tthis.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn ! caption\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/group/transforms.js"],"names":["createBlock","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","alignments","widestAlignment","reduce","accumulator","block","align","attributes","indexOf","undefined","groupInnerBlocks","map","name","innerBlocks","layout"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/group/transforms.js"],"names":["createBlock","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","alignments","widestAlignment","reduce","accumulator","block","align","attributes","indexOf","undefined","groupInnerBlocks","map","name","innerBlocks","layout"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,mBAA5B;AAEA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,GAAF,CAHT;;AAICC,IAAAA,qBAAqB,CAAED,MAAF,EAAW;AAC/B,YAAME,UAAU,GAAG,CAAE,MAAF,EAAU,MAAV,CAAnB,CAD+B,CAG/B;;AACA,YAAMC,eAAe,GAAGH,MAAM,CAACI,MAAP,CACvB,CAAEC,WAAF,EAAeC,KAAf,KAA0B;AACzB,cAAM;AAAEC,UAAAA;AAAF,YAAYD,KAAK,CAACE,UAAxB;AACA,eAAON,UAAU,CAACO,OAAX,CAAoBF,KAApB,IACNL,UAAU,CAACO,OAAX,CAAoBJ,WAApB,CADM,GAEJE,KAFI,GAGJF,WAHH;AAIA,OAPsB,EAQvBK,SARuB,CAAxB,CAJ+B,CAe/B;AACA;AACA;AACA;AACA;;AACA,YAAMC,gBAAgB,GAAGX,MAAM,CAACY,GAAP,CAAcN,KAAF,IAAa;AACjD,eAAOX,WAAW,CACjBW,KAAK,CAACO,IADW,EAEjBP,KAAK,CAACE,UAFW,EAGjBF,KAAK,CAACQ,WAHW,CAAlB;AAKA,OANwB,CAAzB;AAQA,aAAOnB,WAAW,CACjB,YADiB,EAEjB;AACCY,QAAAA,KAAK,EAAEJ,eADR;AAECY,QAAAA,MAAM,EAAE;AAAEjB,UAAAA,IAAI,EAAE;AAAR;AAFT,OAFiB,EAMjBa,gBANiB,CAAlB;AAQA;;AAxCF,GADK;AADY,CAAnB;AA+CA,eAAef,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\tconst alignments = [ 'wide', 'full' ];\n\n\t\t\t\t// Determine the widest setting of all the blocks to be grouped\n\t\t\t\tconst widestAlignment = blocks.reduce(\n\t\t\t\t\t( accumulator, block ) => {\n\t\t\t\t\t\tconst { align } = block.attributes;\n\t\t\t\t\t\treturn alignments.indexOf( align ) >\n\t\t\t\t\t\t\talignments.indexOf( accumulator )\n\t\t\t\t\t\t\t? align\n\t\t\t\t\t\t\t: accumulator;\n\t\t\t\t\t},\n\t\t\t\t\tundefined\n\t\t\t\t);\n\n\t\t\t\t// Clone the Blocks to be Grouped\n\t\t\t\t// Failing to create new block references causes the original blocks\n\t\t\t\t// to be replaced in the switchToBlockType call thereby meaning they\n\t\t\t\t// are removed both from their original location and within the\n\t\t\t\t// new group block.\n\t\t\t\tconst groupInnerBlocks = blocks.map( ( block ) => {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\talign: widestAlignment,\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t},\n\t\t\t\t\tgroupInnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
|
|
@@ -5,7 +5,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import { isEmpty } from 'lodash';
|
|
9
8
|
/**
|
|
10
9
|
* WordPress dependencies
|
|
11
10
|
*/
|
|
@@ -124,7 +123,7 @@ const deprecated = [// The following deprecation moves existing border radius st
|
|
|
124
123
|
sizeSlug,
|
|
125
124
|
title
|
|
126
125
|
} = attributes;
|
|
127
|
-
const newRel =
|
|
126
|
+
const newRel = !rel ? undefined : rel;
|
|
128
127
|
const classes = classnames({
|
|
129
128
|
[`align${align}`]: align,
|
|
130
129
|
[`size-${sizeSlug}`]: sizeSlug,
|
|
@@ -185,7 +184,7 @@ const deprecated = [// The following deprecation moves existing border radius st
|
|
|
185
184
|
sizeSlug,
|
|
186
185
|
title
|
|
187
186
|
} = attributes;
|
|
188
|
-
const newRel =
|
|
187
|
+
const newRel = !rel ? undefined : rel;
|
|
189
188
|
const classes = classnames({
|
|
190
189
|
[`align${align}`]: align,
|
|
191
190
|
[`size-${sizeSlug}`]: sizeSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/image/deprecated.js"],"names":["classnames","isEmpty","RichText","useBlockProps","blockAttributes","align","type","url","source","selector","attribute","alt","default","caption","title","href","rel","linkClass","id","width","height","sizeSlug","linkDestination","linkTarget","blockSupports","anchor","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","deprecated","attributes","supports","save","newRel","undefined","classes","image","figure","className","extraImageProps","figureStyle","maxWidth"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\talign: {\n\t\ttype: 'string',\n\t},\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'src',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tcaption: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'title',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'href',\n\t},\n\trel: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'rel',\n\t},\n\tlinkClass: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'class',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\twidth: {\n\t\ttype: 'number',\n\t},\n\theight: {\n\t\ttype: 'number',\n\t},\n\tsizeSlug: {\n\t\ttype: 'string',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t},\n\tlinkTarget: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'target',\n\t},\n};\n\nconst blockSupports = {\n\tanchor: true,\n\tcolor: {\n\t\t__experimentalDuotone: 'img',\n\t\ttext: false,\n\t\tbackground: false,\n\t},\n\t__experimentalBorder: {\n\t\tradius: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tradius: true,\n\t\t},\n\t},\n};\n\nconst deprecated = [\n\t// The following deprecation moves existing border radius styles onto the\n\t// inner img element where new border block support styles must be applied.\n\t// It will also add a new `.has-custom-border` class for existing blocks\n\t// with border radii set. This class is required to improve caption position\n\t// and styling when an image within a gallery has a custom border or\n\t// rounded corners.\n\t//\n\t// See: https://github.com/WordPress/gutenberg/pull/31366/\n\t{\n\t\tattributes: blockAttributes,\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = isEmpty( rel ) ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\ttitle: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'title',\n\t\t\t},\n\t\t\tsizeSlug: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = isEmpty( rel ) ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\t\treturn (\n\t\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height } =\n\t\t\t\tattributes;\n\t\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\t\tconst image = (\n\t\t\t\t<img src={ url } alt={ alt } { ...extraImageProps } />\n\t\t\t);\n\n\t\t\tlet figureStyle = {};\n\n\t\t\tif ( width ) {\n\t\t\t\tfigureStyle = { width };\n\t\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure\n\t\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\t\tstyle={ figureStyle }\n\t\t\t\t>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/image/deprecated.js"],"names":["classnames","RichText","useBlockProps","blockAttributes","align","type","url","source","selector","attribute","alt","default","caption","title","href","rel","linkClass","id","width","height","sizeSlug","linkDestination","linkTarget","blockSupports","anchor","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","deprecated","attributes","supports","save","newRel","undefined","classes","image","figure","isEmpty","className","extraImageProps","figureStyle","maxWidth"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\talign: {\n\t\ttype: 'string',\n\t},\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'src',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tcaption: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'title',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'href',\n\t},\n\trel: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'rel',\n\t},\n\tlinkClass: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'class',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\twidth: {\n\t\ttype: 'number',\n\t},\n\theight: {\n\t\ttype: 'number',\n\t},\n\tsizeSlug: {\n\t\ttype: 'string',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t},\n\tlinkTarget: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'target',\n\t},\n};\n\nconst blockSupports = {\n\tanchor: true,\n\tcolor: {\n\t\t__experimentalDuotone: 'img',\n\t\ttext: false,\n\t\tbackground: false,\n\t},\n\t__experimentalBorder: {\n\t\tradius: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tradius: true,\n\t\t},\n\t},\n};\n\nconst deprecated = [\n\t// The following deprecation moves existing border radius styles onto the\n\t// inner img element where new border block support styles must be applied.\n\t// It will also add a new `.has-custom-border` class for existing blocks\n\t// with border radii set. This class is required to improve caption position\n\t// and styling when an image within a gallery has a custom border or\n\t// rounded corners.\n\t//\n\t// See: https://github.com/WordPress/gutenberg/pull/31366/\n\t{\n\t\tattributes: blockAttributes,\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\ttitle: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'title',\n\t\t\t},\n\t\t\tsizeSlug: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\t\treturn (\n\t\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height } =\n\t\t\t\tattributes;\n\t\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\t\tconst image = (\n\t\t\t\t<img src={ url } alt={ alt } { ...extraImageProps } />\n\t\t\t);\n\n\t\t\tlet figureStyle = {};\n\n\t\t\tif ( width ) {\n\t\t\t\tfigureStyle = { width };\n\t\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure\n\t\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\t\tstyle={ figureStyle }\n\t\t\t\t>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n"]}
|
|
@@ -4,7 +4,6 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
6
|
import classnames from 'classnames';
|
|
7
|
-
import { isEmpty } from 'lodash';
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
10
9
|
*/
|
|
@@ -12,7 +11,7 @@ import { isEmpty } from 'lodash';
|
|
|
12
11
|
import { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';
|
|
13
12
|
import { Placeholder } from '@wordpress/components';
|
|
14
13
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
15
|
-
import { BlockAlignmentControl, BlockControls, BlockIcon, MediaPlaceholder, useBlockProps, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps } from '@wordpress/block-editor';
|
|
14
|
+
import { BlockAlignmentControl, BlockControls, BlockIcon, MediaPlaceholder, useBlockProps, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
16
15
|
import { useEffect, useRef, useState } from '@wordpress/element';
|
|
17
16
|
import { __ } from '@wordpress/i18n';
|
|
18
17
|
import { image as icon } from '@wordpress/icons';
|
|
@@ -22,11 +21,15 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
22
21
|
*/
|
|
23
22
|
|
|
24
23
|
import Image from './image';
|
|
24
|
+
import { unlock } from '../private-apis';
|
|
25
25
|
/**
|
|
26
26
|
* Module constants
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
29
|
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_CUSTOM, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, ALLOWED_MEDIA_TYPES } from './constants';
|
|
30
|
+
const {
|
|
31
|
+
useBlockEditingMode
|
|
32
|
+
} = unlock(blockEditorPrivateApis);
|
|
30
33
|
export const pickRelevantMediaFiles = (image, size) => {
|
|
31
34
|
var _image$sizes, _image$sizes$size, _image$media_details, _image$media_details$, _image$media_details$2;
|
|
32
35
|
|
|
@@ -109,20 +112,18 @@ export function ImageEdit(_ref2) {
|
|
|
109
112
|
const ref = useRef();
|
|
110
113
|
const {
|
|
111
114
|
imageDefaultSize,
|
|
112
|
-
mediaUpload
|
|
113
|
-
isContentLocked
|
|
115
|
+
mediaUpload
|
|
114
116
|
} = useSelect(select => {
|
|
115
117
|
const {
|
|
116
|
-
getSettings
|
|
117
|
-
__unstableGetContentLockingParent
|
|
118
|
+
getSettings
|
|
118
119
|
} = select(blockEditorStore);
|
|
119
120
|
const settings = getSettings();
|
|
120
121
|
return {
|
|
121
122
|
imageDefaultSize: settings.imageDefaultSize,
|
|
122
|
-
mediaUpload: settings.mediaUpload
|
|
123
|
-
isContentLocked: !!__unstableGetContentLockingParent(clientId)
|
|
123
|
+
mediaUpload: settings.mediaUpload
|
|
124
124
|
};
|
|
125
125
|
}, []);
|
|
126
|
+
const blockEditingMode = useBlockEditingMode();
|
|
126
127
|
const {
|
|
127
128
|
createErrorNotice
|
|
128
129
|
} = useDispatch(noticesStore);
|
|
@@ -305,7 +306,7 @@ export function ImageEdit(_ref2) {
|
|
|
305
306
|
'is-transient': temporaryURL,
|
|
306
307
|
'is-resized': !!width || !!height,
|
|
307
308
|
[`size-${sizeSlug}`]: sizeSlug,
|
|
308
|
-
'has-custom-border': !!borderProps.className ||
|
|
309
|
+
'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
|
|
309
310
|
});
|
|
310
311
|
const blockProps = useBlockProps({
|
|
311
312
|
ref,
|
|
@@ -338,8 +339,8 @@ export function ImageEdit(_ref2) {
|
|
|
338
339
|
containerRef: ref,
|
|
339
340
|
context: context,
|
|
340
341
|
clientId: clientId,
|
|
341
|
-
|
|
342
|
-
}), !url &&
|
|
342
|
+
blockEditingMode: blockEditingMode
|
|
343
|
+
}), !url && blockEditingMode === 'default' && createElement(BlockControls, {
|
|
343
344
|
group: "block"
|
|
344
345
|
}, createElement(BlockAlignmentControl, {
|
|
345
346
|
value: align,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["classnames","isEmpty","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useEffect","useRef","useState","__","image","icon","noticesStore","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","isContentLocked","select","getSettings","__unstableGetContentLockingParent","settings","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","borderProps","classes","style","blockProps","placeholder","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className || ! isEmpty( borderProps.style ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && ! isContentLocked && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["classnames","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","privateApis","blockEditorPrivateApis","useEffect","useRef","useState","__","image","icon","noticesStore","Image","unlock","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","useBlockEditingMode","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","select","getSettings","settings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","borderProps","classes","style","keys","length","blockProps","placeholder","content"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,EAAuBC,SAAvB,EAAkCC,aAAlC,QAAuD,iBAAvD;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SACCC,qBADD,EAECC,aAFD,EAGCC,SAHD,EAICC,gBAJD,EAKCC,aALD,EAMCC,KAAK,IAAIC,gBANV,EAOCC,4BAA4B,IAAIC,cAPjC,EAQCC,WAAW,IAAIC,sBARhB,QASO,yBATP;AAUA,SAASC,SAAT,EAAoBC,MAApB,EAA4BC,QAA5B,QAA4C,oBAA5C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AACA,SAASX,KAAK,IAAIY,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,SAASC,MAAT,QAAuB,iBAAvB;AAEA;AACA;AACA;;AACA,SACCC,2BADD,EAECC,uBAFD,EAGCC,sBAHD,EAICC,qBAJD,EAKCC,mBALD,QAMO,aANP;AAQA,MAAM;AAAEC,EAAAA;AAAF,IAA0BN,MAAM,CAAET,sBAAF,CAAtC;AAEA,OAAO,MAAMgB,sBAAsB,GAAG,CAAEX,KAAF,EAASY,IAAT,KAAmB;AAAA;;AACxD,QAAMC,UAAU,GAAGC,MAAM,CAACC,WAAP,CAClBD,MAAM,CAACE,OAAP,CAAgBhB,KAAhB,aAAgBA,KAAhB,cAAgBA,KAAhB,GAAyB,EAAzB,EAA8BiB,MAA9B,CAAsC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACrC,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAuB,SAAvB,EAAmCC,QAAnC,CAA6CD,GAA7C,CADqC;AAAA,GAAtC,CADkB,CAAnB;AAMAL,EAAAA,UAAU,CAACO,GAAX,GACC,CAAApB,KAAK,SAAL,IAAAA,KAAK,WAAL,4BAAAA,KAAK,CAAEqB,KAAP,mFAAgBT,IAAhB,yEAAwBQ,GAAxB,MACApB,KADA,aACAA,KADA,+CACAA,KAAK,CAAEsB,aADP,kFACA,qBAAsBD,KADtB,oFACA,sBAA+BT,IAA/B,CADA,2DACA,uBAAuCW,UADvC,KAEAvB,KAAK,CAACoB,GAHP;AAIA,SAAOP,UAAP;AACA,CAZM;AAcP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMW,gBAAgB,GAAG,CAAEC,EAAF,EAAML,GAAN,KAAe,CAAEK,EAAF,IAAQ7C,SAAS,CAAEwC,GAAF,CAAzD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,MAAMM,eAAe,GAAG,CAAED,EAAF,EAAML,GAAN,KAAeA,GAAG,IAAI,CAAEK,EAAT,IAAe,CAAE7C,SAAS,CAAEwC,GAAF,CAAjE;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASO,cAAT,CAAyB3B,KAAzB,EAAgC4B,WAAhC,EAA8C;AAAA;;AAC7C,SACC,mCAAW5B,KAAX,aAAWA,KAAX,wCAAWA,KAAK,CAAEqB,KAAlB,kDAAW,cAAgBO,WAAhB,CAAX,yEAA4C,EAA5C,KACA,2CAAkB5B,KAAlB,aAAkBA,KAAlB,gDAAkBA,KAAK,CAAEsB,aAAzB,mFAAkB,sBAAsBD,KAAxC,0DAAkB,sBAA+BO,WAA/B,CAAlB,2EAAkE,EAAlE,CAFD;AAIA;;AAED,OAAO,SAASC,SAAT,QASH;AAAA,MATuB;AAC1BC,IAAAA,UAD0B;AAE1BC,IAAAA,aAF0B;AAG1BC,IAAAA,UAH0B;AAI1BC,IAAAA,SAJ0B;AAK1BC,IAAAA,iBAL0B;AAM1BC,IAAAA,SAN0B;AAO1BC,IAAAA,OAP0B;AAQ1BC,IAAAA;AAR0B,GASvB;AACH,QAAM;AACLjB,IAAAA,GAAG,GAAG,EADD;AAELkB,IAAAA,GAFK;AAGLC,IAAAA,OAHK;AAILC,IAAAA,KAJK;AAKLf,IAAAA,EALK;AAMLgB,IAAAA,KANK;AAOLC,IAAAA,MAPK;AAQLC,IAAAA;AARK,MASFb,UATJ;AAUA,QAAM,CAAEc,YAAF,EAAgBC,eAAhB,IAAoC/C,QAAQ,EAAlD;AAEA,QAAMgD,MAAM,GAAGjD,MAAM,EAArB;AACAD,EAAAA,SAAS,CAAE,MAAM;AAChBkD,IAAAA,MAAM,CAACC,OAAP,GAAiBT,GAAjB;AACA,GAFQ,EAEN,CAAEA,GAAF,CAFM,CAAT;AAIA,QAAMU,UAAU,GAAGnD,MAAM,EAAzB;AACAD,EAAAA,SAAS,CAAE,MAAM;AAChBoD,IAAAA,UAAU,CAACD,OAAX,GAAqBR,OAArB;AACA,GAFQ,EAEN,CAAEA,OAAF,CAFM,CAAT;AAIA,QAAMU,GAAG,GAAGpD,MAAM,EAAlB;AACA,QAAM;AAAEqD,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAAoCnE,SAAS,CAAIoE,MAAF,IAAc;AAClE,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAE7D,gBAAF,CAA9B;AACA,UAAM+D,QAAQ,GAAGD,WAAW,EAA5B;AACA,WAAO;AACNH,MAAAA,gBAAgB,EAAEI,QAAQ,CAACJ,gBADrB;AAENC,MAAAA,WAAW,EAAEG,QAAQ,CAACH;AAFhB,KAAP;AAIA,GAPkD,EAOhD,EAPgD,CAAnD;AAQA,QAAMI,gBAAgB,GAAG7C,mBAAmB,EAA5C;AAEA,QAAM;AAAE8C,IAAAA;AAAF,MAAwBzE,WAAW,CAAEmB,YAAF,CAAzC;;AACA,WAASuD,aAAT,CAAwBC,OAAxB,EAAkC;AACjCF,IAAAA,iBAAiB,CAAEE,OAAF,EAAW;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAX,CAAjB;AACA5B,IAAAA,aAAa,CAAE;AACd6B,MAAAA,GAAG,EAAEC,SADS;AAEdpC,MAAAA,EAAE,EAAEoC,SAFU;AAGdzC,MAAAA,GAAG,EAAEyC;AAHS,KAAF,CAAb;AAKAhB,IAAAA,eAAe,CAAEgB,SAAF,CAAf;AACA;;AAED,WAASC,aAAT,CAAwBC,KAAxB,EAAgC;AAAA;;AAC/B,QAAK,CAAEA,KAAF,IAAW,CAAEA,KAAK,CAAC3C,GAAxB,EAA8B;AAC7BW,MAAAA,aAAa,CAAE;AACdX,QAAAA,GAAG,EAAEyC,SADS;AAEdvB,QAAAA,GAAG,EAAEuB,SAFS;AAGdpC,QAAAA,EAAE,EAAEoC,SAHU;AAIdG,QAAAA,KAAK,EAAEH,SAJO;AAKdtB,QAAAA,OAAO,EAAEsB;AALK,OAAF,CAAb;AAQA;AACA;;AAED,QAAKjF,SAAS,CAAEmF,KAAK,CAAC3C,GAAR,CAAd,EAA8B;AAC7ByB,MAAAA,eAAe,CAAEkB,KAAK,CAAC3C,GAAR,CAAf;AACA;AACA;;AAEDyB,IAAAA,eAAe;AAEf,QAAIoB,eAAe,GAAGtD,sBAAsB,CAAEoD,KAAF,EAASb,gBAAT,CAA5C,CApB+B,CAsB/B;AACA;;AACA,QAAKF,UAAU,CAACD,OAAX,IAAsB,CAAEkB,eAAe,CAAC1B,OAA7C,EAAuD;AACtD,YAAM;AAAEA,QAAAA,OAAO,EAAE2B,cAAX;AAA2B,WAAGC;AAA9B,UACLF,eADD;AAEAA,MAAAA,eAAe,GAAGE,mBAAlB;AACA;;AAED,QAAIC,oBAAJ,CA9B+B,CA+B/B;;AACA,QAAK,CAAEL,KAAK,CAACtC,EAAR,IAAcsC,KAAK,CAACtC,EAAN,KAAaA,EAAhC,EAAqC;AACpC2C,MAAAA,oBAAoB,GAAG;AACtB3B,QAAAA,KAAK,EAAEoB,SADe;AAEtBnB,QAAAA,MAAM,EAAEmB,SAFc;AAGtB;AACA;AACAlB,QAAAA,QAAQ,EAAEhB,cAAc,CAAEoC,KAAF,EAASb,gBAAT,CAAd,GACPA,gBADO,GAEP;AAPmB,OAAvB;AASA,KAVD,MAUO;AACN;AACA;AACAkB,MAAAA,oBAAoB,GAAG;AAAEhD,QAAAA;AAAF,OAAvB;AACA,KA9C8B,CAgD/B;;;AACA,QAAIiD,eAAe,GAAGvC,UAAU,CAACuC,eAAjC;;AACA,QAAK,CAAEA,eAAP,EAAyB;AACxB;AACA;AACA;AACA,cACC,YAAAC,MAAM,UAAN,wDAAQC,EAAR,8EAAYR,KAAZ,+FAAmBS,IAAnB,0GAAyBlB,QAAzB,4GAAmCmB,YAAnC,kFAAiDC,IAAjD,KACAlE,qBAFD;AAIC,aAAK,MAAL;AACA,aAAKD,sBAAL;AACC8D,UAAAA,eAAe,GAAG9D,sBAAlB;AACA;;AACD,aAAK,MAAL;AACA,aAAKF,2BAAL;AACCgE,UAAAA,eAAe,GAAGhE,2BAAlB;AACA;;AACD,aAAKC,uBAAL;AACC+D,UAAAA,eAAe,GAAG/D,uBAAlB;AACA;;AACD,aAAKE,qBAAL;AACC6D,UAAAA,eAAe,GAAG7D,qBAAlB;AACA;AAjBF;AAmBA,KAzE8B,CA2E/B;;;AACA,QAAImE,IAAJ;;AACA,YAASN,eAAT;AACC,WAAK9D,sBAAL;AACCoE,QAAAA,IAAI,GAAGZ,KAAK,CAAC3C,GAAb;AACA;;AACD,WAAKf,2BAAL;AACCsE,QAAAA,IAAI,GAAGZ,KAAK,CAACW,IAAb;AACA;AANF;;AAQAT,IAAAA,eAAe,CAACU,IAAhB,GAAuBA,IAAvB;AAEA5C,IAAAA,aAAa,CAAE,EACd,GAAGkC,eADW;AAEd,SAAGG,oBAFW;AAGdC,MAAAA;AAHc,KAAF,CAAb;AAKA;;AAED,WAASO,WAAT,CAAsBC,MAAtB,EAA+B;AAC9B,QAAKA,MAAM,KAAKzD,GAAhB,EAAsB;AACrBW,MAAAA,aAAa,CAAE;AACdX,QAAAA,GAAG,EAAEyD,MADS;AAEdpD,QAAAA,EAAE,EAAEoC,SAFU;AAGdpB,QAAAA,KAAK,EAAEoB,SAHO;AAIdnB,QAAAA,MAAM,EAAEmB,SAJM;AAKdlB,QAAAA,QAAQ,EAAEO;AALI,OAAF,CAAb;AAOA;AACD;;AAED,WAAS4B,eAAT,CAA0BC,SAA1B,EAAsC;AACrC,UAAMC,sBAAsB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAmB7D,QAAnB,CAA6B4D,SAA7B,IAC5B;AAAEtC,MAAAA,KAAK,EAAEoB,SAAT;AAAoBnB,MAAAA,MAAM,EAAEmB;AAA5B,KAD4B,GAE5B,EAFH;AAGA9B,IAAAA,aAAa,CAAE,EACd,GAAGiD,sBADW;AAEdxC,MAAAA,KAAK,EAAEuC;AAFO,KAAF,CAAb;AAIA;;AAED,MAAIE,MAAM,GAAGzD,gBAAgB,CAAEC,EAAF,EAAML,GAAN,CAA7B,CAjKG,CAmKH;;AACAxB,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAEqF,MAAP,EAAgB;AACf;AACA;;AAED,UAAMC,IAAI,GAAGvG,YAAY,CAAEyC,GAAF,CAAzB;;AAEA,QAAK8D,IAAL,EAAY;AACX/B,MAAAA,WAAW,CAAE;AACZgC,QAAAA,SAAS,EAAE,CAAED,IAAF,CADC;AAEZE,QAAAA,YAAY,EAAE,SAAe;AAAA,cAAb,CAAEC,GAAF,CAAa;AAC5BvB,UAAAA,aAAa,CAAEuB,GAAF,CAAb;AACA,SAJW;AAKZC,QAAAA,YAAY,EAAE7E,mBALF;AAMZ8E,QAAAA,OAAO,EAAI7B,OAAF,IAAe;AACvBuB,UAAAA,MAAM,GAAG,KAAT;AACAxB,UAAAA,aAAa,CAAEC,OAAF,CAAb;AACA;AATW,OAAF,CAAX;AAWA;AACD,GApBQ,EAoBN,EApBM,CAAT,CApKG,CA0LH;AACA;;AACA9D,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKqF,MAAL,EAAc;AACbpC,MAAAA,eAAe,CAAEzB,GAAF,CAAf;AACA;AACA;;AACDvC,IAAAA,aAAa,CAAE+D,YAAF,CAAb;AACA,GANQ,EAMN,CAAEqC,MAAF,EAAU7D,GAAV,CANM,CAAT;AAQA,QAAMoE,UAAU,GAAG9D,eAAe,CAAED,EAAF,EAAML,GAAN,CAAlC;AACA,QAAMwC,GAAG,GAAG4B,UAAU,GAAGpE,GAAH,GAASyC,SAA/B;AACA,QAAM4B,YAAY,GAAG,CAAC,CAAErE,GAAH,IACpB;AACC,IAAA,GAAG,EAAGrB,EAAE,CAAE,YAAF,CADT;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,YAAF,CAFX;AAGC,IAAA,SAAS,EAAG,oBAHb;AAIC,IAAA,GAAG,EAAGqB;AAJP,IADD;AASA,QAAMsE,WAAW,GAAGjG,cAAc,CAAEqC,UAAF,CAAlC;AAEA,QAAM6D,OAAO,GAAGjH,UAAU,CAAEuD,SAAF,EAAa;AACtC,oBAAgBW,YADsB;AAEtC,kBAAc,CAAC,CAAEH,KAAH,IAAY,CAAC,CAAEC,MAFS;AAGtC,KAAG,QAAQC,QAAU,EAArB,GAA0BA,QAHY;AAItC,yBACC,CAAC,CAAE+C,WAAW,CAACzD,SAAf,IACEyD,WAAW,CAACE,KAAZ,IACD9E,MAAM,CAAC+E,IAAP,CAAaH,WAAW,CAACE,KAAzB,EAAiCE,MAAjC,GAA0C;AAPN,GAAb,CAA1B;AAUA,QAAMC,UAAU,GAAG1G,aAAa,CAAE;AACjC4D,IAAAA,GADiC;AAEjChB,IAAAA,SAAS,EAAE0D;AAFsB,GAAF,CAAhC,CA3NG,CAgOH;;AACA,QAAMK,WAAW,GAAKC,OAAF,IAAe;AAClC,WACC,cAAC,WAAD;AACC,MAAA,SAAS,EAAGvH,UAAU,CAAE,gCAAF,EAAoC;AACzD,SAAEgH,WAAW,CAACzD,SAAd,GACC,CAAC,CAAEyD,WAAW,CAACzD,SAAf,IAA4B,CAAED;AAF0B,OAApC,CADvB;AAKC,MAAA,gBAAgB,EAAG,IALpB;AAMC,MAAA,IAAI,EAAG/B,IANR;AAOC,MAAA,KAAK,EAAGF,EAAE,CAAE,OAAF,CAPX;AAQC,MAAA,YAAY,EAAGA,EAAE,CAChB,gFADgB,CARlB;AAWC,MAAA,KAAK,EAAGiC,UAAU,GAAG6B,SAAH,GAAe6B,WAAW,CAACE;AAX9C,OAaGK,OAbH,CADD;AAiBA,GAlBD;;AAoBA,SACC,wBAAaF,UAAb,EACG,CAAEnD,YAAY,IAAIxB,GAAlB,KACD,cAAC,KAAD;AACC,IAAA,YAAY,EAAGwB,YADhB;AAEC,IAAA,UAAU,EAAGd,UAFd;AAGC,IAAA,aAAa,EAAGC,aAHjB;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,iBAAiB,EAAGE,iBALrB;AAMC,IAAA,SAAS,EAAGC,SANb;AAOC,IAAA,aAAa,EAAG2B,aAPjB;AAQC,IAAA,WAAW,EAAGc,WARf;AASC,IAAA,aAAa,EAAGnB,aATjB;AAUC,IAAA,YAAY,EAAGR,GAVhB;AAWC,IAAA,OAAO,EAAGb,OAXX;AAYC,IAAA,QAAQ,EAAGC,QAZZ;AAaC,IAAA,gBAAgB,EAAGkB;AAbpB,IAFF,EAkBG,CAAEnC,GAAF,IAASmC,gBAAgB,KAAK,SAA9B,IACD,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,qBAAD;AACC,IAAA,KAAK,EAAGf,KADT;AAEC,IAAA,QAAQ,EAAGsC;AAFZ,IADD,CAnBF,EA0BC,cAAC,gBAAD;AACC,IAAA,IAAI,EAAG,cAAC,SAAD;AAAW,MAAA,IAAI,EAAG7E;AAAlB,MADR;AAEC,IAAA,QAAQ,EAAG6D,aAFZ;AAGC,IAAA,WAAW,EAAGc,WAHf;AAIC,IAAA,OAAO,EAAGnB,aAJX;AAKC,IAAA,WAAW,EAAGuC,WALf;AAMC,IAAA,MAAM,EAAC,SANR;AAOC,IAAA,YAAY,EAAGvF,mBAPhB;AAQC,IAAA,KAAK,EAAG;AAAEgB,MAAAA,EAAF;AAAMmC,MAAAA;AAAN,KART;AASC,IAAA,YAAY,EAAG6B,YAThB;AAUC,IAAA,mBAAmB,EAAG7C,YAAY,IAAIxB;AAVvC,IA1BD,CADD;AAyCA;AAED,eAAeS,SAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\nimport { unlock } from '../private-apis';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t};\n\t}, [] );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
|