@wordpress/block-library 8.0.0 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/categories/edit.js +1 -1
- package/build/categories/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/freeform/edit.js +21 -6
- package/build/freeform/edit.js.map +1 -1
- package/build/freeform/modal.js +97 -0
- package/build/freeform/modal.js.map +1 -0
- package/build/gallery/edit.js +13 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +2 -16
- package/build/gallery/gallery.js.map +1 -1
- package/build/image/image.js +1 -0
- package/build/image/image.js.map +1 -1
- package/build/media-text/edit.js +1 -0
- package/build/media-text/edit.js.map +1 -1
- package/build/missing/edit.native.js +2 -2
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/edit/index.js +3 -4
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +29 -7
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +11 -8
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/utils.js +81 -0
- package/build/navigation/edit/utils.js.map +1 -1
- package/build/navigation-link/edit.js +4 -58
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +7 -72
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +16 -15
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +29 -2
- package/build/page-list/index.js.map +1 -1
- package/build/page-list-item/edit.js +9 -5
- package/build/page-list-item/edit.js.map +1 -1
- package/build/post-featured-image/overlay.js +0 -1
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/query/edit/index.js +2 -1
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +10 -5
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +101 -37
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/edit/query-content.js +2 -3
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +17 -12
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +73 -1
- package/build/query/utils.js.map +1 -1
- package/build/search/edit.js +2 -2
- package/build/search/edit.js.map +1 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.js +0 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js +11 -1
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/import-controls.js +160 -0
- package/build/template-part/edit/import-controls.js.map +1 -0
- package/build/template-part/edit/index.js +2 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +48 -0
- package/build/template-part/edit/utils/transformers.js.map +1 -0
- package/build-module/categories/edit.js +1 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +3 -3
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/freeform/edit.js +22 -8
- package/build-module/freeform/edit.js.map +1 -1
- package/build-module/freeform/modal.js +90 -0
- package/build-module/freeform/modal.js.map +1 -0
- package/build-module/gallery/edit.js +14 -3
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +3 -16
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/image/image.js +1 -0
- package/build-module/image/image.js.map +1 -1
- package/build-module/media-text/edit.js +1 -0
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/missing/edit.native.js +2 -2
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +3 -4
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +30 -9
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +12 -9
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/utils.js +75 -0
- package/build-module/navigation/edit/utils.js.map +1 -1
- package/build-module/navigation-link/edit.js +4 -59
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +6 -72
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +17 -15
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +30 -3
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/edit.js +9 -6
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +0 -1
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/query/edit/index.js +2 -1
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +10 -5
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +99 -35
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/edit/query-content.js +1 -1
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +16 -12
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +69 -0
- package/build-module/query/utils.js.map +1 -1
- package/build-module/search/edit.js +2 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/social-link/edit.js +2 -2
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.js +0 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js +10 -1
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +146 -0
- package/build-module/template-part/edit/import-controls.js.map +1 -0
- package/build-module/template-part/edit/index.js +2 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +40 -0
- package/build-module/template-part/edit/utils/transformers.js.map +1 -0
- package/build-style/archives/editor-rtl.css +3 -3
- package/build-style/archives/editor.css +3 -3
- package/build-style/archives/style-rtl.css +3 -3
- package/build-style/archives/style.css +3 -3
- package/build-style/audio/editor-rtl.css +3 -3
- package/build-style/audio/editor.css +3 -3
- package/build-style/audio/style-rtl.css +3 -3
- package/build-style/audio/style.css +3 -3
- package/build-style/audio/theme-rtl.css +3 -3
- package/build-style/audio/theme.css +3 -3
- package/build-style/avatar/editor-rtl.css +3 -3
- package/build-style/avatar/editor.css +3 -3
- package/build-style/avatar/style-rtl.css +3 -3
- package/build-style/avatar/style.css +3 -3
- package/build-style/block/editor-rtl.css +3 -3
- package/build-style/block/editor.css +3 -3
- package/build-style/button/editor-rtl.css +3 -3
- package/build-style/button/editor.css +3 -3
- package/build-style/button/style-rtl.css +3 -3
- package/build-style/button/style.css +3 -3
- package/build-style/buttons/editor-rtl.css +3 -3
- package/build-style/buttons/editor.css +3 -3
- package/build-style/buttons/style-rtl.css +3 -3
- package/build-style/buttons/style.css +3 -3
- package/build-style/calendar/style-rtl.css +3 -3
- package/build-style/calendar/style.css +3 -3
- package/build-style/categories/editor-rtl.css +3 -3
- package/build-style/categories/editor.css +3 -3
- package/build-style/categories/style-rtl.css +3 -3
- package/build-style/categories/style.css +3 -3
- package/build-style/classic-rtl.css +3 -3
- package/build-style/classic.css +3 -3
- package/build-style/code/editor-rtl.css +3 -3
- package/build-style/code/editor.css +3 -3
- package/build-style/code/style-rtl.css +3 -3
- package/build-style/code/style.css +3 -3
- package/build-style/code/theme-rtl.css +3 -3
- package/build-style/code/theme.css +3 -3
- package/build-style/columns/editor-rtl.css +3 -3
- package/build-style/columns/editor.css +3 -3
- package/build-style/columns/style-rtl.css +3 -3
- package/build-style/columns/style.css +3 -3
- package/build-style/comment-author-avatar/editor-rtl.css +3 -3
- package/build-style/comment-author-avatar/editor.css +3 -3
- package/build-style/comment-content/style-rtl.css +3 -3
- package/build-style/comment-content/style.css +3 -3
- package/build-style/comment-template/style-rtl.css +3 -3
- package/build-style/comment-template/style.css +3 -3
- package/build-style/comments/editor-rtl.css +3 -3
- package/build-style/comments/editor.css +3 -3
- package/build-style/comments/style-rtl.css +3 -3
- package/build-style/comments/style.css +3 -3
- package/build-style/comments-pagination/editor-rtl.css +3 -3
- package/build-style/comments-pagination/editor.css +3 -3
- package/build-style/comments-pagination/style-rtl.css +3 -3
- package/build-style/comments-pagination/style.css +3 -3
- package/build-style/comments-pagination-numbers/editor-rtl.css +3 -3
- package/build-style/comments-pagination-numbers/editor.css +3 -3
- package/build-style/comments-title/editor-rtl.css +3 -3
- package/build-style/comments-title/editor.css +3 -3
- package/build-style/common-rtl.css +3 -3
- package/build-style/common.css +3 -3
- package/build-style/cover/editor-rtl.css +3 -3
- package/build-style/cover/editor.css +3 -3
- package/build-style/cover/style-rtl.css +3 -3
- package/build-style/cover/style.css +3 -3
- package/build-style/editor-elements-rtl.css +3 -3
- package/build-style/editor-elements.css +3 -3
- package/build-style/editor-rtl.css +7 -9
- package/build-style/editor.css +7 -9
- package/build-style/elements-rtl.css +3 -3
- package/build-style/elements.css +3 -3
- package/build-style/embed/editor-rtl.css +3 -3
- package/build-style/embed/editor.css +3 -3
- package/build-style/embed/style-rtl.css +3 -3
- package/build-style/embed/style.css +3 -3
- package/build-style/embed/theme-rtl.css +3 -3
- package/build-style/embed/theme.css +3 -3
- package/build-style/file/editor-rtl.css +3 -3
- package/build-style/file/editor.css +3 -3
- package/build-style/file/style-rtl.css +3 -3
- package/build-style/file/style.css +3 -3
- package/build-style/freeform/editor-rtl.css +3 -3
- package/build-style/freeform/editor.css +3 -3
- package/build-style/gallery/editor-rtl.css +3 -3
- package/build-style/gallery/editor.css +3 -3
- package/build-style/gallery/style-rtl.css +3 -3
- package/build-style/gallery/style.css +3 -3
- package/build-style/gallery/theme-rtl.css +3 -3
- package/build-style/gallery/theme.css +3 -3
- package/build-style/group/editor-rtl.css +3 -3
- package/build-style/group/editor.css +3 -3
- package/build-style/group/style-rtl.css +3 -3
- package/build-style/group/style.css +3 -3
- package/build-style/group/theme-rtl.css +3 -3
- package/build-style/group/theme.css +3 -3
- package/build-style/heading/style-rtl.css +3 -3
- package/build-style/heading/style.css +3 -3
- package/build-style/html/editor-rtl.css +3 -3
- package/build-style/html/editor.css +3 -3
- package/build-style/image/editor-rtl.css +3 -3
- package/build-style/image/editor.css +3 -3
- package/build-style/image/style-rtl.css +3 -3
- package/build-style/image/style.css +3 -3
- package/build-style/image/theme-rtl.css +3 -3
- package/build-style/image/theme.css +3 -3
- package/build-style/latest-comments/style-rtl.css +3 -3
- package/build-style/latest-comments/style.css +3 -3
- package/build-style/latest-posts/editor-rtl.css +3 -3
- package/build-style/latest-posts/editor.css +3 -3
- package/build-style/latest-posts/style-rtl.css +3 -3
- package/build-style/latest-posts/style.css +3 -3
- package/build-style/list/style-rtl.css +3 -3
- package/build-style/list/style.css +3 -3
- package/build-style/media-text/editor-rtl.css +3 -3
- package/build-style/media-text/editor.css +3 -3
- package/build-style/media-text/style-rtl.css +3 -3
- package/build-style/media-text/style.css +3 -3
- package/build-style/more/editor-rtl.css +3 -3
- package/build-style/more/editor.css +3 -3
- package/build-style/navigation/editor-rtl.css +3 -9
- package/build-style/navigation/editor.css +3 -9
- package/build-style/navigation/style-rtl.css +3 -4
- package/build-style/navigation/style.css +3 -4
- package/build-style/navigation-link/editor-rtl.css +3 -3
- package/build-style/navigation-link/editor.css +3 -3
- package/build-style/navigation-link/style-rtl.css +3 -3
- package/build-style/navigation-link/style.css +3 -3
- package/build-style/navigation-submenu/editor-rtl.css +3 -3
- package/build-style/navigation-submenu/editor.css +3 -3
- package/build-style/nextpage/editor-rtl.css +3 -3
- package/build-style/nextpage/editor.css +3 -3
- package/build-style/page-list/editor-rtl.css +7 -3
- package/build-style/page-list/editor.css +7 -3
- package/build-style/page-list/style-rtl.css +3 -3
- package/build-style/page-list/style.css +3 -3
- package/build-style/paragraph/editor-rtl.css +3 -3
- package/build-style/paragraph/editor.css +3 -3
- package/build-style/paragraph/style-rtl.css +3 -3
- package/build-style/paragraph/style.css +3 -3
- package/build-style/post-author/style-rtl.css +3 -3
- package/build-style/post-author/style.css +3 -3
- package/build-style/post-comments-form/editor-rtl.css +3 -3
- package/build-style/post-comments-form/editor.css +3 -3
- package/build-style/post-comments-form/style-rtl.css +3 -3
- package/build-style/post-comments-form/style.css +3 -3
- package/build-style/post-date/style-rtl.css +3 -3
- package/build-style/post-date/style.css +3 -3
- package/build-style/post-excerpt/editor-rtl.css +3 -3
- package/build-style/post-excerpt/editor.css +3 -3
- package/build-style/post-excerpt/style-rtl.css +3 -3
- package/build-style/post-excerpt/style.css +3 -3
- package/build-style/post-featured-image/editor-rtl.css +3 -3
- package/build-style/post-featured-image/editor.css +3 -3
- package/build-style/post-featured-image/style-rtl.css +3 -3
- package/build-style/post-featured-image/style.css +3 -3
- package/build-style/post-navigation-link/style-rtl.css +3 -3
- package/build-style/post-navigation-link/style.css +3 -3
- package/build-style/post-template/editor-rtl.css +3 -3
- package/build-style/post-template/editor.css +3 -3
- package/build-style/post-template/style-rtl.css +3 -3
- package/build-style/post-template/style.css +3 -3
- package/build-style/post-terms/style-rtl.css +3 -3
- package/build-style/post-terms/style.css +3 -3
- package/build-style/post-title/style-rtl.css +3 -3
- package/build-style/post-title/style.css +3 -3
- package/build-style/preformatted/style-rtl.css +3 -3
- package/build-style/preformatted/style.css +3 -3
- package/build-style/pullquote/editor-rtl.css +3 -3
- package/build-style/pullquote/editor.css +3 -3
- package/build-style/pullquote/style-rtl.css +3 -3
- package/build-style/pullquote/style.css +3 -3
- package/build-style/pullquote/theme-rtl.css +3 -3
- package/build-style/pullquote/theme.css +3 -3
- package/build-style/query/editor-rtl.css +3 -3
- package/build-style/query/editor.css +3 -3
- package/build-style/query-pagination/editor-rtl.css +3 -3
- package/build-style/query-pagination/editor.css +3 -3
- package/build-style/query-pagination/style-rtl.css +3 -3
- package/build-style/query-pagination/style.css +3 -3
- package/build-style/query-pagination-numbers/editor-rtl.css +3 -3
- package/build-style/query-pagination-numbers/editor.css +3 -3
- package/build-style/query-title/style-rtl.css +3 -3
- package/build-style/query-title/style.css +3 -3
- package/build-style/quote/style-rtl.css +3 -3
- package/build-style/quote/style.css +3 -3
- package/build-style/quote/theme-rtl.css +3 -3
- package/build-style/quote/theme.css +3 -3
- package/build-style/read-more/style-rtl.css +3 -3
- package/build-style/read-more/style.css +3 -3
- package/build-style/reset-rtl.css +3 -3
- package/build-style/reset.css +3 -3
- package/build-style/rss/editor-rtl.css +3 -3
- package/build-style/rss/editor.css +3 -3
- package/build-style/rss/style-rtl.css +3 -3
- package/build-style/rss/style.css +3 -3
- package/build-style/search/editor-rtl.css +3 -3
- package/build-style/search/editor.css +3 -3
- package/build-style/search/style-rtl.css +3 -3
- package/build-style/search/style.css +3 -3
- package/build-style/search/theme-rtl.css +3 -3
- package/build-style/search/theme.css +3 -3
- package/build-style/separator/editor-rtl.css +3 -3
- package/build-style/separator/editor.css +3 -3
- package/build-style/separator/style-rtl.css +3 -3
- package/build-style/separator/style.css +3 -3
- package/build-style/separator/theme-rtl.css +3 -3
- package/build-style/separator/theme.css +3 -3
- package/build-style/shortcode/editor-rtl.css +3 -3
- package/build-style/shortcode/editor.css +3 -3
- package/build-style/site-logo/editor-rtl.css +3 -3
- package/build-style/site-logo/editor.css +3 -3
- package/build-style/site-logo/style-rtl.css +3 -3
- package/build-style/site-logo/style.css +3 -3
- package/build-style/site-tagline/editor-rtl.css +3 -3
- package/build-style/site-tagline/editor.css +3 -3
- package/build-style/site-title/editor-rtl.css +3 -3
- package/build-style/site-title/editor.css +3 -3
- package/build-style/site-title/style-rtl.css +3 -3
- package/build-style/site-title/style.css +3 -3
- package/build-style/social-link/editor-rtl.css +3 -3
- package/build-style/social-link/editor.css +3 -3
- package/build-style/social-links/editor-rtl.css +3 -3
- package/build-style/social-links/editor.css +3 -3
- package/build-style/social-links/style-rtl.css +3 -3
- package/build-style/social-links/style.css +3 -3
- package/build-style/spacer/editor-rtl.css +3 -3
- package/build-style/spacer/editor.css +3 -3
- package/build-style/spacer/style-rtl.css +3 -3
- package/build-style/spacer/style.css +3 -3
- package/build-style/style-rtl.css +13 -5
- package/build-style/style.css +13 -5
- package/build-style/table/editor-rtl.css +3 -3
- package/build-style/table/editor.css +3 -3
- package/build-style/table/style-rtl.css +9 -3
- package/build-style/table/style.css +9 -3
- package/build-style/table/theme-rtl.css +3 -9
- package/build-style/table/theme.css +3 -9
- package/build-style/tag-cloud/style-rtl.css +3 -3
- package/build-style/tag-cloud/style.css +3 -3
- package/build-style/template-part/editor-rtl.css +3 -3
- package/build-style/template-part/editor.css +3 -3
- package/build-style/template-part/theme-rtl.css +3 -3
- package/build-style/template-part/theme.css +3 -3
- package/build-style/text-columns/editor-rtl.css +3 -3
- package/build-style/text-columns/editor.css +3 -3
- package/build-style/text-columns/style-rtl.css +3 -3
- package/build-style/text-columns/style.css +3 -3
- package/build-style/theme-rtl.css +3 -9
- package/build-style/theme.css +3 -9
- package/build-style/verse/style-rtl.css +7 -4
- package/build-style/verse/style.css +7 -4
- package/build-style/video/editor-rtl.css +3 -3
- package/build-style/video/editor.css +3 -3
- package/build-style/video/style-rtl.css +3 -3
- package/build-style/video/style.css +3 -3
- package/build-style/video/theme-rtl.css +3 -3
- package/build-style/video/theme.css +3 -3
- package/package.json +29 -29
- package/src/categories/edit.js +1 -1
- package/src/comments/index.php +0 -1
- package/src/cover/edit/inspector-controls.js +4 -4
- package/src/freeform/edit.js +48 -29
- package/src/freeform/modal.js +111 -0
- package/src/gallery/edit.js +17 -2
- package/src/gallery/gallery.js +3 -13
- package/src/image/image.js +1 -0
- package/src/latest-posts/test/__snapshots__/edit.native.js.snap +3 -0
- package/src/latest-posts/test/edit.native.js +49 -0
- package/src/media-text/edit.js +1 -0
- package/src/missing/edit.native.js +13 -6
- package/src/more/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/more/test/edit.native.js +41 -0
- package/src/navigation/edit/index.js +3 -4
- package/src/navigation/edit/menu-inspector-controls.js +70 -29
- package/src/navigation/edit/navigation-menu-selector.js +19 -9
- package/src/navigation/edit/utils.js +82 -0
- package/src/navigation/editor.scss +0 -7
- package/src/navigation/index.php +32 -0
- package/src/navigation/style.scss +0 -1
- package/src/navigation-link/edit.js +5 -58
- package/src/navigation-link/index.php +32 -0
- package/src/navigation-submenu/edit.js +29 -100
- package/src/navigation-submenu/index.php +32 -0
- package/src/page-list/block.json +18 -1
- package/src/page-list/edit.js +30 -22
- package/src/page-list/editor.scss +4 -0
- package/src/page-list/index.js +8 -2
- package/src/page-list/index.php +9 -10
- package/src/page-list-item/edit.js +17 -9
- package/src/post-featured-image/overlay.js +0 -1
- package/src/query/edit/index.js +1 -0
- package/src/query/edit/inspector-controls/index.js +49 -38
- package/src/query/edit/inspector-controls/taxonomy-controls.js +102 -38
- package/src/query/edit/query-content.js +2 -1
- package/src/query/edit/query-placeholder.js +15 -14
- package/src/query/utils.js +59 -1
- package/src/search/edit.js +2 -2
- package/src/separator/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/separator/test/edit.native.js +41 -0
- package/src/social-link/edit.js +3 -3
- package/src/social-links/edit.js +0 -1
- package/src/table/style.scss +8 -0
- package/src/table/theme.scss +0 -8
- package/src/table-of-contents/edit.js +1 -1
- package/src/template-part/edit/advanced-controls.js +12 -0
- package/src/template-part/edit/import-controls.js +180 -0
- package/src/template-part/edit/index.js +1 -0
- package/src/template-part/edit/utils/transformers.js +37 -0
- package/src/verse/style.scss +4 -1
- package/src/verse/test/__snapshots__/edit.native.js.snap +13 -0
- package/src/verse/test/edit.native.js +40 -33
- package/tsconfig.tsbuildinfo +1 -1
- package/build/query/constants.js +0 -16
- package/build/query/constants.js.map +0 -1
- package/build-module/query/constants.js +0 -7
- package/build-module/query/constants.js.map +0 -1
- package/src/query/constants.js +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/freeform/edit.js"],"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useSelect","ToolbarGroup","useEffect","useRef","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","ClassicEdit","clientId","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","canRemove","select","canRemoveBlock","didMount","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","document","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","ownerDocument","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst didMount = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMount.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tconst currentContent = editor?.getContent();\n\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMount.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<div\n\t\t\t\t\tkey=\"toolbar\"\n\t\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\t\tonClick={ focus }\n\t\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\tkey=\"editor\"\n\t\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/freeform/edit.js"],"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useRefEffect","useSelect","ToolbarGroup","useEffect","useRef","useState","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","ModalEdit","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","FreeformEdit","props","clientId","canRemove","select","canRemoveBlock","isIframed","setIsIframed","ref","element","ownerDocument","document","ClassicEdit","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","didMount","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMount = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMount.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tconst currentContent = editor?.getContent();\n\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMount.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* WordPress dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { BlockControls, store } from '@wordpress/block-editor';
|
|
7
|
+
import { ToolbarGroup, ToolbarButton, Modal, Button } from '@wordpress/components';
|
|
8
|
+
import { useEffect, useState, RawHTML } from '@wordpress/element';
|
|
9
|
+
import { __ } from '@wordpress/i18n';
|
|
10
|
+
import { useSelect } from '@wordpress/data';
|
|
11
|
+
|
|
12
|
+
function ClassicEdit(props) {
|
|
13
|
+
const styles = useSelect(select => select(store).getSettings().styles);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const {
|
|
16
|
+
baseURL,
|
|
17
|
+
suffix,
|
|
18
|
+
settings
|
|
19
|
+
} = window.wpEditorL10n.tinymce;
|
|
20
|
+
window.tinymce.EditorManager.overrideDefaults({
|
|
21
|
+
base_url: baseURL,
|
|
22
|
+
suffix
|
|
23
|
+
});
|
|
24
|
+
window.wp.oldEditor.initialize(props.id, {
|
|
25
|
+
tinymce: { ...settings,
|
|
26
|
+
height: 500,
|
|
27
|
+
|
|
28
|
+
setup(editor) {
|
|
29
|
+
editor.on('init', () => {
|
|
30
|
+
const doc = editor.getDoc();
|
|
31
|
+
styles.forEach(_ref => {
|
|
32
|
+
let {
|
|
33
|
+
css
|
|
34
|
+
} = _ref;
|
|
35
|
+
const styleEl = doc.createElement('style');
|
|
36
|
+
styleEl.innerHTML = css;
|
|
37
|
+
doc.head.appendChild(styleEl);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return () => {
|
|
45
|
+
window.wp.oldEditor.remove(props.id);
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
return createElement("textarea", props);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default function ModalEdit(props) {
|
|
52
|
+
const {
|
|
53
|
+
clientId,
|
|
54
|
+
attributes: {
|
|
55
|
+
content
|
|
56
|
+
},
|
|
57
|
+
setAttributes,
|
|
58
|
+
onReplace
|
|
59
|
+
} = props;
|
|
60
|
+
const [isOpen, setOpen] = useState(false);
|
|
61
|
+
const id = `editor-${clientId}`;
|
|
62
|
+
|
|
63
|
+
const label = __('Classic Edit');
|
|
64
|
+
|
|
65
|
+
return createElement(Fragment, null, createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
66
|
+
onClick: () => setOpen(true)
|
|
67
|
+
}, label))), content && createElement(RawHTML, null, content), (isOpen || !content) && createElement(Modal, {
|
|
68
|
+
title: label,
|
|
69
|
+
__experimentalHideHeader: true
|
|
70
|
+
}, createElement("h2", {
|
|
71
|
+
style: {
|
|
72
|
+
display: 'flex',
|
|
73
|
+
justifyContent: 'space-between'
|
|
74
|
+
}
|
|
75
|
+
}, createElement("div", null, label), createElement("div", null, createElement(Button, {
|
|
76
|
+
onClick: () => content ? setOpen(false) : onReplace([])
|
|
77
|
+
}, __('Cancel')), createElement(Button, {
|
|
78
|
+
isPrimary: true,
|
|
79
|
+
onClick: () => {
|
|
80
|
+
setAttributes({
|
|
81
|
+
content: window.wp.oldEditor.getContent(id)
|
|
82
|
+
});
|
|
83
|
+
setOpen(false);
|
|
84
|
+
}
|
|
85
|
+
}, __('Save')))), createElement(ClassicEdit, {
|
|
86
|
+
id: id,
|
|
87
|
+
defaultValue: content
|
|
88
|
+
})));
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/freeform/modal.js"],"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","useEffect","useState","RawHTML","__","useSelect","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","height","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","label","display","justifyContent","getContent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\theight: 500,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\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} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\tconst label = __( 'Classic Edit' );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal title={ label } __experimentalHideHeader={ true }>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>{ label }</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tcontent ? setOpen( false ) : onReplace( [] )\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{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisPrimary\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\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\tsetOpen( false );\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{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h2>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -11,7 +11,7 @@ import classnames from 'classnames';
|
|
|
11
11
|
|
|
12
12
|
import { compose } from '@wordpress/compose';
|
|
13
13
|
import { BaseControl, PanelBody, SelectControl, ToggleControl, RangeControl, Spinner } from '@wordpress/components';
|
|
14
|
-
import { store as blockEditorStore, MediaPlaceholder, InspectorControls, useBlockProps, BlockControls, MediaReplaceFlow } from '@wordpress/block-editor';
|
|
14
|
+
import { store as blockEditorStore, MediaPlaceholder, InspectorControls, useBlockProps, useInnerBlocksProps, BlockControls, MediaReplaceFlow } from '@wordpress/block-editor';
|
|
15
15
|
import { Platform, useEffect, useMemo } from '@wordpress/element';
|
|
16
16
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
17
17
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
@@ -46,6 +46,11 @@ const linkOptions = [{
|
|
|
46
46
|
label: _x('None', 'Media item link option')
|
|
47
47
|
}];
|
|
48
48
|
const ALLOWED_MEDIA_TYPES = ['image'];
|
|
49
|
+
const allowedBlocks = ['core/image'];
|
|
50
|
+
const LAYOUT = {
|
|
51
|
+
type: 'default',
|
|
52
|
+
alignments: []
|
|
53
|
+
};
|
|
49
54
|
const PLACEHOLDER_TEXT = Platform.isNative ? __('ADD MEDIA') : __('Drag images, upload new ones or select files from your library.');
|
|
50
55
|
const MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative ? {
|
|
51
56
|
type: 'stepper'
|
|
@@ -388,9 +393,15 @@ function GalleryEdit(props) {
|
|
|
388
393
|
const blockProps = useBlockProps({
|
|
389
394
|
className: classnames(className, 'has-nested-images')
|
|
390
395
|
});
|
|
396
|
+
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
397
|
+
allowedBlocks,
|
|
398
|
+
orientation: 'horizontal',
|
|
399
|
+
renderAppender: false,
|
|
400
|
+
__experimentalLayout: LAYOUT
|
|
401
|
+
});
|
|
391
402
|
|
|
392
403
|
if (!hasImages) {
|
|
393
|
-
return createElement(View,
|
|
404
|
+
return createElement(View, innerBlocksProps, innerBlocksProps.children, mediaPlaceholder);
|
|
394
405
|
}
|
|
395
406
|
|
|
396
407
|
const hasLinkTo = linkTo && linkTo !== 'none';
|
|
@@ -447,7 +458,7 @@ function GalleryEdit(props) {
|
|
|
447
458
|
}), createElement(Gallery, _extends({}, props, {
|
|
448
459
|
images: images,
|
|
449
460
|
mediaPlaceholder: !hasImages || Platform.isNative ? mediaPlaceholder : undefined,
|
|
450
|
-
blockProps:
|
|
461
|
+
blockProps: innerBlocksProps,
|
|
451
462
|
insertBlocksAfter: insertBlocksAfter
|
|
452
463
|
})));
|
|
453
464
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","compose","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","BlockControls","MediaReplaceFlow","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug } = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","compose","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","allowedBlocks","LAYOUT","type","alignments","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","title","instructions","blockProps","innerBlocksProps","orientation","renderAppender","__experimentalLayout","children","hasLinkTo","Math","min","isWeb","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\nconst LAYOUT = { type: 'default', alignments: [] };\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug } = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t__experimentalLayout: LAYOUT,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
|
|
@@ -9,12 +9,11 @@ import classnames from 'classnames';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { RichText,
|
|
12
|
+
import { RichText, __experimentalGetElementClassName } from '@wordpress/block-editor';
|
|
13
13
|
import { VisuallyHidden } from '@wordpress/components';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
15
|
import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
|
|
16
16
|
import { View } from '@wordpress/primitives';
|
|
17
|
-
const allowedBlocks = ['core/image'];
|
|
18
17
|
export const Gallery = props => {
|
|
19
18
|
const {
|
|
20
19
|
attributes,
|
|
@@ -31,26 +30,14 @@ export const Gallery = props => {
|
|
|
31
30
|
caption,
|
|
32
31
|
imageCrop
|
|
33
32
|
} = attributes;
|
|
34
|
-
|
|
35
|
-
children,
|
|
36
|
-
...innerBlocksProps
|
|
37
|
-
} = useInnerBlocksProps(blockProps, {
|
|
38
|
-
allowedBlocks,
|
|
39
|
-
orientation: 'horizontal',
|
|
40
|
-
renderAppender: false,
|
|
41
|
-
__experimentalLayout: {
|
|
42
|
-
type: 'default',
|
|
43
|
-
alignments: []
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
return createElement("figure", _extends({}, innerBlocksProps, {
|
|
33
|
+
return createElement("figure", _extends({}, blockProps, {
|
|
47
34
|
className: classnames(blockProps.className, layoutClassNames, 'blocks-gallery-grid', {
|
|
48
35
|
[`align${align}`]: align,
|
|
49
36
|
[`columns-${columns}`]: columns !== undefined,
|
|
50
37
|
[`columns-default`]: columns === undefined,
|
|
51
38
|
'is-cropped': imageCrop
|
|
52
39
|
})
|
|
53
|
-
}), children, isSelected && !children && createElement(View, {
|
|
40
|
+
}), blockProps.children, isSelected && !blockProps.children && createElement(View, {
|
|
54
41
|
className: "blocks-gallery-media-placeholder-wrapper"
|
|
55
42
|
}, mediaPlaceholder), createElement(RichTextVisibilityHelper, {
|
|
56
43
|
isHidden: !isSelected && RichText.isEmpty(caption),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/gallery.js"],"names":["classnames","RichText","__experimentalGetElementClassName","VisuallyHidden","__","createBlock","getDefaultBlockName","View","Gallery","props","attributes","isSelected","setAttributes","mediaPlaceholder","insertBlocksAfter","blockProps","__unstableLayoutClassNames","layoutClassNames","align","columns","caption","imageCrop","className","undefined","children","isEmpty","value","RichTextVisibilityHelper","isHidden","placeholder","tagName","captionRef","richTextProps"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,QADD,EAECC,iCAFD,QAGO,yBAHP;AAIA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,EAAsBC,mBAAtB,QAAiD,mBAAjD;AACA,SAASC,IAAT,QAAqB,uBAArB;AAEA,OAAO,MAAMC,OAAO,GAAKC,KAAF,IAAa;AACnC,QAAM;AACLC,IAAAA,UADK;AAELC,IAAAA,UAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,gBAJK;AAKLC,IAAAA,iBALK;AAMLC,IAAAA,UANK;AAOLC,IAAAA,0BAA0B,EAAEC;AAPvB,MAQFR,KARJ;AAUA,QAAM;AAAES,IAAAA,KAAF;AAASC,IAAAA,OAAT;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAyCX,UAA/C;AAEA,SACC,qCACMK,UADN;AAEC,IAAA,SAAS,EAAGf,UAAU,CACrBe,UAAU,CAACO,SADU,EAErBL,gBAFqB,EAGrB,qBAHqB,EAIrB;AACC,OAAG,QAAQC,KAAO,EAAlB,GAAuBA,KADxB;AAEC,OAAG,WAAWC,OAAS,EAAvB,GAA4BA,OAAO,KAAKI,SAFzC;AAGC,OAAG,iBAAH,GAAuBJ,OAAO,KAAKI,SAHpC;AAIC,oBAAcF;AAJf,KAJqB;AAFvB,MAcGN,UAAU,CAACS,QAdd,EAeGb,UAAU,IAAI,CAAEI,UAAU,CAACS,QAA3B,IACD,cAAC,IAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGX,gBADH,CAhBF,EAoBC,cAAC,wBAAD;AACC,IAAA,QAAQ,EAAG,CAAEF,UAAF,IAAgBV,QAAQ,CAACwB,OAAT,CAAkBL,OAAlB,CAD5B;AAEC,IAAA,OAAO,EAAC,YAFT;AAGC,IAAA,SAAS,EAAGpB,UAAU,CACrB,wBADqB,EAErBE,iCAAiC,CAAE,SAAF,CAFZ,CAHvB;AAOC,kBAAaE,EAAE,CAAE,sBAAF,CAPhB;AAQC,IAAA,WAAW,EAAGA,EAAE,CAAE,wBAAF,CARjB;AASC,IAAA,KAAK,EAAGgB,OATT;AAUC,IAAA,QAAQ,EAAKM,KAAF,IAAad,aAAa,CAAE;AAAEQ,MAAAA,OAAO,EAAEM;AAAX,KAAF,CAVtC;AAWC,IAAA,aAAa,MAXd;AAYC,IAAA,sBAAsB,EAAG,MACxBZ,iBAAiB,CAAET,WAAW,CAAEC,mBAAmB,EAArB,CAAb;AAbnB,IApBD,CADD;AAuCA,CApDM;;AAsDP,SAASqB,wBAAT,OAQI;AAAA,MAR+B;AAClCC,IAAAA,QADkC;AAElCN,IAAAA,SAFkC;AAGlCI,IAAAA,KAHkC;AAIlCG,IAAAA,WAJkC;AAKlCC,IAAAA,OALkC;AAMlCC,IAAAA,UANkC;AAOlC,OAAGC;AAP+B,GAQ/B;;AACH,MAAKJ,QAAL,EAAgB;AACf,WAAO,cAAC,cAAD;AAAgB,MAAA,EAAE,EAAG3B;AAArB,OAAqC+B,aAArC,EAAP;AACA;;AAED,SACC,cAAC,QAAD;AACC,IAAA,GAAG,EAAGD,UADP;AAEC,IAAA,KAAK,EAAGL,KAFT;AAGC,IAAA,WAAW,EAAGG,WAHf;AAIC,IAAA,SAAS,EAAGP,SAJb;AAKC,IAAA,OAAO,EAAGQ;AALX,KAMME,aANN,EADD;AAUA;;AAED,eAAexB,OAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { View } from '@wordpress/primitives';\n\nexport const Gallery = ( props ) => {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tmediaPlaceholder,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t\t__unstableLayoutClassNames: layoutClassNames,\n\t} = props;\n\n\tconst { align, columns, caption, imageCrop } = attributes;\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...blockProps }\n\t\t\tclassName={ classnames(\n\t\t\t\tblockProps.className,\n\t\t\t\tlayoutClassNames,\n\t\t\t\t'blocks-gallery-grid',\n\t\t\t\t{\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t\t\t'is-cropped': imageCrop,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ blockProps.children }\n\t\t\t{ isSelected && ! blockProps.children && (\n\t\t\t\t<View className=\"blocks-gallery-media-placeholder-wrapper\">\n\t\t\t\t\t{ mediaPlaceholder }\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t<RichTextVisibilityHelper\n\t\t\t\tisHidden={ ! isSelected && RichText.isEmpty( caption ) }\n\t\t\t\ttagName=\"figcaption\"\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'blocks-gallery-caption',\n\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t) }\n\t\t\t\taria-label={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Write gallery caption…' ) }\n\t\t\t\tvalue={ caption }\n\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\tinlineToolbar\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</figure>\n\t);\n};\n\nfunction RichTextVisibilityHelper( {\n\tisHidden,\n\tclassName,\n\tvalue,\n\tplaceholder,\n\ttagName,\n\tcaptionRef,\n\t...richTextProps\n} ) {\n\tif ( isHidden ) {\n\t\treturn <VisuallyHidden as={ RichText } { ...richTextProps } />;\n\t}\n\n\treturn (\n\t\t<RichText\n\t\t\tref={ captionRef }\n\t\t\tvalue={ value }\n\t\t\tplaceholder={ placeholder }\n\t\t\tclassName={ className }\n\t\t\ttagName={ tagName }\n\t\t\t{ ...richTextProps }\n\t\t/>\n\t);\n}\n\nexport default Gallery;\n"]}
|
|
@@ -350,6 +350,7 @@ export default function Image(_ref) {
|
|
|
350
350
|
})), createElement(InspectorControls, null, createElement(PanelBody, {
|
|
351
351
|
title: __('Settings')
|
|
352
352
|
}, !multiImageSelection && createElement(TextareaControl, {
|
|
353
|
+
__nextHasNoMarginBottom: true,
|
|
353
354
|
label: __('Alt text (alternative text)'),
|
|
354
355
|
value: alt,
|
|
355
356
|
onChange: updateAlt,
|