@wordpress/block-library 8.28.5 → 8.30.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 +4 -0
- package/build/audio/edit.js +7 -17
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js.map +1 -1
- package/build/avatar/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/edit.js +1 -6
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -7
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/edit.js +8 -2
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -1
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +0 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/details/index.js +1 -0
- package/build/details/index.js.map +1 -1
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +6 -13
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js +5 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/group/variations.js +12 -15
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +5 -0
- package/build/list/edit.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -1
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +1 -0
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +16 -7
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/pattern/edit.js +23 -9
- package/build/pattern/edit.js.map +1 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/utils.js +7 -5
- package/build/query/utils.js.map +1 -1
- package/build/query-pagination-next/edit.js.map +1 -1
- package/build/query-pagination-previous/edit.js.map +1 -1
- package/build/quote/deprecated.js +111 -12
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +5 -5
- package/build/quote/edit.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +1 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/{edit/index.js → edit.js} +1 -1
- package/build/site-title/edit.js.map +1 -0
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +53 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +2 -8
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build/utils/hooks.js +55 -4
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +7 -16
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +2 -7
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +10 -20
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/edit.js +2 -7
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -7
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +8 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -1
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +1 -7
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/details/index.js +1 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +7 -14
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js +5 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/group/variations.js +12 -15
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +5 -0
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -1
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +17 -8
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/paragraph/edit.native.js.map +1 -1
- package/build-module/pattern/edit.js +24 -10
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/utils.js +7 -5
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-pagination-next/edit.js.map +1 -1
- package/build-module/query-pagination-previous/edit.js.map +1 -1
- package/build-module/quote/deprecated.js +112 -13
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +5 -5
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +1 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/{edit/index.js → edit.js} +1 -1
- package/build-module/site-title/edit.js.map +1 -0
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +57 -5
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -8
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build-module/utils/hooks.js +54 -3
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +10 -19
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +2 -7
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/editor-rtl.css +4 -1
- package/build-style/editor.css +4 -1
- package/build-style/group/editor-rtl.css +1 -1
- package/build-style/group/editor.css +1 -1
- package/build-style/image/editor-rtl.css +3 -0
- package/build-style/image/editor.css +3 -0
- package/package.json +34 -34
- package/src/audio/edit.js +9 -19
- package/src/audio/edit.native.js +3 -3
- package/src/avatar/edit.js +1 -1
- package/src/avatar/index.php +12 -1
- package/src/block/index.php +2 -0
- package/src/button/edit.js +2 -2
- package/src/buttons/edit.js +3 -16
- package/src/buttons/edit.native.js +2 -18
- package/src/calendar/index.php +5 -0
- package/src/columns/edit.js +9 -2
- package/src/comment-author-avatar/edit.js +1 -1
- package/src/comments/index.php +2 -0
- package/src/cover/edit/index.js +2 -2
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit/resizable-cover-popover.js +1 -6
- package/src/cover/edit.native.js +1 -1
- package/src/details/block.json +1 -0
- package/src/file/deprecated.js +3 -3
- package/src/file/edit.js +8 -15
- package/src/file/edit.native.js +4 -4
- package/src/file/save.js +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/gallery/edit.js +6 -12
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/test/index.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -2
- package/src/gallery/v1/gallery.native.js +1 -1
- package/src/group/editor.scss +1 -1
- package/src/group/variations.js +3 -6
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/editor.scss +6 -0
- package/src/image/image.js +2 -2
- package/src/latest-posts/edit.native.js +1 -1
- package/src/list/edit.js +5 -0
- package/src/list/ordered-list-settings.js +1 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/hooks/use-indent-list-item.js +2 -0
- package/src/list-item/hooks/use-outdent-list-item.js +2 -0
- package/src/list-item/hooks/use-space.js +16 -9
- package/src/media-text/media-container.native.js +5 -3
- package/src/media-text/test/edit.native.js +58 -0
- package/src/missing/test/edit-integration.native.js +2 -1
- package/src/navigation/edit/index.js +1 -1
- package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
- package/src/navigation/index.php +18 -13
- package/src/navigation-link/link-ui.js +2 -2
- package/src/paragraph/edit.native.js +1 -1
- package/src/paragraph/test/edit.native.js +36 -0
- package/src/pattern/edit.js +27 -10
- package/src/post-author-biography/index.php +4 -3
- package/src/post-author-name/index.php +4 -3
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-navigation-link/edit.js +1 -1
- package/src/post-template/index.php +2 -0
- package/src/query/edit/pattern-selection-modal.js +1 -1
- package/src/query/utils.js +6 -4
- package/src/query-pagination-next/edit.js +1 -1
- package/src/query-pagination-previous/edit.js +1 -1
- package/src/quote/block.json +1 -1
- package/src/quote/deprecated.js +110 -15
- package/src/quote/edit.js +5 -5
- package/src/quote/save.js +2 -2
- package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
- package/src/read-more/edit.js +1 -1
- package/src/search/edit.js +1 -1
- package/src/search/edit.native.js +4 -4
- package/src/site-logo/edit.js +1 -1
- package/src/social-link/edit.js +1 -1
- package/src/social-links/edit.native.js +1 -1
- package/src/spacer/edit.js +1 -1
- package/src/table-of-contents/edit.js +1 -1
- package/src/template-part/edit/index.js +91 -4
- package/src/template-part/edit/selection-modal.js +4 -8
- package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
- package/src/utils/hooks.js +53 -3
- package/src/video/edit-common-settings.js +1 -1
- package/src/video/edit.js +10 -18
- package/src/video/edit.native.js +5 -8
- package/src/video/test/edit.native.js +0 -14
- package/build/site-title/edit/index.js.map +0 -1
- package/build-module/site-title/edit/index.js.map +0 -1
- /package/src/site-title/{edit/index.js → edit.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_compose","require","_components","_blockEditor","_element","_i18n","_blob","_data","_viewport","_primitives","_coreData","_sharedIcon","_shared","_deprecated","_gallery","_interopRequireDefault","_constants","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","defaultColumnsNumberV1","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","useState","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","useSelect","settings","getSettings","coreStore","resizedImages","useMemo","_attributes$ids","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","pickRelevantMediaFiles","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","useEffect","OS","every","isBlobURL","filesList","getBlobByURL","forEach","revokeBlobURL","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","_react","createElement","MediaPlaceholder","addToGallery","isAppender","disableMediaButtons","icon","sharedIcon","labels","title","instructions","onSelect","accept","multiple","onError","notices","undefined","autoOpenMediaUpload","blockProps","useBlockProps","View","imageSizeOptions","shouldShowSizeOptions","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","onChange","max","required","ToggleControl","help","SelectControl","options","hideCancelButton","default","onSetImageAttributes","_default","exports","compose","withNotices","withViewportMatch","isNarrow"],"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_compose","require","_components","_blockEditor","_element","_i18n","_blob","_data","_viewport","_primitives","_coreData","_sharedIcon","_shared","_deprecated","_gallery","_interopRequireDefault","_constants","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","defaultColumnsNumberV1","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","useState","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","useSelect","settings","getSettings","coreStore","resizedImages","useMemo","_attributes$ids","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","pickRelevantMediaFiles","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","useEffect","OS","every","isBlobURL","filesList","getBlobByURL","forEach","revokeBlobURL","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","_react","createElement","MediaPlaceholder","addToGallery","isAppender","disableMediaButtons","icon","sharedIcon","labels","title","instructions","onSelect","accept","multiple","onError","notices","undefined","autoOpenMediaUpload","blockProps","useBlockProps","View","imageSizeOptions","shouldShowSizeOptions","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","onChange","max","required","ToggleControl","help","SelectControl","options","hideCancelButton","default","onSetImageAttributes","_default","exports","compose","withNotices","withViewportMatch","isNarrow"],"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"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\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\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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_galleryImage","_interopRequireDefault","_deprecated","_galleryStyles","_tiles","_i18n","_blockEditor","_element","_reactNativeBridge","_data","_components","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","isFullWidth","alignmentHelpers","Gallery","props","isCaptionSelected","setIsCaptionSelected","useState","useEffect","mediaUploadSync","isRTL","useSelect","select","blockEditorStore","getSettings","clientId","selectedImage","mediaPlaceholder","onBlur","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onSetImageAttributes","onFocusGalleryCaption","attributes","isSelected","isNarrow","onFocus","insertBlocksAfter","align","columns","defaultColumnsNumberV1","imageCrop","images","displayedColumns","Math","min","selectImage","index","focusGalleryCaption","_react","createElement","View","style","flex","default","spacing","styles","galleryTilesContainerSelected","undefined","map","img","ariaLabel","sprintf","__","length","key","id","url","alt","parseInt","isCropped","isFirstItem","isLastItem","isBlockSelected","onRemove","onSelect","onSelectBlock","setAttributes","attrs","caption","fullWidth","BlockCaption","accessible","accessibilityLabelCreator","RichText","isEmpty","exports","_default"],"sources":["@wordpress/block-library/src/gallery/v1/gallery.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport styles from './gallery-styles.scss';\nimport Tiles from './tiles';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { useSelect } from '@wordpress/data';\nimport { alignmentHelpers } from '@wordpress/components';\n\nconst TILE_SPACING = 15;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nconst { isFullWidth } = alignmentHelpers;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst {\n\t\tclientId,\n\t\tselectedImage,\n\t\tmediaPlaceholder,\n\t\tonBlur,\n\t\tonMoveBackward,\n\t\tonMoveForward,\n\t\tonRemoveImage,\n\t\tonSelectImage,\n\t\tonSetImageAttributes,\n\t\tonFocusGalleryCaption,\n\t\tattributes,\n\t\tisSelected,\n\t\tisNarrow,\n\t\tonFocus,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\talign,\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t} = attributes;\n\n\t// limit displayed columns when isNarrow is true (i.e. when viewport width is\n\t// less than \"small\", where small = 600)\n\tconst displayedColumns = isNarrow\n\t\t? Math.min( columns, MAX_DISPLAYED_COLUMNS_NARROW )\n\t\t: Math.min( columns, MAX_DISPLAYED_COLUMNS );\n\n\tconst selectImage = ( index ) => {\n\t\treturn () => {\n\t\t\tif ( isCaptionSelected ) {\n\t\t\t\tsetIsCaptionSelected( false );\n\t\t\t}\n\t\t\t// We need to fully invoke the curried function here.\n\t\t\tonSelectImage( index )();\n\t\t};\n\t};\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t\tonFocusGalleryCaption();\n\t};\n\n\treturn (\n\t\t<View style={ { flex: 1 } }>\n\t\t\t<Tiles\n\t\t\t\tcolumns={ displayedColumns }\n\t\t\t\tspacing={ TILE_SPACING }\n\t\t\t\tstyle={\n\t\t\t\t\tisSelected\n\t\t\t\t\t\t? styles.galleryTilesContainerSelected\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ images.map( ( img, index ) => {\n\t\t\t\t\tconst ariaLabel = sprintf(\n\t\t\t\t\t\t/* translators: 1: the order number of the image. 2: the total number of images. */\n\t\t\t\t\t\t__( 'image %1$d of %2$d in gallery' ),\n\t\t\t\t\t\tindex + 1,\n\t\t\t\t\t\timages.length\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\tkey={ img.id ? `${ img.id }-${ index }` : img.url }\n\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\tid={ parseInt( img.id, 10 ) } // make id an integer explicitly\n\t\t\t\t\t\t\tisCropped={ imageCrop }\n\t\t\t\t\t\t\tisFirstItem={ index === 0 }\n\t\t\t\t\t\t\tisLastItem={ index + 1 === images.length }\n\t\t\t\t\t\t\tisSelected={ isSelected && selectedImage === index }\n\t\t\t\t\t\t\tisBlockSelected={ isSelected }\n\t\t\t\t\t\t\tonMoveBackward={ onMoveBackward( index ) }\n\t\t\t\t\t\t\tonMoveForward={ onMoveForward( index ) }\n\t\t\t\t\t\t\tonRemove={ onRemoveImage( index ) }\n\t\t\t\t\t\t\tonSelect={ selectImage( index ) }\n\t\t\t\t\t\t\tonSelectBlock={ onFocus }\n\t\t\t\t\t\t\tsetAttributes={ ( attrs ) =>\n\t\t\t\t\t\t\t\tonSetImageAttributes( index, attrs )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Tiles>\n\t\t\t<View style={ isFullWidth( align ) && styles.fullWidth }>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_galleryImage","_interopRequireDefault","_deprecated","_galleryStyles","_tiles","_i18n","_blockEditor","_element","_reactNativeBridge","_data","_components","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","isFullWidth","alignmentHelpers","Gallery","props","isCaptionSelected","setIsCaptionSelected","useState","useEffect","mediaUploadSync","isRTL","useSelect","select","blockEditorStore","getSettings","clientId","selectedImage","mediaPlaceholder","onBlur","onMoveBackward","onMoveForward","onRemoveImage","onSelectImage","onSetImageAttributes","onFocusGalleryCaption","attributes","isSelected","isNarrow","onFocus","insertBlocksAfter","align","columns","defaultColumnsNumberV1","imageCrop","images","displayedColumns","Math","min","selectImage","index","focusGalleryCaption","_react","createElement","View","style","flex","default","spacing","styles","galleryTilesContainerSelected","undefined","map","img","ariaLabel","sprintf","__","length","key","id","url","alt","parseInt","isCropped","isFirstItem","isLastItem","isBlockSelected","onRemove","onSelect","onSelectBlock","setAttributes","attrs","caption","fullWidth","BlockCaption","accessible","accessibilityLabelCreator","RichText","isEmpty","exports","_default"],"sources":["@wordpress/block-library/src/gallery/v1/gallery.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport styles from './gallery-styles.scss';\nimport Tiles from './tiles';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { useSelect } from '@wordpress/data';\nimport { alignmentHelpers } from '@wordpress/components';\n\nconst TILE_SPACING = 15;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nconst { isFullWidth } = alignmentHelpers;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst {\n\t\tclientId,\n\t\tselectedImage,\n\t\tmediaPlaceholder,\n\t\tonBlur,\n\t\tonMoveBackward,\n\t\tonMoveForward,\n\t\tonRemoveImage,\n\t\tonSelectImage,\n\t\tonSetImageAttributes,\n\t\tonFocusGalleryCaption,\n\t\tattributes,\n\t\tisSelected,\n\t\tisNarrow,\n\t\tonFocus,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\talign,\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t} = attributes;\n\n\t// limit displayed columns when isNarrow is true (i.e. when viewport width is\n\t// less than \"small\", where small = 600)\n\tconst displayedColumns = isNarrow\n\t\t? Math.min( columns, MAX_DISPLAYED_COLUMNS_NARROW )\n\t\t: Math.min( columns, MAX_DISPLAYED_COLUMNS );\n\n\tconst selectImage = ( index ) => {\n\t\treturn () => {\n\t\t\tif ( isCaptionSelected ) {\n\t\t\t\tsetIsCaptionSelected( false );\n\t\t\t}\n\t\t\t// We need to fully invoke the curried function here.\n\t\t\tonSelectImage( index )();\n\t\t};\n\t};\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t\tonFocusGalleryCaption();\n\t};\n\n\treturn (\n\t\t<View style={ { flex: 1 } }>\n\t\t\t<Tiles\n\t\t\t\tcolumns={ displayedColumns }\n\t\t\t\tspacing={ TILE_SPACING }\n\t\t\t\tstyle={\n\t\t\t\t\tisSelected\n\t\t\t\t\t\t? styles.galleryTilesContainerSelected\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ images.map( ( img, index ) => {\n\t\t\t\t\tconst ariaLabel = sprintf(\n\t\t\t\t\t\t/* translators: 1: the order number of the image. 2: the total number of images. */\n\t\t\t\t\t\t__( 'image %1$d of %2$d in gallery' ),\n\t\t\t\t\t\tindex + 1,\n\t\t\t\t\t\timages.length\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\tkey={ img.id ? `${ img.id }-${ index }` : img.url }\n\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\tid={ parseInt( img.id, 10 ) } // make id an integer explicitly\n\t\t\t\t\t\t\tisCropped={ imageCrop }\n\t\t\t\t\t\t\tisFirstItem={ index === 0 }\n\t\t\t\t\t\t\tisLastItem={ index + 1 === images.length }\n\t\t\t\t\t\t\tisSelected={ isSelected && selectedImage === index }\n\t\t\t\t\t\t\tisBlockSelected={ isSelected }\n\t\t\t\t\t\t\tonMoveBackward={ onMoveBackward( index ) }\n\t\t\t\t\t\t\tonMoveForward={ onMoveForward( index ) }\n\t\t\t\t\t\t\tonRemove={ onRemoveImage( index ) }\n\t\t\t\t\t\t\tonSelect={ selectImage( index ) }\n\t\t\t\t\t\t\tonSelectBlock={ onFocus }\n\t\t\t\t\t\t\tsetAttributes={ ( attrs ) =>\n\t\t\t\t\t\t\t\tonSetImageAttributes( index, attrs )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Tiles>\n\t\t\t<View style={ isFullWidth( align ) && styles.fullWidth }>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible\n\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t? /* translators: accessibility text. Empty gallery caption. */\n\t\t\t\t\t\t 'Gallery caption. Empty'\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: gallery caption. */\n\t\t\t\t\t\t\t\t__( 'Gallery caption. %s' ),\n\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tonFocus={ focusGalleryCaption }\n\t\t\t\tonBlur={ onBlur } // Always assign onBlur as props.\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default Gallery;\n"],"mappings":"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"}
|
|
@@ -49,21 +49,18 @@ const variations = [{
|
|
|
49
49
|
scope: ['block', 'inserter', 'transform'],
|
|
50
50
|
isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && blockAttributes.layout?.orientation === 'vertical',
|
|
51
51
|
icon: _icons.stack
|
|
52
|
+
}, {
|
|
53
|
+
name: 'group-grid',
|
|
54
|
+
title: (0, _i18n.__)('Grid'),
|
|
55
|
+
description: (0, _i18n.__)('Arrange blocks in a grid.'),
|
|
56
|
+
attributes: {
|
|
57
|
+
layout: {
|
|
58
|
+
type: 'grid'
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
scope: ['block', 'inserter', 'transform'],
|
|
62
|
+
isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
|
|
63
|
+
icon: _icons.grid
|
|
52
64
|
}];
|
|
53
|
-
if (window?.__experimentalEnableGroupGridVariation) {
|
|
54
|
-
variations.push({
|
|
55
|
-
name: 'group-grid',
|
|
56
|
-
title: (0, _i18n.__)('Grid'),
|
|
57
|
-
description: (0, _i18n.__)('Arrange blocks in a grid.'),
|
|
58
|
-
attributes: {
|
|
59
|
-
layout: {
|
|
60
|
-
type: 'grid'
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
scope: ['block', 'inserter', 'transform'],
|
|
64
|
-
isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
|
|
65
|
-
icon: _icons.grid
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
65
|
var _default = exports.default = variations;
|
|
69
66
|
//# sourceMappingURL=variations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_icons","variations","name","title","__","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","group","_x","flexWrap","orientation","row","stack","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icons","variations","name","title","__","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","group","_x","flexWrap","orientation","row","stack","grid","_default","exports","default"],"sources":["@wordpress/block-library/src/group/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack, grid } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'group',\n\t\ttitle: __( 'Group' ),\n\t\tdescription: __( 'Gather blocks in a container.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes.layout ||\n\t\t\t! blockAttributes.layout?.type ||\n\t\t\tblockAttributes.layout?.type === 'default' ||\n\t\t\tblockAttributes.layout?.type === 'constrained',\n\t\ticon: group,\n\t},\n\t{\n\t\tname: 'group-row',\n\t\ttitle: _x( 'Row', 'single horizontal line' ),\n\t\tdescription: __( 'Arrange blocks horizontally.' ),\n\t\tattributes: { layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\t( ! blockAttributes.layout?.orientation ||\n\t\t\t\tblockAttributes.layout?.orientation === 'horizontal' ),\n\t\ticon: row,\n\t},\n\t{\n\t\tname: 'group-stack',\n\t\ttitle: __( 'Stack' ),\n\t\tdescription: __( 'Arrange blocks vertically.' ),\n\t\tattributes: { layout: { type: 'flex', orientation: 'vertical' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\tblockAttributes.layout?.orientation === 'vertical',\n\t\ticon: stack,\n\t},\n\t{\n\t\tname: 'group-grid',\n\t\ttitle: __( 'Grid' ),\n\t\tdescription: __( 'Arrange blocks in a grid.' ),\n\t\tattributes: { layout: { type: 'grid' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'grid',\n\t\ticon: grid,\n\t},\n];\n\nexport default variations;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,UAAU,GAAG,CAClB;EACCC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,WAAW,EAAE,IAAAD,QAAE,EAAE,+BAAgC,CAAC;EAClDE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAc;EAAE,CAAC;EAC/CC,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1B,CAAEA,eAAe,CAACL,MAAM,IACxB,CAAEK,eAAe,CAACL,MAAM,EAAEC,IAAI,IAC9BI,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,SAAS,IAC1CI,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,aAAa;EAC/CK,IAAI,EAAEC;AACP,CAAC,EACD;EACCZ,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE,IAAAY,QAAE,EAAE,KAAK,EAAE,wBAAyB,CAAC;EAC5CV,WAAW,EAAE,IAAAD,QAAE,EAAE,8BAA+B,CAAC;EACjDE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAEQ,QAAQ,EAAE;IAAS;EAAE,CAAC;EAC5DN,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM,KACrC,CAAEI,eAAe,CAACL,MAAM,EAAEU,WAAW,IACtCL,eAAe,CAACL,MAAM,EAAEU,WAAW,KAAK,YAAY,CAAE;EACxDJ,IAAI,EAAEK;AACP,CAAC,EACD;EACChB,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,WAAW,EAAE,IAAAD,QAAE,EAAE,4BAA6B,CAAC;EAC/CE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAES,WAAW,EAAE;IAAW;EAAE,CAAC;EACjEP,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM,IACvCI,eAAe,CAACL,MAAM,EAAEU,WAAW,KAAK,UAAU;EACnDJ,IAAI,EAAEM;AACP,CAAC,EACD;EACCjB,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,WAAW,EAAE,IAAAD,QAAE,EAAE,2BAA4B,CAAC;EAC9CE,UAAU,EAAE;IAAEC,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAO;EAAE,CAAC;EACxCE,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAE;EAC3CC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,CAACL,MAAM,EAAEC,IAAI,KAAK,MAAM;EACxCK,IAAI,EAAEO;AACP,CAAC,CACD;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEatB,UAAU"}
|
package/build/image/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_image","_constants","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isTemporaryImage","id","isBlobURL","isExternalImage","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","undefined","ref","getSettings","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","isTemp","file","getBlobByURL","mediaUpload","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","revokeBlobURL","isExternal","mediaPreview","_react","createElement","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","classnames","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","lockAttributesEditing","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","default","containerRef","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\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 the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\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 { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ align ] );\n\n\tconst ref = useRef();\n\tconst { getSettings } = useSelect( blockEditorStore );\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\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\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\tsizeSlug: newSize,\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\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\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\tconst { mediaUpload } = getSettings();\n\t\t\tif ( ! mediaUpload ) {\n\t\t\t\treturn;\n\t\t\t}\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\tconst shadowProps = getShadowClassesAndStyles( 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 { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t( ! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource?.lockAttributesEditing ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ isSingleSelected ]\n\t);\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 && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\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\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ 'block-bindings-media-placeholder-message' }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_image","_constants","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isTemporaryImage","id","isBlobURL","isExternalImage","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","undefined","ref","getSettings","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","isTemp","file","getBlobByURL","mediaUpload","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","revokeBlobURL","isExternal","mediaPreview","_react","createElement","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","classnames","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","lockAttributesEditing","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","default","containerRef","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\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 the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\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 { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ align ] );\n\n\tconst ref = useRef();\n\tconst { getSettings } = useSelect( blockEditorStore );\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\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\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\tsizeSlug: newSize,\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\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\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\tconst { mediaUpload } = getSettings();\n\t\t\tif ( ! mediaUpload ) {\n\t\t\t\treturn;\n\t\t\t}\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\tconst shadowProps = getShadowClassesAndStyles( 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 { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t( ! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource?.lockAttributesEditing ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ isSingleSelected ]\n\t);\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 && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\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\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ 'block-bindings-media-placeholder-message' }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\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"],"mappings":"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"}
|