@wordpress/block-library 8.30.0 → 8.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/block/edit.js +22 -16
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.native.js +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/code/save.js +3 -1
- package/build/code/save.js.map +1 -1
- package/build/cover/edit/index.js +2 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/details/edit.js +1 -0
- package/build/details/edit.js.map +1 -1
- package/build/file/edit.js +2 -0
- package/build/file/edit.js.map +1 -1
- package/build/heading/index.js +4 -3
- package/build/heading/index.js.map +1 -1
- package/build/image/edit.js +10 -39
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +27 -6
- package/build/image/image.js.map +1 -1
- package/build/media-text/edit.js +33 -9
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/index.js +5 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.js +30 -11
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +2 -2
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/edit/index.js +23 -29
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +24 -23
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +4 -4
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +15 -12
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view.js +12 -2
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +52 -27
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +31 -9
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/edit.js +3 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +16 -4
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +13 -2
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/overlay-controls.js +82 -0
- package/build/post-featured-image/overlay-controls.js.map +1 -0
- package/build/post-featured-image/overlay.js +5 -54
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-navigation-link/edit.js +1 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-terms/edit.js +2 -0
- package/build/post-terms/edit.js.map +1 -1
- package/build/quote/edit.js +18 -23
- package/build/quote/edit.js.map +1 -1
- package/build/read-more/edit.js +1 -0
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +2 -0
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js +2 -2
- package/build/search/edit.native.js.map +1 -1
- package/build/site-tagline/edit.js +13 -4
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-tagline/index.js +4 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/social-link/edit.js +1 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/icons/medium.js +1 -1
- package/build/social-link/icons/medium.js.map +1 -1
- package/build/social-link/icons/reddit.js +1 -1
- package/build/social-link/icons/reddit.js.map +1 -1
- package/build/table/deprecated.js +285 -175
- package/build/table/deprecated.js.map +1 -1
- package/build/table/index.js +1 -1
- package/build/template-part/edit/index.js +55 -47
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +106 -10
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +1 -9
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/utils/caption.js +19 -13
- package/build/utils/caption.js.map +1 -1
- package/build/utils/hooks.js +1 -0
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit.native.js +1 -1
- package/build/video/edit.native.js.map +1 -1
- package/build-module/block/edit.js +23 -17
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.native.js +1 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/code/save.js +3 -1
- package/build-module/code/save.js.map +1 -1
- package/build-module/cover/edit/index.js +2 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/details/edit.js +1 -0
- package/build-module/details/edit.js.map +1 -1
- package/build-module/file/edit.js +2 -0
- package/build-module/file/edit.js.map +1 -1
- package/build-module/heading/index.js +4 -3
- package/build-module/heading/index.js.map +1 -1
- package/build-module/image/edit.js +11 -40
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +27 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/media-text/edit.js +34 -10
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/index.js +5 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.js +31 -12
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +2 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/edit/index.js +24 -30
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +4 -4
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +15 -12
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view.js +12 -2
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +55 -30
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +31 -9
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/edit.js +3 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +17 -5
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +13 -2
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-featured-image/overlay-controls.js +75 -0
- package/build-module/post-featured-image/overlay-controls.js.map +1 -0
- package/build-module/post-featured-image/overlay.js +7 -56
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +1 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +2 -0
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/quote/edit.js +20 -25
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/read-more/edit.js +1 -0
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +2 -0
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js +2 -2
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-tagline/edit.js +14 -5
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +4 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/social-link/edit.js +1 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/icons/medium.js +1 -1
- package/build-module/social-link/icons/medium.js.map +1 -1
- package/build-module/social-link/icons/reddit.js +1 -1
- package/build-module/social-link/icons/reddit.js.map +1 -1
- package/build-module/table/deprecated.js +286 -176
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/index.js +1 -1
- package/build-module/template-part/edit/index.js +58 -50
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +108 -12
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -10
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/utils/caption.js +19 -13
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/hooks.js +1 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit.native.js +1 -1
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/audio/theme-rtl.css +1 -1
- package/build-style/audio/theme.css +1 -1
- package/build-style/cover/style-rtl.css +5 -2
- package/build-style/cover/style.css +5 -2
- package/build-style/editor-rtl.css +22 -12
- package/build-style/editor.css +22 -12
- package/build-style/embed/theme-rtl.css +1 -1
- package/build-style/embed/theme.css +1 -1
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/image/editor-rtl.css +0 -3
- package/build-style/image/editor.css +0 -3
- package/build-style/image/theme-rtl.css +1 -1
- package/build-style/image/theme.css +1 -1
- package/build-style/media-text/editor-rtl.css +7 -1
- package/build-style/media-text/editor.css +7 -1
- package/build-style/pullquote/theme-rtl.css +2 -1
- package/build-style/pullquote/theme.css +2 -1
- package/build-style/quote/theme-rtl.css +6 -6
- package/build-style/quote/theme.css +6 -6
- package/build-style/search/style-rtl.css +10 -0
- package/build-style/search/style.css +10 -0
- package/build-style/social-links/editor-rtl.css +0 -4
- package/build-style/social-links/editor.css +0 -4
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +17 -4
- package/build-style/style.css +17 -4
- package/build-style/table/theme-rtl.css +4 -3
- package/build-style/table/theme.css +4 -3
- package/build-style/template-part/editor-rtl.css +12 -4
- package/build-style/template-part/editor.css +12 -4
- package/build-style/template-part/theme-rtl.css +1 -1
- package/build-style/template-part/theme.css +1 -1
- package/build-style/theme-rtl.css +17 -15
- package/build-style/theme.css +17 -15
- package/build-style/video/theme-rtl.css +1 -1
- package/build-style/video/theme.css +1 -1
- package/package.json +34 -34
- package/src/archives/index.php +4 -0
- package/src/audio/theme.scss +1 -1
- package/src/avatar/index.php +6 -0
- package/src/block/edit.js +43 -32
- package/src/block/index.php +4 -0
- package/src/block/test/edit.native.js +67 -0
- package/src/button/edit.native.js +1 -1
- package/src/calendar/index.php +12 -0
- package/src/categories/index.php +6 -0
- package/src/code/save.js +7 -1
- package/src/comment-author-name/index.php +4 -0
- package/src/comment-content/index.php +4 -0
- package/src/comment-date/index.php +4 -0
- package/src/comment-edit-link/index.php +4 -0
- package/src/comment-reply-link/index.php +4 -0
- package/src/comment-template/index.php +4 -0
- package/src/comments/index.php +10 -0
- package/src/comments-pagination/index.php +4 -0
- package/src/comments-pagination-next/index.php +4 -0
- package/src/comments-pagination-numbers/index.php +4 -0
- package/src/comments-pagination-previous/index.php +4 -0
- package/src/comments-title/index.php +4 -0
- package/src/cover/edit/index.js +4 -1
- package/src/cover/index.php +4 -0
- package/src/cover/style.scss +6 -2
- package/src/details/edit.js +1 -0
- package/src/embed/theme.scss +1 -1
- package/src/file/edit.js +2 -0
- package/src/file/editor.scss +3 -0
- package/src/file/index.php +4 -0
- package/src/gallery/editor.scss +1 -1
- package/src/gallery/index.php +7 -1
- package/src/heading/index.js +4 -3
- package/src/heading/index.php +4 -0
- package/src/home-link/index.php +10 -0
- package/src/image/edit.js +11 -40
- package/src/image/editor.scss +2 -7
- package/src/image/image.js +25 -7
- package/src/image/index.php +12 -1
- package/src/image/theme.scss +1 -1
- package/src/latest-comments/index.php +4 -0
- package/src/latest-posts/index.php +8 -0
- package/src/loginout/index.php +4 -0
- package/src/media-text/block.json +5 -0
- package/src/media-text/edit.js +70 -19
- package/src/media-text/editor.scss +7 -1
- package/src/media-text/index.php +70 -0
- package/src/media-text/media-container.js +49 -9
- package/src/media-text/save.js +2 -2
- package/src/navigation/edit/index.js +67 -71
- package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
- package/src/navigation/edit/navigation-menu-selector.js +39 -21
- package/src/navigation/edit/placeholder/index.js +4 -4
- package/src/navigation/edit/test/navigation-menu-selector.js +75 -53
- package/src/navigation/index.php +109 -26
- package/src/navigation/test/use-navigation-menu.js +21 -21
- package/src/navigation/use-navigation-menu.js +23 -9
- package/src/navigation/view.js +11 -2
- package/src/navigation-link/edit.js +64 -39
- package/src/navigation-link/index.php +14 -0
- package/src/navigation-submenu/edit.js +34 -10
- package/src/navigation-submenu/index.php +8 -0
- package/src/page-list/index.php +12 -0
- package/src/page-list-item/index.php +2 -0
- package/src/pattern/edit.js +4 -0
- package/src/pattern/index.php +2 -0
- package/src/post-author/edit.js +1 -0
- package/src/post-author/index.php +4 -0
- package/src/post-author-biography/index.php +4 -0
- package/src/post-author-name/index.php +4 -0
- package/src/post-comments-form/index.php +6 -0
- package/src/post-content/index.php +4 -0
- package/src/post-date/index.php +4 -0
- package/src/post-excerpt/edit.js +1 -0
- package/src/post-excerpt/index.php +4 -0
- package/src/post-featured-image/block.json +13 -2
- package/src/post-featured-image/edit.js +16 -1
- package/src/post-featured-image/editor.scss +1 -1
- package/src/post-featured-image/index.php +15 -0
- package/src/post-featured-image/overlay-controls.js +88 -0
- package/src/post-featured-image/overlay.js +17 -84
- package/src/post-navigation-link/edit.js +1 -0
- package/src/post-navigation-link/index.php +4 -0
- package/src/post-template/index.php +4 -0
- package/src/post-terms/edit.js +2 -0
- package/src/post-terms/index.php +6 -0
- package/src/post-title/index.php +2 -0
- package/src/pullquote/theme.scss +3 -1
- package/src/query/index.php +2 -0
- package/src/query-no-results/index.php +6 -0
- package/src/query-pagination/index.php +4 -0
- package/src/query-pagination-next/index.php +6 -0
- package/src/query-pagination-numbers/index.php +6 -0
- package/src/query-pagination-previous/index.php +4 -0
- package/src/query-title/index.php +4 -0
- package/src/quote/edit.js +27 -37
- package/src/quote/test/edit.native.js +4 -6
- package/src/quote/theme.scss +1 -2
- package/src/read-more/edit.js +1 -0
- package/src/read-more/index.php +4 -0
- package/src/rss/index.php +4 -0
- package/src/search/edit.js +2 -0
- package/src/search/edit.native.js +2 -2
- package/src/search/index.php +19 -1
- package/src/search/style.scss +11 -0
- package/src/shortcode/index.php +4 -0
- package/src/site-logo/editor.scss +2 -2
- package/src/site-logo/index.php +20 -0
- package/src/site-tagline/block.json +4 -0
- package/src/site-tagline/edit.js +16 -3
- package/src/site-tagline/index.php +13 -1
- package/src/site-title/index.php +4 -0
- package/src/social-link/edit.js +1 -1
- package/src/social-link/icons/medium.js +1 -1
- package/src/social-link/icons/reddit.js +1 -1
- package/src/social-link/index.php +22 -9
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/editor.scss +1 -9
- package/src/table/block.json +1 -1
- package/src/table/deprecated.js +308 -175
- package/src/table/theme.scss +4 -2
- package/src/tag-cloud/index.php +4 -0
- package/src/template-part/edit/index.js +87 -79
- package/src/template-part/edit/inner-blocks.js +126 -13
- package/src/template-part/edit/selection-modal.js +1 -22
- package/src/template-part/editor.scss +11 -3
- package/src/template-part/index.php +12 -0
- package/src/template-part/theme.scss +1 -1
- package/src/term-description/index.php +4 -0
- package/src/utils/caption.js +19 -16
- package/src/utils/hooks.js +1 -0
- package/src/video/edit.native.js +2 -0
- package/src/video/editor.scss +2 -2
- package/src/video/theme.scss +1 -1
- package/tsconfig.json +1 -0
package/build/image/image.js
CHANGED
|
@@ -69,8 +69,7 @@ const ImageWrapper = ({
|
|
|
69
69
|
// When the Image block is linked,
|
|
70
70
|
// it's wrapped with a disabled <a /> tag.
|
|
71
71
|
// Restore cursor style so it doesn't appear 'clickable'
|
|
72
|
-
//
|
|
73
|
-
pointerEvents: 'none',
|
|
72
|
+
// Safari needs the display property.
|
|
74
73
|
cursor: 'default',
|
|
75
74
|
display: 'inline'
|
|
76
75
|
}
|
|
@@ -243,6 +242,23 @@ function Image({
|
|
|
243
242
|
});
|
|
244
243
|
}
|
|
245
244
|
}
|
|
245
|
+
function resetLightbox() {
|
|
246
|
+
// When deleting a link from an image while lightbox settings
|
|
247
|
+
// are enabled by default, we should disable the lightbox,
|
|
248
|
+
// otherwise the resulting UX looks like a mistake.
|
|
249
|
+
// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.
|
|
250
|
+
if (lightboxSetting?.enabled && lightboxSetting?.allowEditing) {
|
|
251
|
+
setAttributes({
|
|
252
|
+
lightbox: {
|
|
253
|
+
enabled: false
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
} else {
|
|
257
|
+
setAttributes({
|
|
258
|
+
lightbox: undefined
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
}
|
|
246
262
|
function onSetTitle(value) {
|
|
247
263
|
// This is the HTML title attribute, separate from the media object
|
|
248
264
|
// title.
|
|
@@ -310,7 +326,10 @@ function Image({
|
|
|
310
326
|
availableUnits: ['px']
|
|
311
327
|
});
|
|
312
328
|
const [lightboxSetting] = (0, _blockEditor.useSettings)('lightbox');
|
|
313
|
-
const showLightboxSetting =
|
|
329
|
+
const showLightboxSetting =
|
|
330
|
+
// If a block-level override is set, we should give users the option to
|
|
331
|
+
// remove that override, even if the lightbox UI is disabled in the settings.
|
|
332
|
+
!!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
|
|
314
333
|
const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
|
|
315
334
|
const dimensionsControl = (0, _react.createElement)(DimensionsTool, {
|
|
316
335
|
value: {
|
|
@@ -417,7 +436,8 @@ function Image({
|
|
|
417
436
|
rel: rel,
|
|
418
437
|
showLightboxSetting: showLightboxSetting,
|
|
419
438
|
lightboxEnabled: lightboxChecked,
|
|
420
|
-
onSetLightbox: onSetLightbox
|
|
439
|
+
onSetLightbox: onSetLightbox,
|
|
440
|
+
resetLightbox: resetLightbox
|
|
421
441
|
}), allowCrop && (0, _react.createElement)(_components.ToolbarButton, {
|
|
422
442
|
onClick: () => setIsEditingImage(true),
|
|
423
443
|
icon: _icons.crop,
|
|
@@ -532,6 +552,7 @@ function Image({
|
|
|
532
552
|
group: "advanced"
|
|
533
553
|
}, (0, _react.createElement)(_components.TextControl, {
|
|
534
554
|
__nextHasNoMarginBottom: true,
|
|
555
|
+
__next40pxDefaultSize: true,
|
|
535
556
|
label: (0, _i18n.__)('Title attribute'),
|
|
536
557
|
value: title || '',
|
|
537
558
|
onChange: onSetTitle,
|
|
@@ -701,14 +722,14 @@ function Image({
|
|
|
701
722
|
// Add all controls if the image attributes are connected.
|
|
702
723
|
return metadata?.bindings ? controls : sizeControls;
|
|
703
724
|
}
|
|
704
|
-
return (0, _react.createElement)(_react.Fragment, null,
|
|
725
|
+
return (0, _react.createElement)(_react.Fragment, null, controls, img, (0, _react.createElement)(_caption.Caption, {
|
|
705
726
|
attributes: attributes,
|
|
706
727
|
setAttributes: setAttributes,
|
|
707
728
|
isSelected: isSingleSelected,
|
|
708
729
|
insertBlocksAfter: insertBlocksAfter,
|
|
709
730
|
label: (0, _i18n.__)('Image caption text'),
|
|
710
731
|
showToolbarButton: isSingleSelected && hasNonContentControls,
|
|
711
|
-
|
|
732
|
+
readOnly: lockCaption
|
|
712
733
|
}));
|
|
713
734
|
}
|
|
714
735
|
//# sourceMappingURL=image.js.map
|
package/build/image/image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_keycodes","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_useClientWidth","_interopRequireDefault","_edit","_caption","_constants","_constants2","_utils","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","ImageWrapper","href","children","_react","createElement","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","useState","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","useClientWidth","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","allowEditing","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","blocksStore","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","urlBindingSource","source","altBindingSource","titleBindingSource","lockAttributesEditing","sprintf","controls","Fragment","BlockControls","group","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","icon","crop","overlayText","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","ToolbarGroup","upload","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","DOWN","renderContent","TextareaControl","className","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","options","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","src","onLoad","target","ref","objectFit","Spinner","fallbackClientWidth","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","Caption","isSelected","showToolbarButton","disableEditing"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = isSingleSelected && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t!! lightbox || lightboxSetting?.allowEditing === true;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t( ! urlBindingSource ||\n\t\t\t\t\t\turlBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t( ! altBindingSource ||\n\t\t\t\t\t\taltBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.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\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t( ! titleBindingSource ||\n\t\t\t\t\t\ttitleBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.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\ttitleBindingSource.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[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ isSingleSelected &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockHrefControls &&\n\t\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isSingleSelected && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\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\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\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/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\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{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={ isSingleSelected && hasNonContentControls }\n\t\t\t\tdisableEditing={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_keycodes","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_useClientWidth","_interopRequireDefault","_edit","_caption","_constants","_constants2","_utils","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","ImageWrapper","href","children","_react","createElement","onClick","event","preventDefault","style","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","useState","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","useClientWidth","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","blocksStore","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","urlBindingSource","source","altBindingSource","titleBindingSource","lockAttributesEditing","sprintf","controls","Fragment","BlockControls","group","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","icon","crop","overlayText","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","ToolbarGroup","upload","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","DOWN","renderContent","TextareaControl","className","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","options","__next40pxDefaultSize","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","src","onLoad","target","ref","objectFit","Spinner","fallbackClientWidth","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// Safari needs the display property.\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = isSingleSelected && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t( ! urlBindingSource ||\n\t\t\t\t\t\turlBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t( ! altBindingSource ||\n\t\t\t\t\t\taltBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.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\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t( ! titleBindingSource ||\n\t\t\t\t\t\ttitleBindingSource?.lockAttributesEditing ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.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\ttitleBindingSource.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[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ isSingleSelected &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockHrefControls &&\n\t\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isSingleSelected && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\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\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\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/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\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{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={ isSingleSelected && hasNonContentControls }\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
package/build/media-text/edit.js
CHANGED
|
@@ -104,7 +104,11 @@ function attributesFromMedia({
|
|
|
104
104
|
function MediaTextEdit({
|
|
105
105
|
attributes,
|
|
106
106
|
isSelected,
|
|
107
|
-
setAttributes
|
|
107
|
+
setAttributes,
|
|
108
|
+
context: {
|
|
109
|
+
postId,
|
|
110
|
+
postType
|
|
111
|
+
}
|
|
108
112
|
}) {
|
|
109
113
|
const {
|
|
110
114
|
focalPoint,
|
|
@@ -122,9 +126,26 @@ function MediaTextEdit({
|
|
|
122
126
|
mediaWidth,
|
|
123
127
|
rel,
|
|
124
128
|
verticalAlignment,
|
|
125
|
-
allowedBlocks
|
|
129
|
+
allowedBlocks,
|
|
130
|
+
useFeaturedImage
|
|
126
131
|
} = attributes;
|
|
127
132
|
const mediaSizeSlug = attributes.mediaSizeSlug || _constants.DEFAULT_MEDIA_SIZE_SLUG;
|
|
133
|
+
const [featuredImage] = (0, _coreData.useEntityProp)('postType', postType, 'featured_media', postId);
|
|
134
|
+
const featuredImageMedia = (0, _data.useSelect)(select => featuredImage && select(_coreData.store).getMedia(featuredImage, {
|
|
135
|
+
context: 'view'
|
|
136
|
+
}), [featuredImage]);
|
|
137
|
+
const featuredImageURL = useFeaturedImage ? featuredImageMedia?.source_url : '';
|
|
138
|
+
const featuredImageAlt = useFeaturedImage ? featuredImageMedia?.alt_text : '';
|
|
139
|
+
const toggleUseFeaturedImage = () => {
|
|
140
|
+
setAttributes({
|
|
141
|
+
imageFill: false,
|
|
142
|
+
mediaType: 'image',
|
|
143
|
+
mediaId: undefined,
|
|
144
|
+
mediaUrl: undefined,
|
|
145
|
+
mediaAlt: undefined,
|
|
146
|
+
useFeaturedImage: !useFeaturedImage
|
|
147
|
+
});
|
|
148
|
+
};
|
|
128
149
|
const {
|
|
129
150
|
imageSizes,
|
|
130
151
|
image
|
|
@@ -233,21 +254,20 @@ function MediaTextEdit({
|
|
|
233
254
|
onChange: () => setAttributes({
|
|
234
255
|
imageFill: !imageFill
|
|
235
256
|
})
|
|
236
|
-
}), imageFill && mediaUrl && mediaType === 'image' && (0, _react.createElement)(_components.FocalPointPicker, {
|
|
257
|
+
}), imageFill && (mediaUrl || featuredImageURL) && mediaType === 'image' && (0, _react.createElement)(_components.FocalPointPicker, {
|
|
237
258
|
__nextHasNoMarginBottom: true,
|
|
238
|
-
__next40pxDefaultSize: true,
|
|
239
259
|
label: (0, _i18n.__)('Focal point'),
|
|
240
|
-
url: mediaUrl,
|
|
260
|
+
url: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
|
|
241
261
|
value: focalPoint,
|
|
242
262
|
onChange: value => setAttributes({
|
|
243
263
|
focalPoint: value
|
|
244
264
|
}),
|
|
245
265
|
onDragStart: imperativeFocalPointPreview,
|
|
246
266
|
onDrag: imperativeFocalPointPreview
|
|
247
|
-
}), mediaType === 'image' && (0, _react.createElement)(_components.TextareaControl, {
|
|
267
|
+
}), mediaType === 'image' && (mediaUrl || featuredImageURL) && (0, _react.createElement)(_components.TextareaControl, {
|
|
248
268
|
__nextHasNoMarginBottom: true,
|
|
249
269
|
label: (0, _i18n.__)('Alternative text'),
|
|
250
|
-
value: mediaAlt,
|
|
270
|
+
value: mediaAlt || featuredImageAlt,
|
|
251
271
|
onChange: onMediaAltChange,
|
|
252
272
|
help: (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.ExternalLink, {
|
|
253
273
|
href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
|
|
@@ -294,7 +314,7 @@ function MediaTextEdit({
|
|
|
294
314
|
onChangeUrl: onSetHref,
|
|
295
315
|
linkDestination: linkDestination,
|
|
296
316
|
mediaType: mediaType,
|
|
297
|
-
mediaUrl: image && image.source_url,
|
|
317
|
+
mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : image && image.source_url,
|
|
298
318
|
mediaLink: image && image.link,
|
|
299
319
|
linkTarget: linkTarget,
|
|
300
320
|
linkClass: linkClass,
|
|
@@ -310,6 +330,7 @@ function MediaTextEdit({
|
|
|
310
330
|
commitWidthChange: commitWidthChange,
|
|
311
331
|
ref: refMediaContainer,
|
|
312
332
|
enableResize: blockEditingMode === 'default',
|
|
333
|
+
toggleUseFeaturedImage: toggleUseFeaturedImage,
|
|
313
334
|
focalPoint,
|
|
314
335
|
imageFill,
|
|
315
336
|
isSelected,
|
|
@@ -319,7 +340,10 @@ function MediaTextEdit({
|
|
|
319
340
|
mediaPosition,
|
|
320
341
|
mediaType,
|
|
321
342
|
mediaUrl,
|
|
322
|
-
mediaWidth
|
|
343
|
+
mediaWidth,
|
|
344
|
+
useFeaturedImage,
|
|
345
|
+
featuredImageURL,
|
|
346
|
+
featuredImageAlt
|
|
323
347
|
}), mediaPosition !== 'right' && (0, _react.createElement)("div", {
|
|
324
348
|
...innerBlocksProps
|
|
325
349
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_blockEditor","_components","_blob","_icons","_coreData","_mediaContainer","_constants","applyWidthConstraints","width","Math","max","WIDTH_CONSTRAINT_PERCENTAGE","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","isBlobURL","type","getBlobTypeByURL","src","media_type","large","newHref","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","link","alt","id","MediaTextEdit","isSelected","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","imageSizes","useSelect","select","getSettings","blockEditorStore","coreStore","getMedia","context","refMediaContainer","useRef","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","useState","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","classnames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","_react","createElement","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","ToggleControl","checked","FocalPointPicker","onDragStart","onDrag","TextareaControl","help","Fragment","ExternalLink","__experimentalImageSizeControl","onChangeImage","isResizable","imageSizeHelp","blockProps","useBlockProps","className","innerBlocksProps","useInnerBlocksProps","template","TEMPLATE","blockEditingMode","useBlockEditingMode","InspectorControls","BlockControls","group","BlockVerticalAlignmentControl","ToolbarButton","icon","pullLeft","isActive","onClick","pullRight","__experimentalImageURLInputUI","onChangeUrl","default","ref","enableResize","_default","exports"],"sources":["@wordpress/block-library/src/media-text/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\tchecked={ !! imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\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) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_blockEditor","_components","_blob","_icons","_coreData","_mediaContainer","_constants","applyWidthConstraints","width","Math","max","WIDTH_CONSTRAINT_PERCENTAGE","min","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","isBlobURL","type","getBlobTypeByURL","src","media_type","large","newHref","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","link","alt","id","MediaTextEdit","isSelected","context","postId","postType","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","allowedBlocks","useFeaturedImage","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","featuredImage","useEntityProp","featuredImageMedia","useSelect","select","coreStore","getMedia","featuredImageURL","featuredImageAlt","alt_text","toggleUseFeaturedImage","imageSizes","getSettings","blockEditorStore","refMediaContainer","useRef","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","useState","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","classnames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","_react","createElement","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","ToggleControl","checked","FocalPointPicker","onDragStart","onDrag","TextareaControl","help","Fragment","ExternalLink","__experimentalImageSizeControl","onChangeImage","isResizable","imageSizeHelp","blockProps","useBlockProps","className","innerBlocksProps","useInnerBlocksProps","template","TEMPLATE","blockEditingMode","useBlockEditingMode","InspectorControls","BlockControls","group","BlockVerticalAlignmentControl","ToolbarButton","icon","pullLeft","isActive","onClick","pullRight","__experimentalImageURLInputUI","onChangeUrl","default","ref","enableResize","_default","exports"],"sources":["@wordpress/block-library/src/media-text/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t\tuseFeaturedImage,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst featuredImageMedia = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\n\tconst featuredImageURL = useFeaturedImage\n\t\t? featuredImageMedia?.source_url\n\t\t: '';\n\tconst featuredImageAlt = useFeaturedImage\n\t\t? featuredImageMedia?.alt_text\n\t\t: '';\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\timageFill: false,\n\t\t\tmediaType: 'image',\n\t\t\tmediaId: undefined,\n\t\t\tmediaUrl: undefined,\n\t\t\tmediaAlt: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t} );\n\t};\n\n\tconst { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\tchecked={ !! imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill &&\n\t\t\t\t( mediaUrl || featuredImageURL ) &&\n\t\t\t\tmediaType === 'image' && (\n\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\turl={\n\t\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t\t: mediaUrl\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t{ mediaType === 'image' && ( mediaUrl || featuredImageURL ) && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tvalue={ mediaAlt || featuredImageAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\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) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={\n\t\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t\t: image && image.source_url\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t\t\tfeaturedImageURL,\n\t\t\t\t\t\tfeaturedImageAlt,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"],"mappings":"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"}
|
|
@@ -112,8 +112,13 @@ const metadata = exports.metadata = {
|
|
|
112
112
|
},
|
|
113
113
|
allowedBlocks: {
|
|
114
114
|
type: "array"
|
|
115
|
+
},
|
|
116
|
+
useFeaturedImage: {
|
|
117
|
+
type: "boolean",
|
|
118
|
+
"default": false
|
|
115
119
|
}
|
|
116
120
|
},
|
|
121
|
+
usesContext: ["postId", "postType"],
|
|
117
122
|
supports: {
|
|
118
123
|
anchor: true,
|
|
119
124
|
align: ["wide", "full"],
|