@wordpress/block-library 8.1.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/LICENSE.md +1 -1
- package/babel-plugin.js +1 -1
- package/build/archives/edit.js +1 -0
- package/build/archives/edit.js.map +1 -1
- package/build/archives/index.js +1 -0
- package/build/archives/index.js.map +1 -1
- package/build/audio/edit.js +2 -0
- package/build/audio/edit.js.map +1 -1
- package/build/avatar/index.js +1 -0
- package/build/avatar/index.js.map +1 -1
- package/build/block/edit.js +1 -0
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +2 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +1 -0
- package/build/button/index.js.map +1 -1
- package/build/buttons/edit.js +0 -2
- package/build/buttons/edit.js.map +1 -1
- package/build/calendar/index.js +1 -0
- package/build/calendar/index.js.map +1 -1
- package/build/categories/edit.js +3 -3
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +1 -0
- package/build/categories/index.js.map +1 -1
- package/build/column/edit.native.js +2 -1
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/deprecated.js +1 -1
- package/build/columns/deprecated.js.map +1 -1
- package/build/comment-author-avatar/index.js +1 -0
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-author-name/index.js +1 -0
- package/build/comment-author-name/index.js.map +1 -1
- package/build/comment-content/index.js +1 -0
- package/build/comment-content/index.js.map +1 -1
- package/build/comment-date/index.js +1 -0
- package/build/comment-date/index.js.map +1 -1
- package/build/comment-edit-link/index.js +1 -0
- package/build/comment-edit-link/index.js.map +1 -1
- package/build/comment-reply-link/index.js +1 -0
- package/build/comment-reply-link/index.js.map +1 -1
- package/build/comment-template/index.js +1 -0
- package/build/comment-template/index.js.map +1 -1
- package/build/comments/edit/comments-inspector-controls.js +10 -4
- package/build/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build/comments/index.js +2 -1
- package/build/comments/index.js.map +1 -1
- package/build/comments-pagination/comments-pagination-arrow-controls.js +1 -0
- package/build/comments-pagination/comments-pagination-arrow-controls.js.map +1 -1
- package/build/comments-pagination/edit.js +3 -14
- package/build/comments-pagination/edit.js.map +1 -1
- package/build/comments-pagination/index.js +1 -0
- package/build/comments-pagination/index.js.map +1 -1
- package/build/comments-pagination-next/index.js +1 -0
- package/build/comments-pagination-next/index.js.map +1 -1
- package/build/comments-pagination-numbers/index.js +1 -0
- package/build/comments-pagination-numbers/index.js.map +1 -1
- package/build/comments-pagination-previous/index.js +1 -0
- package/build/comments-pagination-previous/index.js.map +1 -1
- package/build/cover/deprecated.js +153 -30
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/index.js +4 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +45 -4
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +0 -4
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/index.js +4 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/save.js +3 -2
- package/build/cover/save.js.map +1 -1
- package/build/embed/embed-preview.js +1 -0
- package/build/embed/embed-preview.js.map +1 -1
- package/build/embed/variations.js +1 -1
- package/build/embed/variations.js.map +1 -1
- package/build/experiments.js +19 -0
- package/build/experiments.js.map +1 -0
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/gallery/deprecated.js +6 -4
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit.js +50 -7
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +9 -34
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/v1/edit.js +7 -5
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/group/deprecated.js +1 -1
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +2 -2
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -0
- package/build/group/index.js.map +1 -1
- package/build/heading/index.js +1 -7
- package/build/heading/index.js.map +1 -1
- package/build/home-link/index.js +1 -0
- package/build/home-link/index.js.map +1 -1
- package/build/image/edit.native.js +2 -2
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +18 -25
- package/build/image/image.js.map +1 -1
- package/build/latest-comments/index.js +1 -0
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-posts/deprecated.js +1 -0
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/edit.js +11 -8
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/index.js +1 -0
- package/build/latest-posts/index.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -0
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/loginout/index.js +1 -0
- package/build/loginout/index.js.map +1 -1
- package/build/media-text/edit.js +2 -4
- package/build/media-text/edit.js.map +1 -1
- package/build/missing/edit.native.js +4 -4
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +31 -0
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -0
- package/build/navigation/edit/index.js +25 -14
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +0 -5
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/manage-menus-button.js +9 -2
- package/build/navigation/edit/manage-menus-button.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +54 -35
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +0 -1
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/navigation-menu-name-control.js +1 -0
- package/build/navigation/edit/navigation-menu-name-control.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +15 -54
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/overlay-menu-preview.js +1 -0
- package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +1 -6
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/index.js +5 -0
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/leaf-more-menu.js +95 -0
- package/build/navigation/leaf-more-menu.js.map +1 -0
- package/build/navigation/menu-items-to-blocks.js +0 -2
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation-link/edit.js +23 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/update-attributes.js +3 -3
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +4 -0
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/navigation-submenu/index.js +13 -3
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/page-list/edit.js +153 -132
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +2 -11
- package/build/page-list/index.js.map +1 -1
- package/build/page-list/{convert-to-navigation-links.js → use-convert-to-navigation-links.js} +41 -9
- package/build/page-list/use-convert-to-navigation-links.js.map +1 -0
- package/build/page-list-item/edit.js +4 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/page-list-item/index.js +3 -2
- package/build/page-list-item/index.js.map +1 -1
- package/build/paragraph/edit.js +1 -1
- package/build/paragraph/edit.js.map +1 -1
- package/build/paragraph/index.js +1 -7
- package/build/paragraph/index.js.map +1 -1
- package/build/post-author/edit.js +2 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author/index.js +1 -0
- package/build/post-author/index.js.map +1 -1
- package/build/post-author-biography/index.js +1 -0
- package/build/post-author-biography/index.js.map +1 -1
- package/build/post-author-name/index.js +1 -1
- package/build/post-comment/edit.js +1 -0
- package/build/post-comment/edit.js.map +1 -1
- package/build/post-comments-count/index.js +1 -0
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-form/index.js +1 -0
- package/build/post-comments-form/index.js.map +1 -1
- package/build/post-comments-link/index.js +1 -0
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-content/edit.js +1 -20
- package/build/post-content/edit.js.map +1 -1
- package/build/post-content/index.js +1 -0
- package/build/post-content/index.js.map +1 -1
- package/build/post-date/index.js +1 -0
- package/build/post-date/index.js.map +1 -1
- package/build/post-excerpt/edit.js +6 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-excerpt/index.js +1 -0
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +3 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +39 -22
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +1 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/overlay.js +1 -1
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-navigation-link/edit.js +1 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-navigation-link/index.js +1 -0
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-template/edit.js +6 -4
- package/build/post-template/edit.js.map +1 -1
- package/build/post-template/index.js +1 -0
- package/build/post-template/index.js.map +1 -1
- package/build/post-terms/edit.js +5 -4
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/index.js +1 -0
- package/build/post-terms/index.js.map +1 -1
- package/build/post-title/edit.js +1 -0
- package/build/post-title/edit.js.map +1 -1
- package/build/post-title/index.js +1 -0
- package/build/post-title/index.js.map +1 -1
- package/build/query/deprecated.js +90 -1
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/index.js +2 -50
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +2 -0
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +1 -0
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js +88 -0
- package/build/query/edit/pattern-selection-modal.js.map +1 -0
- package/build/query/edit/query-content.js +11 -25
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +2 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/edit/query-toolbar.js +6 -11
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build/query/index.js +1 -0
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +25 -3
- package/build/query/utils.js.map +1 -1
- package/build/query-no-results/index.js +1 -0
- package/build/query-no-results/index.js.map +1 -1
- package/build/query-pagination/edit.js +3 -14
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-pagination/index.js +1 -0
- package/build/query-pagination/index.js.map +1 -1
- package/build/query-pagination/query-pagination-arrow-controls.js +1 -0
- package/build/query-pagination/query-pagination-arrow-controls.js.map +1 -1
- package/build/query-pagination-next/index.js +1 -0
- package/build/query-pagination-next/index.js.map +1 -1
- package/build/query-pagination-numbers/index.js +1 -0
- package/build/query-pagination-numbers/index.js.map +1 -1
- package/build/query-pagination-previous/index.js +1 -0
- package/build/query-pagination-previous/index.js.map +1 -1
- package/build/query-title/index.js +1 -0
- package/build/query-title/index.js.map +1 -1
- package/build/read-more/index.js +1 -0
- package/build/read-more/index.js.map +1 -1
- package/build/rss/edit.js +5 -2
- package/build/rss/edit.js.map +1 -1
- package/build/rss/index.js +1 -0
- package/build/rss/index.js.map +1 -1
- package/build/search/index.js +1 -0
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +9 -13
- 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-tagline/index.js +1 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/index.js +1 -0
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/edit.js +5 -2
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/index.js +1 -0
- package/build/social-link/index.js.map +1 -1
- package/build/social-links/edit.js +3 -14
- package/build/social-links/edit.js.map +1 -1
- package/build/table/edit.js +10 -5
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +15 -0
- 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 +1 -1
- package/build/table/state.js.map +1 -1
- package/build/table/transforms.js +47 -3
- package/build/table/transforms.js.map +1 -1
- package/build/table/utils.js +26 -0
- package/build/table/utils.js.map +1 -0
- package/build/tag-cloud/edit.js +4 -9
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/tag-cloud/index.js +1 -0
- package/build/tag-cloud/index.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js +14 -2
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +0 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +3 -3
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/title-modal.js +6 -5
- package/build/template-part/edit/title-modal.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/template-part/index.js +1 -0
- package/build/template-part/index.js.map +1 -1
- package/build/term-description/index.js +1 -0
- package/build/term-description/index.js.map +1 -1
- package/build/utils/init-block.js +1 -1
- package/build/utils/init-block.js.map +1 -1
- package/build/utils/init-block.native.js +1 -1
- package/build/utils/init-block.native.js.map +1 -1
- package/build/{template-part/edit/utils/search.js → utils/search-patterns.js} +3 -1
- package/build/utils/search-patterns.js.map +1 -0
- package/build/video/edit-common-settings.js +6 -5
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +1 -0
- package/build/video/edit.js.map +1 -1
- package/build/video/tracks-editor.js +18 -11
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/edit.js +1 -0
- package/build-module/archives/edit.js.map +1 -1
- package/build-module/archives/index.js +1 -0
- package/build-module/archives/index.js.map +1 -1
- package/build-module/audio/edit.js +2 -0
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/avatar/index.js +1 -0
- package/build-module/avatar/index.js.map +1 -1
- package/build-module/block/edit.js +1 -0
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +2 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +1 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/buttons/edit.js +0 -2
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/calendar/index.js +1 -0
- package/build-module/calendar/index.js.map +1 -1
- package/build-module/categories/edit.js +2 -2
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +1 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/column/edit.native.js +2 -1
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/deprecated.js +1 -1
- package/build-module/columns/deprecated.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +1 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-author-name/index.js +1 -0
- package/build-module/comment-author-name/index.js.map +1 -1
- package/build-module/comment-content/index.js +1 -0
- package/build-module/comment-content/index.js.map +1 -1
- package/build-module/comment-date/index.js +1 -0
- package/build-module/comment-date/index.js.map +1 -1
- package/build-module/comment-edit-link/index.js +1 -0
- package/build-module/comment-edit-link/index.js.map +1 -1
- package/build-module/comment-reply-link/index.js +1 -0
- package/build-module/comment-reply-link/index.js.map +1 -1
- package/build-module/comment-template/index.js +1 -0
- package/build-module/comment-template/index.js.map +1 -1
- package/build-module/comments/edit/comments-inspector-controls.js +10 -4
- package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/comments/index.js +2 -1
- package/build-module/comments/index.js.map +1 -1
- package/build-module/comments-pagination/comments-pagination-arrow-controls.js +1 -0
- package/build-module/comments-pagination/comments-pagination-arrow-controls.js.map +1 -1
- package/build-module/comments-pagination/edit.js +3 -14
- package/build-module/comments-pagination/edit.js.map +1 -1
- package/build-module/comments-pagination/index.js +1 -0
- package/build-module/comments-pagination/index.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +1 -0
- package/build-module/comments-pagination-next/index.js.map +1 -1
- package/build-module/comments-pagination-numbers/index.js +1 -0
- package/build-module/comments-pagination-numbers/index.js.map +1 -1
- package/build-module/comments-pagination-previous/index.js +1 -0
- package/build-module/comments-pagination-previous/index.js.map +1 -1
- package/build-module/cover/deprecated.js +155 -31
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/index.js +4 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +46 -5
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit.native.js +0 -4
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/index.js +4 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/save.js +3 -2
- package/build-module/cover/save.js.map +1 -1
- package/build-module/embed/embed-preview.js +1 -0
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/embed/variations.js +1 -1
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/experiments.js +9 -0
- package/build-module/experiments.js.map +1 -0
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/gallery/deprecated.js +6 -3
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/edit.js +52 -10
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +10 -35
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/v1/edit.js +8 -6
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/group/deprecated.js +1 -1
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/edit.js +2 -2
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/index.js +1 -6
- package/build-module/heading/index.js.map +1 -1
- package/build-module/home-link/index.js +1 -0
- package/build-module/home-link/index.js.map +1 -1
- package/build-module/image/edit.native.js +2 -2
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +20 -27
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-comments/index.js +1 -0
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +1 -0
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/edit.js +12 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/index.js +1 -0
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -0
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/loginout/index.js +1 -0
- package/build-module/loginout/index.js.map +1 -1
- package/build-module/media-text/edit.js +2 -3
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/missing/edit.native.js +4 -4
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js +21 -0
- package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -0
- package/build-module/navigation/edit/index.js +24 -14
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +0 -5
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/manage-menus-button.js +10 -3
- package/build-module/navigation/edit/manage-menus-button.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +53 -38
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +0 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-name-control.js +1 -0
- package/build-module/navigation/edit/navigation-menu-name-control.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +17 -56
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
- package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +1 -6
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/index.js +5 -0
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/leaf-more-menu.js +76 -0
- package/build-module/navigation/leaf-more-menu.js.map +1 -0
- package/build-module/navigation/menu-items-to-blocks.js +0 -2
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation-link/edit.js +22 -10
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +3 -3
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +4 -0
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/navigation-submenu/index.js +14 -4
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/page-list/edit.js +155 -132
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +3 -12
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list/{convert-to-navigation-links.js → use-convert-to-navigation-links.js} +37 -7
- package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -0
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/page-list-item/index.js +3 -2
- package/build-module/page-list-item/index.js.map +1 -1
- package/build-module/paragraph/edit.js +1 -1
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/paragraph/index.js +1 -6
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/post-author/edit.js +2 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author/index.js +1 -0
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-author-biography/index.js +1 -0
- package/build-module/post-author-biography/index.js.map +1 -1
- package/build-module/post-author-name/index.js +1 -1
- package/build-module/post-comment/edit.js +1 -0
- package/build-module/post-comment/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +1 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-form/index.js +1 -0
- package/build-module/post-comments-form/index.js.map +1 -1
- package/build-module/post-comments-link/index.js +1 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-content/edit.js +2 -20
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-content/index.js +1 -0
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/post-date/index.js +1 -0
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-excerpt/edit.js +6 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-excerpt/index.js +1 -0
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +3 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +39 -22
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +1 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +1 -1
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +1 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-navigation-link/index.js +1 -0
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-template/edit.js +6 -4
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-template/index.js +1 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/post-terms/edit.js +4 -3
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/index.js +1 -0
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-title/edit.js +1 -0
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/post-title/index.js +1 -0
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/query/deprecated.js +87 -1
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/index.js +4 -50
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +2 -0
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/order-control.js +1 -0
- package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js +75 -0
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -0
- package/build-module/query/edit/query-content.js +12 -26
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +2 -2
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/edit/query-toolbar.js +6 -10
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-module/query/index.js +1 -0
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +21 -2
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-no-results/index.js +1 -0
- package/build-module/query-no-results/index.js.map +1 -1
- package/build-module/query-pagination/edit.js +3 -14
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-pagination/index.js +1 -0
- package/build-module/query-pagination/index.js.map +1 -1
- package/build-module/query-pagination/query-pagination-arrow-controls.js +1 -0
- package/build-module/query-pagination/query-pagination-arrow-controls.js.map +1 -1
- package/build-module/query-pagination-next/index.js +1 -0
- package/build-module/query-pagination-next/index.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +1 -0
- package/build-module/query-pagination-numbers/index.js.map +1 -1
- package/build-module/query-pagination-previous/index.js +1 -0
- package/build-module/query-pagination-previous/index.js.map +1 -1
- package/build-module/query-title/index.js +1 -0
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/read-more/index.js +1 -0
- package/build-module/read-more/index.js.map +1 -1
- package/build-module/rss/edit.js +6 -3
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/rss/index.js +1 -0
- package/build-module/rss/index.js.map +1 -1
- package/build-module/search/index.js +1 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +10 -14
- 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-tagline/index.js +1 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/index.js +1 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/edit.js +5 -2
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/index.js +1 -0
- package/build-module/social-link/index.js.map +1 -1
- package/build-module/social-links/edit.js +3 -14
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table/edit.js +10 -5
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +15 -0
- 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 +1 -1
- package/build-module/table/state.js.map +1 -1
- package/build-module/table/transforms.js +46 -3
- package/build-module/table/transforms.js.map +1 -1
- package/build-module/table/utils.js +19 -0
- package/build-module/table/utils.js.map +1 -0
- package/build-module/tag-cloud/edit.js +5 -9
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/tag-cloud/index.js +1 -0
- package/build-module/tag-cloud/index.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js +14 -2
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +0 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +1 -1
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/title-modal.js +7 -6
- package/build-module/template-part/edit/title-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +2 -2
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/template-part/index.js +1 -0
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/term-description/index.js +1 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/utils/init-block.js +1 -1
- package/build-module/utils/init-block.js.map +1 -1
- package/build-module/utils/init-block.native.js +1 -1
- package/build-module/utils/init-block.native.js.map +1 -1
- package/build-module/{template-part/edit/utils/search.js → utils/search-patterns.js} +3 -5
- package/build-module/utils/search-patterns.js.map +1 -0
- package/build-module/video/edit-common-settings.js +6 -5
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +1 -0
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/tracks-editor.js +19 -12
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/editor-rtl.css +14 -67
- package/build-style/editor.css +14 -67
- package/build-style/query/editor-rtl.css +11 -14
- package/build-style/query/editor.css +11 -14
- package/build-style/rss/editor-rtl.css +3 -16
- package/build-style/rss/editor.css +3 -16
- package/build-style/table/editor-rtl.css +0 -3
- package/build-style/table/editor.css +0 -3
- package/build-style/video/editor-rtl.css +0 -34
- package/build-style/video/editor.css +0 -34
- package/package.json +30 -29
- package/src/archives/block.json +1 -0
- package/src/archives/edit.js +1 -0
- package/src/audio/edit.js +2 -0
- package/src/avatar/block.json +1 -0
- package/src/block/edit.js +1 -0
- package/src/button/block.json +1 -0
- package/src/button/edit.js +2 -1
- package/src/buttons/edit.js +2 -2
- package/src/calendar/block.json +1 -0
- package/src/calendar/index.php +3 -1
- package/src/categories/block.json +1 -0
- package/src/categories/edit.js +2 -2
- package/src/column/edit.native.js +6 -1
- package/src/columns/deprecated.js +1 -1
- package/src/comment-author-avatar/block.json +1 -0
- package/src/comment-author-name/block.json +1 -0
- package/src/comment-author-name/index.php +6 -3
- package/src/comment-content/block.json +1 -0
- package/src/comment-content/index.php +6 -3
- package/src/comment-date/block.json +1 -0
- package/src/comment-date/index.php +1 -1
- package/src/comment-edit-link/block.json +1 -0
- package/src/comment-edit-link/index.php +6 -3
- package/src/comment-reply-link/block.json +1 -0
- package/src/comment-reply-link/index.php +6 -3
- package/src/comment-template/block.json +1 -0
- package/src/comments/block.json +2 -1
- package/src/comments/edit/comments-inspector-controls.js +13 -3
- package/src/comments-pagination/block.json +1 -0
- package/src/comments-pagination/comments-pagination-arrow-controls.js +1 -0
- package/src/comments-pagination/edit.js +1 -13
- package/src/comments-pagination/index.php +4 -1
- package/src/comments-pagination-next/block.json +1 -0
- package/src/comments-pagination-numbers/block.json +1 -0
- package/src/comments-pagination-previous/block.json +1 -0
- package/src/cover/block.json +4 -0
- package/src/cover/deprecated.js +173 -6
- package/src/cover/edit/index.js +5 -4
- package/src/cover/edit/inspector-controls.js +45 -2
- package/src/cover/edit.native.js +0 -3
- package/src/cover/save.js +3 -2
- package/src/embed/embed-preview.js +1 -0
- package/src/embed/variations.js +1 -1
- package/src/experiments.js +10 -0
- package/src/file/inspector.js +1 -0
- package/src/gallery/deprecated.js +2 -3
- package/src/gallery/edit.js +68 -5
- package/src/gallery/gallery.js +27 -43
- package/src/gallery/v1/edit.js +10 -9
- package/src/group/block.json +3 -0
- package/src/group/deprecated.js +3 -1
- package/src/group/edit.js +2 -2
- package/src/heading/index.js +1 -6
- package/src/home-link/block.json +1 -0
- package/src/image/edit.native.js +2 -3
- package/src/image/image.js +43 -58
- package/src/latest-comments/block.json +1 -0
- package/src/latest-posts/block.json +1 -0
- package/src/latest-posts/edit.js +6 -7
- package/src/latest-posts/index.php +9 -10
- package/src/list/ordered-list-settings.js +1 -0
- package/src/loginout/block.json +1 -0
- package/src/media-text/edit.js +3 -7
- package/src/missing/edit.native.js +3 -4
- package/src/missing/test/edit.native.js +2 -2
- package/src/navigation/block.json +2 -0
- package/src/navigation/edit/deleted-navigation-warning.js +19 -0
- package/src/navigation/edit/index.js +25 -24
- package/src/navigation/edit/inner-blocks.js +0 -6
- package/src/navigation/edit/manage-menus-button.js +24 -13
- package/src/navigation/edit/menu-inspector-controls.js +71 -76
- package/src/navigation/edit/navigation-menu-delete-control.js +0 -1
- package/src/navigation/edit/navigation-menu-name-control.js +1 -0
- package/src/navigation/edit/navigation-menu-selector.js +17 -79
- package/src/navigation/edit/overlay-menu-preview.js +1 -0
- package/src/navigation/edit/placeholder/index.js +0 -6
- package/src/navigation/index.js +3 -0
- package/src/navigation/index.php +25 -7
- package/src/navigation/leaf-more-menu.js +93 -0
- package/src/navigation/menu-items-to-blocks.js +0 -2
- package/src/navigation-link/edit.js +34 -14
- package/src/navigation-link/index.php +28 -33
- package/src/navigation-link/update-attributes.js +1 -1
- package/src/navigation-submenu/edit.js +4 -0
- package/src/navigation-submenu/index.js +8 -2
- package/src/navigation-submenu/index.php +0 -32
- package/src/page-list/block.json +1 -0
- package/src/page-list/edit.js +196 -161
- package/src/page-list/index.js +2 -8
- package/src/page-list/index.php +5 -0
- package/src/page-list/test/convert-to-links-modal.js +1 -1
- package/src/page-list/{convert-to-navigation-links.js → use-convert-to-navigation-links.js} +36 -6
- package/src/page-list-item/block.json +2 -1
- package/src/page-list-item/edit.js +3 -2
- package/src/page-list-item/index.js +1 -1
- package/src/paragraph/edit.js +1 -1
- package/src/paragraph/index.js +1 -6
- package/src/post-author/block.json +1 -0
- package/src/post-author/edit.js +2 -0
- package/src/post-author/index.php +10 -4
- package/src/post-author-biography/block.json +1 -0
- package/src/post-author-name/block.json +1 -1
- package/src/post-author-name/index.php +9 -4
- package/src/post-comment/edit.js +1 -0
- package/src/post-comments-count/block.json +1 -0
- package/src/post-comments-form/block.json +1 -0
- package/src/post-comments-form/index.php +6 -4
- package/src/post-comments-link/block.json +1 -0
- package/src/post-comments-link/index.php +8 -2
- package/src/post-content/block.json +1 -0
- package/src/post-content/edit.js +2 -13
- package/src/post-date/block.json +1 -0
- package/src/post-date/index.php +10 -3
- package/src/post-excerpt/block.json +1 -0
- package/src/post-excerpt/edit.js +22 -12
- package/src/post-excerpt/index.php +6 -3
- package/src/post-featured-image/block.json +1 -0
- package/src/post-featured-image/dimension-controls.js +3 -1
- package/src/post-featured-image/edit.js +46 -27
- package/src/post-featured-image/index.php +19 -6
- package/src/post-featured-image/overlay.js +1 -1
- package/src/post-navigation-link/block.json +1 -0
- package/src/post-navigation-link/edit.js +1 -0
- package/src/post-template/block.json +1 -0
- package/src/post-template/edit.js +4 -3
- package/src/post-template/index.php +4 -1
- package/src/post-terms/block.json +1 -0
- package/src/post-terms/edit.js +4 -3
- package/src/post-terms/index.php +6 -3
- package/src/post-title/block.json +1 -0
- package/src/post-title/edit.js +1 -0
- package/src/post-title/index.php +10 -4
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -2
- package/src/query/block.json +1 -0
- package/src/query/deprecated.js +77 -1
- package/src/query/edit/index.js +4 -60
- package/src/query/edit/inspector-controls/index.js +2 -0
- package/src/query/edit/inspector-controls/order-control.js +1 -0
- package/src/query/edit/inspector-controls/sticky-control.js +1 -0
- package/src/query/edit/pattern-selection-modal.js +86 -0
- package/src/query/edit/query-content.js +14 -12
- package/src/query/edit/query-placeholder.js +4 -8
- package/src/query/edit/query-toolbar.js +6 -16
- package/src/query/editor.scss +21 -19
- package/src/query/utils.js +22 -8
- package/src/query-no-results/block.json +1 -0
- package/src/query-no-results/index.php +3 -1
- package/src/query-pagination/block.json +1 -0
- package/src/query-pagination/edit.js +1 -13
- package/src/query-pagination/index.php +2 -0
- package/src/query-pagination/query-pagination-arrow-controls.js +1 -0
- package/src/query-pagination-next/block.json +1 -0
- package/src/query-pagination-numbers/block.json +1 -0
- package/src/query-pagination-previous/block.json +1 -0
- package/src/query-title/block.json +1 -0
- package/src/read-more/block.json +1 -0
- package/src/rss/block.json +1 -0
- package/src/rss/edit.js +16 -12
- package/src/rss/editor.scss +4 -15
- package/src/rss/index.php +1 -1
- package/src/search/block.json +1 -0
- package/src/search/index.php +2 -2
- package/src/site-logo/block.json +1 -0
- package/src/site-logo/edit.js +9 -16
- package/src/site-tagline/block.json +1 -0
- package/src/site-title/block.json +1 -0
- package/src/site-title/index.php +6 -3
- package/src/social-link/block.json +1 -0
- package/src/social-link/edit.js +5 -2
- package/src/social-links/edit.js +1 -14
- package/src/table/block.json +15 -0
- package/src/table/edit.js +39 -26
- package/src/table/editor.scss +0 -6
- package/src/table/save.js +9 -1
- package/src/table/state.js +1 -1
- package/src/table/test/utils.js +20 -0
- package/src/table/transforms.js +65 -2
- package/src/table/utils.js +18 -0
- package/src/tag-cloud/block.json +1 -0
- package/src/tag-cloud/edit.js +13 -15
- package/src/template-part/block.json +1 -0
- package/src/template-part/edit/advanced-controls.js +26 -1
- package/src/template-part/edit/index.js +0 -1
- package/src/template-part/edit/selection-modal.js +1 -1
- package/src/template-part/edit/title-modal.js +12 -15
- package/src/template-part/edit/utils/hooks.js +3 -8
- package/src/template-part/index.php +19 -7
- package/src/term-description/block.json +1 -0
- package/src/term-description/index.php +8 -4
- package/src/utils/init-block.js +1 -1
- package/src/utils/init-block.native.js +1 -1
- package/src/{template-part/edit/utils/search.js → utils/search-patterns.js} +2 -2
- package/src/utils/test/search-patterns.js +58 -0
- package/src/video/edit-common-settings.js +6 -5
- package/src/video/edit.js +1 -0
- package/src/video/editor.scss +0 -35
- package/src/video/tracks-editor.js +65 -50
- package/build/page-list/constants.js +0 -15
- package/build/page-list/constants.js.map +0 -1
- package/build/page-list/convert-to-links-modal.js +0 -83
- package/build/page-list/convert-to-links-modal.js.map +0 -1
- package/build/page-list/convert-to-navigation-links.js.map +0 -1
- package/build/template-part/edit/utils/search.js.map +0 -1
- package/build-module/page-list/constants.js +0 -6
- package/build-module/page-list/constants.js.map +0 -1
- package/build-module/page-list/convert-to-links-modal.js +0 -68
- package/build-module/page-list/convert-to-links-modal.js.map +0 -1
- package/build-module/page-list/convert-to-navigation-links.js.map +0 -1
- package/build-module/template-part/edit/utils/search.js.map +0 -1
- package/src/page-list/constants.js +0 -8
- package/src/page-list/convert-to-links-modal.js +0 -70
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","useIsInvalidLink","kind","type","id","isPostType","hasId","Number","isInteger","postStatus","select","getEntityRecord","coreStore","status","isInvalid","isDraft","getMissingText","missingText","NavigationLinkEdit","attributes","isSelected","setAttributes","insertBlocksAfter","mergeBlocks","onReplace","context","clientId","label","url","description","rel","title","maxNestingLevel","replaceBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isLinkOpen","setIsLinkOpen","popoverAnchor","setPopoverAnchor","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","getBlocks","getBlockCount","getBlockName","getBlockRootClientId","hasSelectedInnerBlock","getBlockParentsByBlockName","name","length","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","userCanCreate","canCreate","textColor","customTextColor","backgroundColor","customBackgroundColor","onKeyDown","isKeyboardEvent","primary","keyCode","ENTER","blockProps","className","style","color","ALLOWED_BLOCKS","DEFAULT_BLOCK","innerBlocksProps","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","onClick","classes","placeholderText","tooltipText","linkIcon","displayShortcut","addSubmenu","labelValue","urlValue","descriptionValue","titleValue","relValue","enter","trim","updatedValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { unescape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport {\n\tplaceCaretAtHorizontalEdge,\n\t__unstableStripHTML as stripHTML,\n} from '@wordpress/dom';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\nimport { LinkUI } from './link-ui';\nimport { updateAttributes } from './update-attributes';\nimport { getColors } from '../navigation/edit/utils';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nfunction getMissingText( type ) {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { id, label, type, url, description, rel, title, kind } = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst { replaceBlock, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add label…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks.length > 0\n\t\t\t\t? innerBlocks\n\t\t\t\t: [ createBlock( 'core/navigation-link' ) ]\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [ hasChildren ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\tlabel: '',\n\t\t\tid: '',\n\t\t\tkind: '',\n\t\t\ttype: '',\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tconst ALLOWED_BLOCKS = [\n\t\t'core/navigation-link',\n\t\t'core/navigation-submenu',\n\t\t'core/page-list',\n\t];\n\tconst DEFAULT_BLOCK = {\n\t\tname: 'core/navigation-link',\n\t};\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: true,\n\t\trenderAppender: false,\n\t} );\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-submenu/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ label ? stripHTML( label ) : '' }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t\t\t\t\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// See `updateAttributes` for more details.\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ unescape(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t) } ${ placeholderText }`.trim()\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\thasCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","useIsInvalidLink","kind","type","id","isPostType","hasId","Number","isInteger","postStatus","select","getEntityRecord","coreStore","status","isInvalid","isDraft","getMissingText","missingText","NavigationLinkEdit","attributes","isSelected","setAttributes","insertBlocksAfter","mergeBlocks","onReplace","context","clientId","label","url","description","rel","title","maxNestingLevel","replaceBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isLinkOpen","setIsLinkOpen","popoverAnchor","setPopoverAnchor","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","getBlocks","getBlockCount","getBlockName","getBlockRootClientId","hasSelectedInnerBlock","getBlockParentsByBlockName","name","length","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","undefined","opensInNewTab","userCanCreate","canCreate","textColor","customTextColor","backgroundColor","customBackgroundColor","onKeyDown","isKeyboardEvent","primary","keyCode","ENTER","blockProps","className","style","color","ALLOWED_BLOCKS","DEFAULT_BLOCK","innerBlocksProps","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","onClick","classes","placeholderText","tooltipText","linkIcon","displayShortcut","addSubmenu","labelValue","urlValue","descriptionValue","titleValue","relValue","enter","trim","updatedValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport {\n\tplaceCaretAtHorizontalEdge,\n\t__unstableStripHTML as stripHTML,\n} from '@wordpress/dom';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\nimport { LinkUI } from './link-ui';\nimport { updateAttributes } from './update-attributes';\nimport { getColors } from '../navigation/edit/utils';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nfunction getMissingText( type ) {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { id, label, type, url, description, rel, title, kind } = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst { replaceBlock, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add label…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks.length > 0\n\t\t\t\t? innerBlocks\n\t\t\t\t: [ createBlock( 'core/navigation-link' ) ]\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [ hasChildren ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\t// It is critical that all attributes are reset\n\t\t// to their default values otherwise this may\n\t\t// in advertently trigger side effects because\n\t\t// the values will have \"changed\".\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlabel: undefined,\n\t\t\tid: undefined,\n\t\t\tkind: undefined,\n\t\t\ttype: undefined,\n\t\t\topensInNewTab: false,\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tconst ALLOWED_BLOCKS = [\n\t\t'core/navigation-link',\n\t\t'core/navigation-submenu',\n\t\t'core/page-list',\n\t];\n\tconst DEFAULT_BLOCK = {\n\t\tname: 'core/navigation-link',\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\t...blockProps,\n\t\t\tclassName: 'remove-outline', // Remove the outline from the inner blocks container.\n\t\t},\n\t\t{\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: true,\n\t\t\trenderAppender: false,\n\t\t}\n\t);\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-submenu/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ label ? stripHTML( label ) : '' }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t{ url: urlValue },\n\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t\t\t\t\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t\t\t\t\t\t\t\t\t// See `updateAttributes` for more details.\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t) } ${ placeholderText }`.trim()\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\thasCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -83,9 +83,9 @@ const updateAttributes = function () {
|
|
|
83
83
|
const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
|
|
84
84
|
const kind = isCustomLink ? 'custom' : newKind;
|
|
85
85
|
setAttributes({ // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
|
|
86
|
-
...
|
|
87
|
-
url: encodeURI((0, _url.safeDecodeURI)(newUrl))
|
|
88
|
-
}
|
|
86
|
+
...{
|
|
87
|
+
url: newUrl ? encodeURI((0, _url.safeDecodeURI)(newUrl)) : newUrl
|
|
88
|
+
},
|
|
89
89
|
...(label && {
|
|
90
90
|
label
|
|
91
91
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/update-attributes.js"],"names":["updateAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","kind","originalKind","type","originalType","title","newLabel","url","newUrl","opensInNewTab","id","newKind","newType","newLabelWithoutHttp","replace","newUrlWithoutHttp","useNewLabel","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAMA,gBAAgB,GAAG,YAI3B;AAAA,MAHJC,YAGI,uEAHW,EAGX;AAAA,MAFJC,aAEI;AAAA,MADJC,eACI,uEADc,EACd;AACJ,QAAM;AACLC,IAAAA,KAAK,EAAEC,aAAa,GAAG,EADlB;AAELC,IAAAA,IAAI,EAAEC,YAAY,GAAG,EAFhB;AAGLC,IAAAA,IAAI,EAAEC,YAAY,GAAG;AAHhB,MAIFN,eAJJ;AAMA,QAAM;AACLO,IAAAA,KAAK,EAAEC,QAAQ,GAAG,EADb;AACiB;AACtBC,IAAAA,GAAG,EAAEC,MAAM,GAAG,EAFT;AAGLC,IAAAA,aAHK;AAILC,IAAAA,EAJK;AAKLT,IAAAA,IAAI,EAAEU,OAAO,GAAGT,YALX;AAMLC,IAAAA,IAAI,EAAES,OAAO,GAAGR;AANX,MAOFR,YAPJ;AASA,QAAMiB,mBAAmB,GAAGP,QAAQ,CAACQ,OAAT,CAAkB,iBAAlB,EAAqC,EAArC,CAA5B;AACA,QAAMC,iBAAiB,GAAGP,MAAM,CAACM,OAAP,CAAgB,iBAAhB,EAAmC,EAAnC,CAA1B;AAEA,QAAME,WAAW,GAChBV,QAAQ,IACRA,QAAQ,KAAKN,aADb,IAEA;AACA;AACA;AACA;AACA;AACA;AACAa,EAAAA,mBAAmB,KAAKE,iBATzB,CAnBI,CA8BJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMhB,KAAK,GAAGiB,WAAW,GACtB,4BAAYV,QAAZ,CADsB,GAEtBN,aAAa,IAAI,4BAAYe,iBAAZ,CAFpB,CAvCI,CA2CJ;;AACA,QAAMZ,IAAI,GAAGS,OAAO,KAAK,UAAZ,GAAyB,KAAzB,GAAiCA,OAAO,CAACE,OAAR,CAAiB,GAAjB,EAAsB,GAAtB,CAA9C;AAEA,QAAMG,aAAa,GAClB,CAAE,MAAF,EAAU,MAAV,EAAkB,KAAlB,EAAyB,UAAzB,EAAsCC,OAAtC,CAA+Cf,IAA/C,IAAwD,CAAC,CAD1D;AAGA,QAAMgB,YAAY,GACf,CAAER,OAAF,IAAa,CAAEM,aAAjB,IAAoCN,OAAO,KAAK,QADjD;AAEA,QAAMV,IAAI,GAAGkB,YAAY,GAAG,QAAH,GAAcR,OAAvC;AAEAd,EAAAA,aAAa,CAAE,EACd;AACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-link/update-attributes.js"],"names":["updateAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","kind","originalKind","type","originalType","title","newLabel","url","newUrl","opensInNewTab","id","newKind","newType","newLabelWithoutHttp","replace","newUrlWithoutHttp","useNewLabel","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAMA,gBAAgB,GAAG,YAI3B;AAAA,MAHJC,YAGI,uEAHW,EAGX;AAAA,MAFJC,aAEI;AAAA,MADJC,eACI,uEADc,EACd;AACJ,QAAM;AACLC,IAAAA,KAAK,EAAEC,aAAa,GAAG,EADlB;AAELC,IAAAA,IAAI,EAAEC,YAAY,GAAG,EAFhB;AAGLC,IAAAA,IAAI,EAAEC,YAAY,GAAG;AAHhB,MAIFN,eAJJ;AAMA,QAAM;AACLO,IAAAA,KAAK,EAAEC,QAAQ,GAAG,EADb;AACiB;AACtBC,IAAAA,GAAG,EAAEC,MAAM,GAAG,EAFT;AAGLC,IAAAA,aAHK;AAILC,IAAAA,EAJK;AAKLT,IAAAA,IAAI,EAAEU,OAAO,GAAGT,YALX;AAMLC,IAAAA,IAAI,EAAES,OAAO,GAAGR;AANX,MAOFR,YAPJ;AASA,QAAMiB,mBAAmB,GAAGP,QAAQ,CAACQ,OAAT,CAAkB,iBAAlB,EAAqC,EAArC,CAA5B;AACA,QAAMC,iBAAiB,GAAGP,MAAM,CAACM,OAAP,CAAgB,iBAAhB,EAAmC,EAAnC,CAA1B;AAEA,QAAME,WAAW,GAChBV,QAAQ,IACRA,QAAQ,KAAKN,aADb,IAEA;AACA;AACA;AACA;AACA;AACA;AACAa,EAAAA,mBAAmB,KAAKE,iBATzB,CAnBI,CA8BJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMhB,KAAK,GAAGiB,WAAW,GACtB,4BAAYV,QAAZ,CADsB,GAEtBN,aAAa,IAAI,4BAAYe,iBAAZ,CAFpB,CAvCI,CA2CJ;;AACA,QAAMZ,IAAI,GAAGS,OAAO,KAAK,UAAZ,GAAyB,KAAzB,GAAiCA,OAAO,CAACE,OAAR,CAAiB,GAAjB,EAAsB,GAAtB,CAA9C;AAEA,QAAMG,aAAa,GAClB,CAAE,MAAF,EAAU,MAAV,EAAkB,KAAlB,EAAyB,UAAzB,EAAsCC,OAAtC,CAA+Cf,IAA/C,IAAwD,CAAC,CAD1D;AAGA,QAAMgB,YAAY,GACf,CAAER,OAAF,IAAa,CAAEM,aAAjB,IAAoCN,OAAO,KAAK,QADjD;AAEA,QAAMV,IAAI,GAAGkB,YAAY,GAAG,QAAH,GAAcR,OAAvC;AAEAd,EAAAA,aAAa,CAAE,EACd;AACA,OAAG;AAAEU,MAAAA,GAAG,EAAEC,MAAM,GAAGY,SAAS,CAAE,wBAAeZ,MAAf,CAAF,CAAZ,GAA0CA;AAAvD,KAFW;AAGd,QAAKT,KAAK,IAAI;AAAEA,MAAAA;AAAF,KAAd,CAHc;AAId,QAAKsB,SAAS,KAAKZ,aAAd,IAA+B;AAAEA,MAAAA;AAAF,KAApC,CAJc;AAKd,QAAKC,EAAE,IAAIY,MAAM,CAACC,SAAP,CAAkBb,EAAlB,CAAN,IAAgC;AAAEA,MAAAA;AAAF,KAArC,CALc;AAMd,QAAKT,IAAI,IAAI;AAAEA,MAAAA;AAAF,KAAb,CANc;AAOd,QAAKE,IAAI,IAAIA,IAAI,KAAK,KAAjB,IAA0B;AAAEA,MAAAA;AAAF,KAA/B;AAPc,GAAF,CAAb;AASA,CAlEM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { safeDecodeURI } from '@wordpress/url';\nimport { escapeHTML } from '@wordpress/escape-html';\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\n\nexport const updateAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle: newLabel = '', // the title of any provided Post.\n\t\turl: newUrl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst newLabelWithoutHttp = newLabel.replace( /http(s?):\\/\\//gi, '' );\n\tconst newUrlWithoutHttp = newUrl.replace( /http(s?):\\/\\//gi, '' );\n\n\tconst useNewLabel =\n\t\tnewLabel &&\n\t\tnewLabel !== originalLabel &&\n\t\t// LinkControl without the title field relies\n\t\t// on the check below. Specifically, it assumes that\n\t\t// the URL is the same as a title.\n\t\t// This logic a) looks suspicious and b) should really\n\t\t// live in the LinkControl and not here. It's a great\n\t\t// candidate for future refactoring.\n\t\tnewLabelWithoutHttp !== newUrlWithoutHttp;\n\n\t// Unfortunately this causes the escaping model to be inverted.\n\t// The escaped content is stored in the block attributes (and ultimately in the database),\n\t// and then the raw data is \"recovered\" when outputting into the DOM.\n\t// It would be preferable to store the **raw** data in the block attributes and escape it in JS.\n\t// Why? Because there isn't one way to escape data. Depending on the context, you need to do\n\t// different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.\n\t// See also:\n\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t// - https://github.com/WordPress/gutenberg/pull/18617.\n\tconst label = useNewLabel\n\t\t? escapeHTML( newLabel )\n\t\t: originalLabel || escapeHTML( newUrlWithoutHttp );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...{ url: newUrl ? encodeURI( safeDecodeURI( newUrl ) ) : newUrl },\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n"]}
|
|
@@ -409,6 +409,7 @@ function NavigationSubmenuEdit(_ref) {
|
|
|
409
409
|
}))), (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
410
410
|
title: (0, _i18n.__)('Link settings')
|
|
411
411
|
}, (0, _element.createElement)(_components.TextControl, {
|
|
412
|
+
__nextHasNoMarginBottom: true,
|
|
412
413
|
value: label || '',
|
|
413
414
|
onChange: labelValue => {
|
|
414
415
|
setAttributes({
|
|
@@ -418,6 +419,7 @@ function NavigationSubmenuEdit(_ref) {
|
|
|
418
419
|
label: (0, _i18n.__)('Label'),
|
|
419
420
|
autoComplete: "off"
|
|
420
421
|
}), (0, _element.createElement)(_components.TextControl, {
|
|
422
|
+
__nextHasNoMarginBottom: true,
|
|
421
423
|
value: url || '',
|
|
422
424
|
onChange: urlValue => {
|
|
423
425
|
setAttributes({
|
|
@@ -437,6 +439,7 @@ function NavigationSubmenuEdit(_ref) {
|
|
|
437
439
|
label: (0, _i18n.__)('Description'),
|
|
438
440
|
help: (0, _i18n.__)('The description will be displayed in the menu if the current theme supports it.')
|
|
439
441
|
}), (0, _element.createElement)(_components.TextControl, {
|
|
442
|
+
__nextHasNoMarginBottom: true,
|
|
440
443
|
value: title || '',
|
|
441
444
|
onChange: titleValue => {
|
|
442
445
|
setAttributes({
|
|
@@ -446,6 +449,7 @@ function NavigationSubmenuEdit(_ref) {
|
|
|
446
449
|
label: (0, _i18n.__)('Link title'),
|
|
447
450
|
autoComplete: "off"
|
|
448
451
|
}), (0, _element.createElement)(_components.TextControl, {
|
|
452
|
+
__nextHasNoMarginBottom: true,
|
|
449
453
|
value: rel || '',
|
|
450
454
|
onChange: relValue => {
|
|
451
455
|
setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["ALLOWED_BLOCKS","DEFAULT_BLOCK","name","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","type","url","description","rel","title","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","blockEditorStore","isLinkOpen","setIsLinkOpen","popoverAnchor","setPopoverAnchor","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","prevHasChildren","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","canCreate","textColor","customTextColor","backgroundColor","customBackgroundColor","onKeyDown","isKeyboardEvent","primary","blockProps","className","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","innerBlocksProps","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","canConvertToLink","linkIcon","displayShortcut","removeSubmenu","labelValue","urlValue","descriptionValue","titleValue","relValue","updatedValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { useResourcePermissions } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, type, url, description, rel, title } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tmaxNestingLevel,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering.\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks = isAtMaxNesting\n\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t )\n\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tisDisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ label || '' }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\thasCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["ALLOWED_BLOCKS","DEFAULT_BLOCK","name","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","type","url","description","rel","title","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","blockEditorStore","isLinkOpen","setIsLinkOpen","popoverAnchor","setPopoverAnchor","listItemRef","itemLabelPlaceholder","ref","pagesPermissions","postsPermissions","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","prevHasChildren","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","canCreate","textColor","customTextColor","backgroundColor","customBackgroundColor","onKeyDown","isKeyboardEvent","primary","blockProps","className","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","innerBlocksProps","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","canConvertToLink","linkIcon","displayShortcut","removeSubmenu","labelValue","urlValue","descriptionValue","titleValue","relValue","updatedValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { useResourcePermissions } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, type, url, description, rel, title } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tmaxNestingLevel,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering.\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks = isAtMaxNesting\n\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t )\n\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tisDisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ label || '' }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\thasCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -80,11 +80,21 @@ const {
|
|
|
80
80
|
} = metadata;
|
|
81
81
|
exports.name = name;
|
|
82
82
|
const settings = {
|
|
83
|
-
icon:
|
|
84
|
-
__experimentalLabel: _ref => {
|
|
83
|
+
icon: _ref => {
|
|
85
84
|
let {
|
|
86
|
-
|
|
85
|
+
context
|
|
87
86
|
} = _ref;
|
|
87
|
+
|
|
88
|
+
if (context === 'list-view') {
|
|
89
|
+
return _icons.page;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return _icons.addSubmenu;
|
|
93
|
+
},
|
|
94
|
+
__experimentalLabel: _ref2 => {
|
|
95
|
+
let {
|
|
96
|
+
label
|
|
97
|
+
} = _ref2;
|
|
88
98
|
return label;
|
|
89
99
|
},
|
|
90
100
|
edit: _edit.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/index.js"],"names":["name","metadata","settings","icon","addSubmenu","__experimentalLabel","label","edit","save","transforms","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AACA;;AACA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/index.js"],"names":["name","metadata","settings","icon","context","page","addSubmenu","__experimentalLabel","label","edit","save","transforms","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AACA;;AACA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAE,QAAmB;AAAA,QAAjB;AAAEC,MAAAA;AAAF,KAAiB;;AACxB,QAAKA,OAAO,KAAK,WAAjB,EAA+B;AAC9B,aAAOC,WAAP;AACA;;AAED,WAAOC,iBAAP;AACA,GAPsB;AASvBC,EAAAA,mBAAmB,EAAE;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WAAiBA,KAAjB;AAAA,GATE;AAWvBC,EAAAA,IAAI,EAAJA,aAXuB;AAavBC,EAAAA,IAAI,EAAJA,aAbuB;AAevBC,EAAAA,UAAU,EAAVA;AAfuB,CAAjB;;;AAkBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEZ,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { page, addSubmenu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: ( { context } ) => {\n\t\tif ( context === 'list-view' ) {\n\t\t\treturn page;\n\t\t}\n\n\t\treturn addSubmenu;\n\t},\n\n\t__experimentalLabel: ( { label } ) => label,\n\n\tedit,\n\n\tsave,\n\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
|