@wordpress/block-library 8.30.0 → 8.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/block/edit.js +22 -16
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.native.js +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/code/save.js +3 -1
- package/build/code/save.js.map +1 -1
- package/build/cover/edit/index.js +2 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/details/edit.js +1 -0
- package/build/details/edit.js.map +1 -1
- package/build/file/edit.js +2 -0
- package/build/file/edit.js.map +1 -1
- package/build/heading/index.js +4 -3
- package/build/heading/index.js.map +1 -1
- package/build/image/edit.js +10 -39
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +27 -6
- package/build/image/image.js.map +1 -1
- package/build/media-text/edit.js +33 -9
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/index.js +5 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.js +30 -11
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +2 -2
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/edit/index.js +23 -29
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +24 -23
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +4 -4
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +15 -12
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view.js +12 -2
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +52 -27
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +31 -9
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/edit.js +3 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -0
- package/build/post-author/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +16 -4
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +13 -2
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/overlay-controls.js +82 -0
- package/build/post-featured-image/overlay-controls.js.map +1 -0
- package/build/post-featured-image/overlay.js +5 -54
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-navigation-link/edit.js +1 -0
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/post-terms/edit.js +2 -0
- package/build/post-terms/edit.js.map +1 -1
- package/build/quote/edit.js +18 -23
- package/build/quote/edit.js.map +1 -1
- package/build/read-more/edit.js +1 -0
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +2 -0
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js +2 -2
- package/build/search/edit.native.js.map +1 -1
- package/build/site-tagline/edit.js +13 -4
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-tagline/index.js +4 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/social-link/edit.js +1 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/icons/medium.js +1 -1
- package/build/social-link/icons/medium.js.map +1 -1
- package/build/social-link/icons/reddit.js +1 -1
- package/build/social-link/icons/reddit.js.map +1 -1
- package/build/table/deprecated.js +285 -175
- package/build/table/deprecated.js.map +1 -1
- package/build/table/index.js +1 -1
- package/build/template-part/edit/index.js +55 -47
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +106 -10
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +1 -9
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/utils/caption.js +19 -13
- package/build/utils/caption.js.map +1 -1
- package/build/utils/hooks.js +1 -0
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit.native.js +1 -1
- package/build/video/edit.native.js.map +1 -1
- package/build-module/block/edit.js +23 -17
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.native.js +1 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/code/save.js +3 -1
- package/build-module/code/save.js.map +1 -1
- package/build-module/cover/edit/index.js +2 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/details/edit.js +1 -0
- package/build-module/details/edit.js.map +1 -1
- package/build-module/file/edit.js +2 -0
- package/build-module/file/edit.js.map +1 -1
- package/build-module/heading/index.js +4 -3
- package/build-module/heading/index.js.map +1 -1
- package/build-module/image/edit.js +11 -40
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +27 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/media-text/edit.js +34 -10
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/index.js +5 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.js +31 -12
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +2 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/edit/index.js +24 -30
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +4 -4
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +15 -12
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view.js +12 -2
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +55 -30
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +31 -9
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/edit.js +3 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -0
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +17 -5
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +13 -2
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-featured-image/overlay-controls.js +75 -0
- package/build-module/post-featured-image/overlay-controls.js.map +1 -0
- package/build-module/post-featured-image/overlay.js +7 -56
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-navigation-link/edit.js +1 -0
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +2 -0
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/quote/edit.js +20 -25
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/read-more/edit.js +1 -0
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +2 -0
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js +2 -2
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-tagline/edit.js +14 -5
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +4 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/social-link/edit.js +1 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/icons/medium.js +1 -1
- package/build-module/social-link/icons/medium.js.map +1 -1
- package/build-module/social-link/icons/reddit.js +1 -1
- package/build-module/social-link/icons/reddit.js.map +1 -1
- package/build-module/table/deprecated.js +286 -176
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/index.js +1 -1
- package/build-module/template-part/edit/index.js +58 -50
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +108 -12
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -10
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/utils/caption.js +19 -13
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/hooks.js +1 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit.native.js +1 -1
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/audio/theme-rtl.css +1 -1
- package/build-style/audio/theme.css +1 -1
- package/build-style/cover/style-rtl.css +5 -2
- package/build-style/cover/style.css +5 -2
- package/build-style/editor-rtl.css +22 -12
- package/build-style/editor.css +22 -12
- package/build-style/embed/theme-rtl.css +1 -1
- package/build-style/embed/theme.css +1 -1
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/image/editor-rtl.css +0 -3
- package/build-style/image/editor.css +0 -3
- package/build-style/image/theme-rtl.css +1 -1
- package/build-style/image/theme.css +1 -1
- package/build-style/media-text/editor-rtl.css +7 -1
- package/build-style/media-text/editor.css +7 -1
- package/build-style/pullquote/theme-rtl.css +2 -1
- package/build-style/pullquote/theme.css +2 -1
- package/build-style/quote/theme-rtl.css +6 -6
- package/build-style/quote/theme.css +6 -6
- package/build-style/search/style-rtl.css +10 -0
- package/build-style/search/style.css +10 -0
- package/build-style/social-links/editor-rtl.css +0 -4
- package/build-style/social-links/editor.css +0 -4
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +17 -4
- package/build-style/style.css +17 -4
- package/build-style/table/theme-rtl.css +4 -3
- package/build-style/table/theme.css +4 -3
- package/build-style/template-part/editor-rtl.css +12 -4
- package/build-style/template-part/editor.css +12 -4
- package/build-style/template-part/theme-rtl.css +1 -1
- package/build-style/template-part/theme.css +1 -1
- package/build-style/theme-rtl.css +17 -15
- package/build-style/theme.css +17 -15
- package/build-style/video/theme-rtl.css +1 -1
- package/build-style/video/theme.css +1 -1
- package/package.json +34 -34
- package/src/archives/index.php +4 -0
- package/src/audio/theme.scss +1 -1
- package/src/avatar/index.php +6 -0
- package/src/block/edit.js +43 -32
- package/src/block/index.php +4 -0
- package/src/block/test/edit.native.js +67 -0
- package/src/button/edit.native.js +1 -1
- package/src/calendar/index.php +12 -0
- package/src/categories/index.php +6 -0
- package/src/code/save.js +7 -1
- package/src/comment-author-name/index.php +4 -0
- package/src/comment-content/index.php +4 -0
- package/src/comment-date/index.php +4 -0
- package/src/comment-edit-link/index.php +4 -0
- package/src/comment-reply-link/index.php +4 -0
- package/src/comment-template/index.php +4 -0
- package/src/comments/index.php +10 -0
- package/src/comments-pagination/index.php +4 -0
- package/src/comments-pagination-next/index.php +4 -0
- package/src/comments-pagination-numbers/index.php +4 -0
- package/src/comments-pagination-previous/index.php +4 -0
- package/src/comments-title/index.php +4 -0
- package/src/cover/edit/index.js +4 -1
- package/src/cover/index.php +4 -0
- package/src/cover/style.scss +6 -2
- package/src/details/edit.js +1 -0
- package/src/embed/theme.scss +1 -1
- package/src/file/edit.js +2 -0
- package/src/file/editor.scss +3 -0
- package/src/file/index.php +4 -0
- package/src/gallery/editor.scss +1 -1
- package/src/gallery/index.php +7 -1
- package/src/heading/index.js +4 -3
- package/src/heading/index.php +4 -0
- package/src/home-link/index.php +10 -0
- package/src/image/edit.js +11 -40
- package/src/image/editor.scss +2 -7
- package/src/image/image.js +25 -7
- package/src/image/index.php +12 -1
- package/src/image/theme.scss +1 -1
- package/src/latest-comments/index.php +4 -0
- package/src/latest-posts/index.php +8 -0
- package/src/loginout/index.php +4 -0
- package/src/media-text/block.json +5 -0
- package/src/media-text/edit.js +70 -19
- package/src/media-text/editor.scss +7 -1
- package/src/media-text/index.php +70 -0
- package/src/media-text/media-container.js +49 -9
- package/src/media-text/save.js +2 -2
- package/src/navigation/edit/index.js +67 -71
- package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
- package/src/navigation/edit/navigation-menu-selector.js +39 -21
- package/src/navigation/edit/placeholder/index.js +4 -4
- package/src/navigation/edit/test/navigation-menu-selector.js +75 -53
- package/src/navigation/index.php +109 -26
- package/src/navigation/test/use-navigation-menu.js +21 -21
- package/src/navigation/use-navigation-menu.js +23 -9
- package/src/navigation/view.js +11 -2
- package/src/navigation-link/edit.js +64 -39
- package/src/navigation-link/index.php +14 -0
- package/src/navigation-submenu/edit.js +34 -10
- package/src/navigation-submenu/index.php +8 -0
- package/src/page-list/index.php +12 -0
- package/src/page-list-item/index.php +2 -0
- package/src/pattern/edit.js +4 -0
- package/src/pattern/index.php +2 -0
- package/src/post-author/edit.js +1 -0
- package/src/post-author/index.php +4 -0
- package/src/post-author-biography/index.php +4 -0
- package/src/post-author-name/index.php +4 -0
- package/src/post-comments-form/index.php +6 -0
- package/src/post-content/index.php +4 -0
- package/src/post-date/index.php +4 -0
- package/src/post-excerpt/edit.js +1 -0
- package/src/post-excerpt/index.php +4 -0
- package/src/post-featured-image/block.json +13 -2
- package/src/post-featured-image/edit.js +16 -1
- package/src/post-featured-image/editor.scss +1 -1
- package/src/post-featured-image/index.php +15 -0
- package/src/post-featured-image/overlay-controls.js +88 -0
- package/src/post-featured-image/overlay.js +17 -84
- package/src/post-navigation-link/edit.js +1 -0
- package/src/post-navigation-link/index.php +4 -0
- package/src/post-template/index.php +4 -0
- package/src/post-terms/edit.js +2 -0
- package/src/post-terms/index.php +6 -0
- package/src/post-title/index.php +2 -0
- package/src/pullquote/theme.scss +3 -1
- package/src/query/index.php +2 -0
- package/src/query-no-results/index.php +6 -0
- package/src/query-pagination/index.php +4 -0
- package/src/query-pagination-next/index.php +6 -0
- package/src/query-pagination-numbers/index.php +6 -0
- package/src/query-pagination-previous/index.php +4 -0
- package/src/query-title/index.php +4 -0
- package/src/quote/edit.js +27 -37
- package/src/quote/test/edit.native.js +4 -6
- package/src/quote/theme.scss +1 -2
- package/src/read-more/edit.js +1 -0
- package/src/read-more/index.php +4 -0
- package/src/rss/index.php +4 -0
- package/src/search/edit.js +2 -0
- package/src/search/edit.native.js +2 -2
- package/src/search/index.php +19 -1
- package/src/search/style.scss +11 -0
- package/src/shortcode/index.php +4 -0
- package/src/site-logo/editor.scss +2 -2
- package/src/site-logo/index.php +20 -0
- package/src/site-tagline/block.json +4 -0
- package/src/site-tagline/edit.js +16 -3
- package/src/site-tagline/index.php +13 -1
- package/src/site-title/index.php +4 -0
- package/src/social-link/edit.js +1 -1
- package/src/social-link/icons/medium.js +1 -1
- package/src/social-link/icons/reddit.js +1 -1
- package/src/social-link/index.php +22 -9
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/editor.scss +1 -9
- package/src/table/block.json +1 -1
- package/src/table/deprecated.js +308 -175
- package/src/table/theme.scss +4 -2
- package/src/tag-cloud/index.php +4 -0
- package/src/template-part/edit/index.js +87 -79
- package/src/template-part/edit/inner-blocks.js +126 -13
- package/src/template-part/edit/selection-modal.js +1 -22
- package/src/template-part/editor.scss +11 -3
- package/src/template-part/index.php +12 -0
- package/src/template-part/theme.scss +1 -1
- package/src/term-description/index.php +4 -0
- package/src/utils/caption.js +19 -16
- package/src/utils/hooks.js +1 -0
- package/src/video/edit.native.js +2 -0
- package/src/video/editor.scss +2 -2
- package/src/video/theme.scss +1 -1
- package/tsconfig.json +1 -0
|
@@ -2,17 +2,16 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import { Button,
|
|
6
|
-
import { store as coreStore, useEntityId
|
|
5
|
+
import { Button, __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
|
|
6
|
+
import { store as coreStore, useEntityId } from '@wordpress/core-data';
|
|
7
7
|
import { useDispatch } from '@wordpress/data';
|
|
8
8
|
import { useState } from '@wordpress/element';
|
|
9
|
-
import { __
|
|
9
|
+
import { __ } from '@wordpress/i18n';
|
|
10
10
|
export default function NavigationMenuDeleteControl({
|
|
11
11
|
onDelete
|
|
12
12
|
}) {
|
|
13
|
-
const [
|
|
13
|
+
const [isConfirmDialogVisible, setIsConfirmDialogVisible] = useState(false);
|
|
14
14
|
const id = useEntityId('postType', 'wp_navigation');
|
|
15
|
-
const [title] = useEntityProp('postType', 'wp_navigation', 'title');
|
|
16
15
|
const {
|
|
17
16
|
deleteEntityRecord
|
|
18
17
|
} = useDispatch(coreStore);
|
|
@@ -21,27 +20,20 @@ export default function NavigationMenuDeleteControl({
|
|
|
21
20
|
variant: "secondary",
|
|
22
21
|
isDestructive: true,
|
|
23
22
|
onClick: () => {
|
|
24
|
-
|
|
23
|
+
setIsConfirmDialogVisible(true);
|
|
25
24
|
}
|
|
26
|
-
}, __('Delete menu')),
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
onRequestClose: () => setIsConfirmModalVisible(false)
|
|
30
|
-
}, createElement("p", null, __('Are you sure you want to delete this navigation menu?')), createElement(HStack, {
|
|
31
|
-
justify: "right"
|
|
32
|
-
}, createElement(Button, {
|
|
33
|
-
variant: "tertiary",
|
|
34
|
-
onClick: () => {
|
|
35
|
-
setIsConfirmModalVisible(false);
|
|
36
|
-
}
|
|
37
|
-
}, __('Cancel')), createElement(Button, {
|
|
38
|
-
variant: "primary",
|
|
39
|
-
onClick: () => {
|
|
25
|
+
}, __('Delete menu')), isConfirmDialogVisible && createElement(ConfirmDialog, {
|
|
26
|
+
isOpen: true,
|
|
27
|
+
onConfirm: () => {
|
|
40
28
|
deleteEntityRecord('postType', 'wp_navigation', id, {
|
|
41
29
|
force: true
|
|
42
30
|
});
|
|
43
|
-
onDelete(
|
|
44
|
-
}
|
|
45
|
-
|
|
31
|
+
onDelete();
|
|
32
|
+
},
|
|
33
|
+
onCancel: () => {
|
|
34
|
+
setIsConfirmDialogVisible(false);
|
|
35
|
+
},
|
|
36
|
+
confirmButtonText: __('Delete')
|
|
37
|
+
}, __('Are you sure you want to delete this Navigation menu?')));
|
|
46
38
|
}
|
|
47
39
|
//# sourceMappingURL=navigation-menu-delete-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","
|
|
1
|
+
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","store","coreStore","useEntityId","useDispatch","useState","__","NavigationMenuDeleteControl","onDelete","isConfirmDialogVisible","setIsConfirmDialogVisible","id","deleteEntityRecord","createElement","Fragment","className","variant","isDestructive","onClick","isOpen","onConfirm","force","onCancel","confirmButtonText"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-delete-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityId } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmDialogVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\tdeleteEntityRecord( 'postType', 'wp_navigation', id, {\n\t\t\t\t\t\t\tforce: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tonDelete();\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to delete this Navigation menu?'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,SAAS,EAAEC,WAAW,QAAQ,sBAAsB;AACtE,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AAEpC,eAAe,SAASC,2BAA2BA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACnE,MAAM,CAAEC,sBAAsB,EAAEC,yBAAyB,CAAE,GAC1DL,QAAQ,CAAE,KAAM,CAAC;EAClB,MAAMM,EAAE,GAAGR,WAAW,CAAE,UAAU,EAAE,eAAgB,CAAC;EACrD,MAAM;IAAES;EAAmB,CAAC,GAAGR,WAAW,CAAEF,SAAU,CAAC;EAEvD,OACCW,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACf,MAAM;IACNiB,SAAS,EAAC,wCAAwC;IAClDC,OAAO,EAAC,WAAW;IACnBC,aAAa;IACbC,OAAO,EAAGA,CAAA,KAAM;MACfR,yBAAyB,CAAE,IAAK,CAAC;IAClC;EAAG,GAEDJ,EAAE,CAAE,aAAc,CACb,CAAC,EACPG,sBAAsB,IACvBI,aAAA,CAACb,aAAa;IACbmB,MAAM;IACNC,SAAS,EAAGA,CAAA,KAAM;MACjBR,kBAAkB,CAAE,UAAU,EAAE,eAAe,EAAED,EAAE,EAAE;QACpDU,KAAK,EAAE;MACR,CAAE,CAAC;MACHb,QAAQ,CAAC,CAAC;IACX,CAAG;IACHc,QAAQ,EAAGA,CAAA,KAAM;MAChBZ,yBAAyB,CAAE,KAAM,CAAC;IACnC,CAAG;IACHa,iBAAiB,EAAGjB,EAAE,CAAE,QAAS;EAAG,GAElCA,EAAE,CACH,uDACD,CACc,CAEf,CAAC;AAEL"}
|
|
@@ -37,7 +37,7 @@ function NavigationMenuSelector({
|
|
|
37
37
|
}) {
|
|
38
38
|
/* translators: %s: The name of a menu. */
|
|
39
39
|
const createActionLabel = __("Create from '%s'");
|
|
40
|
-
const [
|
|
40
|
+
const [isUpdatingMenuRef, setIsUpdatingMenuRef] = useState(false);
|
|
41
41
|
actionLabel = actionLabel || createActionLabel;
|
|
42
42
|
const {
|
|
43
43
|
menus: classicMenus
|
|
@@ -46,7 +46,7 @@ function NavigationMenuSelector({
|
|
|
46
46
|
navigationMenus,
|
|
47
47
|
isResolvingNavigationMenus,
|
|
48
48
|
hasResolvedNavigationMenus,
|
|
49
|
-
|
|
49
|
+
canUserCreateNavigationMenus,
|
|
50
50
|
canSwitchNavigationMenu
|
|
51
51
|
} = useNavigationMenu();
|
|
52
52
|
const [currentTitle] = useEntityProp('postType', 'wp_navigation', 'title');
|
|
@@ -60,19 +60,20 @@ function NavigationMenuSelector({
|
|
|
60
60
|
return {
|
|
61
61
|
value: id,
|
|
62
62
|
label,
|
|
63
|
-
ariaLabel: sprintf(actionLabel, label)
|
|
63
|
+
ariaLabel: sprintf(actionLabel, label),
|
|
64
|
+
disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
|
|
64
65
|
};
|
|
65
66
|
}) || [];
|
|
66
|
-
}, [navigationMenus, actionLabel]);
|
|
67
|
+
}, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
|
|
67
68
|
const hasNavigationMenus = !!navigationMenus?.length;
|
|
68
69
|
const hasClassicMenus = !!classicMenus?.length;
|
|
69
70
|
const showNavigationMenus = !!canSwitchNavigationMenu;
|
|
70
|
-
const showClassicMenus = !!
|
|
71
|
+
const showClassicMenus = !!canUserCreateNavigationMenus;
|
|
71
72
|
const noMenuSelected = hasNavigationMenus && !currentMenuId;
|
|
72
73
|
const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
|
|
73
74
|
const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
|
|
74
75
|
let selectorLabel = '';
|
|
75
|
-
if (
|
|
76
|
+
if (isResolvingNavigationMenus) {
|
|
76
77
|
selectorLabel = __('Loading…');
|
|
77
78
|
} else if (noMenuSelected || noBlockMenus || menuUnavailable) {
|
|
78
79
|
// Note: classic Menus may be available.
|
|
@@ -82,15 +83,15 @@ function NavigationMenuSelector({
|
|
|
82
83
|
selectorLabel = currentTitle;
|
|
83
84
|
}
|
|
84
85
|
useEffect(() => {
|
|
85
|
-
if (
|
|
86
|
-
|
|
86
|
+
if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
|
|
87
|
+
setIsUpdatingMenuRef(false);
|
|
87
88
|
}
|
|
88
|
-
}, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess,
|
|
89
|
+
}, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenus, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
|
|
89
90
|
const NavigationMenuSelectorDropdown = createElement(DropdownMenu, {
|
|
90
91
|
label: selectorLabel,
|
|
91
92
|
icon: moreVertical,
|
|
92
93
|
toggleProps: {
|
|
93
|
-
|
|
94
|
+
size: 'small'
|
|
94
95
|
}
|
|
95
96
|
}, ({
|
|
96
97
|
onClose
|
|
@@ -99,35 +100,35 @@ function NavigationMenuSelector({
|
|
|
99
100
|
}, createElement(MenuItemsChoice, {
|
|
100
101
|
value: currentMenuId,
|
|
101
102
|
onSelect: menuId => {
|
|
102
|
-
setIsCreatingMenu(true);
|
|
103
103
|
onSelectNavigationMenu(menuId);
|
|
104
104
|
onClose();
|
|
105
105
|
},
|
|
106
|
-
choices: menuChoices
|
|
107
|
-
disabled: isCreatingMenu
|
|
106
|
+
choices: menuChoices
|
|
108
107
|
})), showClassicMenus && hasClassicMenus && createElement(MenuGroup, {
|
|
109
108
|
label: __('Import Classic Menus')
|
|
110
109
|
}, classicMenus?.map(menu => {
|
|
111
110
|
const label = decodeEntities(menu.name);
|
|
112
111
|
return createElement(MenuItem, {
|
|
113
|
-
onClick: () => {
|
|
114
|
-
|
|
115
|
-
onSelectClassicMenu(menu);
|
|
112
|
+
onClick: async () => {
|
|
113
|
+
setIsUpdatingMenuRef(true);
|
|
114
|
+
await onSelectClassicMenu(menu);
|
|
115
|
+
setIsUpdatingMenuRef(false);
|
|
116
116
|
onClose();
|
|
117
117
|
},
|
|
118
118
|
key: menu.id,
|
|
119
119
|
"aria-label": sprintf(createActionLabel, label),
|
|
120
|
-
disabled:
|
|
120
|
+
disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
|
|
121
121
|
}, label);
|
|
122
|
-
})),
|
|
122
|
+
})), canUserCreateNavigationMenus && createElement(MenuGroup, {
|
|
123
123
|
label: __('Tools')
|
|
124
124
|
}, createElement(MenuItem, {
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
onClick: async () => {
|
|
126
|
+
setIsUpdatingMenuRef(true);
|
|
127
|
+
await onCreateNew();
|
|
128
|
+
setIsUpdatingMenuRef(false);
|
|
127
129
|
onClose();
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
130
|
+
},
|
|
131
|
+
disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
|
|
131
132
|
}, __('Create new menu')))));
|
|
132
133
|
return NavigationMenuSelectorDropdown;
|
|
133
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MenuGroup","MenuItem","MenuItemsChoice","DropdownMenu","moreVertical","__","sprintf","decodeEntities","useEffect","useMemo","useState","useEntityProp","useNavigationMenu","useNavigationEntities","buildMenuLabel","title","id","status","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isCreatingMenu","setIsCreatingMenu","menus","classicMenus","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenu","canSwitchNavigationMenu","currentTitle","menuChoices","map","index","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","NavigationMenuSelectorDropdown","createElement","icon","toggleProps","isSmall","onClose","Fragment","onSelect","menuId","choices","disabled","menu","name","onClick","key"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isCreatingMenu, setIsCreatingMenu ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ navigationMenus, actionLabel ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isCreatingMenu || isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingMenu &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsCreatingMenu( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenu,\n\t\tcreateNavigationMenuIsError,\n\t\tisCreatingMenu,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\t\t\tonSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\tonCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( 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\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MenuGroup","MenuItem","MenuItemsChoice","DropdownMenu","moreVertical","__","sprintf","decodeEntities","useEffect","useMemo","useState","useEntityProp","useNavigationMenu","useNavigationEntities","buildMenuLabel","title","id","status","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isUpdatingMenuRef","setIsUpdatingMenuRef","menus","classicMenus","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenus","canSwitchNavigationMenu","currentTitle","menuChoices","map","index","label","rendered","value","ariaLabel","disabled","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","NavigationMenuSelectorDropdown","createElement","icon","toggleProps","size","onClose","Fragment","onSelect","menuId","choices","menu","name","onClick","key"],"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isUpdatingMenuRef, setIsUpdatingMenuRef ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t! hasResolvedNavigationMenus,\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tnavigationMenus,\n\t\tactionLabel,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisUpdatingMenuRef,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenus;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisUpdatingMenuRef &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsUpdatingMenuRef( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenus,\n\t\tcreateNavigationMenuIsError,\n\t\tisUpdatingMenuRef,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\t\t\tawait onSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\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\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\tawait onCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ export default function NavigationPlaceholder({
|
|
|
18
18
|
isSelected,
|
|
19
19
|
currentMenuId,
|
|
20
20
|
clientId,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
canUserCreateNavigationMenus = false,
|
|
22
|
+
isResolvingCanUserCreateNavigationMenus,
|
|
23
23
|
onSelectNavigationMenu,
|
|
24
24
|
onSelectClassicMenu,
|
|
25
25
|
onCreateEmpty
|
|
@@ -39,7 +39,7 @@ export default function NavigationPlaceholder({
|
|
|
39
39
|
speak(__('Navigation block setup options ready.'));
|
|
40
40
|
}
|
|
41
41
|
}, [hasResolvedMenus, isResolvingMenus, isSelected]);
|
|
42
|
-
const isResolvingActions = isResolvingMenus &&
|
|
42
|
+
const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
|
|
43
43
|
return createElement(Fragment, null, createElement(Placeholder, {
|
|
44
44
|
className: "wp-block-navigation-placeholder"
|
|
45
45
|
}, createElement(PlaceholderPreview, {
|
|
@@ -58,7 +58,7 @@ export default function NavigationPlaceholder({
|
|
|
58
58
|
clientId: clientId,
|
|
59
59
|
onSelectNavigationMenu: onSelectNavigationMenu,
|
|
60
60
|
onSelectClassicMenu: onSelectClassicMenu
|
|
61
|
-
}), createElement("hr", null),
|
|
61
|
+
}), createElement("hr", null), canUserCreateNavigationMenus && createElement(Button, {
|
|
62
62
|
variant: "tertiary",
|
|
63
63
|
onClick: onCreateEmpty
|
|
64
64
|
}, __('Start empty'))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Placeholder","Button","Spinner","__","navigation","Icon","speak","useEffect","useNavigationEntities","PlaceholderPreview","NavigationMenuSelector","NavigationPlaceholder","isSelected","currentMenuId","clientId","
|
|
1
|
+
{"version":3,"names":["Placeholder","Button","Spinner","__","navigation","Icon","speak","useEffect","useNavigationEntities","PlaceholderPreview","NavigationMenuSelector","NavigationPlaceholder","isSelected","currentMenuId","clientId","canUserCreateNavigationMenus","isResolvingCanUserCreateNavigationMenus","onSelectNavigationMenu","onSelectClassicMenu","onCreateEmpty","isResolvingMenus","hasResolvedMenus","isResolvingActions","createElement","Fragment","className","isVisible","undefined","icon","variant","onClick"],"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tisSelected,\n\tcurrentMenuId,\n\tclientId,\n\tcanUserCreateNavigationMenus = false,\n\tisResolvingCanUserCreateNavigationMenus,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateEmpty,\n} ) {\n\tconst { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isResolvingMenus ) {\n\t\t\tspeak( __( 'Loading navigation block setup options…' ) );\n\t\t}\n\n\t\tif ( hasResolvedMenus ) {\n\t\t\tspeak( __( 'Navigation block setup options ready.' ) );\n\t\t}\n\t}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );\n\n\tconst isResolvingActions =\n\t\tisResolvingMenus && isResolvingCanUserCreateNavigationMenus;\n\n\treturn (\n\t\t<>\n\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t{\n\t\t\t\t\t// The <PlaceholderPreview> component is displayed conditionally via CSS depending on\n\t\t\t\t\t// whether the block is selected or not. This is achieved via CSS to avoid\n\t\t\t\t\t// component re-renders\n\t\t\t\t }\n\t\t\t\t<PlaceholderPreview isVisible={ ! isSelected } />\n\t\t\t\t<div\n\t\t\t\t\taria-hidden={ ! isSelected ? true : undefined }\n\t\t\t\t\tclassName=\"wp-block-navigation-placeholder__controls\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t<Icon icon={ navigation } /> { __( 'Navigation' ) }\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ isResolvingActions && <Spinner /> }\n\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmpty }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Placeholder>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,MAAM,EAAEC,OAAO,QAAQ,uBAAuB;AACpE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,SAAS,QAAQ,oBAAoB;;AAE9C;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,+BAA+B;AACjE,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,sBAAsB,MAAM,6BAA6B;AAEhE,eAAe,SAASC,qBAAqBA,CAAE;EAC9CC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,4BAA4B,GAAG,KAAK;EACpCC,uCAAuC;EACvCC,sBAAsB;EACtBC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAAGb,qBAAqB,CAAC,CAAC;EAEtED,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEK,UAAU,EAAG;MACnB;IACD;IAEA,IAAKQ,gBAAgB,EAAG;MACvBd,KAAK,CAAEH,EAAE,CAAE,yCAA0C,CAAE,CAAC;IACzD;IAEA,IAAKkB,gBAAgB,EAAG;MACvBf,KAAK,CAAEH,EAAE,CAAE,uCAAwC,CAAE,CAAC;IACvD;EACD,CAAC,EAAE,CAAEkB,gBAAgB,EAAED,gBAAgB,EAAER,UAAU,CAAG,CAAC;EAEvD,MAAMU,kBAAkB,GACvBF,gBAAgB,IAAIJ,uCAAuC;EAE5D,OACCO,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACvB,WAAW;IAACyB,SAAS,EAAC;EAAiC,GAMvDF,aAAA,CAACd,kBAAkB;IAACiB,SAAS,EAAG,CAAEd;EAAY,CAAE,CAAC,EACjDW,aAAA;IACC,eAAc,CAAEX,UAAU,GAAG,IAAI,GAAGe,SAAW;IAC/CF,SAAS,EAAC;EAA2C,GAErDF,aAAA;IAAKE,SAAS,EAAC;EAA0C,GACxDF,aAAA;IAAKE,SAAS,EAAC;EAAqD,GACnEF,aAAA,CAAClB,IAAI;IAACuB,IAAI,EAAGxB;EAAY,CAAE,CAAC,KAAC,EAAED,EAAE,CAAE,YAAa,CAC5C,CAAC,EAENoB,aAAA,WAAK,CAAC,EAEJD,kBAAkB,IAAIC,aAAA,CAACrB,OAAO,MAAE,CAAC,EAEnCqB,aAAA,CAACb,sBAAsB;IACtBG,aAAa,EAAGA,aAAe;IAC/BC,QAAQ,EAAGA,QAAU;IACrBG,sBAAsB,EAAGA,sBAAwB;IACjDC,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC,EAEFK,aAAA,WAAK,CAAC,EAEJR,4BAA4B,IAC7BQ,aAAA,CAACtB,MAAM;IACN4B,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGX;EAAe,GAEvBhB,EAAE,CAAE,aAAc,CACb,CAEL,CACD,CACO,CACZ,CAAC;AAEL"}
|
|
@@ -18,11 +18,14 @@ export default function useNavigationMenu(ref) {
|
|
|
18
18
|
return selectExistingMenu(select, ref);
|
|
19
19
|
}, [ref]);
|
|
20
20
|
const {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
// Can the user create navigation menus?
|
|
22
|
+
canCreate: canCreateNavigationMenus,
|
|
23
|
+
// Can the user update the specific navigation menu with the given post ID?
|
|
24
|
+
canUpdate: canUpdateNavigationMenu,
|
|
25
|
+
// Can the user delete the specific navigation menu with the given post ID?
|
|
26
|
+
canDelete: canDeleteNavigationMenu,
|
|
27
|
+
isResolving: isResolvingPermissions,
|
|
28
|
+
hasResolved: hasResolvedPermissions
|
|
26
29
|
} = permissions;
|
|
27
30
|
const {
|
|
28
31
|
records: navigationMenus,
|
|
@@ -38,13 +41,13 @@ export default function useNavigationMenu(ref) {
|
|
|
38
41
|
isResolvingNavigationMenus,
|
|
39
42
|
hasResolvedNavigationMenus,
|
|
40
43
|
canSwitchNavigationMenu,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
canUserUpdateNavigationMenu:
|
|
45
|
-
hasResolvedCanUserUpdateNavigationMenu: ref ?
|
|
46
|
-
canUserDeleteNavigationMenu:
|
|
47
|
-
hasResolvedCanUserDeleteNavigationMenu: ref ?
|
|
44
|
+
canUserCreateNavigationMenus: canCreateNavigationMenus,
|
|
45
|
+
isResolvingCanUserCreateNavigationMenus: isResolvingPermissions,
|
|
46
|
+
hasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,
|
|
47
|
+
canUserUpdateNavigationMenu: canUpdateNavigationMenu,
|
|
48
|
+
hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
|
|
49
|
+
canUserDeleteNavigationMenu: canDeleteNavigationMenu,
|
|
50
|
+
hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
|
|
48
51
|
};
|
|
49
52
|
}
|
|
50
53
|
function selectExistingMenu(select, ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","coreStore","useResourcePermissions","useEntityRecords","useSelect","PRELOADED_NAVIGATION_MENUS_QUERY","useNavigationMenu","ref","permissions","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","select","selectExistingMenu","canCreate","canUpdate","canDelete","isResolving","hasResolved","records","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canSwitchNavigationMenu","length","
|
|
1
|
+
{"version":3,"names":["store","coreStore","useResourcePermissions","useEntityRecords","useSelect","PRELOADED_NAVIGATION_MENUS_QUERY","useNavigationMenu","ref","permissions","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","select","selectExistingMenu","canCreate","canCreateNavigationMenus","canUpdate","canUpdateNavigationMenu","canDelete","canDeleteNavigationMenu","isResolving","isResolvingPermissions","hasResolved","hasResolvedPermissions","records","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canSwitchNavigationMenu","length","canUserCreateNavigationMenus","isResolvingCanUserCreateNavigationMenus","hasResolvedCanUserCreateNavigationMenus","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","args","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft","status"],"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\tconst {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\treturn selectExistingMenu( select, ref );\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst {\n\t\t// Can the user create navigation menus?\n\t\tcanCreate: canCreateNavigationMenus,\n\n\t\t// Can the user update the specific navigation menu with the given post ID?\n\t\tcanUpdate: canUpdateNavigationMenu,\n\n\t\t// Can the user delete the specific navigation menu with the given post ID?\n\t\tcanDelete: canDeleteNavigationMenu,\n\t\tisResolving: isResolvingPermissions,\n\t\thasResolved: hasResolvedPermissions,\n\t} = permissions;\n\n\tconst {\n\t\trecords: navigationMenus,\n\t\tisResolving: isResolvingNavigationMenus,\n\t\thasResolved: hasResolvedNavigationMenus,\n\t} = useEntityRecords(\n\t\t'postType',\n\t\t`wp_navigation`,\n\t\tPRELOADED_NAVIGATION_MENUS_QUERY\n\t);\n\n\tconst canSwitchNavigationMenu = ref\n\t\t? navigationMenus?.length > 1\n\t\t: navigationMenus?.length > 0;\n\n\treturn {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tcanUserCreateNavigationMenus: canCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus: isResolvingPermissions,\n\t\thasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,\n\t\tcanUserUpdateNavigationMenu: canUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\n\t\tcanUserDeleteNavigationMenu: canDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\t// Only published Navigation posts are considered valid.\n\t// Draft Navigation posts are valid only on the editor,\n\t// requiring a post update to publish to show in frontend.\n\t// To achieve that, index.php must reflect this validation only for published.\n\tconst isNavigationMenuPublishedOrDraft =\n\t\teditedNavigationMenu.status === 'publish' ||\n\t\teditedNavigationMenu.status === 'draft';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublishedOrDraft ),\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu: isNavigationMenuPublishedOrDraft\n\t\t\t? editedNavigationMenu\n\t\t\t: null,\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,KAAK,IAAIC,SAAS,EAClBC,sBAAsB,EACtBC,gBAAgB,QACV,sBAAsB;AAC7B,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,gCAAgC,QAAQ,aAAa;AAE9D,eAAe,SAASC,iBAAiBA,CAAEC,GAAG,EAAG;EAChD,MAAMC,WAAW,GAAGN,sBAAsB,CAAE,YAAY,EAAEK,GAAI,CAAC;EAE/D,MAAM;IACLE,cAAc;IACdC,wBAAwB;IACxBC;EACD,CAAC,GAAGP,SAAS,CACVQ,MAAM,IAAM;IACb,OAAOC,kBAAkB,CAAED,MAAM,EAAEL,GAAI,CAAC;EACzC,CAAC,EACD,CAAEA,GAAG,CACN,CAAC;EAED,MAAM;IACL;IACAO,SAAS,EAAEC,wBAAwB;IAEnC;IACAC,SAAS,EAAEC,uBAAuB;IAElC;IACAC,SAAS,EAAEC,uBAAuB;IAClCC,WAAW,EAAEC,sBAAsB;IACnCC,WAAW,EAAEC;EACd,CAAC,GAAGf,WAAW;EAEf,MAAM;IACLgB,OAAO,EAAEC,eAAe;IACxBL,WAAW,EAAEM,0BAA0B;IACvCJ,WAAW,EAAEK;EACd,CAAC,GAAGxB,gBAAgB,CACnB,UAAU,EACT,eAAc,EACfE,gCACD,CAAC;EAED,MAAMuB,uBAAuB,GAAGrB,GAAG,GAChCkB,eAAe,EAAEI,MAAM,GAAG,CAAC,GAC3BJ,eAAe,EAAEI,MAAM,GAAG,CAAC;EAE9B,OAAO;IACNpB,cAAc;IACdC,wBAAwB;IACxBC,uBAAuB;IACvBc,eAAe;IACfC,0BAA0B;IAC1BC,0BAA0B;IAC1BC,uBAAuB;IACvBE,4BAA4B,EAAEf,wBAAwB;IACtDgB,uCAAuC,EAAEV,sBAAsB;IAC/DW,uCAAuC,EAAET,sBAAsB;IAC/DU,2BAA2B,EAAEhB,uBAAuB;IACpDiB,sCAAsC,EAAE3B,GAAG,GACxCgB,sBAAsB,GACtBY,SAAS;IACZC,2BAA2B,EAAEjB,uBAAuB;IACpDkB,sCAAsC,EAAE9B,GAAG,GACxCgB,sBAAsB,GACtBY;EACJ,CAAC;AACF;AAEA,SAAStB,kBAAkBA,CAAED,MAAM,EAAEL,GAAG,EAAG;EAC1C,IAAK,CAAEA,GAAG,EAAG;IACZ,OAAO;MACNG,wBAAwB,EAAE,KAAK;MAC/BC,uBAAuB,EAAE;IAC1B,CAAC;EACF;EAEA,MAAM;IAAE2B,eAAe;IAAEC,qBAAqB;IAAEC;EAAsB,CAAC,GACtE5B,MAAM,CAAEX,SAAU,CAAC;EAEpB,MAAMwC,IAAI,GAAG,CAAE,UAAU,EAAE,eAAe,EAAElC,GAAG,CAAE;EACjD,MAAME,cAAc,GAAG6B,eAAe,CAAE,GAAGG,IAAK,CAAC;EACjD,MAAMC,oBAAoB,GAAGH,qBAAqB,CAAE,GAAGE,IAAK,CAAC;EAC7D,MAAME,yBAAyB,GAAGH,qBAAqB,CACtD,uBAAuB,EACvBC,IACD,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMG,gCAAgC,GACrCF,oBAAoB,CAACG,MAAM,KAAK,SAAS,IACzCH,oBAAoB,CAACG,MAAM,KAAK,OAAO;EAExC,OAAO;IACNnC,wBAAwB,EAAEiC,yBAAyB;IACnDhC,uBAAuB,EACtBgC,yBAAyB,KACvB,CAAElC,cAAc,IAAI,CAAEmC,gCAAgC,CAAE;IAE3D;IACA;IACAnC,cAAc,EAAEmC,gCAAgC,GAC7CF,oBAAoB,GACpB;EACJ,CAAC;AACF"}
|
|
@@ -42,10 +42,20 @@ const {
|
|
|
42
42
|
} = getContext();
|
|
43
43
|
if (type === 'submenu' &&
|
|
44
44
|
// Only open on hover if the overlay is closed.
|
|
45
|
-
Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0)
|
|
45
|
+
Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) {
|
|
46
|
+
actions.openMenu('hover');
|
|
47
|
+
}
|
|
46
48
|
},
|
|
47
49
|
closeMenuOnHover() {
|
|
48
|
-
|
|
50
|
+
const {
|
|
51
|
+
type,
|
|
52
|
+
overlayOpenedBy
|
|
53
|
+
} = getContext();
|
|
54
|
+
if (type === 'submenu' &&
|
|
55
|
+
// Only close on hover if the overlay is closed.
|
|
56
|
+
Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) {
|
|
57
|
+
actions.closeMenu('hover');
|
|
58
|
+
}
|
|
49
59
|
},
|
|
50
60
|
openMenuOnClick() {
|
|
51
61
|
const ctx = getContext();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","getContext","getElement","focusableSelectors","document","addEventListener","state","actions","roleAttribute","ctx","type","isMenuOpen","ariaModal","ariaLabel","Object","values","menuOpenedBy","filter","Boolean","length","overlayOpenedBy","submenuOpenedBy","openMenuOnHover","openMenu","closeMenuOnHover","closeMenu","openMenuOnClick","ref","previousFocus","closeMenuOnClick","openMenuOnFocus","toggleMenuOnClick","window","activeElement","focus","click","handleMenuKeydown","event","firstFocusableElement","lastFocusableElement","key","shiftKey","preventDefault","handleMenuFocusout","modal","relatedTarget","contains","target","menuOpenedOn","documentElement","classList","add","menuClosedOn","remove","callbacks","initMenu","focusableElements","querySelectorAll","focusFirstElement","lock"],"sources":["@wordpress/block-library/src/navigation/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, getContext, getElement } from '@wordpress/interactivity';\n\nconst focusableSelectors = [\n\t'a[href]',\n\t'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n\t'select:not([disabled]):not([aria-hidden])',\n\t'textarea:not([disabled]):not([aria-hidden])',\n\t'button:not([disabled]):not([aria-hidden])',\n\t'[contenteditable]',\n\t'[tabindex]:not([tabindex^=\"-\"])',\n];\n\n// This is a fix for Safari in iOS/iPadOS. Without it, Safari doesn't focus out\n// when the user taps in the body. It can be removed once we add an overlay to\n// capture the clicks, instead of relying on the focusout event.\ndocument.addEventListener( 'click', () => {} );\n\nconst { state, actions } = store(\n\t'core/navigation',\n\t{\n\t\tstate: {\n\t\t\tget roleAttribute() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? 'dialog'\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget ariaModal() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? 'true'\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget ariaLabel() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? ctx.ariaLabel\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget isMenuOpen() {\n\t\t\t\t// The menu is opened if either `click`, `hover` or `focus` is true.\n\t\t\t\treturn (\n\t\t\t\t\tObject.values( state.menuOpenedBy ).filter( Boolean )\n\t\t\t\t\t\t.length > 0\n\t\t\t\t);\n\t\t\t},\n\t\t\tget menuOpenedBy() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay'\n\t\t\t\t\t? ctx.overlayOpenedBy\n\t\t\t\t\t: ctx.submenuOpenedBy;\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\topenMenuOnHover() {\n\t\t\t\tconst { type, overlayOpenedBy } = getContext();\n\t\t\t\tif (\n\t\t\t\t\ttype === 'submenu' &&\n\t\t\t\t\t// Only open on hover if the overlay is closed.\n\t\t\t\t\tObject.values( overlayOpenedBy || {} ).filter( Boolean )\n\t\t\t\t\t\t.length === 0\n\t\t\t\t)\n\t\t\t\t\tactions.openMenu( 'hover' );\n\t\t\t},\n\t\t\tcloseMenuOnHover() {\n\t\t\t\tactions.closeMenu( 'hover' );\n\t\t\t},\n\t\t\topenMenuOnClick() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tctx.previousFocus = ref;\n\t\t\t\tactions.openMenu( 'click' );\n\t\t\t},\n\t\t\tcloseMenuOnClick() {\n\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t},\n\t\t\topenMenuOnFocus() {\n\t\t\t\tactions.openMenu( 'focus' );\n\t\t\t},\n\t\t\ttoggleMenuOnClick() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\t// Safari won't send focus to the clicked element, so we need to manually place it: https://bugs.webkit.org/show_bug.cgi?id=22261\n\t\t\t\tif ( window.document.activeElement !== ref ) ref.focus();\n\t\t\t\tconst { menuOpenedBy } = state;\n\t\t\t\tif ( menuOpenedBy.click || menuOpenedBy.focus ) {\n\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t} else {\n\t\t\t\t\tctx.previousFocus = ref;\n\t\t\t\t\tactions.openMenu( 'click' );\n\t\t\t\t}\n\t\t\t},\n\t\t\thandleMenuKeydown( event ) {\n\t\t\t\tconst { type, firstFocusableElement, lastFocusableElement } =\n\t\t\t\t\tgetContext();\n\t\t\t\tif ( state.menuOpenedBy.click ) {\n\t\t\t\t\t// If Escape close the menu.\n\t\t\t\t\tif ( event?.key === 'Escape' ) {\n\t\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trap focus if it is an overlay (main menu).\n\t\t\t\t\tif ( type === 'overlay' && event.key === 'Tab' ) {\n\t\t\t\t\t\t// If shift + tab it change the direction.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tevent.shiftKey &&\n\t\t\t\t\t\t\twindow.document.activeElement ===\n\t\t\t\t\t\t\t\tfirstFocusableElement\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tlastFocusableElement.focus();\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t! event.shiftKey &&\n\t\t\t\t\t\t\twindow.document.activeElement ===\n\t\t\t\t\t\t\t\tlastFocusableElement\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tfirstFocusableElement.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\thandleMenuFocusout( event ) {\n\t\t\t\tconst { modal } = getContext();\n\t\t\t\t// If focus is outside modal, and in the document, close menu\n\t\t\t\t// event.target === The element losing focus\n\t\t\t\t// event.relatedTarget === The element receiving focus (if any)\n\t\t\t\t// When focusout is outsite the document,\n\t\t\t\t// `window.document.activeElement` doesn't change.\n\n\t\t\t\t// The event.relatedTarget is null when something outside the navigation menu is clicked. This is only necessary for Safari.\n\t\t\t\tif (\n\t\t\t\t\tevent.relatedTarget === null ||\n\t\t\t\t\t( ! modal?.contains( event.relatedTarget ) &&\n\t\t\t\t\t\tevent.target !== window.document.activeElement )\n\t\t\t\t) {\n\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\topenMenu( menuOpenedOn = 'click' ) {\n\t\t\t\tconst { type } = getContext();\n\t\t\t\tstate.menuOpenedBy[ menuOpenedOn ] = true;\n\t\t\t\tif ( type === 'overlay' ) {\n\t\t\t\t\t// Add a `has-modal-open` class to the <html> root.\n\t\t\t\t\tdocument.documentElement.classList.add( 'has-modal-open' );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tcloseMenu( menuClosedOn = 'click' ) {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tstate.menuOpenedBy[ menuClosedOn ] = false;\n\t\t\t\t// Check if the menu is still open or not.\n\t\t\t\tif ( ! state.isMenuOpen ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tctx.modal?.contains( window.document.activeElement )\n\t\t\t\t\t) {\n\t\t\t\t\t\tctx.previousFocus?.focus();\n\t\t\t\t\t}\n\t\t\t\t\tctx.modal = null;\n\t\t\t\t\tctx.previousFocus = null;\n\t\t\t\t\tif ( ctx.type === 'overlay' ) {\n\t\t\t\t\t\tdocument.documentElement.classList.remove(\n\t\t\t\t\t\t\t'has-modal-open'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcallbacks: {\n\t\t\tinitMenu() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tif ( state.isMenuOpen ) {\n\t\t\t\t\tconst focusableElements =\n\t\t\t\t\t\tref.querySelectorAll( focusableSelectors );\n\t\t\t\t\tctx.modal = ref;\n\t\t\t\t\tctx.firstFocusableElement = focusableElements[ 0 ];\n\t\t\t\t\tctx.lastFocusableElement =\n\t\t\t\t\t\tfocusableElements[ focusableElements.length - 1 ];\n\t\t\t\t}\n\t\t\t},\n\t\t\tfocusFirstElement() {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tif ( state.isMenuOpen ) {\n\t\t\t\t\tconst focusableElements =\n\t\t\t\t\t\tref.querySelectorAll( focusableSelectors );\n\t\t\t\t\tfocusableElements?.[ 0 ]?.focus();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\t{ lock: true }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["store","getContext","getElement","focusableSelectors","document","addEventListener","state","actions","roleAttribute","ctx","type","isMenuOpen","ariaModal","ariaLabel","Object","values","menuOpenedBy","filter","Boolean","length","overlayOpenedBy","submenuOpenedBy","openMenuOnHover","openMenu","closeMenuOnHover","closeMenu","openMenuOnClick","ref","previousFocus","closeMenuOnClick","openMenuOnFocus","toggleMenuOnClick","window","activeElement","focus","click","handleMenuKeydown","event","firstFocusableElement","lastFocusableElement","key","shiftKey","preventDefault","handleMenuFocusout","modal","relatedTarget","contains","target","menuOpenedOn","documentElement","classList","add","menuClosedOn","remove","callbacks","initMenu","focusableElements","querySelectorAll","focusFirstElement","lock"],"sources":["@wordpress/block-library/src/navigation/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, getContext, getElement } from '@wordpress/interactivity';\n\nconst focusableSelectors = [\n\t'a[href]',\n\t'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n\t'select:not([disabled]):not([aria-hidden])',\n\t'textarea:not([disabled]):not([aria-hidden])',\n\t'button:not([disabled]):not([aria-hidden])',\n\t'[contenteditable]',\n\t'[tabindex]:not([tabindex^=\"-\"])',\n];\n\n// This is a fix for Safari in iOS/iPadOS. Without it, Safari doesn't focus out\n// when the user taps in the body. It can be removed once we add an overlay to\n// capture the clicks, instead of relying on the focusout event.\ndocument.addEventListener( 'click', () => {} );\n\nconst { state, actions } = store(\n\t'core/navigation',\n\t{\n\t\tstate: {\n\t\t\tget roleAttribute() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? 'dialog'\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget ariaModal() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? 'true'\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget ariaLabel() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay' && state.isMenuOpen\n\t\t\t\t\t? ctx.ariaLabel\n\t\t\t\t\t: null;\n\t\t\t},\n\t\t\tget isMenuOpen() {\n\t\t\t\t// The menu is opened if either `click`, `hover` or `focus` is true.\n\t\t\t\treturn (\n\t\t\t\t\tObject.values( state.menuOpenedBy ).filter( Boolean )\n\t\t\t\t\t\t.length > 0\n\t\t\t\t);\n\t\t\t},\n\t\t\tget menuOpenedBy() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\treturn ctx.type === 'overlay'\n\t\t\t\t\t? ctx.overlayOpenedBy\n\t\t\t\t\t: ctx.submenuOpenedBy;\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\topenMenuOnHover() {\n\t\t\t\tconst { type, overlayOpenedBy } = getContext();\n\t\t\t\tif (\n\t\t\t\t\ttype === 'submenu' &&\n\t\t\t\t\t// Only open on hover if the overlay is closed.\n\t\t\t\t\tObject.values( overlayOpenedBy || {} ).filter( Boolean )\n\t\t\t\t\t\t.length === 0\n\t\t\t\t) {\n\t\t\t\t\tactions.openMenu( 'hover' );\n\t\t\t\t}\n\t\t\t},\n\t\t\tcloseMenuOnHover() {\n\t\t\t\tconst { type, overlayOpenedBy } = getContext();\n\t\t\t\tif (\n\t\t\t\t\ttype === 'submenu' &&\n\t\t\t\t\t// Only close on hover if the overlay is closed.\n\t\t\t\t\tObject.values( overlayOpenedBy || {} ).filter( Boolean )\n\t\t\t\t\t\t.length === 0\n\t\t\t\t) {\n\t\t\t\t\tactions.closeMenu( 'hover' );\n\t\t\t\t}\n\t\t\t},\n\t\t\topenMenuOnClick() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tctx.previousFocus = ref;\n\t\t\t\tactions.openMenu( 'click' );\n\t\t\t},\n\t\t\tcloseMenuOnClick() {\n\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t},\n\t\t\topenMenuOnFocus() {\n\t\t\t\tactions.openMenu( 'focus' );\n\t\t\t},\n\t\t\ttoggleMenuOnClick() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\t// Safari won't send focus to the clicked element, so we need to manually place it: https://bugs.webkit.org/show_bug.cgi?id=22261\n\t\t\t\tif ( window.document.activeElement !== ref ) ref.focus();\n\t\t\t\tconst { menuOpenedBy } = state;\n\t\t\t\tif ( menuOpenedBy.click || menuOpenedBy.focus ) {\n\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t} else {\n\t\t\t\t\tctx.previousFocus = ref;\n\t\t\t\t\tactions.openMenu( 'click' );\n\t\t\t\t}\n\t\t\t},\n\t\t\thandleMenuKeydown( event ) {\n\t\t\t\tconst { type, firstFocusableElement, lastFocusableElement } =\n\t\t\t\t\tgetContext();\n\t\t\t\tif ( state.menuOpenedBy.click ) {\n\t\t\t\t\t// If Escape close the menu.\n\t\t\t\t\tif ( event?.key === 'Escape' ) {\n\t\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trap focus if it is an overlay (main menu).\n\t\t\t\t\tif ( type === 'overlay' && event.key === 'Tab' ) {\n\t\t\t\t\t\t// If shift + tab it change the direction.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tevent.shiftKey &&\n\t\t\t\t\t\t\twindow.document.activeElement ===\n\t\t\t\t\t\t\t\tfirstFocusableElement\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tlastFocusableElement.focus();\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t! event.shiftKey &&\n\t\t\t\t\t\t\twindow.document.activeElement ===\n\t\t\t\t\t\t\t\tlastFocusableElement\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tfirstFocusableElement.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\thandleMenuFocusout( event ) {\n\t\t\t\tconst { modal } = getContext();\n\t\t\t\t// If focus is outside modal, and in the document, close menu\n\t\t\t\t// event.target === The element losing focus\n\t\t\t\t// event.relatedTarget === The element receiving focus (if any)\n\t\t\t\t// When focusout is outsite the document,\n\t\t\t\t// `window.document.activeElement` doesn't change.\n\n\t\t\t\t// The event.relatedTarget is null when something outside the navigation menu is clicked. This is only necessary for Safari.\n\t\t\t\tif (\n\t\t\t\t\tevent.relatedTarget === null ||\n\t\t\t\t\t( ! modal?.contains( event.relatedTarget ) &&\n\t\t\t\t\t\tevent.target !== window.document.activeElement )\n\t\t\t\t) {\n\t\t\t\t\tactions.closeMenu( 'click' );\n\t\t\t\t\tactions.closeMenu( 'focus' );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\topenMenu( menuOpenedOn = 'click' ) {\n\t\t\t\tconst { type } = getContext();\n\t\t\t\tstate.menuOpenedBy[ menuOpenedOn ] = true;\n\t\t\t\tif ( type === 'overlay' ) {\n\t\t\t\t\t// Add a `has-modal-open` class to the <html> root.\n\t\t\t\t\tdocument.documentElement.classList.add( 'has-modal-open' );\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tcloseMenu( menuClosedOn = 'click' ) {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tstate.menuOpenedBy[ menuClosedOn ] = false;\n\t\t\t\t// Check if the menu is still open or not.\n\t\t\t\tif ( ! state.isMenuOpen ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tctx.modal?.contains( window.document.activeElement )\n\t\t\t\t\t) {\n\t\t\t\t\t\tctx.previousFocus?.focus();\n\t\t\t\t\t}\n\t\t\t\t\tctx.modal = null;\n\t\t\t\t\tctx.previousFocus = null;\n\t\t\t\t\tif ( ctx.type === 'overlay' ) {\n\t\t\t\t\t\tdocument.documentElement.classList.remove(\n\t\t\t\t\t\t\t'has-modal-open'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcallbacks: {\n\t\t\tinitMenu() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tif ( state.isMenuOpen ) {\n\t\t\t\t\tconst focusableElements =\n\t\t\t\t\t\tref.querySelectorAll( focusableSelectors );\n\t\t\t\t\tctx.modal = ref;\n\t\t\t\t\tctx.firstFocusableElement = focusableElements[ 0 ];\n\t\t\t\t\tctx.lastFocusableElement =\n\t\t\t\t\t\tfocusableElements[ focusableElements.length - 1 ];\n\t\t\t\t}\n\t\t\t},\n\t\t\tfocusFirstElement() {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tif ( state.isMenuOpen ) {\n\t\t\t\t\tconst focusableElements =\n\t\t\t\t\t\tref.querySelectorAll( focusableSelectors );\n\t\t\t\t\tfocusableElements?.[ 0 ]?.focus();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\t{ lock: true }\n);\n"],"mappings":"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"}
|