@wordpress/block-library 9.1.0 → 9.3.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 +21 -17
- package/build/audio/edit.js +20 -8
- package/build/audio/edit.js.map +1 -1
- package/build/audio/index.js +4 -0
- package/build/audio/index.js.map +1 -1
- package/build/audio/transforms.js +1 -1
- package/build/audio/transforms.js.map +1 -1
- package/build/block/edit.js +0 -1
- package/build/block/edit.js.map +1 -1
- package/build/block/index.js +5 -1
- package/build/block/index.js.map +1 -1
- package/build/button/index.js +1 -0
- package/build/button/index.js.map +1 -1
- package/build/embed/embed-preview.js +4 -4
- package/build/embed/embed-preview.js.map +1 -1
- package/build/file/edit.js +14 -6
- package/build/file/edit.js.map +1 -1
- package/build/file/index.js +4 -0
- package/build/file/index.js.map +1 -1
- package/build/file/transforms.js +2 -3
- package/build/file/transforms.js.map +1 -1
- package/build/gallery/deprecated.js +6 -54
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit.js +9 -8
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/index.js +2 -2
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/save.js +0 -11
- package/build/gallery/save.js.map +1 -1
- package/build/gallery/shared.js +0 -27
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/transforms.js +29 -80
- package/build/gallery/transforms.js.map +1 -1
- package/build/group/index.js +1 -0
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +5 -0
- package/build/group/placeholder.js.map +1 -1
- package/build/image/edit.js +13 -21
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +33 -19
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +4 -0
- package/build/image/index.js.map +1 -1
- package/build/image/transforms.js +1 -1
- package/build/image/transforms.js.map +1 -1
- package/build/list-item/edit.js +1 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +8 -1
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/index.js +11 -1
- package/build/list-item/index.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/loginout/index.js +3 -0
- package/build/loginout/index.js.map +1 -1
- package/build/media-text/edit.js +3 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +1 -1
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +1 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/post-content/index.js +3 -0
- package/build/post-content/index.js.map +1 -1
- package/build/post-date/edit.js +3 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/index.js +3 -0
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-title/index.js +3 -0
- package/build/post-title/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +3 -2
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-toolbar.js +54 -61
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build/query/index.js +34 -0
- package/build/query/index.js.map +1 -1
- package/build/quote/edit.js +1 -0
- package/build/quote/edit.js.map +1 -1
- package/build/site-tagline/index.js +1 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/index.js +1 -0
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/edit.js +9 -3
- package/build/social-link/edit.js.map +1 -1
- package/build/table/edit.js +8 -17
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/index.js +1 -1
- package/build/template-part/edit/title-modal.js +1 -1
- package/build/template-part/edit/title-modal.js.map +1 -1
- package/build/utils/caption.js +2 -1
- package/build/utils/caption.js.map +1 -1
- package/build/utils/hooks.js +12 -0
- package/build/utils/hooks.js.map +1 -1
- package/build/verse/index.js +1 -0
- package/build/verse/index.js.map +1 -1
- package/build/video/deprecated.js +4 -0
- package/build/video/deprecated.js.map +1 -1
- package/build/video/edit.js +17 -7
- package/build/video/edit.js.map +1 -1
- package/build/video/index.js +4 -0
- package/build/video/index.js.map +1 -1
- package/build/video/transforms.js +1 -1
- package/build/video/transforms.js.map +1 -1
- package/build-module/audio/edit.js +20 -8
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/index.js +4 -0
- package/build-module/audio/index.js.map +1 -1
- package/build-module/audio/transforms.js +1 -1
- package/build-module/audio/transforms.js.map +1 -1
- package/build-module/block/edit.js +0 -1
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/index.js +5 -1
- package/build-module/block/index.js.map +1 -1
- package/build-module/button/index.js +1 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/embed/embed-preview.js +4 -4
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/file/edit.js +15 -7
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/index.js +4 -0
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/transforms.js +2 -3
- package/build-module/file/transforms.js.map +1 -1
- package/build-module/gallery/deprecated.js +6 -54
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/edit.js +10 -9
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/index.js +1 -1
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/save.js +0 -11
- package/build-module/gallery/save.js.map +1 -1
- package/build-module/gallery/shared.js +0 -25
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/transforms.js +29 -80
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/group/index.js +1 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +5 -0
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/image/edit.js +12 -20
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +28 -14
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +4 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/transforms.js +1 -1
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/list-item/edit.js +1 -1
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +8 -1
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/index.js +11 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/loginout/index.js +3 -0
- package/build-module/loginout/index.js.map +1 -1
- package/build-module/media-text/edit.js +3 -2
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +1 -1
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +1 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/post-content/index.js +3 -0
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/post-date/edit.js +4 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/index.js +3 -0
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-title/index.js +3 -0
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +3 -2
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-toolbar.js +55 -62
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-module/query/index.js +34 -0
- package/build-module/query/index.js.map +1 -1
- package/build-module/quote/edit.js +1 -0
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +1 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/index.js +1 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/edit.js +9 -3
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/table/edit.js +9 -18
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +1 -1
- package/build-module/template-part/edit/title-modal.js +1 -1
- package/build-module/template-part/edit/title-modal.js.map +1 -1
- package/build-module/utils/caption.js +2 -1
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/hooks.js +11 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/verse/index.js +1 -0
- package/build-module/verse/index.js.map +1 -1
- package/build-module/video/deprecated.js +4 -0
- package/build-module/video/deprecated.js.map +1 -1
- package/build-module/video/edit.js +18 -8
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/index.js +4 -0
- package/build-module/video/index.js.map +1 -1
- package/build-module/video/transforms.js +1 -1
- package/build-module/video/transforms.js.map +1 -1
- package/build-style/audio/style-rtl.css +1 -1
- package/build-style/audio/style.css +1 -1
- package/build-style/audio/theme-rtl.css +2 -2
- package/build-style/audio/theme.css +2 -2
- package/build-style/common-rtl.css +1 -3
- package/build-style/common.css +1 -3
- package/build-style/editor-rtl.css +3 -12
- package/build-style/editor.css +3 -12
- package/build-style/embed/style-rtl.css +1 -1
- package/build-style/embed/style.css +1 -1
- package/build-style/embed/theme-rtl.css +2 -2
- package/build-style/embed/theme.css +2 -2
- package/build-style/image/editor-rtl.css +0 -12
- package/build-style/image/editor.css +0 -12
- package/build-style/image/style-rtl.css +7 -1
- package/build-style/image/style.css +7 -1
- package/build-style/media-text/style-rtl.css +4 -0
- package/build-style/media-text/style.css +4 -0
- package/build-style/navigation/style-rtl.css +1 -0
- package/build-style/navigation/style.css +1 -0
- package/build-style/post-comments-form/style-rtl.css +11 -10
- package/build-style/post-comments-form/style.css +11 -10
- package/build-style/query/editor-rtl.css +3 -0
- package/build-style/query/editor.css +3 -0
- package/build-style/reset-rtl.css +1 -5
- package/build-style/reset.css +1 -5
- package/build-style/search/style-rtl.css +1 -2
- package/build-style/search/style.css +1 -2
- package/build-style/social-links/style-rtl.css +91 -91
- package/build-style/social-links/style.css +91 -91
- package/build-style/style-rtl.css +119 -110
- package/build-style/style.css +119 -110
- package/build-style/table/theme-rtl.css +2 -2
- package/build-style/table/theme.css +2 -2
- package/build-style/theme-rtl.css +8 -8
- package/build-style/theme.css +8 -8
- package/build-style/video/style-rtl.css +1 -1
- package/build-style/video/style.css +1 -1
- package/build-style/video/theme-rtl.css +2 -2
- package/build-style/video/theme.css +2 -2
- package/package.json +35 -35
- package/src/audio/block.json +4 -0
- package/src/audio/edit.js +19 -7
- package/src/audio/style.scss +1 -1
- package/src/audio/theme.scss +1 -1
- package/src/audio/transforms.js +1 -1
- package/src/block/block.json +5 -1
- package/src/block/edit.js +0 -1
- package/src/button/block.json +1 -0
- package/src/button/index.php +14 -1
- package/src/embed/embed-preview.js +4 -6
- package/src/embed/style.scss +1 -1
- package/src/embed/theme.scss +1 -1
- package/src/file/block.json +4 -0
- package/src/file/edit.js +19 -6
- package/src/file/transforms.js +1 -2
- package/src/gallery/deprecated.js +6 -55
- package/src/gallery/edit.js +13 -10
- package/src/gallery/gallery-styles.native.scss +0 -2
- package/src/gallery/index.js +1 -1
- package/src/gallery/save.js +0 -10
- package/src/gallery/shared.js +0 -28
- package/src/gallery/transforms.js +56 -99
- package/src/group/block.json +1 -0
- package/src/group/placeholder.js +7 -0
- package/src/image/block.json +4 -0
- package/src/image/edit.js +10 -19
- package/src/image/editor.scss +0 -13
- package/src/image/image.js +45 -16
- package/src/image/index.php +26 -5
- package/src/image/style.scss +11 -1
- package/src/image/transforms.js +1 -1
- package/src/list-item/block.json +11 -1
- package/src/list-item/edit.js +1 -1
- package/src/list-item/hooks/use-merge.js +19 -5
- package/src/lock-unlock.js +1 -1
- package/src/loginout/block.json +3 -0
- package/src/media-text/edit.js +3 -2
- package/src/media-text/index.php +68 -18
- package/src/media-text/style.scss +4 -0
- package/src/navigation/index.php +5 -3
- package/src/navigation/style.scss +1 -0
- package/src/navigation-submenu/edit.js +1 -1
- package/src/page-list/convert-to-links-modal.js +1 -1
- package/src/page-list/edit.js +1 -1
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +30 -0
- package/src/paragraph/test/edit.native.js +99 -0
- package/src/post-comments-form/style.scss +15 -12
- package/src/post-content/block.json +3 -0
- package/src/post-date/edit.js +5 -1
- package/src/post-date/index.php +9 -3
- package/src/post-excerpt/block.json +3 -0
- package/src/post-title/block.json +3 -0
- package/src/query/edit/inspector-controls/index.js +3 -2
- package/src/query/edit/query-toolbar.js +60 -72
- package/src/query/editor.scss +4 -0
- package/src/query/index.js +40 -0
- package/src/quote/edit.js +1 -0
- package/src/reset.scss +11 -12
- package/src/site-tagline/block.json +1 -0
- package/src/site-title/block.json +1 -0
- package/src/social-link/edit.js +9 -3
- package/src/social-links/style.scss +2 -2
- package/src/table/edit.js +11 -24
- package/src/table/theme.scss +1 -1
- package/src/table-of-contents/block.json +1 -1
- package/src/template-part/edit/title-modal.js +1 -1
- package/src/template-part/index.php +1 -1
- package/src/utils/caption.js +5 -1
- package/src/utils/hooks.js +14 -1
- package/src/verse/block.json +1 -0
- package/src/video/block.json +4 -0
- package/src/video/edit.js +23 -8
- package/src/video/style.scss +1 -1
- package/src/video/theme.scss +1 -1
- package/src/video/transforms.js +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/gallery/edit-wrapper.js +0 -37
- package/build/gallery/edit-wrapper.js.map +0 -1
- package/build/gallery/v1/constants.js +0 -10
- package/build/gallery/v1/constants.js.map +0 -1
- package/build/gallery/v1/edit.js +0 -399
- package/build/gallery/v1/edit.js.map +0 -1
- package/build/gallery/v1/gallery-button.native.js +0 -55
- package/build/gallery/v1/gallery-button.native.js.map +0 -1
- package/build/gallery/v1/gallery-image.js +0 -285
- package/build/gallery/v1/gallery-image.js.map +0 -1
- package/build/gallery/v1/gallery-image.native.js +0 -297
- package/build/gallery/v1/gallery-image.native.js.map +0 -1
- package/build/gallery/v1/gallery.js +0 -112
- package/build/gallery/v1/gallery.js.map +0 -1
- package/build/gallery/v1/gallery.native.js +0 -139
- package/build/gallery/v1/gallery.native.js.map +0 -1
- package/build/gallery/v1/save.js +0 -81
- package/build/gallery/v1/save.js.map +0 -1
- package/build/gallery/v1/shared.js +0 -17
- package/build/gallery/v1/shared.js.map +0 -1
- package/build/gallery/v1/tiles.native.js +0 -83
- package/build/gallery/v1/tiles.native.js.map +0 -1
- package/build/utils/constants.js +0 -15
- package/build/utils/constants.js.map +0 -1
- package/build-module/gallery/edit-wrapper.js +0 -31
- package/build-module/gallery/edit-wrapper.js.map +0 -1
- package/build-module/gallery/v1/constants.js +0 -4
- package/build-module/gallery/v1/constants.js.map +0 -1
- package/build-module/gallery/v1/edit.js +0 -393
- package/build-module/gallery/v1/edit.js.map +0 -1
- package/build-module/gallery/v1/gallery-button.native.js +0 -46
- package/build-module/gallery/v1/gallery-button.native.js.map +0 -1
- package/build-module/gallery/v1/gallery-image.js +0 -279
- package/build-module/gallery/v1/gallery-image.js.map +0 -1
- package/build-module/gallery/v1/gallery-image.native.js +0 -291
- package/build-module/gallery/v1/gallery-image.native.js.map +0 -1
- package/build-module/gallery/v1/gallery.js +0 -104
- package/build-module/gallery/v1/gallery.js.map +0 -1
- package/build-module/gallery/v1/gallery.native.js +0 -131
- package/build-module/gallery/v1/gallery.native.js.map +0 -1
- package/build-module/gallery/v1/save.js +0 -74
- package/build-module/gallery/v1/save.js.map +0 -1
- package/build-module/gallery/v1/shared.js +0 -10
- package/build-module/gallery/v1/shared.js.map +0 -1
- package/build-module/gallery/v1/tiles.native.js +0 -75
- package/build-module/gallery/v1/tiles.native.js.map +0 -1
- package/build-module/utils/constants.js +0 -9
- package/build-module/utils/constants.js.map +0 -1
- package/src/gallery/edit-wrapper.js +0 -27
- package/src/gallery/v1/constants.js +0 -3
- package/src/gallery/v1/edit.js +0 -450
- package/src/gallery/v1/gallery-button.native.js +0 -47
- package/src/gallery/v1/gallery-image-style.native.scss +0 -109
- package/src/gallery/v1/gallery-image.js +0 -293
- package/src/gallery/v1/gallery-image.native.js +0 -348
- package/src/gallery/v1/gallery-styles.native.scss +0 -8
- package/src/gallery/v1/gallery.js +0 -125
- package/src/gallery/v1/gallery.native.js +0 -162
- package/src/gallery/v1/save.js +0 -98
- package/src/gallery/v1/shared.js +0 -19
- package/src/gallery/v1/tiles-styles.native.scss +0 -11
- package/src/gallery/v1/tiles.native.js +0 -79
- package/src/utils/constants.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_blob","_hooks","_constants","_shared","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","isGalleryV2Enabled","name","attributes","images","length","innerBlocks","url","alt","createBlock","sizeSlug","linkDestination","addFilter","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","every","attribute","undefined","validImages","filter","image","width","height","caption","toString","tag","named","columns","link","orderby","imageIds","linkTo","LINK_DESTINATION_NONE","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","randomOrder","imageId","isMatch","priority","files","file","indexOf","createBlobURL","pickRelevantMediaFiles","to","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className","index","_default","exports","default"],"sources":["@wordpress/block-library/src/gallery/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tisGalleryV2Enabled() &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\t\timage.width = undefined;\n\t\t\t\t\t\timage.height = undefined;\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: id.toString(),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', { id: imageId } )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_blob","_hooks","_constants","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","createBlock","sizeSlug","linkDestination","addFilter","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","every","attribute","undefined","validImages","filter","image","width","height","tag","named","columns","link","orderby","imageIds","linkTo","LINK_DESTINATION_NONE","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","randomOrder","imageId","isMatch","priority","files","file","indexOf","blob","createBlobURL","to","caption","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className","_default","exports","default"],"sources":["@wordpress/block-library/src/gallery/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\timage.width = undefined;\n\t\t\t\t\timage.height = undefined;\n\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', { id: imageId } )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align }, innerBlocks ) => {\n\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t( {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
|
package/build/group/index.js
CHANGED
package/build/group/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","_variations","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","tagName","type","templateLock","allowedBlocks","supports","__experimentalOnEnter","__experimentalOnMerge","__experimentalSettings","align","anchor","ariaLabel","html","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","heading","button","link","text","spacing","margin","padding","blockGap","dimensions","minHeight","__experimentalBorder","radius","style","width","position","sticky","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","allowSizingOnChildren","interactivity","clientNavigation","editorStyle","settings","icon","example","innerBlocks","customTextColor","content","__","transforms","edit","save","deprecated","variations","init","initBlock"],"sources":["@wordpress/block-library/src/group/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,KAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,WAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,WAAA,GAAAL,sBAAA,CAAAH,OAAA;AAfA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAS,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,OAAA;MAAAC,IAAA;MAAA;IAAA;IAAAC,YAAA;MAAAD,IAAA;MAAA;IAAA;IAAAE,aAAA;MAAAF,IAAA;IAAA;EAAA;EAAAG,QAAA;IAAAC,qBAAA;IAAAC,qBAAA;IAAAC,sBAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC,IAAA;IAAAC,UAAA;MAAAC,eAAA;MAAAC,cAAA;MAAAC,6BAAA;QAAAF,eAAA;MAAA;IAAA;IAAAG,KAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAC,IAAA;MAAAL,6BAAA;QAAAH,UAAA;QAAAS,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,QAAA;
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","_variations","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","tagName","type","templateLock","allowedBlocks","supports","__experimentalOnEnter","__experimentalOnMerge","__experimentalSettings","align","anchor","ariaLabel","html","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","heading","button","link","text","shadow","spacing","margin","padding","blockGap","dimensions","minHeight","__experimentalBorder","radius","style","width","position","sticky","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","allowSizingOnChildren","interactivity","clientNavigation","editorStyle","settings","icon","example","innerBlocks","customTextColor","content","__","transforms","edit","save","deprecated","variations","init","initBlock"],"sources":["@wordpress/block-library/src/group/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -123,6 +123,11 @@ function GroupPlaceHolder({
|
|
|
123
123
|
const blockProps = (0, _blockEditor.useBlockProps)({
|
|
124
124
|
className: 'wp-block-group__placeholder'
|
|
125
125
|
});
|
|
126
|
+
(0, _element.useEffect)(() => {
|
|
127
|
+
if (variations && variations.length === 1) {
|
|
128
|
+
onSelect(variations[0]);
|
|
129
|
+
}
|
|
130
|
+
}, [onSelect, variations]);
|
|
126
131
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
127
132
|
...blockProps,
|
|
128
133
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Placeholder, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_blockEditor","_i18n","_blocks","_components","_element","_jsxRuntime","getGroupPlaceholderIcons","name","icons","group","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","useState","useEffect","GroupPlaceHolder","onSelect","variations","useSelect","select","blocksStore","getBlockVariations","blockProps","useBlockProps","className","Placeholder","instructions","__","role","map","variation","Button","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description","_default","exports","default"],"sources":["@wordpress/block-library/src/group/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-grid': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex' &&\n\t\t\tusedLayoutType !== 'grid'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 48 }\n\t\t\t\t\t\t\t\tonClick={ () => onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_data","require","_blockEditor","_i18n","_blocks","_components","_element","_jsxRuntime","getGroupPlaceholderIcons","name","icons","group","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","useState","useEffect","GroupPlaceHolder","onSelect","variations","useSelect","select","blocksStore","getBlockVariations","blockProps","useBlockProps","className","length","Placeholder","instructions","__","role","map","variation","Button","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description","_default","exports","default"],"sources":["@wordpress/block-library/src/group/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-grid': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex' &&\n\t\t\tusedLayoutType !== 'grid'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( variations && variations.length === 1 ) {\n\t\t\tonSelect( variations[ 0 ] );\n\t\t}\n\t}, [ onSelect, variations ] );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 48 }\n\t\t\t\t\t\t\t\tonClick={ () => onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAAyD,IAAAM,WAAA,GAAAN,OAAA;AARzD;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,MAAMO,wBAAwB,GAAGA,CAAEC,IAAI,GAAG,OAAO,KAAM;EACtD,MAAMC,KAAK,GAAG;IACbC,KAAK,eACJ,IAAAJ,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAA2E,CAAE;IAAC,CAClF,CACL;IACD,WAAW,eACV,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAqJ,CAAE;IAAC,CAC5J,CACL;IACD,aAAa,eACZ,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAoJ,CAAE;IAAC,CAC3J,CACL;IACD,YAAY,eACX,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAwS,CAAE;IAAC,CAC/S;EAEP,CAAC;EACD,OAAOV,KAAK,GAAID,IAAI,CAAE;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,wBAAwBA,CAAE;EACzCC,UAAU,GAAG;IACZC,KAAK,EAAEC,SAAS;IAChBC,eAAe,EAAED,SAAS;IAC1BE,SAAS,EAAEF,SAAS;IACpBG,QAAQ,EAAEH;EACX,CAAC;EACDI,cAAc,GAAG,EAAE;EACnBC,cAAc,GAAG;AAClB,CAAC,EAAG;EACH,MAAM;IAAEN,KAAK;IAAEE,eAAe;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAGL,UAAU;EAClE;AACD;AACA;AACA;AACA;AACA;AACA;EACC,MAAM,CAAEQ,eAAe,EAAEC,kBAAkB,CAAE,GAAG,IAAAC,iBAAQ,EACvD,CAAEH,cAAc,IACf,CAAEJ,eAAe,IACjB,CAAEE,QAAQ,IACV,CAAED,SAAS,IACX,CAAEH,KAAK,IACPK,cAAc,KAAK,MAAM,IACzBA,cAAc,KAAK,MACrB,CAAC;EAED,IAAAK,kBAAS,EAAE,MAAM;IAChB,IACC,CAAC,CAAEJ,cAAc,IACjB,CAAC,CAAEJ,eAAe,IAClB,CAAC,CAAEE,QAAQ,IACX,CAAC,CAAED,SAAS,IACZ,CAAC,CAAEH,KAAK,IACRK,cAAc,KAAK,MAAM,EACxB;MACDG,kBAAkB,CAAE,KAAM,CAAC;IAC5B;EACD,CAAC,EAAE,CACFN,eAAe,EACfE,QAAQ,EACRD,SAAS,EACTH,KAAK,EACLK,cAAc,EACdC,cAAc,CACb,CAAC;EAEH,OAAO,CAAEC,eAAe,EAAEC,kBAAkB,CAAE;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,gBAAgBA,CAAE;EAAEzB,IAAI;EAAE0B;AAAS,CAAC,EAAG;EAC/C,MAAMC,UAAU,GAAG,IAAAC,eAAS,EACzBC,MAAM,IAAMA,MAAM,CAAEC,aAAY,CAAC,CAACC,kBAAkB,CAAE/B,IAAI,EAAE,OAAQ,CAAC,EACvE,CAAEA,IAAI,CACP,CAAC;EACD,MAAMgC,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCC,SAAS,EAAE;EACZ,CAAE,CAAC;EAEH,IAAAV,kBAAS,EAAE,MAAM;IAChB,IAAKG,UAAU,IAAIA,UAAU,CAACQ,MAAM,KAAK,CAAC,EAAG;MAC5CT,QAAQ,CAAEC,UAAU,CAAE,CAAC,CAAG,CAAC;IAC5B;EACD,CAAC,EAAE,CAAED,QAAQ,EAAEC,UAAU,CAAG,CAAC;EAE7B,oBACC,IAAA7B,WAAA,CAAAK,GAAA;IAAA,GAAU6B,UAAU;IAAAvB,QAAA,eACnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAwC,WAAW;MACXC,YAAY,EAAG,IAAAC,QAAE,EAAE,yCAA0C,CAAG;MAAA7B,QAAA,eAQhE,IAAAX,WAAA,CAAAK,GAAA;QACCoC,IAAI,EAAC,MAAM;QACXL,SAAS,EAAC,wCAAwC;QAClD,cAAa,IAAAI,QAAE,EAAE,kBAAmB,CAAG;QAAA7B,QAAA,EAErCkB,UAAU,CAACa,GAAG,CAAIC,SAAS,iBAC5B,IAAA3C,WAAA,CAAAK,GAAA;UAAAM,QAAA,eACC,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAA8C,MAAM;YACNC,qBAAqB;YACrBC,OAAO,EAAC,UAAU;YAClBC,IAAI,EAAG9C,wBAAwB,CAC9B0C,SAAS,CAACzC,IACX,CAAG;YACH8C,QAAQ,EAAG,EAAI;YACfC,OAAO,EAAGA,CAAA,KAAMrB,QAAQ,CAAEe,SAAU,CAAG;YACvCP,SAAS,EAAC,8CAA8C;YACxDc,KAAK,EAAI,GAAGP,SAAS,CAACQ,KAAO,KAAKR,SAAS,CAACS,WAAa;UAAG,CAC5D;QAAC,GAXOT,SAAS,CAACzC,IAYhB,CACH;MAAC,CACA;IAAC,CAEO;EAAC,CACV,CAAC;AAER;AAAC,IAAAmD,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc5B,gBAAgB","ignoreList":[]}
|
package/build/image/edit.js
CHANGED
|
@@ -43,18 +43,6 @@ const pickRelevantMediaFiles = (image, size) => {
|
|
|
43
43
|
return imageProps;
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
/**
|
|
47
|
-
* Is the URL a temporary blob URL? A blob URL is one that is used temporarily
|
|
48
|
-
* while the image is being uploaded and will not have an id yet allocated.
|
|
49
|
-
*
|
|
50
|
-
* @param {number=} id The id of the image.
|
|
51
|
-
* @param {string=} url The url of the image.
|
|
52
|
-
*
|
|
53
|
-
* @return {boolean} Is the URL a Blob URL
|
|
54
|
-
*/
|
|
55
|
-
exports.pickRelevantMediaFiles = pickRelevantMediaFiles;
|
|
56
|
-
const isTemporaryImage = (id, url) => !id && (0, _blob.isBlobURL)(url);
|
|
57
|
-
|
|
58
46
|
/**
|
|
59
47
|
* Is the url for the image hosted externally. An externally hosted image has no
|
|
60
48
|
* id and is not a blob url.
|
|
@@ -64,6 +52,7 @@ const isTemporaryImage = (id, url) => !id && (0, _blob.isBlobURL)(url);
|
|
|
64
52
|
*
|
|
65
53
|
* @return {boolean} Is the url an externally hosted url?
|
|
66
54
|
*/
|
|
55
|
+
exports.pickRelevantMediaFiles = pickRelevantMediaFiles;
|
|
67
56
|
const isExternalImage = (id, url) => url && !id && !(0, _blob.isBlobURL)(url);
|
|
68
57
|
|
|
69
58
|
/**
|
|
@@ -104,9 +93,7 @@ function ImageEdit({
|
|
|
104
93
|
align,
|
|
105
94
|
metadata
|
|
106
95
|
} = attributes;
|
|
107
|
-
const [temporaryURL, setTemporaryURL] = (0, _element.useState)(
|
|
108
|
-
return isTemporaryImage(id, url) ? url : undefined;
|
|
109
|
-
});
|
|
96
|
+
const [temporaryURL, setTemporaryURL] = (0, _element.useState)(attributes.blob);
|
|
110
97
|
const altRef = (0, _element.useRef)();
|
|
111
98
|
(0, _element.useEffect)(() => {
|
|
112
99
|
altRef.current = alt;
|
|
@@ -143,9 +130,9 @@ function ImageEdit({
|
|
|
143
130
|
setAttributes({
|
|
144
131
|
src: undefined,
|
|
145
132
|
id: undefined,
|
|
146
|
-
url: undefined
|
|
133
|
+
url: undefined,
|
|
134
|
+
blob: undefined
|
|
147
135
|
});
|
|
148
|
-
setTemporaryURL(undefined);
|
|
149
136
|
}
|
|
150
137
|
function onSelectImage(media) {
|
|
151
138
|
if (!media || !media.url) {
|
|
@@ -154,15 +141,16 @@ function ImageEdit({
|
|
|
154
141
|
alt: undefined,
|
|
155
142
|
id: undefined,
|
|
156
143
|
title: undefined,
|
|
157
|
-
caption: undefined
|
|
144
|
+
caption: undefined,
|
|
145
|
+
blob: undefined
|
|
158
146
|
});
|
|
147
|
+
setTemporaryURL();
|
|
159
148
|
return;
|
|
160
149
|
}
|
|
161
150
|
if ((0, _blob.isBlobURL)(media.url)) {
|
|
162
151
|
setTemporaryURL(media.url);
|
|
163
152
|
return;
|
|
164
153
|
}
|
|
165
|
-
setTemporaryURL();
|
|
166
154
|
const {
|
|
167
155
|
imageDefaultSize
|
|
168
156
|
} = getSettings();
|
|
@@ -236,22 +224,26 @@ function ImageEdit({
|
|
|
236
224
|
}
|
|
237
225
|
mediaAttributes.href = href;
|
|
238
226
|
setAttributes({
|
|
227
|
+
blob: undefined,
|
|
239
228
|
...mediaAttributes,
|
|
240
229
|
...additionalAttributes,
|
|
241
230
|
linkDestination
|
|
242
231
|
});
|
|
232
|
+
setTemporaryURL();
|
|
243
233
|
}
|
|
244
234
|
function onSelectURL(newURL) {
|
|
245
235
|
if (newURL !== url) {
|
|
246
236
|
setAttributes({
|
|
237
|
+
blob: undefined,
|
|
247
238
|
url: newURL,
|
|
248
239
|
id: undefined,
|
|
249
240
|
sizeSlug: getSettings().imageDefaultSize
|
|
250
241
|
});
|
|
242
|
+
setTemporaryURL();
|
|
251
243
|
}
|
|
252
244
|
}
|
|
253
245
|
(0, _hooks.useUploadMediaFromBlobURL)({
|
|
254
|
-
url,
|
|
246
|
+
url: temporaryURL,
|
|
255
247
|
allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
|
|
256
248
|
onChange: onSelectImage,
|
|
257
249
|
onError: onUploadError
|
|
@@ -267,7 +259,7 @@ function ImageEdit({
|
|
|
267
259
|
const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes);
|
|
268
260
|
const shadowProps = (0, _blockEditor.__experimentalGetShadowClassesAndStyles)(attributes);
|
|
269
261
|
const classes = (0, _clsx.default)(className, {
|
|
270
|
-
'is-transient': temporaryURL,
|
|
262
|
+
'is-transient': !!temporaryURL,
|
|
271
263
|
'is-resized': !!width || !!height,
|
|
272
264
|
[`size-${sizeSlug}`]: sizeSlug,
|
|
273
265
|
'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
|
package/build/image/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_hooks","_image","_constants","_jsxRuntime","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","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","undefined","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","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","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","children","jsxs","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } 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 { useUploadMediaFromBlobURL } from '../utils/hooks';\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\t__unstableParentLayout: parentLayout,\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\t\treturn isTemporaryImage( id, url ) ? url : undefined;\n\t} );\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}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\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\tuseUploadMediaFromBlobURL( {\n\t\turl,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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 = clsx( 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( { className: classes } );\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?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\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, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( '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 className=\"block-bindings-media-placeholder-message\">\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\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_hooks","_image","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","blob","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","undefined","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","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","children","jsxs","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } 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 { useUploadMediaFromBlobURL } from '../utils/hooks';\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 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\t__unstableParentLayout: parentLayout,\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( attributes.blob );\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}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\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\tblob: undefined,\n\t\t} );\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\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\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\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\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\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\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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 = clsx( 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( { className: classes } );\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?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\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, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( '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 className=\"block-bindings-media-placeholder-message\">\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\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\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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","ignoreList":[]}
|
package/build/image/image.js
CHANGED
|
@@ -21,8 +21,8 @@ var _lockUnlock = require("../lock-unlock");
|
|
|
21
21
|
var _util = require("../embed/util");
|
|
22
22
|
var _edit = require("./edit");
|
|
23
23
|
var _caption = require("../utils/caption");
|
|
24
|
-
var
|
|
25
|
-
var
|
|
24
|
+
var _hooks = require("../utils/hooks");
|
|
25
|
+
var _constants = require("./constants");
|
|
26
26
|
var _utils = require("./utils");
|
|
27
27
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
28
|
/**
|
|
@@ -161,7 +161,7 @@ function Image({
|
|
|
161
161
|
const [externalBlob, setExternalBlob] = (0, _element.useState)();
|
|
162
162
|
const hasNonContentControls = blockEditingMode === 'default';
|
|
163
163
|
const isContentOnlyMode = blockEditingMode === 'contentOnly';
|
|
164
|
-
const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport
|
|
164
|
+
const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
|
|
165
165
|
const imageSizeOptions = imageSizes.filter(({
|
|
166
166
|
slug
|
|
167
167
|
}) => image?.media_details?.sizes?.[slug]?.source_url).map(({
|
|
@@ -301,7 +301,7 @@ function Image({
|
|
|
301
301
|
type: 'snackbar'
|
|
302
302
|
});
|
|
303
303
|
},
|
|
304
|
-
allowedTypes:
|
|
304
|
+
allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
|
|
305
305
|
onError(message) {
|
|
306
306
|
createErrorNotice(message, {
|
|
307
307
|
type: 'snackbar'
|
|
@@ -332,6 +332,7 @@ function Image({
|
|
|
332
332
|
// remove that override, even if the lightbox UI is disabled in the settings.
|
|
333
333
|
!!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
|
|
334
334
|
const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
|
|
335
|
+
const dropdownMenuProps = (0, _hooks.useToolsPanelDropdownMenuProps)();
|
|
335
336
|
const dimensionsControl = /*#__PURE__*/(0, _jsxRuntime.jsx)(DimensionsTool, {
|
|
336
337
|
value: {
|
|
337
338
|
width,
|
|
@@ -364,6 +365,21 @@ function Image({
|
|
|
364
365
|
scaleOptions: scaleOptions,
|
|
365
366
|
unitsOptions: dimensionsUnitsOptions
|
|
366
367
|
});
|
|
368
|
+
const aspectRatioControl = /*#__PURE__*/(0, _jsxRuntime.jsx)(DimensionsTool, {
|
|
369
|
+
value: {
|
|
370
|
+
aspectRatio
|
|
371
|
+
},
|
|
372
|
+
onChange: ({
|
|
373
|
+
aspectRatio: newAspectRatio
|
|
374
|
+
}) => {
|
|
375
|
+
setAttributes({
|
|
376
|
+
aspectRatio: newAspectRatio,
|
|
377
|
+
scale: 'cover'
|
|
378
|
+
});
|
|
379
|
+
},
|
|
380
|
+
defaultAspectRatio: "auto",
|
|
381
|
+
tools: ['aspectRatio']
|
|
382
|
+
});
|
|
367
383
|
const resetAll = () => {
|
|
368
384
|
setAttributes({
|
|
369
385
|
alt: undefined,
|
|
@@ -378,10 +394,11 @@ function Image({
|
|
|
378
394
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
|
|
379
395
|
label: (0, _i18n.__)('Settings'),
|
|
380
396
|
resetAll: resetAll,
|
|
381
|
-
dropdownMenuProps:
|
|
382
|
-
children: isResizable && dimensionsControl
|
|
397
|
+
dropdownMenuProps: dropdownMenuProps,
|
|
398
|
+
children: isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl)
|
|
383
399
|
})
|
|
384
400
|
});
|
|
401
|
+
const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
|
|
385
402
|
const {
|
|
386
403
|
lockUrlControls = false,
|
|
387
404
|
lockHrefControls = false,
|
|
@@ -397,15 +414,12 @@ function Image({
|
|
|
397
414
|
const {
|
|
398
415
|
getBlockBindingsSource
|
|
399
416
|
} = (0, _lockUnlock.unlock)(select(_blocks.store));
|
|
400
|
-
const {
|
|
401
|
-
getBlockParentsByBlockName
|
|
402
|
-
} = (0, _lockUnlock.unlock)(select(_blockEditor.store));
|
|
403
417
|
const {
|
|
404
418
|
url: urlBinding,
|
|
405
419
|
alt: altBinding,
|
|
406
420
|
title: titleBinding
|
|
407
421
|
} = metadata?.bindings || {};
|
|
408
|
-
const hasParentPattern =
|
|
422
|
+
const hasParentPattern = !!context['pattern/overrides'];
|
|
409
423
|
const urlBindingSource = getBlockBindingsSource(urlBinding?.source);
|
|
410
424
|
const altBindingSource = getBlockBindingsSource(altBinding?.source);
|
|
411
425
|
const titleBindingSource = getBlockBindingsSource(titleBinding?.source);
|
|
@@ -418,7 +432,7 @@ function Image({
|
|
|
418
432
|
lockHrefControls:
|
|
419
433
|
// Disable editing the link of the URL if the image is inside a pattern instance.
|
|
420
434
|
// This is a temporary solution until we support overriding the link on the frontend.
|
|
421
|
-
hasParentPattern,
|
|
435
|
+
hasParentPattern || arePatternOverridesEnabled,
|
|
422
436
|
lockCaption:
|
|
423
437
|
// Disable editing the caption if the image is inside a pattern instance.
|
|
424
438
|
// This is a temporary solution until we support overriding the caption on the frontend.
|
|
@@ -438,7 +452,7 @@ function Image({
|
|
|
438
452
|
lockTitleControlsMessage: titleBindingSource?.label ? (0, _i18n.sprintf)( /* translators: %s: Label of the bindings source. */
|
|
439
453
|
(0, _i18n.__)('Connected to %s'), titleBindingSource.label) : (0, _i18n.__)('Connected to dynamic data')
|
|
440
454
|
};
|
|
441
|
-
}, [
|
|
455
|
+
}, [arePatternOverridesEnabled, context, isSingleSelected, metadata?.bindings]);
|
|
442
456
|
const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
|
|
443
457
|
const showCoverControls = isSingleSelected && canInsertCover;
|
|
444
458
|
const showBlockControls = showUrlInput || allowCrop || showCoverControls;
|
|
@@ -472,7 +486,7 @@ function Image({
|
|
|
472
486
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaReplaceFlow, {
|
|
473
487
|
mediaId: id,
|
|
474
488
|
mediaURL: url,
|
|
475
|
-
allowedTypes:
|
|
489
|
+
allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
|
|
476
490
|
accept: "image/*",
|
|
477
491
|
onSelect: onSelectImage,
|
|
478
492
|
onSelectURL: onSelectURL,
|
|
@@ -570,7 +584,7 @@ function Image({
|
|
|
570
584
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanel, {
|
|
571
585
|
label: (0, _i18n.__)('Settings'),
|
|
572
586
|
resetAll: resetAll,
|
|
573
|
-
dropdownMenuProps:
|
|
587
|
+
dropdownMenuProps: dropdownMenuProps,
|
|
574
588
|
children: [isSingleSelected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
575
589
|
label: (0, _i18n.__)('Alternative text'),
|
|
576
590
|
isShownByDefault: true,
|
|
@@ -595,7 +609,7 @@ function Image({
|
|
|
595
609
|
}),
|
|
596
610
|
__nextHasNoMarginBottom: true
|
|
597
611
|
})
|
|
598
|
-
}), isResizable && dimensionsControl, !!imageSizeOptions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResolutionTool, {
|
|
612
|
+
}), isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl), !!imageSizeOptions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResolutionTool, {
|
|
599
613
|
value: sizeSlug,
|
|
600
614
|
onChange: updateImage,
|
|
601
615
|
options: imageSizeOptions
|
|
@@ -679,7 +693,7 @@ function Image({
|
|
|
679
693
|
borderProps: isRounded ? undefined : borderProps
|
|
680
694
|
})
|
|
681
695
|
});
|
|
682
|
-
} else if (!isResizable) {
|
|
696
|
+
} else if (!isResizable || parentLayoutType === 'grid') {
|
|
683
697
|
img = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
684
698
|
style: {
|
|
685
699
|
width,
|
|
@@ -698,8 +712,8 @@ function Image({
|
|
|
698
712
|
const ratio = numericRatio || customRatio || naturalRatio || 1;
|
|
699
713
|
const currentWidth = !numericWidth && numericHeight ? numericHeight * ratio : numericWidth;
|
|
700
714
|
const currentHeight = !numericHeight && numericWidth ? numericWidth / ratio : numericHeight;
|
|
701
|
-
const minWidth = naturalWidth < naturalHeight ?
|
|
702
|
-
const minHeight = naturalHeight < naturalWidth ?
|
|
715
|
+
const minWidth = naturalWidth < naturalHeight ? _constants.MIN_SIZE : _constants.MIN_SIZE * ratio;
|
|
716
|
+
const minHeight = naturalHeight < naturalWidth ? _constants.MIN_SIZE : _constants.MIN_SIZE / ratio;
|
|
703
717
|
|
|
704
718
|
// With the current implementation of ResizableBox, an image needs an
|
|
705
719
|
// explicit pixel value for the max-width. In absence of being able to
|
|
@@ -792,7 +806,7 @@ function Image({
|
|
|
792
806
|
isSelected: isSingleSelected,
|
|
793
807
|
insertBlocksAfter: insertBlocksAfter,
|
|
794
808
|
label: (0, _i18n.__)('Image caption text'),
|
|
795
|
-
showToolbarButton: isSingleSelected && hasNonContentControls,
|
|
809
|
+
showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
|
|
796
810
|
readOnly: lockCaption
|
|
797
811
|
})]
|
|
798
812
|
});
|