@wordpress/block-library 8.29.0 → 8.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/audio/edit.js +7 -17
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js.map +1 -1
- package/build/avatar/edit.js.map +1 -1
- package/build/block/deprecated.js +71 -11
- package/build/block/deprecated.js.map +1 -1
- package/build/block/edit.js +65 -31
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +2 -2
- package/build/button/edit.js.map +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/transforms.js +16 -2
- package/build/buttons/transforms.js.map +1 -1
- package/build/code/save.js +3 -1
- package/build/code/save.js.map +1 -1
- package/build/code/transforms.js +17 -6
- package/build/code/transforms.js.map +1 -1
- package/build/columns/edit.js +3 -2
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -1
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/block-controls.js +14 -3
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/edit/index.js +2 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +0 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/details/edit.js +1 -0
- package/build/details/edit.js.map +1 -1
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +8 -13
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/heading/index.js +4 -3
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +17 -4
- package/build/heading/transforms.js.map +1 -1
- package/build/image/edit.js +8 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +22 -8
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -1
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.js +1 -3
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/index.js +0 -7
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +1 -0
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +16 -7
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/media-text/edit.js +33 -9
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/index.js +5 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.js +30 -11
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/save.js +2 -2
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/edit/index.js +23 -29
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +24 -23
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +4 -4
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +15 -12
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/edit.js +12 -10
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +4 -0
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/pattern/edit.js +11 -0
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +12 -12
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +6 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-navigation-link/edit.js +1 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-terms/edit.js +2 -0
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-title/edit.js +2 -2
- package/build/post-title/edit.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/utils.js +7 -5
- package/build/query/utils.js.map +1 -1
- package/build/query-pagination-next/edit.js.map +1 -1
- package/build/query-pagination-previous/edit.js.map +1 -1
- package/build/quote/deprecated.js +111 -12
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +7 -7
- package/build/quote/edit.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/read-more/edit.js +1 -0
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +3 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js +2 -2
- package/build/search/edit.native.js.map +1 -1
- package/build/site-logo/edit.js +7 -2
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/{edit/index.js → edit.js} +1 -1
- package/build/site-title/edit.js.map +1 -0
- package/build/social-link/edit.js +1 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/icons/medium.js +1 -1
- package/build/social-link/icons/medium.js.map +1 -1
- package/build/social-link/icons/reddit.js +1 -1
- package/build/social-link/icons/reddit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table/deprecated.js +285 -175
- package/build/table/deprecated.js.map +1 -1
- package/build/table/index.js +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +53 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +2 -8
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build/utils/caption.js +15 -5
- package/build/utils/caption.js.map +1 -1
- package/build/utils/get-transformed-metadata.js +57 -0
- package/build/utils/get-transformed-metadata.js.map +1 -0
- package/build/utils/hooks.js +55 -4
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +7 -16
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +3 -8
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +10 -20
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/block/deprecated.js +71 -11
- package/build-module/block/deprecated.js.map +1 -1
- package/build-module/block/edit.js +66 -32
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +3 -3
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/transforms.js +16 -2
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/code/save.js +3 -1
- package/build-module/code/save.js.map +1 -1
- package/build-module/code/transforms.js +17 -6
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/columns/edit.js +3 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -1
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +15 -4
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/edit/index.js +2 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +1 -7
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/details/edit.js +1 -0
- package/build-module/details/edit.js.map +1 -1
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +9 -14
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/heading/index.js +4 -3
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +17 -4
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/edit.js +9 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +23 -9
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -1
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.js +2 -4
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/index.js +0 -1
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +17 -8
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/list-item/index.js +4 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/media-text/edit.js +34 -10
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/index.js +5 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.js +31 -12
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/save.js +2 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/edit/index.js +24 -30
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +4 -4
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +15 -12
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/edit.js +13 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +4 -0
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/paragraph/edit.native.js.map +1 -1
- package/build-module/pattern/edit.js +11 -0
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +13 -13
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +6 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +1 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +2 -0
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-title/edit.js +2 -2
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/utils.js +7 -5
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-pagination-next/edit.js.map +1 -1
- package/build-module/query-pagination-previous/edit.js.map +1 -1
- package/build-module/quote/deprecated.js +112 -13
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +7 -7
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/read-more/edit.js +1 -0
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +3 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js +2 -2
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -2
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/{edit/index.js → edit.js} +1 -1
- package/build-module/site-title/edit.js.map +1 -0
- package/build-module/social-link/edit.js +1 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/icons/medium.js +1 -1
- package/build-module/social-link/icons/medium.js.map +1 -1
- package/build-module/social-link/icons/reddit.js +1 -1
- package/build-module/social-link/icons/reddit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/deprecated.js +286 -176
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/index.js +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +57 -5
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -8
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build-module/utils/caption.js +13 -3
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/get-transformed-metadata.js +51 -0
- package/build-module/utils/get-transformed-metadata.js.map +1 -0
- package/build-module/utils/hooks.js +54 -3
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +10 -19
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +3 -8
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/common-rtl.css +1 -0
- package/build-style/common.css +1 -0
- package/build-style/cover/style-rtl.css +2 -1
- package/build-style/cover/style.css +2 -1
- package/build-style/editor-rtl.css +11 -2
- package/build-style/editor.css +11 -2
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/group/editor-rtl.css +1 -1
- package/build-style/group/editor.css +1 -1
- package/build-style/media-text/editor-rtl.css +7 -1
- package/build-style/media-text/editor.css +7 -1
- package/build-style/search/style-rtl.css +2 -0
- package/build-style/search/style.css +2 -0
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +6 -3
- package/build-style/style.css +6 -3
- package/package.json +34 -34
- package/src/archives/index.php +4 -0
- package/src/audio/edit.js +9 -19
- package/src/audio/edit.native.js +3 -3
- package/src/avatar/edit.js +1 -1
- package/src/avatar/index.php +6 -0
- package/src/block/deprecated.js +76 -11
- package/src/block/edit.js +100 -32
- package/src/block/index.php +27 -12
- package/src/block/test/edit.native.js +67 -0
- package/src/button/edit.js +4 -3
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/transforms.js +14 -4
- package/src/calendar/index.php +17 -0
- package/src/categories/index.php +6 -0
- package/src/code/save.js +7 -1
- package/src/code/transforms.js +20 -5
- package/src/columns/edit.js +3 -2
- package/src/comment-author-avatar/edit.js +1 -1
- package/src/comment-author-name/index.php +4 -0
- package/src/comment-content/index.php +4 -0
- package/src/comment-date/index.php +4 -0
- package/src/comment-edit-link/index.php +4 -0
- package/src/comment-reply-link/index.php +4 -0
- package/src/comment-template/index.php +4 -0
- package/src/comments/index.php +12 -0
- package/src/comments-pagination/index.php +4 -0
- package/src/comments-pagination-next/index.php +4 -0
- package/src/comments-pagination-numbers/index.php +4 -0
- package/src/comments-pagination-previous/index.php +4 -0
- package/src/comments-title/index.php +4 -0
- package/src/cover/edit/block-controls.js +16 -2
- package/src/cover/edit/index.js +6 -3
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit/resizable-cover-popover.js +1 -6
- package/src/cover/edit.native.js +1 -1
- package/src/cover/index.php +4 -0
- package/src/cover/style.scss +3 -2
- package/src/details/edit.js +1 -0
- package/src/file/deprecated.js +3 -3
- package/src/file/edit.js +10 -15
- package/src/file/edit.native.js +4 -4
- package/src/file/editor.scss +3 -0
- package/src/file/index.php +4 -0
- package/src/file/save.js +1 -1
- package/src/footnotes/index.php +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/gallery/edit.js +3 -3
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/index.php +6 -0
- package/src/gallery/test/index.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -2
- package/src/gallery/v1/gallery.native.js +1 -1
- package/src/group/editor.scss +1 -1
- package/src/heading/index.js +4 -3
- package/src/heading/index.php +4 -0
- package/src/heading/transforms.js +27 -8
- package/src/home-link/index.php +10 -0
- package/src/image/edit.js +13 -5
- package/src/image/edit.native.js +1 -1
- package/src/image/editor.scss +1 -0
- package/src/image/image.js +34 -22
- package/src/image/index.php +12 -1
- package/src/latest-comments/index.php +4 -0
- package/src/latest-posts/edit.native.js +1 -1
- package/src/latest-posts/index.php +8 -0
- package/src/list/ordered-list-settings.js +1 -1
- package/src/list-item/edit.js +1 -2
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/hooks/index.js +0 -1
- package/src/list-item/hooks/use-indent-list-item.js +2 -0
- package/src/list-item/hooks/use-outdent-list-item.js +2 -0
- package/src/list-item/hooks/use-space.js +16 -9
- package/src/list-item/index.js +3 -0
- package/src/loginout/index.php +4 -0
- package/src/media-text/block.json +5 -0
- package/src/media-text/edit.js +70 -19
- package/src/media-text/editor.scss +7 -1
- package/src/media-text/index.php +70 -0
- package/src/media-text/media-container.js +49 -9
- package/src/media-text/media-container.native.js +5 -3
- package/src/media-text/save.js +2 -2
- package/src/media-text/test/edit.native.js +58 -0
- package/src/missing/test/edit-integration.native.js +2 -1
- package/src/navigation/edit/index.js +68 -72
- package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
- package/src/navigation/edit/navigation-menu-selector.js +39 -21
- package/src/navigation/edit/placeholder/index.js +4 -4
- package/src/navigation/edit/test/navigation-menu-selector.js +77 -55
- package/src/navigation/index.php +118 -34
- package/src/navigation/test/use-navigation-menu.js +21 -21
- package/src/navigation/use-navigation-menu.js +23 -9
- package/src/navigation-link/edit.js +12 -13
- package/src/navigation-link/index.php +14 -0
- package/src/navigation-link/link-ui.js +2 -2
- package/src/navigation-submenu/edit.js +4 -0
- package/src/navigation-submenu/index.php +8 -0
- package/src/page-list/index.php +12 -0
- package/src/page-list-item/index.php +2 -0
- package/src/paragraph/edit.native.js +1 -1
- package/src/paragraph/test/edit.native.js +36 -0
- package/src/pattern/edit.js +14 -0
- package/src/pattern/index.php +2 -0
- package/src/post-author/edit.js +1 -0
- package/src/post-author/index.php +4 -0
- package/src/post-author-biography/index.php +4 -0
- package/src/post-author-name/index.php +4 -0
- package/src/post-comments-form/index.php +6 -0
- package/src/post-content/index.php +4 -0
- package/src/post-date/index.php +4 -0
- package/src/post-excerpt/edit.js +2 -1
- package/src/post-excerpt/index.php +4 -0
- package/src/post-featured-image/block.json +6 -0
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +14 -12
- package/src/post-featured-image/index.php +15 -0
- package/src/post-navigation-link/edit.js +2 -1
- package/src/post-navigation-link/index.php +4 -0
- package/src/post-template/index.php +6 -0
- package/src/post-terms/edit.js +2 -0
- package/src/post-terms/index.php +6 -0
- package/src/post-title/edit.js +49 -43
- package/src/post-title/index.php +2 -0
- package/src/query/edit/pattern-selection-modal.js +1 -1
- package/src/query/index.php +2 -0
- package/src/query/utils.js +6 -4
- package/src/query-no-results/index.php +4 -0
- package/src/query-pagination/index.php +4 -0
- package/src/query-pagination-next/edit.js +1 -1
- package/src/query-pagination-next/index.php +4 -0
- package/src/query-pagination-numbers/index.php +4 -0
- package/src/query-pagination-previous/edit.js +1 -1
- package/src/query-pagination-previous/index.php +4 -0
- package/src/query-title/index.php +4 -0
- package/src/quote/block.json +1 -1
- package/src/quote/deprecated.js +110 -15
- package/src/quote/edit.js +16 -10
- package/src/quote/save.js +2 -2
- package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
- package/src/read-more/edit.js +2 -1
- package/src/read-more/index.php +4 -0
- package/src/rss/index.php +4 -0
- package/src/search/edit.js +3 -1
- package/src/search/edit.native.js +6 -6
- package/src/search/index.php +20 -2
- package/src/search/style.scss +2 -0
- package/src/shortcode/index.php +4 -0
- package/src/site-logo/edit.js +11 -6
- package/src/site-logo/index.php +20 -0
- package/src/site-tagline/index.php +4 -0
- package/src/site-title/index.php +4 -0
- package/src/social-link/edit.js +2 -2
- package/src/social-link/icons/medium.js +1 -1
- package/src/social-link/icons/reddit.js +1 -1
- package/src/social-link/index.php +22 -9
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/edit.native.js +1 -1
- package/src/spacer/edit.js +1 -1
- package/src/table/block.json +1 -1
- package/src/table/deprecated.js +308 -175
- package/src/table-of-contents/edit.js +1 -1
- package/src/tag-cloud/index.php +4 -0
- package/src/template-part/edit/index.js +91 -4
- package/src/template-part/edit/selection-modal.js +4 -8
- package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
- package/src/template-part/index.php +10 -0
- package/src/term-description/index.php +4 -0
- package/src/utils/caption.js +10 -1
- package/src/utils/get-transformed-metadata.js +65 -0
- package/src/utils/hooks.js +53 -3
- package/src/video/edit-common-settings.js +1 -1
- package/src/video/edit.js +10 -18
- package/src/video/edit.native.js +7 -8
- package/src/video/test/edit.native.js +0 -14
- package/tsconfig.json +1 -0
- package/build/list-item/hooks/use-copy.js +0 -39
- package/build/list-item/hooks/use-copy.js.map +0 -1
- package/build/site-title/edit/index.js.map +0 -1
- package/build-module/list-item/hooks/use-copy.js +0 -32
- package/build-module/list-item/hooks/use-copy.js.map +0 -1
- package/build-module/site-title/edit/index.js.map +0 -1
- package/src/list-item/hooks/use-copy.js +0 -38
- /package/src/site-title/{edit/index.js → edit.js} +0 -0
package/CHANGELOG.md
CHANGED
package/build/audio/edit.js
CHANGED
|
@@ -10,12 +10,12 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
10
10
|
var _blob = require("@wordpress/blob");
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _blockEditor = require("@wordpress/block-editor");
|
|
13
|
-
var _element = require("@wordpress/element");
|
|
14
13
|
var _i18n = require("@wordpress/i18n");
|
|
15
14
|
var _data = require("@wordpress/data");
|
|
16
15
|
var _icons = require("@wordpress/icons");
|
|
17
16
|
var _notices = require("@wordpress/notices");
|
|
18
17
|
var _util = require("../embed/util");
|
|
18
|
+
var _hooks = require("../utils/hooks");
|
|
19
19
|
var _caption = require("../utils/caption");
|
|
20
20
|
/**
|
|
21
21
|
* External dependencies
|
|
@@ -46,22 +46,12 @@ function AudioEdit({
|
|
|
46
46
|
src
|
|
47
47
|
} = attributes;
|
|
48
48
|
const isTemporaryAudio = !id && (0, _blob.isBlobURL)(src);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (file) {
|
|
56
|
-
getSettings().mediaUpload({
|
|
57
|
-
filesList: [file],
|
|
58
|
-
onFileChange: ([media]) => onSelectAudio(media),
|
|
59
|
-
onError: e => onUploadError(e),
|
|
60
|
-
allowedTypes: ALLOWED_MEDIA_TYPES
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}, []);
|
|
49
|
+
(0, _hooks.useUploadMediaFromBlobURL)({
|
|
50
|
+
url: src,
|
|
51
|
+
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
52
|
+
onChange: onSelectAudio,
|
|
53
|
+
onError: onUploadError
|
|
54
|
+
});
|
|
65
55
|
function toggleAttribute(attribute) {
|
|
66
56
|
return newValue => {
|
|
67
57
|
setAttributes({
|
package/build/audio/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_components","_blockEditor","_element","_i18n","_data","_icons","_notices","_util","_caption","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","isSingleSelected","insertBlocksAfter","id","autoplay","loop","preload","src","isTemporaryAudio","isBlobURL","getSettings","useSelect","blockEditorStore","useEffect","file","getBlobByURL","mediaUpload","filesList","onFileChange","media","onSelectAudio","onError","e","onUploadError","allowedTypes","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","url","undefined","createErrorNotice","useDispatch","noticesStore","message","type","getAutoplayHelp","checked","__","caption","classes","classnames","blockProps","useBlockProps","_react","createElement","MediaPlaceholder","icon","BlockIcon","onSelect","accept","value","Fragment","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","InspectorControls","PanelBody","title","ToggleControl","__nextHasNoMarginBottom","label","onChange","help","SelectControl","_x","options","Disabled","isDisabled","controls","Spinner","Caption","showToolbarButton","_default","exports","default"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tgetSettings().mediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectAudio( media ),\n\t\t\t\t\tonError: ( e ) => onUploadError( e ),\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Audio caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_components","_blockEditor","_i18n","_data","_icons","_notices","_util","_hooks","_caption","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","isSingleSelected","insertBlocksAfter","id","autoplay","loop","preload","src","isTemporaryAudio","isBlobURL","useUploadMediaFromBlobURL","url","allowedTypes","onChange","onSelectAudio","onError","onUploadError","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","undefined","createErrorNotice","useDispatch","noticesStore","message","type","getAutoplayHelp","checked","__","media","caption","classes","classnames","blockProps","useBlockProps","_react","createElement","MediaPlaceholder","icon","BlockIcon","onSelect","accept","value","Fragment","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","InspectorControls","PanelBody","title","ToggleControl","__nextHasNoMarginBottom","label","help","SelectControl","_x","options","Disabled","isDisabled","controls","Spinner","Caption","showToolbarButton","_default","exports","default"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: src,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectAudio,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Audio caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_primitives","_components","_blockEditor","_i18n","_icons","_element","_data","_notices","_url","_style","_interopRequireDefault","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","setAttributes","isSelected","insertBlocksAfter","onFocus","onBlur","clientId","id","autoplay","loop","preload","src","isCaptionSelected","setIsCaptionSelected","useState","onFileChange","mediaId","mediaUrl","wasBlockJustInserted","useSelect","select","blockEditorStore","createErrorNotice","useDispatch","noticesStore","toggleAttribute","attribute","newValue","onSelectURL","newSrc","isURL","test","getProtocol","undefined","__","onSelectAudio","media","url","onAudioPress","onFocusCaption","_react","createElement","View","MediaPlaceholder","icon","BlockIcon","onSelect","accept","allowedTypes","value","autoOpenMediaUpload","getBlockControls","open","BlockControls","ToolbarGroup","ToolbarButton","title","replace","onClick","getBlockUI","getMediaOptions","MediaUploadProgress","onFinishMediaUploadWithSuccess","onMediaUploadStateReset","containerStyle","styles","progressContainer","progressBarStyle","progressBar","spinnerStyle","spinner","renderContent","isUploadInProgress","isUploadFailed","retryMessage","Fragment","AudioPlayer","TouchableWithoutFeedback","accessible","onPress","disabled","InspectorControls","PanelBody","ToggleControl","label","onChange","checked","help","SelectControl","_x","options","hideCancelButton","MediaUpload","isReplacingMedia","render","BlockCaption","accessibilityLabelCreator","caption","RichText","isEmpty","sprintf","_default","exports","default"],"sources":["@wordpress/block-library/src/audio/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { View } from '@wordpress/primitives';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tAudioPlayer,\n} from '@wordpress/components';\nimport {\n\tBlockCaption,\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { audio as icon, replace } from '@wordpress/icons';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isURL, getProtocol } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonFocus,\n\tonBlur,\n\tclientId,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\n\tconst onFileChange = ( { mediaId, mediaUrl } ) => {\n\t\tsetAttributes( { id: mediaId, src: mediaUrl } );\n\t};\n\n\tconst { wasBlockJustInserted } = useSelect( ( select ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\tif ( isURL( newSrc ) && /^https?:/.test( getProtocol( newSrc ) ) ) {\n\t\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t\t} else {\n\t\t\t\tcreateErrorNotice( __( 'Invalid URL. Audio file not found.' ) );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( { src: media.url, id: media.id } );\n\t}\n\n\tfunction onAudioPress() {\n\t\tsetIsCaptionSelected( false );\n\t}\n\n\tfunction onFocusCaption() {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t}\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<View>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction getBlockControls( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Replace audio' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tfunction getBlockUI( open, getMediaOptions ) {\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonFinishMediaUploadWithSuccess={ onFileChange }\n\t\t\t\tonMediaUploadStateReset={ onFileChange }\n\t\t\t\tcontainerStyle={ styles.progressContainer }\n\t\t\t\tprogressBarStyle={ styles.progressBar }\n\t\t\t\tspinnerStyle={ styles.spinner }\n\t\t\t\trenderContent={ ( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isCaptionSelected &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\tgetBlockControls( open ) }\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<AudioPlayer\n\t\t\t\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\taccessible={ ! isSelected }\n\t\t\tonPress={ onAudioPress }\n\t\t\tdisabled={ ! isSelected }\n\t\t>\n\t\t\t<View>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Autoplay may cause usability issues for some users.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Preload',\n\t\t\t\t\t\t\t\t'noun; Audio block parameter'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\t\tlabel: _x( 'None', '\"Preload\" value' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tisReplacingMedia={ true }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\t\treturn getBlockUI( open, getMediaOptions );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<BlockCaption\n\t\t\t\t\taccessible={ true }\n\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t\t? /* translators: accessibility text. Empty Audio caption. */\n\t\t\t\t\t\t\t __( 'Audio caption. Empty' )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: Audio caption. */\n\t\t\t\t\t\t\t\t\t__( 'Audio caption. %s' ),\n\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\t\tonFocus={ onFocusCaption }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\nexport default AudioEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_primitives","_components","_blockEditor","_i18n","_icons","_element","_data","_notices","_url","_style","_interopRequireDefault","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","setAttributes","isSelected","insertBlocksAfter","onFocus","onBlur","clientId","id","autoplay","loop","preload","src","isCaptionSelected","setIsCaptionSelected","useState","onFileChange","mediaId","mediaUrl","wasBlockJustInserted","useSelect","select","blockEditorStore","createErrorNotice","useDispatch","noticesStore","toggleAttribute","attribute","newValue","onSelectURL","newSrc","isURL","test","getProtocol","undefined","__","onSelectAudio","media","url","onAudioPress","onFocusCaption","_react","createElement","View","MediaPlaceholder","icon","BlockIcon","onSelect","accept","allowedTypes","value","autoOpenMediaUpload","getBlockControls","open","BlockControls","ToolbarGroup","ToolbarButton","title","replace","onClick","getBlockUI","getMediaOptions","MediaUploadProgress","onFinishMediaUploadWithSuccess","onMediaUploadStateReset","containerStyle","styles","progressContainer","progressBarStyle","progressBar","spinnerStyle","spinner","renderContent","isUploadInProgress","isUploadFailed","retryMessage","Fragment","AudioPlayer","TouchableWithoutFeedback","accessible","onPress","disabled","InspectorControls","PanelBody","ToggleControl","label","onChange","checked","help","SelectControl","_x","options","hideCancelButton","MediaUpload","isReplacingMedia","render","BlockCaption","accessibilityLabelCreator","caption","RichText","isEmpty","sprintf","_default","exports","default"],"sources":["@wordpress/block-library/src/audio/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { View } from '@wordpress/primitives';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tAudioPlayer,\n} from '@wordpress/components';\nimport {\n\tBlockCaption,\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { audio as icon, replace } from '@wordpress/icons';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isURL, getProtocol } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonFocus,\n\tonBlur,\n\tclientId,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\n\tconst onFileChange = ( { mediaId, mediaUrl } ) => {\n\t\tsetAttributes( { id: mediaId, src: mediaUrl } );\n\t};\n\n\tconst { wasBlockJustInserted } = useSelect( ( select ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\tif ( isURL( newSrc ) && /^https?:/.test( getProtocol( newSrc ) ) ) {\n\t\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t\t} else {\n\t\t\t\tcreateErrorNotice( __( 'Invalid URL. Audio file not found.' ) );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( { src: media.url, id: media.id } );\n\t}\n\n\tfunction onAudioPress() {\n\t\tsetIsCaptionSelected( false );\n\t}\n\n\tfunction onFocusCaption() {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t}\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<View>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction getBlockControls( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Replace audio' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tfunction getBlockUI( open, getMediaOptions ) {\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonFinishMediaUploadWithSuccess={ onFileChange }\n\t\t\t\tonMediaUploadStateReset={ onFileChange }\n\t\t\t\tcontainerStyle={ styles.progressContainer }\n\t\t\t\tprogressBarStyle={ styles.progressBar }\n\t\t\t\tspinnerStyle={ styles.spinner }\n\t\t\t\trenderContent={ ( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isCaptionSelected &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\tgetBlockControls( open ) }\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<AudioPlayer\n\t\t\t\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\taccessible={ ! isSelected }\n\t\t\tonPress={ onAudioPress }\n\t\t\tdisabled={ ! isSelected }\n\t\t>\n\t\t\t<View>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Autoplay may cause usability issues for some users.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Preload',\n\t\t\t\t\t\t\t\t'noun; Audio block parameter'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\t\tlabel: _x( 'None', '\"Preload\" value' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tisReplacingMedia\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\t\treturn getBlockUI( open, getMediaOptions );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<BlockCaption\n\t\t\t\t\taccessible\n\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t\t? /* translators: accessibility text. Empty Audio caption. */\n\t\t\t\t\t\t\t __( 'Audio caption. Empty' )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: Audio caption. */\n\t\t\t\t\t\t\t\t\t__( 'Audio caption. %s' ),\n\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\t\tonFocus={ onFocusCaption }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\nexport default AudioEdit;\n"],"mappings":"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"}
|
package/build/avatar/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_components","_i18n","_url","_hooks","_userControl","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","_react","createElement","InspectorControls","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newSize","size","min","minSize","max","maxSize","initialPosition","value","ToggleControl","isLink","checked","linkTarget","default","userId","ResizableAvatar","blockProps","isSelected","borderProps","useBorderProps","doubledSizedSrc","addQueryArgs","removeQueryArgs","src","s","ResizableBox","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","isRTL","bottom","left","minWidth","maxWidth","alt","className","classnames","style","CommentEdit","context","commentId","useBlockProps","useCommentAvatar","Fragment","href","onClick","preventDefault","UserEdit","postId","postType","useUserAvatar","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser={ true }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_components","_i18n","_url","_hooks","_userControl","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","_react","createElement","InspectorControls","PanelBody","title","__","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newSize","size","min","minSize","max","maxSize","initialPosition","value","ToggleControl","isLink","checked","linkTarget","default","userId","ResizableAvatar","blockProps","isSelected","borderProps","useBorderProps","doubledSizedSrc","addQueryArgs","removeQueryArgs","src","s","ResizableBox","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","isRTL","bottom","left","minWidth","maxWidth","alt","className","classnames","style","CommentEdit","context","commentId","useBlockProps","useCommentAvatar","Fragment","href","onClick","preventDefault","UserEdit","postId","postType","useUserAvatar","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,73 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
7
|
+
const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
|
|
8
|
+
|
|
9
|
+
// v2: Migrate to a more condensed version of the 'content' attribute attribute.
|
|
10
|
+
const v2 = {
|
|
11
|
+
attributes: {
|
|
12
|
+
ref: {
|
|
13
|
+
type: 'number'
|
|
14
|
+
},
|
|
15
|
+
content: {
|
|
16
|
+
type: 'object'
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
supports: {
|
|
20
|
+
customClassName: false,
|
|
21
|
+
html: false,
|
|
22
|
+
inserter: false,
|
|
23
|
+
renaming: false
|
|
24
|
+
},
|
|
25
|
+
// Force this deprecation to run whenever there's a values sub-property that's an object.
|
|
26
|
+
//
|
|
27
|
+
// This could fail in the future if a block ever has binding to a `values` attribute.
|
|
28
|
+
// Some extra protection is added to ensure `values` is an object, but this only reduces
|
|
29
|
+
// the likelihood, it doesn't solve it completely.
|
|
30
|
+
isEligible({
|
|
31
|
+
content
|
|
32
|
+
}) {
|
|
33
|
+
return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
|
|
34
|
+
},
|
|
35
|
+
/*
|
|
36
|
+
* Old attribute format:
|
|
37
|
+
* content: {
|
|
38
|
+
* "V98q_x": {
|
|
39
|
+
* // The attribute values are now stored as a 'values' sub-property.
|
|
40
|
+
* values: { content: 'My content value' },
|
|
41
|
+
* // ... additional metadata, like the block name can be stored here.
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* New attribute format:
|
|
46
|
+
* content: {
|
|
47
|
+
* "V98q_x": {
|
|
48
|
+
* content: 'My content value',
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*/
|
|
52
|
+
migrate(attributes) {
|
|
53
|
+
const {
|
|
54
|
+
content,
|
|
55
|
+
...retainedAttributes
|
|
56
|
+
} = attributes;
|
|
57
|
+
if (content && Object.keys(content).length) {
|
|
58
|
+
const updatedContent = {
|
|
59
|
+
...content
|
|
60
|
+
};
|
|
61
|
+
for (const contentKey in content) {
|
|
62
|
+
updatedContent[contentKey] = content[contentKey].values;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
...retainedAttributes,
|
|
66
|
+
content: updatedContent
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return attributes;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// v1: Rename the `overrides` attribute to the `content` attribute.
|
|
8
74
|
const v1 = {
|
|
9
75
|
attributes: {
|
|
10
76
|
ref: {
|
|
@@ -31,16 +97,12 @@ const v1 = {
|
|
|
31
97
|
* overrides: {
|
|
32
98
|
* // An key is an id that represents a block.
|
|
33
99
|
* // The values are the attribute values of the block.
|
|
34
|
-
* "V98q_x": { content: '
|
|
100
|
+
* "V98q_x": { content: 'My content value' }
|
|
35
101
|
* }
|
|
36
102
|
*
|
|
37
103
|
* New attribute format:
|
|
38
104
|
* content: {
|
|
39
|
-
* "V98q_x": {
|
|
40
|
-
* // The attribute values are now stored as a 'values' sub-property.
|
|
41
|
-
* values: { content: 'dwefwefwefwe' },
|
|
42
|
-
* // ... additional metadata, like the block name can be stored here.
|
|
43
|
-
* }
|
|
105
|
+
* "V98q_x": { content: 'My content value' }
|
|
44
106
|
* }
|
|
45
107
|
*
|
|
46
108
|
*/
|
|
@@ -51,9 +113,7 @@ const v1 = {
|
|
|
51
113
|
} = attributes;
|
|
52
114
|
const content = {};
|
|
53
115
|
Object.keys(overrides).forEach(id => {
|
|
54
|
-
content[id] =
|
|
55
|
-
values: overrides[id]
|
|
56
|
-
};
|
|
116
|
+
content[id] = overrides[id];
|
|
57
117
|
});
|
|
58
118
|
return {
|
|
59
119
|
...retainedAttributes,
|
|
@@ -61,5 +121,5 @@ const v1 = {
|
|
|
61
121
|
};
|
|
62
122
|
}
|
|
63
123
|
};
|
|
64
|
-
var _default = exports.default = [v1];
|
|
124
|
+
var _default = exports.default = [v2, v1];
|
|
65
125
|
//# sourceMappingURL=deprecated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isObject","obj","Array","isArray","v2","attributes","ref","type","content","supports","customClassName","html","inserter","renaming","isEligible","Object","keys","every","contentKey","values","migrate","retainedAttributes","length","updatedContent","v1","overrides","forEach","id","_default","exports","default"],"sources":["@wordpress/block-library/src/block/deprecated.js"],"sourcesContent":["const isObject = ( obj ) =>\n\ttypeof obj === 'object' && ! Array.isArray( obj ) && obj !== null;\n\n// v2: Migrate to a more condensed version of the 'content' attribute attribute.\nconst v2 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's a values sub-property that's an object.\n\t//\n\t// This could fail in the future if a block ever has binding to a `values` attribute.\n\t// Some extra protection is added to ensure `values` is an object, but this only reduces\n\t// the likelihood, it doesn't solve it completely.\n\tisEligible( { content } ) {\n\t\treturn (\n\t\t\t!! content &&\n\t\t\tObject.keys( content ).every(\n\t\t\t\t( contentKey ) =>\n\t\t\t\t\tcontent[ contentKey ].values &&\n\t\t\t\t\tisObject( content[ contentKey ].values )\n\t\t\t)\n\t\t);\n\t},\n\t/*\n\t * Old attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * \t \t\t// The attribute values are now stored as a 'values' sub-property.\n\t * values: { content: 'My content value' },\n\t * \t // ... additional metadata, like the block name can be stored here.\n\t * }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * content: 'My content value',\n\t * }\n\t * }\n\t */\n\tmigrate( attributes ) {\n\t\tconst { content, ...retainedAttributes } = attributes;\n\n\t\tif ( content && Object.keys( content ).length ) {\n\t\t\tconst updatedContent = { ...content };\n\n\t\t\tfor ( const contentKey in content ) {\n\t\t\t\tupdatedContent[ contentKey ] = content[ contentKey ].values;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...retainedAttributes,\n\t\t\t\tcontent: updatedContent,\n\t\t\t};\n\t\t}\n\n\t\treturn attributes;\n\t},\n};\n\n// v1: Rename the `overrides` attribute to the `content` attribute.\nconst v1 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\toverrides: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's an `overrides` object.\n\tisEligible( { overrides } ) {\n\t\treturn !! overrides;\n\t},\n\t/*\n\t * Old attribute format:\n\t * overrides: {\n\t * // An key is an id that represents a block.\n\t * // The values are the attribute values of the block.\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t */\n\tmigrate( attributes ) {\n\t\tconst { overrides, ...retainedAttributes } = attributes;\n\n\t\tconst content = {};\n\n\t\tObject.keys( overrides ).forEach( ( id ) => {\n\t\t\tcontent[ id ] = overrides[ id ];\n\t\t} );\n\n\t\treturn {\n\t\t\t...retainedAttributes,\n\t\t\tcontent,\n\t\t};\n\t},\n};\n\nexport default [ v2, v1 ];\n"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAKC,GAAG,IACrB,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAAEC,KAAK,CAACC,OAAO,CAAEF,GAAI,CAAC,IAAIA,GAAG,KAAK,IAAI;;AAElE;AACA,MAAMG,EAAE,GAAG;EACVC,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACRD,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACA;EACA;EACA;EACA;EACAC,UAAUA,CAAE;IAAEN;EAAQ,CAAC,EAAG;IACzB,OACC,CAAC,CAAEA,OAAO,IACVO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACS,KAAK,CACzBC,UAAU,IACXV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM,IAC5BnB,QAAQ,CAAEQ,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAO,CACzC,CAAC;EAEH,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCC,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEG,OAAO;MAAE,GAAGa;IAAmB,CAAC,GAAGhB,UAAU;IAErD,IAAKG,OAAO,IAAIO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACc,MAAM,EAAG;MAC/C,MAAMC,cAAc,GAAG;QAAE,GAAGf;MAAQ,CAAC;MAErC,KAAM,MAAMU,UAAU,IAAIV,OAAO,EAAG;QACnCe,cAAc,CAAEL,UAAU,CAAE,GAAGV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM;MAC5D;MAEA,OAAO;QACN,GAAGE,kBAAkB;QACrBb,OAAO,EAAEe;MACV,CAAC;IACF;IAEA,OAAOlB,UAAU;EAClB;AACD,CAAC;;AAED;AACA,MAAMmB,EAAE,GAAG;EACVnB,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDkB,SAAS,EAAE;MACVlB,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACAC,UAAUA,CAAE;IAAEW;EAAU,CAAC,EAAG;IAC3B,OAAO,CAAC,CAAEA,SAAS;EACpB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCL,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEoB,SAAS;MAAE,GAAGJ;IAAmB,CAAC,GAAGhB,UAAU;IAEvD,MAAMG,OAAO,GAAG,CAAC,CAAC;IAElBO,MAAM,CAACC,IAAI,CAAES,SAAU,CAAC,CAACC,OAAO,CAAIC,EAAE,IAAM;MAC3CnB,OAAO,CAAEmB,EAAE,CAAE,GAAGF,SAAS,CAAEE,EAAE,CAAE;IAChC,CAAE,CAAC;IAEH,OAAO;MACN,GAAGN,kBAAkB;MACrBb;IACD,CAAC;EACF;AACD,CAAC;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,CAAE1B,EAAE,EAAEoB,EAAE,CAAE"}
|
package/build/block/edit.js
CHANGED
|
@@ -37,6 +37,23 @@ const {
|
|
|
37
37
|
PARTIAL_SYNCING_SUPPORTED_BLOCKS
|
|
38
38
|
} = (0, _lockUnlock.unlock)(_patterns.privateApis);
|
|
39
39
|
const fullAlignments = ['full', 'wide', 'left', 'right'];
|
|
40
|
+
function getLegacyIdMap(blocks, content, nameCount = {}) {
|
|
41
|
+
let idToClientIdMap = {};
|
|
42
|
+
for (const block of blocks) {
|
|
43
|
+
if (block?.innerBlocks?.length) {
|
|
44
|
+
idToClientIdMap = {
|
|
45
|
+
...idToClientIdMap,
|
|
46
|
+
...getLegacyIdMap(block.innerBlocks, content, nameCount)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const id = block.attributes.metadata?.id;
|
|
50
|
+
const clientId = block.clientId;
|
|
51
|
+
if (id && content?.[id]) {
|
|
52
|
+
idToClientIdMap[clientId] = id;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return idToClientIdMap;
|
|
56
|
+
}
|
|
40
57
|
const useInferredLayout = (blocks, parentLayout) => {
|
|
41
58
|
const initialInferredAlignmentRef = (0, _element.useRef)();
|
|
42
59
|
return (0, _element.useMemo)(() => {
|
|
@@ -73,23 +90,26 @@ function hasOverridableBlocks(blocks) {
|
|
|
73
90
|
function getOverridableAttributes(block) {
|
|
74
91
|
return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source === 'core/pattern-overrides').map(([attributeKey]) => attributeKey);
|
|
75
92
|
}
|
|
76
|
-
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues) {
|
|
93
|
+
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues, legacyIdMap) {
|
|
77
94
|
return blocks.map(block => {
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
95
|
+
var _legacyIdMap$block$cl;
|
|
96
|
+
const innerBlocks = applyInitialContentValuesToInnerBlocks(block.innerBlocks, content, defaultValues, legacyIdMap);
|
|
97
|
+
const metadataName = (_legacyIdMap$block$cl = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl !== void 0 ? _legacyIdMap$block$cl : block.attributes.metadata?.name;
|
|
98
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
99
|
+
return {
|
|
100
|
+
...block,
|
|
101
|
+
innerBlocks
|
|
102
|
+
};
|
|
103
|
+
}
|
|
84
104
|
const attributes = getOverridableAttributes(block);
|
|
85
105
|
const newAttributes = {
|
|
86
106
|
...block.attributes
|
|
87
107
|
};
|
|
88
108
|
for (const attributeKey of attributes) {
|
|
89
|
-
var _defaultValues$
|
|
90
|
-
(_defaultValues$
|
|
91
|
-
defaultValues[
|
|
92
|
-
const contentValues = content[
|
|
109
|
+
var _defaultValues$metada;
|
|
110
|
+
(_defaultValues$metada = defaultValues[metadataName]) !== null && _defaultValues$metada !== void 0 ? _defaultValues$metada : defaultValues[metadataName] = {};
|
|
111
|
+
defaultValues[metadataName][attributeKey] = block.attributes[attributeKey];
|
|
112
|
+
const contentValues = content[metadataName];
|
|
93
113
|
if (contentValues?.[attributeKey] !== undefined) {
|
|
94
114
|
newAttributes[attributeKey] = contentValues[attributeKey];
|
|
95
115
|
}
|
|
@@ -107,25 +127,27 @@ function isAttributeEqual(attribute1, attribute2) {
|
|
|
107
127
|
}
|
|
108
128
|
return attribute1 === attribute2;
|
|
109
129
|
}
|
|
110
|
-
function getContentValuesFromInnerBlocks(blocks, defaultValues) {
|
|
130
|
+
function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
|
|
111
131
|
/** @type {Record<string, { values: Record<string, unknown>}>} */
|
|
112
132
|
const content = {};
|
|
113
133
|
for (const block of blocks) {
|
|
134
|
+
var _legacyIdMap$block$cl2;
|
|
114
135
|
if (block.name === _index.name) continue;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
136
|
+
if (block.innerBlocks.length) {
|
|
137
|
+
Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
|
|
138
|
+
}
|
|
139
|
+
const metadataName = (_legacyIdMap$block$cl2 = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl2 !== void 0 ? _legacyIdMap$block$cl2 : block.attributes.metadata?.name;
|
|
140
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
118
143
|
const attributes = getOverridableAttributes(block);
|
|
119
144
|
for (const attributeKey of attributes) {
|
|
120
|
-
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues[
|
|
121
|
-
var _content$
|
|
122
|
-
(_content$
|
|
123
|
-
values: {},
|
|
124
|
-
blockName: block.name
|
|
125
|
-
};
|
|
145
|
+
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues?.[metadataName]?.[attributeKey])) {
|
|
146
|
+
var _content$metadataName;
|
|
147
|
+
(_content$metadataName = content[metadataName]) !== null && _content$metadataName !== void 0 ? _content$metadataName : content[metadataName] = {};
|
|
126
148
|
// TODO: We need a way to represent `undefined` in the serialized overrides.
|
|
127
149
|
// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
|
|
128
|
-
content[
|
|
150
|
+
content[metadataName][attributeKey] = block.attributes[attributeKey] === undefined ?
|
|
129
151
|
// TODO: We use an empty string to represent undefined for now until
|
|
130
152
|
// we support a richer format for overrides and the block binding API.
|
|
131
153
|
// Currently only the `linkTarget` attribute of `core/button` is affected.
|
|
@@ -182,7 +204,8 @@ function ReusableBlockEdit({
|
|
|
182
204
|
userCanEdit,
|
|
183
205
|
getBlockEditingMode,
|
|
184
206
|
onNavigateToEntityRecord,
|
|
185
|
-
editingMode
|
|
207
|
+
editingMode,
|
|
208
|
+
hasPatternOverridesSource
|
|
186
209
|
} = (0, _data.useSelect)(select => {
|
|
187
210
|
const {
|
|
188
211
|
canUser
|
|
@@ -192,6 +215,9 @@ function ReusableBlockEdit({
|
|
|
192
215
|
getSettings,
|
|
193
216
|
getBlockEditingMode: _getBlockEditingMode
|
|
194
217
|
} = select(_blockEditor.store);
|
|
218
|
+
const {
|
|
219
|
+
getBlockBindingsSource
|
|
220
|
+
} = (0, _lockUnlock.unlock)(select(_blocks.store));
|
|
195
221
|
const blocks = getBlocks(patternClientId);
|
|
196
222
|
const canEdit = canUser('update', 'blocks', ref);
|
|
197
223
|
|
|
@@ -201,7 +227,8 @@ function ReusableBlockEdit({
|
|
|
201
227
|
userCanEdit: canEdit,
|
|
202
228
|
getBlockEditingMode: _getBlockEditingMode,
|
|
203
229
|
onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
|
|
204
|
-
editingMode: _getBlockEditingMode(patternClientId)
|
|
230
|
+
editingMode: _getBlockEditingMode(patternClientId),
|
|
231
|
+
hasPatternOverridesSource: !!getBlockBindingsSource('core/pattern-overrides')
|
|
205
232
|
};
|
|
206
233
|
}, [patternClientId, ref]);
|
|
207
234
|
|
|
@@ -209,29 +236,33 @@ function ReusableBlockEdit({
|
|
|
209
236
|
(0, _element.useEffect)(() => {
|
|
210
237
|
setBlockEditMode(setBlockEditingMode, innerBlocks,
|
|
211
238
|
// Disable editing if the pattern itself is disabled.
|
|
212
|
-
editingMode === 'disabled' ? 'disabled' : undefined);
|
|
213
|
-
}, [editingMode, innerBlocks, setBlockEditingMode]);
|
|
214
|
-
const canOverrideBlocks = (0, _element.useMemo)(() => hasOverridableBlocks(innerBlocks), [innerBlocks]);
|
|
239
|
+
editingMode === 'disabled' || !hasPatternOverridesSource ? 'disabled' : undefined);
|
|
240
|
+
}, [editingMode, innerBlocks, setBlockEditingMode, hasPatternOverridesSource]);
|
|
241
|
+
const canOverrideBlocks = (0, _element.useMemo)(() => hasPatternOverridesSource && hasOverridableBlocks(innerBlocks), [hasPatternOverridesSource, innerBlocks]);
|
|
215
242
|
const initialBlocks = (0, _element.useMemo)(() => {
|
|
216
243
|
var _editedRecord$blocks$;
|
|
217
244
|
return (// Clone the blocks to generate new client IDs.
|
|
218
245
|
(_editedRecord$blocks$ = editedRecord.blocks?.map(block => (0, _blocks.cloneBlock)(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? (0, _blocks.parse)(editedRecord.content) : []
|
|
219
246
|
);
|
|
220
247
|
}, [editedRecord.blocks, editedRecord.content]);
|
|
248
|
+
const legacyIdMap = (0, _element.useRef)({});
|
|
221
249
|
|
|
222
250
|
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
223
251
|
(0, _element.useEffect)(() => {
|
|
252
|
+
// Build a map of clientIds to the old nano id system to provide back compat.
|
|
253
|
+
legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
|
|
224
254
|
defaultContent.current = {};
|
|
225
255
|
const originalEditingMode = getBlockEditingMode(patternClientId);
|
|
226
256
|
// Replace the contents of the blocks with the overrides.
|
|
227
257
|
registry.batch(() => {
|
|
228
258
|
setBlockEditingMode(patternClientId, 'default');
|
|
229
259
|
syncDerivedUpdates(() => {
|
|
230
|
-
|
|
260
|
+
const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
|
|
261
|
+
replaceInnerBlocks(patternClientId, blocks);
|
|
231
262
|
});
|
|
232
263
|
setBlockEditingMode(patternClientId, originalEditingMode);
|
|
233
264
|
});
|
|
234
|
-
}, [__unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
|
|
265
|
+
}, [hasPatternOverridesSource, __unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
|
|
235
266
|
const {
|
|
236
267
|
alignment,
|
|
237
268
|
layout
|
|
@@ -253,6 +284,9 @@ function ReusableBlockEdit({
|
|
|
253
284
|
// Sync the `content` attribute from the updated blocks to the pattern block.
|
|
254
285
|
// `syncDerivedUpdates` is used here to avoid creating an additional undo level.
|
|
255
286
|
(0, _element.useEffect)(() => {
|
|
287
|
+
if (!hasPatternOverridesSource) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
256
290
|
const {
|
|
257
291
|
getBlocks
|
|
258
292
|
} = registry.select(_blockEditor.store);
|
|
@@ -263,12 +297,12 @@ function ReusableBlockEdit({
|
|
|
263
297
|
prevBlocks = blocks;
|
|
264
298
|
syncDerivedUpdates(() => {
|
|
265
299
|
setAttributes({
|
|
266
|
-
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current)
|
|
300
|
+
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
|
|
267
301
|
});
|
|
268
302
|
});
|
|
269
303
|
}
|
|
270
304
|
}, _blockEditor.store);
|
|
271
|
-
}, [syncDerivedUpdates, patternClientId, registry, setAttributes]);
|
|
305
|
+
}, [hasPatternOverridesSource, syncDerivedUpdates, patternClientId, registry, setAttributes]);
|
|
272
306
|
const handleEditOriginal = () => {
|
|
273
307
|
onNavigateToEntityRecord({
|
|
274
308
|
postId: ref,
|