@wordpress/block-library 7.18.0 → 8.0.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 +8 -0
- package/build/audio/edit.native.js +1 -3
- package/build/audio/edit.native.js.map +1 -1
- package/build/audio/index.js +2 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/avatar/user-control.js +1 -0
- package/build/avatar/user-control.js.map +1 -1
- package/build/block/edit.js +14 -2
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js +14 -6
- package/build/block/edit.native.js.map +1 -1
- package/build/block/index.js +1 -2
- package/build/block/index.js.map +1 -1
- package/build/button/deprecated.js +16 -2
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +13 -7
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/button/index.js +4 -1
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +2 -0
- package/build/button/save.js.map +1 -1
- package/build/code/transforms.js +1 -1
- package/build/code/transforms.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +13 -30
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/transforms.js +5 -0
- package/build/columns/transforms.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/index.js +3 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -0
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +24 -16
- package/build/cover/edit.native.js.map +1 -1
- package/build/embed/embed-controls.native.js +1 -0
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-preview.native.js +1 -3
- package/build/embed/embed-preview.native.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/gallery/edit.js +25 -13
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js +1 -3
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/shared.js +4 -10
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/transforms.js +1 -7
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/use-get-media.js +1 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-get-media.native.js +3 -1
- package/build/gallery/use-get-media.native.js.map +1 -1
- package/build/gallery/v1/edit.js +26 -17
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js +1 -3
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/gallery/v1/shared.js +4 -1
- package/build/gallery/v1/shared.js.map +1 -1
- package/build/group/edit.js +97 -45
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +6 -1
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +147 -0
- package/build/group/placeholder.js.map +1 -0
- package/build/group/variations.js +3 -3
- package/build/group/variations.js.map +1 -1
- package/build/heading/deprecated.js +152 -69
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/index.js +1 -2
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -2
- package/build/heading/transforms.js.map +1 -1
- package/build/html/index.js +1 -1
- package/build/image/edit.js +8 -5
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +3 -2
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +12 -8
- package/build/image/image.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +3 -1
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-comments/index.js +5 -1
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-posts/deprecated.js +13 -0
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/index.js +13 -0
- package/build/latest-posts/index.js.map +1 -1
- package/build/list/transforms.js +1 -9
- package/build/list/transforms.js.map +1 -1
- package/build/list/utils.js +5 -2
- package/build/list/utils.js.map +1 -1
- package/build/list-item/edit.js +2 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/transforms.js +22 -0
- package/build/list-item/transforms.js.map +1 -0
- package/build/list-item/utils.js +77 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/edit.js +4 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/navigation/edit/are-blocks-dirty.js +52 -0
- package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build/navigation/edit/index.js +112 -143
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/manage-menus-button.js +36 -0
- package/build/navigation/edit/manage-menus-button.js.map +1 -0
- package/build/navigation/edit/menu-inspector-controls.js +72 -0
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build/navigation/edit/navigation-menu-selector.js +3 -1
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +2 -6
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +15 -25
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/view-modal.js +6 -2
- package/build/navigation/view-modal.js.map +1 -1
- package/build/navigation-link/edit.js +52 -299
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +222 -0
- package/build/navigation-link/link-ui.js.map +1 -0
- package/build/navigation-link/transforms.js +12 -0
- package/build/navigation-link/transforms.js.map +1 -1
- package/build/navigation-link/update-attributes.js +108 -0
- package/build/navigation-link/update-attributes.js.map +1 -0
- package/build/navigation-submenu/edit.js +42 -173
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/constants.js +15 -0
- package/build/page-list/constants.js.map +1 -0
- package/build/page-list/convert-to-links-modal.js +22 -86
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/convert-to-navigation-links.js +76 -0
- package/build/page-list/convert-to-navigation-links.js.map +1 -0
- package/build/page-list/edit.js +142 -78
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +6 -1
- package/build/page-list/index.js.map +1 -1
- package/build/page-list-item/edit.js +87 -0
- package/build/page-list-item/edit.js.map +1 -0
- package/build/page-list-item/index.js +85 -0
- package/build/page-list-item/index.js.map +1 -0
- package/build/page-list-item/init.js +16 -0
- package/build/page-list-item/init.js.map +1 -0
- package/build/paragraph/index.js +1 -7
- package/build/paragraph/index.js.map +1 -1
- package/build/post-author/edit.js +38 -22
- package/build/post-author/edit.js.map +1 -1
- package/build/post-content/index.js +3 -0
- package/build/post-content/index.js.map +1 -1
- package/build/post-featured-image/overlay.js +1 -0
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-template/index.js +8 -0
- package/build/post-template/index.js.map +1 -1
- package/build/preformatted/transforms.js +3 -1
- package/build/preformatted/transforms.js.map +1 -1
- package/build/query/deprecated.js +192 -21
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +1 -0
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -19
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/index.js +0 -8
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +0 -8
- package/build/query/utils.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.native.js +22 -22
- package/build/search/edit.native.js.map +1 -1
- package/build/search/index.js +9 -1
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +18 -10
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +1 -0
- package/build/site-logo/index.js.map +1 -1
- package/build/site-title/index.js +1 -0
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/social-list.js +4 -12
- package/build/social-link/social-list.js.map +1 -1
- package/build/table/edit.js +3 -1
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +17 -1
- package/build/table/index.js.map +1 -1
- package/build/table/save.js +4 -2
- package/build/table/save.js.map +1 -1
- package/build/table/state.js +24 -12
- package/build/table/state.js.map +1 -1
- package/build/table/transforms.js +3 -2
- package/build/table/transforms.js.map +1 -1
- package/build/table-of-contents/edit.js +2 -2
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +2 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +5 -2
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -6
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/template-part/variations.js +5 -0
- package/build/template-part/variations.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build/utils/transformation-categories.native.js +1 -1
- package/build/utils/transformation-categories.native.js.map +1 -1
- package/build/video/edit.js +1 -1
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +1 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.native.js +1 -2
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/audio/index.js +2 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/avatar/user-control.js +1 -0
- package/build-module/avatar/user-control.js.map +1 -1
- package/build-module/block/edit.js +14 -2
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js +14 -6
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/block/index.js +1 -2
- package/build-module/block/index.js.map +1 -1
- package/build-module/button/deprecated.js +16 -2
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +15 -9
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js +2 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/button/index.js +4 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +2 -0
- package/build-module/button/save.js.map +1 -1
- package/build-module/code/transforms.js +1 -1
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +13 -29
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/transforms.js +5 -0
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/index.js +3 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit.native.js +22 -14
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.native.js +2 -1
- package/build-module/embed/embed-controls.native.js.map +1 -1
- package/build-module/embed/embed-preview.native.js +1 -2
- package/build-module/embed/embed-preview.native.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/gallery/edit.js +25 -12
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js +1 -2
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/shared.js +5 -11
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/transforms.js +1 -6
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/use-get-media.js +1 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-get-media.native.js +3 -1
- package/build-module/gallery/use-get-media.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js +27 -18
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js +1 -2
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/shared.js +5 -2
- package/build-module/gallery/v1/shared.js.map +1 -1
- package/build-module/group/edit.js +92 -45
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +6 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +133 -0
- package/build-module/group/placeholder.js.map +1 -0
- package/build-module/group/variations.js +3 -3
- package/build-module/group/variations.js.map +1 -1
- package/build-module/heading/deprecated.js +152 -69
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/index.js +1 -2
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -2
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/html/index.js +1 -1
- package/build-module/image/edit.js +9 -6
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +2 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +13 -9
- package/build-module/image/image.js.map +1 -1
- package/build-module/index.js +2 -1
- package/build-module/index.js.map +1 -1
- package/build-module/latest-comments/edit.js +3 -1
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-comments/index.js +5 -1
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +13 -0
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/index.js +13 -0
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list/transforms.js +1 -9
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/utils.js +5 -2
- package/build-module/list/utils.js.map +1 -1
- package/build-module/list-item/edit.js +2 -1
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/index.js +3 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/transforms.js +13 -0
- package/build-module/list-item/transforms.js.map +1 -0
- package/build-module/list-item/utils.js +78 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/edit.js +5 -3
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
- package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build-module/navigation/edit/index.js +111 -143
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/manage-menus-button.js +26 -0
- package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
- package/build-module/navigation/edit/menu-inspector-controls.js +59 -0
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build-module/navigation/edit/navigation-menu-selector.js +3 -1
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +2 -6
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +16 -26
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/view-modal.js +6 -2
- package/build-module/navigation/view-modal.js.map +1 -1
- package/build-module/navigation-link/edit.js +56 -300
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +206 -0
- package/build-module/navigation-link/link-ui.js.map +1 -0
- package/build-module/navigation-link/transforms.js +12 -0
- package/build-module/navigation-link/transforms.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +97 -0
- package/build-module/navigation-link/update-attributes.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +47 -175
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/constants.js +6 -0
- package/build-module/page-list/constants.js.map +1 -0
- package/build-module/page-list/convert-to-links-modal.js +20 -81
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/convert-to-navigation-links.js +66 -0
- package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
- package/build-module/page-list/edit.js +144 -82
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +6 -1
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/edit.js +74 -0
- package/build-module/page-list-item/edit.js.map +1 -0
- package/build-module/page-list-item/index.js +68 -0
- package/build-module/page-list-item/index.js.map +1 -0
- package/build-module/page-list-item/init.js +6 -0
- package/build-module/page-list-item/init.js.map +1 -0
- package/build-module/paragraph/index.js +1 -7
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/post-author/edit.js +38 -23
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-content/index.js +3 -0
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +1 -0
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-template/index.js +8 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/preformatted/transforms.js +3 -1
- package/build-module/preformatted/transforms.js.map +1 -1
- package/build-module/query/deprecated.js +185 -21
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +1 -0
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +3 -19
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/index.js +0 -8
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +0 -8
- package/build-module/query/utils.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.native.js +20 -20
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/search/index.js +8 -1
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +18 -9
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +1 -0
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-title/index.js +1 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/social-list.js +2 -11
- package/build-module/social-link/social-list.js.map +1 -1
- package/build-module/table/edit.js +3 -1
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +17 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/save.js +4 -2
- package/build-module/table/save.js.map +1 -1
- package/build-module/table/state.js +25 -13
- package/build-module/table/state.js.map +1 -1
- package/build-module/table/transforms.js +3 -2
- package/build-module/table/transforms.js.map +1 -1
- package/build-module/table-of-contents/edit.js +2 -2
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +3 -2
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +6 -3
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +3 -7
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/template-part/variations.js +5 -0
- package/build-module/template-part/variations.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/utils/transformation-categories.native.js +1 -1
- package/build-module/utils/transformation-categories.native.js.map +1 -1
- package/build-module/video/edit.js +1 -1
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +1 -2
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/archives/editor-rtl.css +12 -0
- package/build-style/archives/editor.css +12 -0
- package/build-style/archives/style-rtl.css +12 -0
- package/build-style/archives/style.css +12 -0
- package/build-style/audio/editor-rtl.css +12 -0
- package/build-style/audio/editor.css +12 -0
- package/build-style/audio/style-rtl.css +12 -0
- package/build-style/audio/style.css +12 -0
- package/build-style/audio/theme-rtl.css +12 -0
- package/build-style/audio/theme.css +12 -0
- package/build-style/avatar/editor-rtl.css +12 -0
- package/build-style/avatar/editor.css +12 -0
- package/build-style/avatar/style-rtl.css +12 -0
- package/build-style/avatar/style.css +12 -0
- package/build-style/block/editor-rtl.css +22 -0
- package/build-style/block/editor.css +22 -0
- package/build-style/button/editor-rtl.css +12 -0
- package/build-style/button/editor.css +12 -0
- package/build-style/button/style-rtl.css +12 -0
- package/build-style/button/style.css +12 -0
- package/build-style/buttons/editor-rtl.css +12 -0
- package/build-style/buttons/editor.css +12 -0
- package/build-style/buttons/style-rtl.css +12 -0
- package/build-style/buttons/style.css +12 -0
- package/build-style/calendar/style-rtl.css +12 -0
- package/build-style/calendar/style.css +12 -0
- package/build-style/categories/editor-rtl.css +12 -0
- package/build-style/categories/editor.css +12 -0
- package/build-style/categories/style-rtl.css +12 -0
- package/build-style/categories/style.css +12 -0
- package/build-style/classic-rtl.css +12 -0
- package/build-style/classic.css +12 -0
- package/build-style/code/editor-rtl.css +12 -0
- package/build-style/code/editor.css +12 -0
- package/build-style/code/style-rtl.css +12 -0
- package/build-style/code/style.css +12 -0
- package/build-style/code/theme-rtl.css +12 -0
- package/build-style/code/theme.css +12 -0
- package/build-style/columns/editor-rtl.css +12 -0
- package/build-style/columns/editor.css +12 -0
- package/build-style/columns/style-rtl.css +12 -0
- package/build-style/columns/style.css +12 -0
- package/build-style/comment-author-avatar/editor-rtl.css +12 -0
- package/build-style/comment-author-avatar/editor.css +12 -0
- package/build-style/comment-content/style-rtl.css +12 -0
- package/build-style/comment-content/style.css +12 -0
- package/build-style/comment-template/style-rtl.css +12 -0
- package/build-style/comment-template/style.css +12 -0
- package/build-style/comments/editor-rtl.css +12 -0
- package/build-style/comments/editor.css +12 -0
- package/build-style/comments/style-rtl.css +12 -0
- package/build-style/comments/style.css +12 -0
- package/build-style/comments-pagination/editor-rtl.css +12 -0
- package/build-style/comments-pagination/editor.css +12 -0
- package/build-style/comments-pagination/style-rtl.css +12 -0
- package/build-style/comments-pagination/style.css +12 -0
- package/build-style/comments-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/comments-pagination-numbers/editor.css +12 -0
- package/build-style/comments-title/editor-rtl.css +12 -0
- package/build-style/comments-title/editor.css +12 -0
- package/build-style/common-rtl.css +17 -1
- package/build-style/common.css +17 -1
- package/build-style/cover/editor-rtl.css +12 -0
- package/build-style/cover/editor.css +12 -0
- package/build-style/cover/style-rtl.css +14 -1
- package/build-style/cover/style.css +14 -1
- package/build-style/editor-elements-rtl.css +12 -0
- package/build-style/editor-elements.css +12 -0
- package/build-style/editor-rtl.css +115 -21
- package/build-style/editor.css +115 -21
- package/build-style/elements-rtl.css +12 -0
- package/build-style/elements.css +12 -0
- package/build-style/embed/editor-rtl.css +12 -0
- package/build-style/embed/editor.css +12 -0
- package/build-style/embed/style-rtl.css +12 -0
- package/build-style/embed/style.css +12 -0
- package/build-style/embed/theme-rtl.css +12 -0
- package/build-style/embed/theme.css +12 -0
- package/build-style/file/editor-rtl.css +12 -0
- package/build-style/file/editor.css +12 -0
- package/build-style/file/style-rtl.css +12 -0
- package/build-style/file/style.css +12 -0
- package/build-style/freeform/editor-rtl.css +12 -0
- package/build-style/freeform/editor.css +12 -0
- package/build-style/gallery/editor-rtl.css +13 -1
- package/build-style/gallery/editor.css +13 -1
- package/build-style/gallery/style-rtl.css +16 -2
- package/build-style/gallery/style.css +16 -2
- package/build-style/gallery/theme-rtl.css +12 -0
- package/build-style/gallery/theme.css +12 -0
- package/build-style/group/editor-rtl.css +56 -0
- package/build-style/group/editor.css +56 -0
- package/build-style/group/style-rtl.css +12 -0
- package/build-style/group/style.css +12 -0
- package/build-style/group/theme-rtl.css +12 -0
- package/build-style/group/theme.css +12 -0
- package/build-style/heading/style-rtl.css +12 -0
- package/build-style/heading/style.css +12 -0
- package/build-style/html/editor-rtl.css +12 -0
- package/build-style/html/editor.css +12 -0
- package/build-style/image/editor-rtl.css +12 -9
- package/build-style/image/editor.css +12 -9
- package/build-style/image/style-rtl.css +12 -0
- package/build-style/image/style.css +12 -0
- package/build-style/image/theme-rtl.css +12 -0
- package/build-style/image/theme.css +12 -0
- package/build-style/latest-comments/style-rtl.css +13 -0
- package/build-style/latest-comments/style.css +13 -0
- package/build-style/latest-posts/editor-rtl.css +12 -0
- package/build-style/latest-posts/editor.css +12 -0
- package/build-style/latest-posts/style-rtl.css +15 -0
- package/build-style/latest-posts/style.css +15 -0
- package/build-style/list/style-rtl.css +12 -0
- package/build-style/list/style.css +12 -0
- package/build-style/media-text/editor-rtl.css +12 -0
- package/build-style/media-text/editor.css +12 -0
- package/build-style/media-text/style-rtl.css +12 -0
- package/build-style/media-text/style.css +12 -0
- package/build-style/more/editor-rtl.css +12 -0
- package/build-style/more/editor.css +12 -0
- package/build-style/navigation/editor-rtl.css +35 -0
- package/build-style/navigation/editor.css +35 -0
- package/build-style/navigation/style-rtl.css +22 -0
- package/build-style/navigation/style.css +22 -0
- package/build-style/navigation-link/editor-rtl.css +20 -1
- package/build-style/navigation-link/editor.css +20 -1
- package/build-style/navigation-link/style-rtl.css +12 -0
- package/build-style/navigation-link/style.css +12 -0
- package/build-style/navigation-submenu/editor-rtl.css +12 -0
- package/build-style/navigation-submenu/editor.css +12 -0
- package/build-style/nextpage/editor-rtl.css +12 -0
- package/build-style/nextpage/editor.css +12 -0
- package/build-style/page-list/editor-rtl.css +12 -0
- package/build-style/page-list/editor.css +12 -0
- package/build-style/page-list/style-rtl.css +12 -0
- package/build-style/page-list/style.css +12 -0
- package/build-style/paragraph/editor-rtl.css +12 -0
- package/build-style/paragraph/editor.css +12 -0
- package/build-style/paragraph/style-rtl.css +12 -0
- package/build-style/paragraph/style.css +12 -0
- package/build-style/post-author/style-rtl.css +12 -0
- package/build-style/post-author/style.css +12 -0
- package/build-style/post-comments-form/editor-rtl.css +12 -0
- package/build-style/post-comments-form/editor.css +12 -0
- package/build-style/post-comments-form/style-rtl.css +12 -0
- package/build-style/post-comments-form/style.css +12 -0
- package/build-style/post-date/style-rtl.css +12 -0
- package/build-style/post-date/style.css +12 -0
- package/build-style/post-excerpt/editor-rtl.css +12 -0
- package/build-style/post-excerpt/editor.css +12 -0
- package/build-style/post-excerpt/style-rtl.css +12 -0
- package/build-style/post-excerpt/style.css +12 -0
- package/build-style/post-featured-image/editor-rtl.css +12 -0
- package/build-style/post-featured-image/editor.css +12 -0
- package/build-style/post-featured-image/style-rtl.css +12 -0
- package/build-style/post-featured-image/style.css +12 -0
- package/build-style/post-navigation-link/style-rtl.css +12 -0
- package/build-style/post-navigation-link/style.css +12 -0
- package/build-style/post-template/editor-rtl.css +12 -0
- package/build-style/post-template/editor.css +12 -0
- package/build-style/post-template/style-rtl.css +12 -0
- package/build-style/post-template/style.css +12 -0
- package/build-style/post-terms/style-rtl.css +12 -0
- package/build-style/post-terms/style.css +12 -0
- package/build-style/post-title/style-rtl.css +12 -0
- package/build-style/post-title/style.css +12 -0
- package/build-style/preformatted/style-rtl.css +12 -0
- package/build-style/preformatted/style.css +12 -0
- package/build-style/pullquote/editor-rtl.css +12 -0
- package/build-style/pullquote/editor.css +12 -0
- package/build-style/pullquote/style-rtl.css +12 -0
- package/build-style/pullquote/style.css +12 -0
- package/build-style/pullquote/theme-rtl.css +12 -0
- package/build-style/pullquote/theme.css +12 -0
- package/build-style/query/editor-rtl.css +13 -1
- package/build-style/query/editor.css +13 -1
- package/build-style/query-pagination/editor-rtl.css +12 -0
- package/build-style/query-pagination/editor.css +12 -0
- package/build-style/query-pagination/style-rtl.css +13 -1
- package/build-style/query-pagination/style.css +13 -1
- package/build-style/query-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/query-pagination-numbers/editor.css +12 -0
- package/build-style/query-title/style-rtl.css +12 -0
- package/build-style/query-title/style.css +12 -0
- package/build-style/quote/style-rtl.css +12 -0
- package/build-style/quote/style.css +12 -0
- package/build-style/quote/theme-rtl.css +12 -0
- package/build-style/quote/theme.css +12 -0
- package/build-style/read-more/style-rtl.css +12 -0
- package/build-style/read-more/style.css +12 -0
- package/build-style/reset-rtl.css +12 -0
- package/build-style/reset.css +12 -0
- package/build-style/rss/editor-rtl.css +12 -0
- package/build-style/rss/editor.css +12 -0
- package/build-style/rss/style-rtl.css +12 -0
- package/build-style/rss/style.css +12 -0
- package/build-style/search/editor-rtl.css +12 -0
- package/build-style/search/editor.css +12 -0
- package/build-style/search/style-rtl.css +12 -0
- package/build-style/search/style.css +12 -0
- package/build-style/search/theme-rtl.css +12 -0
- package/build-style/search/theme.css +12 -0
- package/build-style/separator/editor-rtl.css +12 -0
- package/build-style/separator/editor.css +12 -0
- package/build-style/separator/style-rtl.css +12 -0
- package/build-style/separator/style.css +12 -0
- package/build-style/separator/theme-rtl.css +12 -0
- package/build-style/separator/theme.css +12 -0
- package/build-style/shortcode/editor-rtl.css +13 -1
- package/build-style/shortcode/editor.css +13 -1
- package/build-style/site-logo/editor-rtl.css +12 -0
- package/build-style/site-logo/editor.css +12 -0
- package/build-style/site-logo/style-rtl.css +12 -0
- package/build-style/site-logo/style.css +12 -0
- package/build-style/site-tagline/editor-rtl.css +12 -0
- package/build-style/site-tagline/editor.css +12 -0
- package/build-style/site-title/editor-rtl.css +12 -0
- package/build-style/site-title/editor.css +12 -0
- package/build-style/site-title/style-rtl.css +12 -0
- package/build-style/site-title/style.css +12 -0
- package/build-style/social-link/editor-rtl.css +12 -0
- package/build-style/social-link/editor.css +12 -0
- package/build-style/social-links/editor-rtl.css +12 -0
- package/build-style/social-links/editor.css +12 -0
- package/build-style/social-links/style-rtl.css +12 -0
- package/build-style/social-links/style.css +12 -0
- package/build-style/spacer/editor-rtl.css +12 -0
- package/build-style/spacer/editor.css +12 -0
- package/build-style/spacer/style-rtl.css +12 -0
- package/build-style/spacer/style.css +12 -0
- package/build-style/style-rtl.css +43 -6
- package/build-style/style.css +43 -6
- package/build-style/table/editor-rtl.css +13 -8
- package/build-style/table/editor.css +13 -8
- package/build-style/table/style-rtl.css +17 -0
- package/build-style/table/style.css +17 -0
- package/build-style/table/theme-rtl.css +13 -3
- package/build-style/table/theme.css +13 -3
- package/build-style/tag-cloud/style-rtl.css +12 -0
- package/build-style/tag-cloud/style.css +12 -0
- package/build-style/template-part/editor-rtl.css +27 -1
- package/build-style/template-part/editor.css +27 -1
- package/build-style/template-part/theme-rtl.css +12 -0
- package/build-style/template-part/theme.css +12 -0
- package/build-style/text-columns/editor-rtl.css +12 -0
- package/build-style/text-columns/editor.css +12 -0
- package/build-style/text-columns/style-rtl.css +12 -0
- package/build-style/text-columns/style.css +12 -0
- package/build-style/theme-rtl.css +13 -3
- package/build-style/theme.css +13 -3
- package/build-style/verse/style-rtl.css +12 -0
- package/build-style/verse/style.css +12 -0
- package/build-style/video/editor-rtl.css +12 -0
- package/build-style/video/editor.css +12 -0
- package/build-style/video/style-rtl.css +14 -1
- package/build-style/video/style.css +14 -1
- package/build-style/video/theme-rtl.css +12 -0
- package/build-style/video/theme.css +12 -0
- package/package.json +32 -30
- package/src/audio/edit.native.js +1 -2
- package/src/audio/index.js +1 -0
- package/src/avatar/edit.js +1 -0
- package/src/avatar/index.php +1 -1
- package/src/avatar/user-control.js +1 -0
- package/src/block/block.json +1 -2
- package/src/block/edit.js +14 -3
- package/src/block/edit.native.js +24 -12
- package/src/block/editor.scss +17 -0
- package/src/block/index.php +1 -2
- package/src/block/test/edit.native.js +28 -32
- package/src/button/block.json +4 -1
- package/src/button/deprecated.js +18 -2
- package/src/button/edit.js +11 -9
- package/src/button/edit.native.js +1 -0
- package/src/button/save.js +12 -2
- package/src/buttons/test/edit.native.js +41 -52
- package/src/code/transforms.js +3 -1
- package/src/columns/edit.js +1 -0
- package/src/columns/edit.native.js +18 -26
- package/src/columns/test/edit.native.js +32 -32
- package/src/columns/transforms.js +8 -0
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/cover/edit/index.js +3 -1
- package/src/cover/edit/inspector-controls.js +2 -0
- package/src/cover/edit.native.js +32 -19
- package/src/cover/test/edit.native.js +77 -130
- package/src/embed/embed-controls.native.js +1 -0
- package/src/embed/embed-preview.native.js +1 -2
- package/src/embed/test/index.native.js +251 -245
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
- package/src/gallery/edit.js +15 -5
- package/src/gallery/gallery.native.js +1 -2
- package/src/gallery/shared.js +7 -11
- package/src/gallery/test/index.native.js +11 -11
- package/src/gallery/transforms.js +1 -6
- package/src/gallery/use-get-media.js +1 -1
- package/src/gallery/use-get-media.native.js +2 -1
- package/src/gallery/v1/edit.js +26 -30
- package/src/gallery/v1/gallery.native.js +1 -2
- package/src/gallery/v1/shared.js +7 -2
- package/src/group/block.json +6 -1
- package/src/group/edit.js +91 -44
- package/src/group/editor.scss +48 -0
- package/src/group/placeholder.js +168 -0
- package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/group/test/edit.native.js +3 -3
- package/src/group/test/placeholder.js +78 -0
- package/src/group/variations.js +3 -3
- package/src/heading/block.json +1 -2
- package/src/heading/deprecated.js +209 -136
- package/src/heading/index.php +52 -0
- package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
- package/src/heading/test/index.native.js +44 -0
- package/src/home-link/index.php +1 -1
- package/src/html/block.json +1 -1
- package/src/image/edit.js +7 -2
- package/src/image/edit.native.js +2 -1
- package/src/image/editor.scss +0 -11
- package/src/image/image.js +13 -8
- package/src/image/test/edit.native.js +24 -20
- package/src/index.js +2 -0
- package/src/latest-comments/block.json +5 -1
- package/src/latest-comments/edit.js +2 -0
- package/src/latest-comments/style.scss +3 -0
- package/src/latest-posts/block.json +13 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/latest-posts/style.scss +3 -0
- package/src/list/test/edit.native.js +55 -47
- package/src/list/transforms.js +0 -11
- package/src/list/utils.js +6 -2
- package/src/list-item/edit.js +1 -0
- package/src/list-item/index.js +2 -0
- package/src/list-item/transforms.js +17 -0
- package/src/list-item/utils.js +10 -1
- package/src/media-text/edit.js +5 -3
- package/src/missing/test/edit-integration.native.js +10 -12
- package/src/navigation/edit/are-blocks-dirty.js +51 -0
- package/src/navigation/edit/index.js +269 -310
- package/src/navigation/edit/manage-menus-button.js +21 -0
- package/src/navigation/edit/menu-inspector-controls.js +78 -0
- package/src/navigation/edit/navigation-menu-selector.js +5 -1
- package/src/navigation/edit/responsive-wrapper.js +2 -10
- package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
- package/src/navigation/edit/unsaved-inner-blocks.js +17 -36
- package/src/navigation/editor.scss +25 -0
- package/src/navigation/index.php +57 -10
- package/src/navigation/style.scss +16 -0
- package/src/navigation/view-modal.js +11 -1
- package/src/navigation-link/edit.js +66 -329
- package/src/navigation-link/editor.scss +8 -0
- package/src/navigation-link/index.php +32 -0
- package/src/navigation-link/link-ui.js +213 -0
- package/src/navigation-link/test/edit.js +23 -82
- package/src/navigation-link/transforms.js +14 -0
- package/src/navigation-link/update-attributes.js +99 -0
- package/src/navigation-submenu/edit.js +57 -177
- package/src/navigation-submenu/index.php +40 -0
- package/src/page-list/block.json +6 -1
- package/src/page-list/constants.js +8 -0
- package/src/page-list/convert-to-links-modal.js +19 -76
- package/src/page-list/convert-to-navigation-links.js +60 -0
- package/src/page-list/edit.js +179 -118
- package/src/page-list/index.php +9 -0
- package/src/page-list/test/convert-to-links-modal.js +28 -34
- package/src/page-list-item/block.json +51 -0
- package/src/page-list-item/edit.js +94 -0
- package/src/page-list-item/index.js +24 -0
- package/src/page-list-item/init.js +6 -0
- package/src/paragraph/index.js +0 -6
- package/src/post-author/edit.js +47 -22
- package/src/post-content/block.json +3 -0
- package/src/post-content/index.php +1 -2
- package/src/post-featured-image/index.php +7 -2
- package/src/post-featured-image/overlay.js +1 -0
- package/src/post-template/block.json +8 -0
- package/src/preformatted/transforms.js +4 -1
- package/src/query/block.json +0 -8
- package/src/query/deprecated.js +257 -86
- package/src/query/edit/inspector-controls/index.js +1 -0
- package/src/query/edit/query-placeholder.js +4 -16
- package/src/query/editor.scss +1 -1
- package/src/query-pagination/style.scss +1 -1
- package/src/read-more/index.php +9 -2
- package/src/rss/edit.js +3 -0
- package/src/search/edit.native.js +31 -27
- package/src/search/index.js +5 -1
- package/src/shortcode/test/edit.native.js +15 -18
- package/src/site-logo/edit.js +14 -6
- package/src/site-logo/index.js +1 -0
- package/src/site-title/index.js +1 -0
- package/src/social-link/social-list.js +2 -7
- package/src/social-link/test/index.native.js +16 -22
- package/src/social-links/test/edit.native.js +8 -7
- package/src/spacer/test/index.native.js +39 -36
- package/src/table/block.json +15 -0
- package/src/table/edit.js +2 -1
- package/src/table/editor.scss +1 -4
- package/src/table/index.js +1 -0
- package/src/table/save.js +5 -1
- package/src/table/state.js +22 -7
- package/src/table/style.scss +7 -0
- package/src/table/theme.scss +1 -3
- package/src/table/transforms.js +2 -1
- package/src/table-of-contents/edit.js +2 -2
- package/src/tag-cloud/edit.js +3 -2
- package/src/template-part/edit/selection-modal.js +4 -3
- package/src/template-part/edit/utils/hooks.js +7 -3
- package/src/template-part/editor.scss +20 -2
- package/src/template-part/index.php +6 -2
- package/src/template-part/variations.js +4 -0
- package/src/text-columns/edit.js +1 -0
- package/src/utils/transformation-categories.native.js +1 -0
- package/src/video/edit.js +1 -1
- package/src/video/edit.native.js +1 -2
- package/test/babel-plugin.js +35 -35
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.convertSelectedBlockToNavigationLinks = void 0;
|
|
7
6
|
exports.default = ConvertToLinksModal;
|
|
8
7
|
|
|
9
8
|
var _element = require("@wordpress/element");
|
|
@@ -16,93 +15,31 @@ var _data = require("@wordpress/data");
|
|
|
16
15
|
|
|
17
16
|
var _coreData = require("@wordpress/core-data");
|
|
18
17
|
|
|
19
|
-
var _blocks = require("@wordpress/blocks");
|
|
20
|
-
|
|
21
18
|
var _blockEditor = require("@wordpress/block-editor");
|
|
22
19
|
|
|
20
|
+
var _convertToNavigationLinks = require("./convert-to-navigation-links");
|
|
21
|
+
|
|
22
|
+
var _constants = require("./constants");
|
|
23
|
+
|
|
23
24
|
/**
|
|
24
25
|
* WordPress dependencies
|
|
25
26
|
*/
|
|
26
|
-
const PAGE_FIELDS = ['id', 'title', 'link', 'type', 'parent'];
|
|
27
|
-
const MAX_PAGE_COUNT = 100;
|
|
28
|
-
|
|
29
|
-
const convertSelectedBlockToNavigationLinks = _ref => {
|
|
30
|
-
let {
|
|
31
|
-
pages,
|
|
32
|
-
clientId,
|
|
33
|
-
replaceBlock,
|
|
34
|
-
createBlock
|
|
35
|
-
} = _ref;
|
|
36
|
-
return () => {
|
|
37
|
-
if (!pages) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const linkMap = {};
|
|
42
|
-
const navigationLinks = [];
|
|
43
|
-
pages.forEach(_ref2 => {
|
|
44
|
-
var _linkMap$id$innerBloc, _linkMap$id;
|
|
45
|
-
|
|
46
|
-
let {
|
|
47
|
-
id,
|
|
48
|
-
title,
|
|
49
|
-
link: url,
|
|
50
|
-
type,
|
|
51
|
-
parent
|
|
52
|
-
} = _ref2;
|
|
53
|
-
// See if a placeholder exists. This is created if children appear before parents in list.
|
|
54
|
-
const innerBlocks = (_linkMap$id$innerBloc = (_linkMap$id = linkMap[id]) === null || _linkMap$id === void 0 ? void 0 : _linkMap$id.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
|
|
55
|
-
linkMap[id] = createBlock('core/navigation-link', {
|
|
56
|
-
id,
|
|
57
|
-
label: title.rendered,
|
|
58
|
-
url,
|
|
59
|
-
type,
|
|
60
|
-
kind: 'post-type'
|
|
61
|
-
}, innerBlocks);
|
|
62
|
-
|
|
63
|
-
if (!parent) {
|
|
64
|
-
navigationLinks.push(linkMap[id]);
|
|
65
|
-
} else {
|
|
66
|
-
if (!linkMap[parent]) {
|
|
67
|
-
// Use a placeholder if the child appears before parent in list.
|
|
68
|
-
linkMap[parent] = {
|
|
69
|
-
innerBlocks: []
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
27
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}); // Transform all links with innerBlocks into Submenus. This can't be done
|
|
77
|
-
// sooner because page objects have no information on their children.
|
|
78
|
-
|
|
79
|
-
const transformSubmenus = listOfLinks => {
|
|
80
|
-
listOfLinks.forEach((block, index, listOfLinksArray) => {
|
|
81
|
-
const {
|
|
82
|
-
attributes,
|
|
83
|
-
innerBlocks
|
|
84
|
-
} = block;
|
|
85
|
-
|
|
86
|
-
if (innerBlocks.length !== 0) {
|
|
87
|
-
transformSubmenus(innerBlocks);
|
|
88
|
-
const transformedBlock = createBlock('core/navigation-submenu', attributes, innerBlocks);
|
|
89
|
-
listOfLinksArray[index] = transformedBlock;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
transformSubmenus(navigationLinks);
|
|
95
|
-
replaceBlock(clientId, navigationLinks);
|
|
96
|
-
};
|
|
97
|
-
};
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
98
31
|
|
|
99
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Internal dependencies
|
|
34
|
+
*/
|
|
35
|
+
const PAGE_FIELDS = ['id', 'title', 'link', 'type', 'parent'];
|
|
36
|
+
const MAX_PAGE_COUNT = 100;
|
|
100
37
|
|
|
101
|
-
function ConvertToLinksModal(
|
|
38
|
+
function ConvertToLinksModal(_ref) {
|
|
102
39
|
let {
|
|
103
40
|
onClose,
|
|
104
41
|
clientId
|
|
105
|
-
} =
|
|
42
|
+
} = _ref;
|
|
106
43
|
const {
|
|
107
44
|
records: pages,
|
|
108
45
|
hasResolved: pagesFinished
|
|
@@ -121,14 +58,14 @@ function ConvertToLinksModal(_ref3) {
|
|
|
121
58
|
return (0, _element.createElement)(_components.Modal, {
|
|
122
59
|
closeLabel: (0, _i18n.__)('Close'),
|
|
123
60
|
onRequestClose: onClose,
|
|
124
|
-
title: (0, _i18n.__)('
|
|
61
|
+
title: (0, _i18n.__)('Customize this menu'),
|
|
125
62
|
className: 'wp-block-page-list-modal',
|
|
126
63
|
aria: {
|
|
127
64
|
describedby: 'wp-block-page-list-modal__description'
|
|
128
65
|
}
|
|
129
66
|
}, (0, _element.createElement)("p", {
|
|
130
67
|
id: 'wp-block-page-list-modal__description'
|
|
131
|
-
},
|
|
68
|
+
}, _constants.convertDescription), (0, _element.createElement)("div", {
|
|
132
69
|
className: "wp-block-page-list-modal-buttons"
|
|
133
70
|
}, (0, _element.createElement)(_components.Button, {
|
|
134
71
|
variant: "tertiary",
|
|
@@ -136,12 +73,11 @@ function ConvertToLinksModal(_ref3) {
|
|
|
136
73
|
}, (0, _i18n.__)('Cancel')), (0, _element.createElement)(_components.Button, {
|
|
137
74
|
variant: "primary",
|
|
138
75
|
disabled: !pagesFinished,
|
|
139
|
-
onClick:
|
|
140
|
-
pages
|
|
141
|
-
|
|
142
|
-
clientId,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}, (0, _i18n.__)('Convert'))));
|
|
76
|
+
onClick: () => {
|
|
77
|
+
const navigationLinks = (0, _convertToNavigationLinks.convertToNavigationLinks)(pages); // Replace the Page List block with the Navigation Links.
|
|
78
|
+
|
|
79
|
+
replaceBlock(clientId, navigationLinks);
|
|
80
|
+
}
|
|
81
|
+
}, (0, _i18n.__)('Customize'))));
|
|
146
82
|
}
|
|
147
83
|
//# sourceMappingURL=convert-to-links-modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-links-modal.js"],"names":["PAGE_FIELDS","MAX_PAGE_COUNT","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-links-modal.js"],"names":["PAGE_FIELDS","MAX_PAGE_COUNT","ConvertToLinksModal","onClose","clientId","records","pages","hasResolved","pagesFinished","per_page","_fields","orderby","order","replaceBlock","blockEditorStore","describedby","convertDescription","navigationLinks"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AAKA;;AAhBA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAMA,WAAW,GAAG,CAAE,IAAF,EAAQ,OAAR,EAAiB,MAAjB,EAAyB,MAAzB,EAAiC,QAAjC,CAApB;AACA,MAAMC,cAAc,GAAG,GAAvB;;AAEe,SAASC,mBAAT,OAAsD;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAwB;AACpE,QAAM;AAAEC,IAAAA,OAAO,EAAEC,KAAX;AAAkBC,IAAAA,WAAW,EAAEC;AAA/B,MAAiD,gCACtD,UADsD,EAEtD,MAFsD,EAGtD;AACCC,IAAAA,QAAQ,EAAER,cADX;AAECS,IAAAA,OAAO,EAAEV,WAFV;AAGC;AACA;AACA;AACAW,IAAAA,OAAO,EAAE,YANV;AAOCC,IAAAA,KAAK,EAAE;AAPR,GAHsD,CAAvD;AAcA,QAAM;AAAEC,IAAAA;AAAF,MAAmB,uBAAaC,kBAAb,CAAzB;AAEA,SACC,4BAAC,iBAAD;AACC,IAAA,UAAU,EAAG,cAAI,OAAJ,CADd;AAEC,IAAA,cAAc,EAAGX,OAFlB;AAGC,IAAA,KAAK,EAAG,cAAI,qBAAJ,CAHT;AAIC,IAAA,SAAS,EAAG,0BAJb;AAKC,IAAA,IAAI,EAAG;AAAEY,MAAAA,WAAW,EAAE;AAAf;AALR,KAOC;AAAG,IAAA,EAAE,EAAG;AAAR,KACGC,6BADH,CAPD,EAUC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,UAAhB;AAA2B,IAAA,OAAO,EAAGb;AAArC,KACG,cAAI,QAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,QAAQ,EAAG,CAAEK,aAFd;AAGC,IAAA,OAAO,EAAG,MAAM;AACf,YAAMS,eAAe,GACpB,wDAA0BX,KAA1B,CADD,CADe,CAIf;;AACAO,MAAAA,YAAY,CAAET,QAAF,EAAYa,eAAZ,CAAZ;AACA;AATF,KAWG,cAAI,WAAJ,CAXH,CAJD,CAVD,CADD;AA+BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n/**\n * Internal dependencies\n */\nimport { convertToNavigationLinks } from './convert-to-navigation-links';\n\n/**\n * Internal dependencies\n */\nimport { convertDescription } from './constants';\n\nconst PAGE_FIELDS = [ 'id', 'title', 'link', 'type', 'parent' ];\nconst MAX_PAGE_COUNT = 100;\n\nexport default function ConvertToLinksModal( { onClose, clientId } ) {\n\tconst { records: pages, hasResolved: pagesFinished } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: PAGE_FIELDS,\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Modal\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Customize this menu' ) }\n\t\t\tclassName={ 'wp-block-page-list-modal' }\n\t\t\taria={ { describedby: 'wp-block-page-list-modal__description' } }\n\t\t>\n\t\t\t<p id={ 'wp-block-page-list-modal__description' }>\n\t\t\t\t{ convertDescription }\n\t\t\t</p>\n\t\t\t<div className=\"wp-block-page-list-modal-buttons\">\n\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! pagesFinished }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tconst navigationLinks =\n\t\t\t\t\t\t\tconvertToNavigationLinks( pages );\n\n\t\t\t\t\t\t// Replace the Page List block with the Navigation Links.\n\t\t\t\t\t\treplaceBlock( clientId, navigationLinks );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Customize' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.convertToNavigationLinks = void 0;
|
|
7
|
+
|
|
8
|
+
var _blocks = require("@wordpress/blocks");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
const convertToNavigationLinks = pages => {
|
|
14
|
+
if (!pages) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const linkMap = {};
|
|
19
|
+
const navigationLinks = [];
|
|
20
|
+
pages.forEach(_ref => {
|
|
21
|
+
var _linkMap$id$innerBloc, _linkMap$id;
|
|
22
|
+
|
|
23
|
+
let {
|
|
24
|
+
id,
|
|
25
|
+
title,
|
|
26
|
+
link: url,
|
|
27
|
+
type,
|
|
28
|
+
parent
|
|
29
|
+
} = _ref;
|
|
30
|
+
// See if a placeholder exists. This is created if children appear before parents in list.
|
|
31
|
+
const innerBlocks = (_linkMap$id$innerBloc = (_linkMap$id = linkMap[id]) === null || _linkMap$id === void 0 ? void 0 : _linkMap$id.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
|
|
32
|
+
linkMap[id] = (0, _blocks.createBlock)('core/navigation-link', {
|
|
33
|
+
id,
|
|
34
|
+
label: title.rendered,
|
|
35
|
+
url,
|
|
36
|
+
type,
|
|
37
|
+
kind: 'post-type'
|
|
38
|
+
}, innerBlocks);
|
|
39
|
+
|
|
40
|
+
if (!parent) {
|
|
41
|
+
navigationLinks.push(linkMap[id]);
|
|
42
|
+
} else {
|
|
43
|
+
if (!linkMap[parent]) {
|
|
44
|
+
// Use a placeholder if the child appears before parent in list.
|
|
45
|
+
linkMap[parent] = {
|
|
46
|
+
innerBlocks: []
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
|
|
51
|
+
parentLinkInnerBlocks.push(linkMap[id]);
|
|
52
|
+
}
|
|
53
|
+
}); // Transform all links with innerBlocks into Submenus. This can't be done
|
|
54
|
+
// sooner because page objects have no information on their children.
|
|
55
|
+
|
|
56
|
+
const transformSubmenus = listOfLinks => {
|
|
57
|
+
listOfLinks.forEach((block, index, listOfLinksArray) => {
|
|
58
|
+
const {
|
|
59
|
+
attributes,
|
|
60
|
+
innerBlocks
|
|
61
|
+
} = block;
|
|
62
|
+
|
|
63
|
+
if (innerBlocks.length !== 0) {
|
|
64
|
+
transformSubmenus(innerBlocks);
|
|
65
|
+
const transformedBlock = (0, _blocks.createBlock)('core/navigation-submenu', attributes, innerBlocks);
|
|
66
|
+
listOfLinksArray[index] = transformedBlock;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
transformSubmenus(navigationLinks);
|
|
72
|
+
return navigationLinks;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.convertToNavigationLinks = convertToNavigationLinks;
|
|
76
|
+
//# sourceMappingURL=convert-to-navigation-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-navigation-links.js"],"names":["convertToNavigationLinks","pages","linkMap","navigationLinks","forEach","id","title","link","url","type","parent","innerBlocks","label","rendered","kind","push","parentLinkInnerBlocks","transformSubmenus","listOfLinks","block","index","listOfLinksArray","attributes","length","transformedBlock"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,wBAAwB,GAAKC,KAAF,IAAa;AACpD,MAAK,CAAEA,KAAP,EAAe;AACd;AACA;;AAED,QAAMC,OAAO,GAAG,EAAhB;AACA,QAAMC,eAAe,GAAG,EAAxB;AACAF,EAAAA,KAAK,CAACG,OAAN,CAAe,QAA8C;AAAA;;AAAA,QAA5C;AAAEC,MAAAA,EAAF;AAAMC,MAAAA,KAAN;AAAaC,MAAAA,IAAI,EAAEC,GAAnB;AAAwBC,MAAAA,IAAxB;AAA8BC,MAAAA;AAA9B,KAA4C;AAC5D;AACA,UAAMC,WAAW,2CAAGT,OAAO,CAAEG,EAAF,CAAV,gDAAG,YAAeM,WAAlB,yEAAiC,EAAlD;AACAT,IAAAA,OAAO,CAAEG,EAAF,CAAP,GAAgB,yBACf,sBADe,EAEf;AACCA,MAAAA,EADD;AAECO,MAAAA,KAAK,EAAEN,KAAK,CAACO,QAFd;AAGCL,MAAAA,GAHD;AAICC,MAAAA,IAJD;AAKCK,MAAAA,IAAI,EAAE;AALP,KAFe,EASfH,WATe,CAAhB;;AAYA,QAAK,CAAED,MAAP,EAAgB;AACfP,MAAAA,eAAe,CAACY,IAAhB,CAAsBb,OAAO,CAAEG,EAAF,CAA7B;AACA,KAFD,MAEO;AACN,UAAK,CAAEH,OAAO,CAAEQ,MAAF,CAAd,EAA2B;AAC1B;AACAR,QAAAA,OAAO,CAAEQ,MAAF,CAAP,GAAoB;AAAEC,UAAAA,WAAW,EAAE;AAAf,SAApB;AACA;;AACD,YAAMK,qBAAqB,GAAGd,OAAO,CAAEQ,MAAF,CAAP,CAAkBC,WAAhD;AACAK,MAAAA,qBAAqB,CAACD,IAAtB,CAA4Bb,OAAO,CAAEG,EAAF,CAAnC;AACA;AACD,GAzBD,EAPoD,CAkCpD;AACA;;AACA,QAAMY,iBAAiB,GAAKC,WAAF,IAAmB;AAC5CA,IAAAA,WAAW,CAACd,OAAZ,CAAqB,CAAEe,KAAF,EAASC,KAAT,EAAgBC,gBAAhB,KAAsC;AAC1D,YAAM;AAAEC,QAAAA,UAAF;AAAcX,QAAAA;AAAd,UAA8BQ,KAApC;;AACA,UAAKR,WAAW,CAACY,MAAZ,KAAuB,CAA5B,EAAgC;AAC/BN,QAAAA,iBAAiB,CAAEN,WAAF,CAAjB;AACA,cAAMa,gBAAgB,GAAG,yBACxB,yBADwB,EAExBF,UAFwB,EAGxBX,WAHwB,CAAzB;AAKAU,QAAAA,gBAAgB,CAAED,KAAF,CAAhB,GAA4BI,gBAA5B;AACA;AACD,KAXD;AAYA,GAbD;;AAeAP,EAAAA,iBAAiB,CAAEd,eAAF,CAAjB;AAEA,SAAOA,eAAP;AACA,CAtDM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nexport const convertToNavigationLinks = ( pages ) => {\n\tif ( ! pages ) {\n\t\treturn;\n\t}\n\n\tconst linkMap = {};\n\tconst navigationLinks = [];\n\tpages.forEach( ( { id, title, link: url, type, parent } ) => {\n\t\t// See if a placeholder exists. This is created if children appear before parents in list.\n\t\tconst innerBlocks = linkMap[ id ]?.innerBlocks ?? [];\n\t\tlinkMap[ id ] = createBlock(\n\t\t\t'core/navigation-link',\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\tlabel: title.rendered,\n\t\t\t\turl,\n\t\t\t\ttype,\n\t\t\t\tkind: 'post-type',\n\t\t\t},\n\t\t\tinnerBlocks\n\t\t);\n\n\t\tif ( ! parent ) {\n\t\t\tnavigationLinks.push( linkMap[ id ] );\n\t\t} else {\n\t\t\tif ( ! linkMap[ parent ] ) {\n\t\t\t\t// Use a placeholder if the child appears before parent in list.\n\t\t\t\tlinkMap[ parent ] = { innerBlocks: [] };\n\t\t\t}\n\t\t\tconst parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;\n\t\t\tparentLinkInnerBlocks.push( linkMap[ id ] );\n\t\t}\n\t} );\n\n\t// Transform all links with innerBlocks into Submenus. This can't be done\n\t// sooner because page objects have no information on their children.\n\tconst transformSubmenus = ( listOfLinks ) => {\n\t\tlistOfLinks.forEach( ( block, index, listOfLinksArray ) => {\n\t\t\tconst { attributes, innerBlocks } = block;\n\t\t\tif ( innerBlocks.length !== 0 ) {\n\t\t\t\ttransformSubmenus( innerBlocks );\n\t\t\t\tconst transformedBlock = createBlock(\n\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\tattributes,\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t\tlistOfLinksArray[ index ] = transformedBlock;\n\t\t\t}\n\t\t} );\n\t};\n\n\ttransformSubmenus( navigationLinks );\n\n\treturn navigationLinks;\n};\n"]}
|
package/build/page-list/edit.js
CHANGED
|
@@ -11,19 +11,23 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
+
var _blocks = require("@wordpress/blocks");
|
|
15
|
+
|
|
14
16
|
var _blockEditor = require("@wordpress/block-editor");
|
|
15
17
|
|
|
16
18
|
var _components = require("@wordpress/components");
|
|
17
19
|
|
|
18
20
|
var _i18n = require("@wordpress/i18n");
|
|
19
21
|
|
|
20
|
-
var _data = require("@wordpress/data");
|
|
21
|
-
|
|
22
22
|
var _coreData = require("@wordpress/core-data");
|
|
23
23
|
|
|
24
|
+
var _data = require("@wordpress/data");
|
|
25
|
+
|
|
24
26
|
var _convertToLinksModal = _interopRequireDefault(require("./convert-to-links-modal"));
|
|
25
27
|
|
|
26
|
-
var
|
|
28
|
+
var _convertToNavigationLinks = require("./convert-to-navigation-links");
|
|
29
|
+
|
|
30
|
+
var _constants = require("./constants");
|
|
27
31
|
|
|
28
32
|
/**
|
|
29
33
|
* External dependencies
|
|
@@ -45,13 +49,23 @@ function PageListEdit(_ref) {
|
|
|
45
49
|
|
|
46
50
|
let {
|
|
47
51
|
context,
|
|
48
|
-
clientId
|
|
52
|
+
clientId,
|
|
53
|
+
attributes,
|
|
54
|
+
setAttributes
|
|
49
55
|
} = _ref;
|
|
56
|
+
const {
|
|
57
|
+
parentPageID
|
|
58
|
+
} = attributes;
|
|
59
|
+
const [pages] = useGetPages();
|
|
50
60
|
const {
|
|
51
61
|
pagesByParentId,
|
|
52
62
|
totalPages,
|
|
53
63
|
hasResolvedPages
|
|
54
64
|
} = usePageData();
|
|
65
|
+
const {
|
|
66
|
+
replaceInnerBlocks,
|
|
67
|
+
__unstableMarkNextChangeAsNotPersistent
|
|
68
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
55
69
|
const isNavigationChild = ('showSubmenuIcon' in context);
|
|
56
70
|
const allowConvertToLinks = isNavigationChild && totalPages <= MAX_PAGE_COUNT;
|
|
57
71
|
const [isOpen, setOpen] = (0, _element.useState)(false);
|
|
@@ -71,6 +85,68 @@ function PageListEdit(_ref) {
|
|
|
71
85
|
}
|
|
72
86
|
});
|
|
73
87
|
|
|
88
|
+
const getBlockList = function () {
|
|
89
|
+
let parentId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : parentPageID;
|
|
90
|
+
const childPages = pagesByParentId.get(parentId);
|
|
91
|
+
|
|
92
|
+
if (!(childPages !== null && childPages !== void 0 && childPages.length)) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return childPages.reduce((template, page) => {
|
|
97
|
+
var _page$title, _page$title2;
|
|
98
|
+
|
|
99
|
+
const hasChildren = pagesByParentId.has(page.id);
|
|
100
|
+
const pageProps = {
|
|
101
|
+
id: page.id,
|
|
102
|
+
label: (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered,
|
|
103
|
+
title: (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered,
|
|
104
|
+
link: page.url,
|
|
105
|
+
hasChildren
|
|
106
|
+
};
|
|
107
|
+
let item = null;
|
|
108
|
+
const children = getBlockList(page.id);
|
|
109
|
+
item = (0, _blocks.createBlock)('core/page-list-item', pageProps, children);
|
|
110
|
+
template.push(item);
|
|
111
|
+
return template;
|
|
112
|
+
}, []);
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const makePagesTree = function () {
|
|
116
|
+
let parentId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
117
|
+
let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
118
|
+
const childPages = pagesByParentId.get(parentId);
|
|
119
|
+
|
|
120
|
+
if (!(childPages !== null && childPages !== void 0 && childPages.length)) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return childPages.reduce((tree, page) => {
|
|
125
|
+
const hasChildren = pagesByParentId.has(page.id);
|
|
126
|
+
const item = {
|
|
127
|
+
value: page.id,
|
|
128
|
+
label: '— '.repeat(level) + page.title.rendered,
|
|
129
|
+
rawName: page.title.rendered
|
|
130
|
+
};
|
|
131
|
+
tree.push(item);
|
|
132
|
+
|
|
133
|
+
if (hasChildren) {
|
|
134
|
+
tree.push(...makePagesTree(page.id, level + 1));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return tree;
|
|
138
|
+
}, []);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const pagesTree = (0, _element.useMemo)(makePagesTree, [pagesByParentId]);
|
|
142
|
+
const blockList = (0, _element.useMemo)(getBlockList, [pagesByParentId, parentPageID]);
|
|
143
|
+
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
|
|
144
|
+
allowedBlocks: ['core/page-list-item'],
|
|
145
|
+
renderAppender: false,
|
|
146
|
+
__unstableDisableDropZone: true,
|
|
147
|
+
templateLock: 'all'
|
|
148
|
+
});
|
|
149
|
+
|
|
74
150
|
const getBlockContent = () => {
|
|
75
151
|
if (!hasResolvedPages) {
|
|
76
152
|
return (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Spinner, null));
|
|
@@ -90,15 +166,64 @@ function PageListEdit(_ref) {
|
|
|
90
166
|
}, (0, _i18n.__)('Page List: Cannot retrieve Pages.')));
|
|
91
167
|
}
|
|
92
168
|
|
|
169
|
+
if (blockList.length === 0) {
|
|
170
|
+
const parentPageDetails = pages && pages.find(page => page.id === parentPageID);
|
|
171
|
+
return (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_blockEditor.Warning, null, (0, _i18n.sprintf)( // translators: %s: Page title.
|
|
172
|
+
(0, _i18n.__)('"%s" page has no children.'), parentPageDetails.title.rendered)));
|
|
173
|
+
}
|
|
174
|
+
|
|
93
175
|
if (totalPages > 0) {
|
|
94
|
-
return (0, _element.createElement)("ul",
|
|
95
|
-
context: context,
|
|
96
|
-
pagesByParentId: pagesByParentId
|
|
97
|
-
}));
|
|
176
|
+
return (0, _element.createElement)("ul", innerBlocksProps);
|
|
98
177
|
}
|
|
99
178
|
};
|
|
100
179
|
|
|
101
|
-
|
|
180
|
+
(0, _element.useEffect)(() => {
|
|
181
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
182
|
+
|
|
183
|
+
if (blockList) {
|
|
184
|
+
replaceInnerBlocks(clientId, blockList);
|
|
185
|
+
}
|
|
186
|
+
}, [clientId, blockList]);
|
|
187
|
+
const {
|
|
188
|
+
replaceBlock,
|
|
189
|
+
selectBlock
|
|
190
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
191
|
+
const {
|
|
192
|
+
parentNavBlockClientId
|
|
193
|
+
} = (0, _data.useSelect)(select => {
|
|
194
|
+
const {
|
|
195
|
+
getSelectedBlockClientId,
|
|
196
|
+
getBlockParentsByBlockName
|
|
197
|
+
} = select(_blockEditor.store);
|
|
198
|
+
|
|
199
|
+
const _selectedBlockClientId = getSelectedBlockClientId();
|
|
200
|
+
|
|
201
|
+
return {
|
|
202
|
+
parentNavBlockClientId: getBlockParentsByBlockName(_selectedBlockClientId, 'core/navigation', true)[0]
|
|
203
|
+
};
|
|
204
|
+
}, []);
|
|
205
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, isNavigationChild && (pages === null || pages === void 0 ? void 0 : pages.length) > 0 && (0, _element.createElement)(_components.PanelBody, {
|
|
206
|
+
title: (0, _i18n.__)('Customize this menu')
|
|
207
|
+
}, (0, _element.createElement)("p", null, _constants.convertDescription), (0, _element.createElement)(_components.Button, {
|
|
208
|
+
variant: "primary",
|
|
209
|
+
disabled: !hasResolvedPages,
|
|
210
|
+
onClick: () => {
|
|
211
|
+
const navigationLinks = (0, _convertToNavigationLinks.convertToNavigationLinks)(pages); // Replace the Page List block with the Navigation Links.
|
|
212
|
+
|
|
213
|
+
replaceBlock(clientId, navigationLinks); // Select the Navigation block to reveal the changes.
|
|
214
|
+
|
|
215
|
+
selectBlock(parentNavBlockClientId);
|
|
216
|
+
}
|
|
217
|
+
}, (0, _i18n.__)('Customize'))), pagesTree.length > 0 && (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_components.ComboboxControl, {
|
|
218
|
+
className: "editor-page-attributes__parent",
|
|
219
|
+
label: (0, _i18n.__)('Parent page'),
|
|
220
|
+
value: parentPageID,
|
|
221
|
+
options: pagesTree,
|
|
222
|
+
onChange: value => setAttributes({
|
|
223
|
+
parentPageID: value !== null && value !== void 0 ? value : 0
|
|
224
|
+
}),
|
|
225
|
+
help: (0, _i18n.__)('Choose a page to show only its subpages.')
|
|
226
|
+
}))), allowConvertToLinks && totalPages > 0 && (0, _element.createElement)(_blockEditor.BlockControls, {
|
|
102
227
|
group: "other"
|
|
103
228
|
}, (0, _element.createElement)(_components.ToolbarButton, {
|
|
104
229
|
title: (0, _i18n.__)('Edit'),
|
|
@@ -109,20 +234,7 @@ function PageListEdit(_ref) {
|
|
|
109
234
|
}), getBlockContent());
|
|
110
235
|
}
|
|
111
236
|
|
|
112
|
-
function
|
|
113
|
-
return (0, _data.useSelect)(select => {
|
|
114
|
-
const canReadSettings = select(_coreData.store).canUser('read', 'settings');
|
|
115
|
-
|
|
116
|
-
if (!canReadSettings) {
|
|
117
|
-
return undefined;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const site = select(_coreData.store).getEntityRecord('root', 'site');
|
|
121
|
-
return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
|
|
122
|
-
}, []);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function usePageData() {
|
|
237
|
+
function useGetPages() {
|
|
126
238
|
const {
|
|
127
239
|
records: pages,
|
|
128
240
|
hasResolved: hasResolvedPages
|
|
@@ -133,6 +245,12 @@ function usePageData() {
|
|
|
133
245
|
per_page: -1,
|
|
134
246
|
context: 'view'
|
|
135
247
|
});
|
|
248
|
+
return [pages, hasResolvedPages];
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
function usePageData() {
|
|
252
|
+
let pageId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
253
|
+
const [pages, hasResolvedPages] = useGetPages();
|
|
136
254
|
return (0, _element.useMemo)(() => {
|
|
137
255
|
var _pages$length;
|
|
138
256
|
|
|
@@ -164,60 +282,6 @@ function usePageData() {
|
|
|
164
282
|
hasResolvedPages,
|
|
165
283
|
totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null
|
|
166
284
|
};
|
|
167
|
-
}, [pages, hasResolvedPages]);
|
|
285
|
+
}, [pageId, pages, hasResolvedPages]);
|
|
168
286
|
}
|
|
169
|
-
|
|
170
|
-
const PageItems = (0, _element.memo)(function PageItems(_ref2) {
|
|
171
|
-
let {
|
|
172
|
-
context,
|
|
173
|
-
pagesByParentId,
|
|
174
|
-
parentId = 0,
|
|
175
|
-
depth = 0
|
|
176
|
-
} = _ref2;
|
|
177
|
-
const pages = pagesByParentId.get(parentId);
|
|
178
|
-
const frontPageId = useFrontPageId();
|
|
179
|
-
|
|
180
|
-
if (!(pages !== null && pages !== void 0 && pages.length)) {
|
|
181
|
-
return [];
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return pages.map(page => {
|
|
185
|
-
var _page$title, _page$title2;
|
|
186
|
-
|
|
187
|
-
const hasChildren = pagesByParentId.has(page.id);
|
|
188
|
-
const isNavigationChild = ('showSubmenuIcon' in context);
|
|
189
|
-
return (0, _element.createElement)("li", {
|
|
190
|
-
key: page.id,
|
|
191
|
-
className: (0, _classnames.default)('wp-block-pages-list__item', {
|
|
192
|
-
'has-child': hasChildren,
|
|
193
|
-
'wp-block-navigation-item': isNavigationChild,
|
|
194
|
-
'open-on-click': context.openSubmenusOnClick,
|
|
195
|
-
'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
|
|
196
|
-
'menu-item-home': page.id === frontPageId
|
|
197
|
-
})
|
|
198
|
-
}, hasChildren && context.openSubmenusOnClick ? (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("button", {
|
|
199
|
-
className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
|
|
200
|
-
"aria-expanded": "false"
|
|
201
|
-
}, (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered), (0, _element.createElement)("span", {
|
|
202
|
-
className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
|
|
203
|
-
}, (0, _element.createElement)(_icons.ItemSubmenuIcon, null))) : (0, _element.createElement)("a", {
|
|
204
|
-
className: (0, _classnames.default)('wp-block-pages-list__item__link', {
|
|
205
|
-
'wp-block-navigation-item__content': isNavigationChild
|
|
206
|
-
}),
|
|
207
|
-
href: page.link
|
|
208
|
-
}, (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered), hasChildren && (0, _element.createElement)(_element.Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && (0, _element.createElement)("button", {
|
|
209
|
-
className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
|
|
210
|
-
"aria-expanded": "false"
|
|
211
|
-
}, (0, _element.createElement)(_icons.ItemSubmenuIcon, null)), (0, _element.createElement)("ul", {
|
|
212
|
-
className: (0, _classnames.default)('submenu-container', {
|
|
213
|
-
'wp-block-navigation__submenu-container': isNavigationChild
|
|
214
|
-
})
|
|
215
|
-
}, (0, _element.createElement)(PageItems, {
|
|
216
|
-
context: context,
|
|
217
|
-
pagesByParentId: pagesByParentId,
|
|
218
|
-
parentId: page.id,
|
|
219
|
-
depth: depth + 1
|
|
220
|
-
}))));
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
287
|
//# sourceMappingURL=edit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","hasResolvedPages","usePageData","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","getBlockContent","useFrontPageId","select","canReadSettings","coreStore","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","records","pages","hasResolved","orderby","order","_fields","per_page","sortedPages","sort","a","b","menu_order","title","rendered","localeCompare","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","frontPageId","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","link"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Spinner, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockContent = () => {\n\t\tif ( ! hasResolvedPages ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === null ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === 0 ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages > 0 ) {\n\t\t\treturn (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ getBlockContent() }\n\t\t</>\n\t);\n}\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nfunction usePageData() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pages, hasResolvedPages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\tconst frontPageId = useFrontPageId();\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t\t'menu-item-home': page.id === frontPageId,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","attributes","setAttributes","parentPageID","pages","useGetPages","pagesByParentId","totalPages","hasResolvedPages","usePageData","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","getBlockList","parentId","childPages","get","length","reduce","template","page","hasChildren","has","id","pageProps","label","title","rendered","link","url","item","children","push","makePagesTree","level","tree","value","repeat","rawName","pagesTree","blockList","innerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","templateLock","getBlockContent","parentPageDetails","find","replaceBlock","selectBlock","parentNavBlockClientId","select","getSelectedBlockClientId","getBlockParentsByBlockName","_selectedBlockClientId","convertDescription","navigationLinks","records","hasResolved","orderby","order","_fields","per_page","pageId","sortedPages","sort","a","b","menu_order","localeCompare","accumulator","parent","set","Map"],"mappings":";;;;;;;;;AA2BA;;AAxBA;;AAKA;;AACA;;AASA;;AAQA;;AAEA;;AACA;;AAKA;;AACA;;AACA;;AApCA;AACA;AACA;;AAGA;AACA;AACA;;AAwBA;AACA;AACA;AAKA;AACA;AACA,MAAMA,cAAc,GAAG,GAAvB;;AAEe,SAASC,YAAT,OAKX;AAAA;;AAAA,MALkC;AACrCC,IAAAA,OADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA;AAJqC,GAKlC;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAmBF,UAAzB;AACA,QAAM,CAAEG,KAAF,IAAYC,WAAW,EAA7B;AACA,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA,UAAnB;AAA+BC,IAAAA;AAA/B,MAAoDC,WAAW,EAArE;AACA,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACL,uBAAaC,kBAAb,CADD;AAGA,QAAMC,iBAAiB,IAAG,qBAAqBd,OAAxB,CAAvB;AACA,QAAMe,mBAAmB,GACxBD,iBAAiB,IAAIN,UAAU,IAAIV,cADpC;AAGA,QAAM,CAAEkB,MAAF,EAAUC,OAAV,IAAsB,uBAAU,KAAV,CAA5B;;AACA,QAAMC,SAAS,GAAG,MAAMD,OAAO,CAAE,IAAF,CAA/B;;AACA,QAAME,UAAU,GAAG,MAAMF,OAAO,CAAE,KAAF,CAAhC;;AAEA,QAAMG,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY,oBAAZ,EAAkC;AAC5C,wBAAkB,CAAC,CAAErB,OAAO,CAACsB,SADe;AAE5C,OAAE,oCAAmB,OAAnB,EAA4BtB,OAAO,CAACsB,SAApC,CAAF,GACC,CAAC,CAAEtB,OAAO,CAACsB,SAHgC;AAI5C,wBAAkB,CAAC,CAAEtB,OAAO,CAACuB,eAJe;AAK5C,OAAE,oCACD,kBADC,EAEDvB,OAAO,CAACuB,eAFP,CAAF,GAGK,CAAC,CAAEvB,OAAO,CAACuB;AAR4B,KAAlC,CADsB;AAWjCC,IAAAA,KAAK,EAAE,EAAE,sBAAGxB,OAAO,CAACwB,KAAX,mDAAG,eAAeC,KAAlB;AAAF;AAX0B,GAAf,CAAnB;;AAcA,QAAMC,YAAY,GAAG,YAA+B;AAAA,QAA7BC,QAA6B,uEAAlBvB,YAAkB;AACnD,UAAMwB,UAAU,GAAGrB,eAAe,CAACsB,GAAhB,CAAqBF,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEE,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOF,UAAU,CAACG,MAAX,CAAmB,CAAEC,QAAF,EAAYC,IAAZ,KAAsB;AAAA;;AAC/C,YAAMC,WAAW,GAAG3B,eAAe,CAAC4B,GAAhB,CAAqBF,IAAI,CAACG,EAA1B,CAApB;AACA,YAAMC,SAAS,GAAG;AACjBD,QAAAA,EAAE,EAAEH,IAAI,CAACG,EADQ;AAEjBE,QAAAA,KAAK,iBAAEL,IAAI,CAACM,KAAP,gDAAE,YAAYC,QAFF;AAGjBD,QAAAA,KAAK,kBAAEN,IAAI,CAACM,KAAP,iDAAE,aAAYC,QAHF;AAIjBC,QAAAA,IAAI,EAAER,IAAI,CAACS,GAJM;AAKjBR,QAAAA;AALiB,OAAlB;AAOA,UAAIS,IAAI,GAAG,IAAX;AACA,YAAMC,QAAQ,GAAGlB,YAAY,CAAEO,IAAI,CAACG,EAAP,CAA7B;AACAO,MAAAA,IAAI,GAAG,yBAAa,qBAAb,EAAoCN,SAApC,EAA+CO,QAA/C,CAAP;AACAZ,MAAAA,QAAQ,CAACa,IAAT,CAAeF,IAAf;AAEA,aAAOX,QAAP;AACA,KAfM,EAeJ,EAfI,CAAP;AAgBA,GAvBD;;AAyBA,QAAMc,aAAa,GAAG,YAA+B;AAAA,QAA7BnB,QAA6B,uEAAlB,CAAkB;AAAA,QAAfoB,KAAe,uEAAP,CAAO;AACpD,UAAMnB,UAAU,GAAGrB,eAAe,CAACsB,GAAhB,CAAqBF,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEE,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOF,UAAU,CAACG,MAAX,CAAmB,CAAEiB,IAAF,EAAQf,IAAR,KAAkB;AAC3C,YAAMC,WAAW,GAAG3B,eAAe,CAAC4B,GAAhB,CAAqBF,IAAI,CAACG,EAA1B,CAApB;AACA,YAAMO,IAAI,GAAG;AACZM,QAAAA,KAAK,EAAEhB,IAAI,CAACG,EADA;AAEZE,QAAAA,KAAK,EAAE,KAAKY,MAAL,CAAaH,KAAb,IAAuBd,IAAI,CAACM,KAAL,CAAWC,QAF7B;AAGZW,QAAAA,OAAO,EAAElB,IAAI,CAACM,KAAL,CAAWC;AAHR,OAAb;AAKAQ,MAAAA,IAAI,CAACH,IAAL,CAAWF,IAAX;;AACA,UAAKT,WAAL,EAAmB;AAClBc,QAAAA,IAAI,CAACH,IAAL,CAAW,GAAGC,aAAa,CAAEb,IAAI,CAACG,EAAP,EAAWW,KAAK,GAAG,CAAnB,CAA3B;AACA;;AACD,aAAOC,IAAP;AACA,KAZM,EAYJ,EAZI,CAAP;AAaA,GApBD;;AAsBA,QAAMI,SAAS,GAAG,sBAASN,aAAT,EAAwB,CAAEvC,eAAF,CAAxB,CAAlB;AAEA,QAAM8C,SAAS,GAAG,sBAAS3B,YAAT,EAAuB,CACxCnB,eADwC,EAExCH,YAFwC,CAAvB,CAAlB;AAKA,QAAMkD,gBAAgB,GAAG,sCAAqBlC,UAArB,EAAiC;AACzDmC,IAAAA,aAAa,EAAE,CAAE,qBAAF,CAD0C;AAEzDC,IAAAA,cAAc,EAAE,KAFyC;AAGzDC,IAAAA,yBAAyB,EAAE,IAH8B;AAIzDC,IAAAA,YAAY,EAAE;AAJ2C,GAAjC,CAAzB;;AAOA,QAAMC,eAAe,GAAG,MAAM;AAC7B,QAAK,CAAElD,gBAAP,EAA0B;AACzB,aACC,mCAAUW,UAAV,EACC,4BAAC,mBAAD,OADD,CADD;AAKA;;AAED,QAAKZ,UAAU,KAAK,IAApB,EAA2B;AAC1B,aACC,mCAAUY,UAAV,EACC,4BAAC,kBAAD;AAAQ,QAAA,MAAM,EAAG,SAAjB;AAA6B,QAAA,aAAa,EAAG;AAA7C,SACG,cAAI,mCAAJ,CADH,CADD,CADD;AAOA;;AAED,QAAKZ,UAAU,KAAK,CAApB,EAAwB;AACvB,aACC,mCAAUY,UAAV,EACC,4BAAC,kBAAD;AAAQ,QAAA,MAAM,EAAG,MAAjB;AAA0B,QAAA,aAAa,EAAG;AAA1C,SACG,cAAI,mCAAJ,CADH,CADD,CADD;AAOA;;AAED,QAAKiC,SAAS,CAACvB,MAAV,KAAqB,CAA1B,EAA8B;AAC7B,YAAM8B,iBAAiB,GACtBvD,KAAK,IAAIA,KAAK,CAACwD,IAAN,CAAc5B,IAAF,IAAYA,IAAI,CAACG,EAAL,KAAYhC,YAApC,CADV;AAEA,aACC,mCAAUgB,UAAV,EACC,4BAAC,oBAAD,QACG,oBACD;AACA,oBAAI,4BAAJ,CAFC,EAGDwC,iBAAiB,CAACrB,KAAlB,CAAwBC,QAHvB,CADH,CADD,CADD;AAWA;;AAED,QAAKhC,UAAU,GAAG,CAAlB,EAAsB;AACrB,aAAO,kCAAS8C,gBAAT,CAAP;AACA;AACD,GAhDD;;AAkDA,0BAAW,MAAM;AAChB1C,IAAAA,uCAAuC;;AACvC,QAAKyC,SAAL,EAAiB;AAChB1C,MAAAA,kBAAkB,CAAEV,QAAF,EAAYoD,SAAZ,CAAlB;AACA;AACD,GALD,EAKG,CAAEpD,QAAF,EAAYoD,SAAZ,CALH;AAOA,QAAM;AAAES,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAgC,uBAAalD,kBAAb,CAAtC;AAEA,QAAM;AAAEmD,IAAAA;AAAF,MAA6B,qBAAaC,MAAF,IAAc;AAC3D,UAAM;AAAEC,MAAAA,wBAAF;AAA4BC,MAAAA;AAA5B,QACLF,MAAM,CAAEpD,kBAAF,CADP;;AAGA,UAAMuD,sBAAsB,GAAGF,wBAAwB,EAAvD;;AAEA,WAAO;AACNF,MAAAA,sBAAsB,EAAEG,0BAA0B,CACjDC,sBADiD,EAEjD,iBAFiD,EAGjD,IAHiD,CAA1B,CAIrB,CAJqB;AADlB,KAAP;AAOA,GAbkC,EAahC,EAbgC,CAAnC;AAeA,SACC,qDACC,4BAAC,8BAAD,QACGtD,iBAAiB,IAAI,CAAAT,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEyB,MAAP,IAAgB,CAArC,IACD,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,qBAAJ;AAAnB,KACC,uCAAKuC,6BAAL,CADD,EAEC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,QAAQ,EAAG,CAAE5D,gBAFd;AAGC,IAAA,OAAO,EAAG,MAAM;AACf,YAAM6D,eAAe,GACpB,wDAA0BjE,KAA1B,CADD,CADe,CAIf;;AACAyD,MAAAA,YAAY,CAAE7D,QAAF,EAAYqE,eAAZ,CAAZ,CALe,CAOf;;AACAP,MAAAA,WAAW,CAAEC,sBAAF,CAAX;AACA;AAZF,KAcG,cAAI,WAAJ,CAdH,CAFD,CAFF,EAsBGZ,SAAS,CAACtB,MAAV,GAAmB,CAAnB,IACD,4BAAC,qBAAD,QACC,4BAAC,2BAAD;AACC,IAAA,SAAS,EAAC,gCADX;AAEC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAFT;AAGC,IAAA,KAAK,EAAG1B,YAHT;AAIC,IAAA,OAAO,EAAGgD,SAJX;AAKC,IAAA,QAAQ,EAAKH,KAAF,IACV9C,aAAa,CAAE;AAAEC,MAAAA,YAAY,EAAE6C,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAW;AAAzB,KAAF,CANf;AAQC,IAAA,IAAI,EAAG,cACN,0CADM;AARR,IADD,CAvBF,CADD,EAwCGlC,mBAAmB,IAAIP,UAAU,GAAG,CAApC,IACD,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,yBAAD;AAAe,IAAA,KAAK,EAAG,cAAI,MAAJ,CAAvB;AAAsC,IAAA,OAAO,EAAGU;AAAhD,KACG,cAAI,MAAJ,CADH,CADD,CAzCF,EA+CGH,mBAAmB,IAAIC,MAAvB,IACD,4BAAC,4BAAD;AACC,IAAA,OAAO,EAAGG,UADX;AAEC,IAAA,QAAQ,EAAGlB;AAFZ,IAhDF,EAsDG0D,eAAe,EAtDlB,CADD;AA0DA;;AAED,SAASrD,WAAT,GAAuB;AACtB,QAAM;AAAEiE,IAAAA,OAAO,EAAElE,KAAX;AAAkBmE,IAAAA,WAAW,EAAE/D;AAA/B,MAAoD,gCACzD,UADyD,EAEzD,MAFyD,EAGzD;AACCgE,IAAAA,OAAO,EAAE,YADV;AAECC,IAAAA,KAAK,EAAE,KAFR;AAGCC,IAAAA,OAAO,EAAE,CAAE,IAAF,EAAQ,MAAR,EAAgB,QAAhB,EAA0B,OAA1B,EAAmC,YAAnC,CAHV;AAICC,IAAAA,QAAQ,EAAE,CAAC,CAJZ;AAKC5E,IAAAA,OAAO,EAAE;AALV,GAHyD,CAA1D;AAYA,SAAO,CAAEK,KAAF,EAASI,gBAAT,CAAP;AACA;;AAED,SAASC,WAAT,GAAmC;AAAA,MAAbmE,MAAa,uEAAJ,CAAI;AAClC,QAAM,CAAExE,KAAF,EAASI,gBAAT,IAA8BH,WAAW,EAA/C;AAEA,SAAO,sBAAS,MAAM;AAAA;;AACrB;AACA;AACA;AAEA,UAAMwE,WAAW,GAAG,CAAE,IAAKzE,KAAL,aAAKA,KAAL,cAAKA,KAAL,GAAc,EAAd,CAAF,EAAuB0E,IAAvB,CAA6B,CAAEC,CAAF,EAAKC,CAAL,KAAY;AAC5D,UAAKD,CAAC,CAACE,UAAF,KAAiBD,CAAC,CAACC,UAAxB,EAAqC;AACpC,eAAOF,CAAC,CAACzC,KAAF,CAAQC,QAAR,CAAiB2C,aAAjB,CAAgCF,CAAC,CAAC1C,KAAF,CAAQC,QAAxC,CAAP;AACA;;AACD,aAAOwC,CAAC,CAACE,UAAF,GAAeD,CAAC,CAACC,UAAxB;AACA,KALmB,CAApB;AAMA,UAAM3E,eAAe,GAAGuE,WAAW,CAAC/C,MAAZ,CAAoB,CAAEqD,WAAF,EAAenD,IAAf,KAAyB;AACpE,YAAM;AAAEoD,QAAAA;AAAF,UAAapD,IAAnB;;AACA,UAAKmD,WAAW,CAACjD,GAAZ,CAAiBkD,MAAjB,CAAL,EAAiC;AAChCD,QAAAA,WAAW,CAACvD,GAAZ,CAAiBwD,MAAjB,EAA0BxC,IAA1B,CAAgCZ,IAAhC;AACA,OAFD,MAEO;AACNmD,QAAAA,WAAW,CAACE,GAAZ,CAAiBD,MAAjB,EAAyB,CAAEpD,IAAF,CAAzB;AACA;;AACD,aAAOmD,WAAP;AACA,KARuB,EAQrB,IAAIG,GAAJ,EARqB,CAAxB;AAUA,WAAO;AACNhF,MAAAA,eADM;AAENE,MAAAA,gBAFM;AAGND,MAAAA,UAAU,mBAAEH,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEyB,MAAT,yDAAmB;AAHvB,KAAP;AAKA,GA1BM,EA0BJ,CAAE+C,MAAF,EAAUxE,KAAV,EAAiBI,gBAAjB,CA1BI,CAAP;AA2BA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { convertToNavigationLinks } from './convert-to-navigation-links';\nimport { convertDescription } from './constants';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( {\n\tcontext,\n\tclientId,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { parentPageID } = attributes;\n\tconst [ pages ] = useGetPages();\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\tconst { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockList = ( parentId = parentPageID ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( template, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst pageProps = {\n\t\t\t\tid: page.id,\n\t\t\t\tlabel: page.title?.rendered,\n\t\t\t\ttitle: page.title?.rendered,\n\t\t\t\tlink: page.url,\n\t\t\t\thasChildren,\n\t\t\t};\n\t\t\tlet item = null;\n\t\t\tconst children = getBlockList( page.id );\n\t\t\titem = createBlock( 'core/page-list-item', pageProps, children );\n\t\t\ttemplate.push( item );\n\n\t\t\treturn template;\n\t\t}, [] );\n\t};\n\n\tconst makePagesTree = ( parentId = 0, level = 0 ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( tree, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst item = {\n\t\t\t\tvalue: page.id,\n\t\t\t\tlabel: '— '.repeat( level ) + page.title.rendered,\n\t\t\t\trawName: page.title.rendered,\n\t\t\t};\n\t\t\ttree.push( item );\n\t\t\tif ( hasChildren ) {\n\t\t\t\ttree.push( ...makePagesTree( page.id, level + 1 ) );\n\t\t\t}\n\t\t\treturn tree;\n\t\t}, [] );\n\t};\n\n\tconst pagesTree = useMemo( makePagesTree, [ pagesByParentId ] );\n\n\tconst blockList = useMemo( getBlockList, [\n\t\tpagesByParentId,\n\t\tparentPageID,\n\t] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/page-list-item' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t\ttemplateLock: 'all',\n\t} );\n\n\tconst getBlockContent = () => {\n\t\tif ( ! hasResolvedPages ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === null ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === 0 ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( blockList.length === 0 ) {\n\t\t\tconst parentPageDetails =\n\t\t\t\tpages && pages.find( ( page ) => page.id === parentPageID );\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Page title.\n\t\t\t\t\t\t\t__( '\"%s\" page has no children.' ),\n\t\t\t\t\t\t\tparentPageDetails.title.rendered\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages > 0 ) {\n\t\t\treturn <ul { ...innerBlocksProps }></ul>;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tif ( blockList ) {\n\t\t\treplaceInnerBlocks( clientId, blockList );\n\t\t}\n\t}, [ clientId, blockList ] );\n\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\n\tconst { parentNavBlockClientId } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientId, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tparentNavBlockClientId: getBlockParentsByBlockName(\n\t\t\t\t_selectedBlockClientId,\n\t\t\t\t'core/navigation',\n\t\t\t\ttrue\n\t\t\t)[ 0 ],\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ isNavigationChild && pages?.length > 0 && (\n\t\t\t\t\t<PanelBody title={ __( 'Customize this menu' ) }>\n\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst navigationLinks =\n\t\t\t\t\t\t\t\t\tconvertToNavigationLinks( pages );\n\n\t\t\t\t\t\t\t\t// Replace the Page List block with the Navigation Links.\n\t\t\t\t\t\t\t\treplaceBlock( clientId, navigationLinks );\n\n\t\t\t\t\t\t\t\t// Select the Navigation block to reveal the changes.\n\t\t\t\t\t\t\t\tselectBlock( parentNavBlockClientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Customize' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\tlabel={ __( 'Parent page' ) }\n\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: value ?? 0 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Choose a page to show only its subpages.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ allowConvertToLinks && totalPages > 0 && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ getBlockContent() }\n\t\t</>\n\t);\n}\n\nfunction useGetPages() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn [ pages, hasResolvedPages ];\n}\n\nfunction usePageData( pageId = 0 ) {\n\tconst [ pages, hasResolvedPages ] = useGetPages();\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pageId, pages, hasResolvedPages ] );\n}\n"]}
|
package/build/page-list/index.js
CHANGED
|
@@ -29,7 +29,12 @@ const metadata = {
|
|
|
29
29
|
description: "Display a list of all pages.",
|
|
30
30
|
keywords: ["menu", "navigation"],
|
|
31
31
|
textdomain: "default",
|
|
32
|
-
attributes: {
|
|
32
|
+
attributes: {
|
|
33
|
+
parentPageID: {
|
|
34
|
+
type: "integer",
|
|
35
|
+
"default": 0
|
|
36
|
+
}
|
|
37
|
+
},
|
|
33
38
|
usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
|
|
34
39
|
supports: {
|
|
35
40
|
reusable: false,
|