@wordpress/block-library 7.18.0 → 7.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/button/deprecated.js +16 -2
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +13 -7
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +4 -1
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +2 -0
- package/build/button/save.js.map +1 -1
- package/build/columns/transforms.js +5 -0
- package/build/columns/transforms.js.map +1 -1
- package/build/cover/edit/index.js +3 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/gallery/v1/edit.js +4 -2
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/group/edit.js +98 -45
- 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/group/placeholder.js +168 -0
- package/build/group/placeholder.js.map +1 -0
- package/build/group/variations.js +3 -3
- package/build/group/variations.js.map +1 -1
- package/build/latest-comments/edit.js +2 -1
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-comments/index.js +5 -1
- package/build/latest-comments/index.js.map +1 -1
- package/build/latest-posts/deprecated.js +13 -0
- package/build/latest-posts/deprecated.js.map +1 -1
- package/build/latest-posts/index.js +13 -0
- package/build/latest-posts/index.js.map +1 -1
- package/build/list-item/edit.js +2 -1
- package/build/list-item/edit.js.map +1 -1
- package/build/navigation/edit/index.js +82 -92
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/manage-menus-button.js +36 -0
- package/build/navigation/edit/manage-menus-button.js.map +1 -0
- package/build/navigation/edit/navigation-menu-selector.js +12 -5
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +2 -6
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +5 -19
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation-link/edit.js +10 -1
- package/build/navigation-link/edit.js.map +1 -1
- package/build/post-author/edit.js +35 -20
- package/build/post-author/edit.js.map +1 -1
- package/build/post-content/index.js +3 -0
- package/build/post-content/index.js.map +1 -1
- package/build/site-logo/edit.js +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/template-part/variations.js +5 -0
- package/build/template-part/variations.js.map +1 -1
- package/build-module/button/deprecated.js +16 -2
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +15 -9
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +4 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +2 -0
- package/build-module/button/save.js.map +1 -1
- package/build-module/columns/transforms.js +5 -0
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/cover/edit/index.js +3 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/gallery/v1/edit.js +5 -3
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/group/edit.js +94 -45
- 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/group/placeholder.js +154 -0
- package/build-module/group/placeholder.js.map +1 -0
- package/build-module/group/variations.js +3 -3
- package/build-module/group/variations.js.map +1 -1
- package/build-module/latest-comments/edit.js +2 -1
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-comments/index.js +5 -1
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/latest-posts/deprecated.js +13 -0
- package/build-module/latest-posts/deprecated.js.map +1 -1
- package/build-module/latest-posts/index.js +13 -0
- package/build-module/latest-posts/index.js.map +1 -1
- package/build-module/list-item/edit.js +2 -1
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +84 -94
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/manage-menus-button.js +26 -0
- package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
- package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +2 -6
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -20
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation-link/edit.js +10 -1
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/post-author/edit.js +35 -21
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-content/index.js +3 -0
- package/build-module/post-content/index.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/template-part/variations.js +5 -0
- package/build-module/template-part/variations.js.map +1 -1
- package/build-style/editor-rtl.css +76 -1
- package/build-style/editor.css +76 -1
- package/build-style/group/editor-rtl.css +44 -0
- package/build-style/group/editor.css +44 -0
- package/build-style/latest-comments/style-rtl.css +1 -0
- package/build-style/latest-comments/style.css +1 -0
- package/build-style/latest-posts/style-rtl.css +3 -0
- package/build-style/latest-posts/style.css +3 -0
- package/build-style/navigation/editor-rtl.css +23 -0
- package/build-style/navigation/editor.css +23 -0
- package/build-style/navigation/style-rtl.css +10 -0
- package/build-style/navigation/style.css +10 -0
- package/build-style/navigation-link/editor-rtl.css +8 -1
- package/build-style/navigation-link/editor.css +8 -1
- package/build-style/query/editor-rtl.css +1 -1
- package/build-style/query/editor.css +1 -1
- package/build-style/query-pagination/style-rtl.css +1 -1
- package/build-style/query-pagination/style.css +1 -1
- package/build-style/style-rtl.css +20 -1
- package/build-style/style.css +20 -1
- package/build-style/table/editor-rtl.css +1 -0
- package/build-style/table/editor.css +1 -0
- package/build-style/table/style-rtl.css +5 -0
- package/build-style/table/style.css +5 -0
- package/build-style/table/theme-rtl.css +1 -3
- package/build-style/table/theme.css +1 -3
- package/build-style/theme-rtl.css +1 -3
- package/build-style/theme.css +1 -3
- package/package.json +28 -28
- package/src/avatar/index.php +1 -1
- package/src/block/test/edit.native.js +8 -8
- package/src/button/block.json +4 -1
- package/src/button/deprecated.js +18 -2
- package/src/button/edit.js +11 -9
- package/src/button/save.js +12 -2
- package/src/buttons/test/edit.native.js +19 -19
- package/src/columns/test/edit.native.js +32 -32
- package/src/columns/transforms.js +8 -0
- package/src/cover/edit/index.js +3 -1
- package/src/cover/test/edit.native.js +26 -26
- package/src/embed/test/index.native.js +43 -43
- package/src/gallery/test/index.native.js +11 -11
- package/src/gallery/v1/edit.js +19 -24
- package/src/group/block.json +3 -0
- package/src/group/edit.js +95 -44
- package/src/group/editor.scss +48 -0
- package/src/group/placeholder.js +187 -0
- package/src/group/test/edit.native.js +3 -3
- package/src/group/test/placeholder.js +78 -0
- package/src/group/variations.js +3 -3
- package/src/image/test/edit.native.js +17 -17
- package/src/latest-comments/block.json +5 -1
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-comments/style.scss +3 -0
- package/src/latest-posts/block.json +13 -0
- package/src/latest-posts/style.scss +3 -0
- package/src/list/test/edit.native.js +36 -36
- package/src/list-item/edit.js +1 -0
- package/src/missing/test/edit-integration.native.js +5 -5
- package/src/navigation/edit/index.js +173 -146
- package/src/navigation/edit/manage-menus-button.js +21 -0
- package/src/navigation/edit/navigation-menu-selector.js +20 -5
- package/src/navigation/edit/responsive-wrapper.js +2 -10
- package/src/navigation/edit/unsaved-inner-blocks.js +5 -29
- package/src/navigation/editor.scss +25 -0
- package/src/navigation/style.scss +16 -0
- package/src/navigation-link/edit.js +8 -0
- package/src/navigation-link/editor.scss +8 -0
- package/src/post-author/edit.js +44 -20
- package/src/post-content/block.json +3 -0
- package/src/query/editor.scss +1 -1
- package/src/query-pagination/style.scss +1 -1
- package/src/read-more/index.php +9 -2
- package/src/shortcode/test/edit.native.js +5 -5
- package/src/site-logo/edit.js +1 -1
- package/src/social-link/test/index.native.js +10 -10
- package/src/social-links/test/edit.native.js +4 -4
- package/src/spacer/test/index.native.js +17 -17
- package/src/table/editor.scss +1 -0
- package/src/table/style.scss +7 -0
- package/src/table/theme.scss +1 -3
- package/src/template-part/index.php +5 -0
- package/src/template-part/variations.js +4 -0
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
-
var _url = require("@wordpress/url");
|
|
15
|
-
|
|
16
14
|
var _blockEditor = require("@wordpress/block-editor");
|
|
17
15
|
|
|
18
16
|
var _coreData = require("@wordpress/core-data");
|
|
@@ -61,6 +59,8 @@ var _useInnerBlocks = require("./use-inner-blocks");
|
|
|
61
59
|
|
|
62
60
|
var _utils = require("./utils");
|
|
63
61
|
|
|
62
|
+
var _manageMenusButton = _interopRequireDefault(require("./manage-menus-button"));
|
|
63
|
+
|
|
64
64
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
65
65
|
|
|
66
66
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -77,7 +77,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
77
77
|
* Internal dependencies
|
|
78
78
|
*/
|
|
79
79
|
function Navigation(_ref) {
|
|
80
|
-
var _attributes$style, _attributes$style$typ;
|
|
80
|
+
var _window, _attributes$style, _attributes$style$typ;
|
|
81
81
|
|
|
82
82
|
let {
|
|
83
83
|
attributes,
|
|
@@ -99,6 +99,7 @@ function Navigation(_ref) {
|
|
|
99
99
|
hasColorSettings = true,
|
|
100
100
|
customPlaceholder: CustomPlaceholder = null
|
|
101
101
|
} = _ref;
|
|
102
|
+
const isOffCanvasNavigationEditorEnabled = ((_window = window) === null || _window === void 0 ? void 0 : _window.__experimentalEnableOffCanvasNavigationEditor) === true;
|
|
102
103
|
const {
|
|
103
104
|
openSubmenusOnClick,
|
|
104
105
|
overlayMenu,
|
|
@@ -186,7 +187,6 @@ function Navigation(_ref) {
|
|
|
186
187
|
selectBlock,
|
|
187
188
|
__unstableMarkNextChangeAsNotPersistent
|
|
188
189
|
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
189
|
-
const [hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks] = (0, _element.useState)(false);
|
|
190
190
|
const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0, _element.useState)(false);
|
|
191
191
|
const [overlayMenuPreview, setOverlayMenuPreview] = (0, _element.useState)(false);
|
|
192
192
|
const {
|
|
@@ -211,7 +211,15 @@ function Navigation(_ref) {
|
|
|
211
211
|
} = (0, _useConvertClassicMenuToBlockMenu.default)(clientId);
|
|
212
212
|
const isConvertingClassicMenu = classicMenuConversionStatus === _useConvertClassicMenuToBlockMenu.CLASSIC_MENU_CONVERSION_PENDING; // Only autofallback to published menus.
|
|
213
213
|
|
|
214
|
-
const fallbackNavigationMenus =
|
|
214
|
+
const fallbackNavigationMenus = (0, _element.useMemo)(() => {
|
|
215
|
+
var _navigationMenus$filt;
|
|
216
|
+
|
|
217
|
+
return navigationMenus === null || navigationMenus === void 0 ? void 0 : (_navigationMenus$filt = navigationMenus.filter(menu => menu.status === 'publish')) === null || _navigationMenus$filt === void 0 ? void 0 : _navigationMenus$filt.sort((menuA, menuB) => {
|
|
218
|
+
const menuADate = new Date(menuA.date);
|
|
219
|
+
const menuBDate = new Date(menuB.date);
|
|
220
|
+
return menuADate.getTime() < menuBDate.getTime();
|
|
221
|
+
});
|
|
222
|
+
}, [navigationMenus]); // Attempt to retrieve and prioritize any existing navigation menu unless:
|
|
215
223
|
// - the are uncontrolled inner blocks already present in the block.
|
|
216
224
|
// - the user is creating a new menu.
|
|
217
225
|
// - there are no menus to choose from.
|
|
@@ -223,12 +231,6 @@ function Navigation(_ref) {
|
|
|
223
231
|
if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !(fallbackNavigationMenus !== null && fallbackNavigationMenus !== void 0 && fallbackNavigationMenus.length)) {
|
|
224
232
|
return;
|
|
225
233
|
}
|
|
226
|
-
|
|
227
|
-
fallbackNavigationMenus.sort((menuA, menuB) => {
|
|
228
|
-
const menuADate = new Date(menuA.date);
|
|
229
|
-
const menuBDate = new Date(menuB.date);
|
|
230
|
-
return menuADate.getTime() < menuBDate.getTime();
|
|
231
|
-
});
|
|
232
234
|
/**
|
|
233
235
|
* This fallback displays (both in editor and on front)
|
|
234
236
|
* a list of pages only if no menu (user assigned or
|
|
@@ -237,10 +239,11 @@ function Navigation(_ref) {
|
|
|
237
239
|
* nor to be undoable, hence why it is marked as non persistent
|
|
238
240
|
*/
|
|
239
241
|
|
|
242
|
+
|
|
240
243
|
__unstableMarkNextChangeAsNotPersistent();
|
|
241
244
|
|
|
242
245
|
setRef(fallbackNavigationMenus[0].id);
|
|
243
|
-
}, [
|
|
246
|
+
}, [ref, isCreatingNavigationMenu, fallbackNavigationMenus, hasUncontrolledInnerBlocks]);
|
|
244
247
|
(0, _element.useEffect)(() => {
|
|
245
248
|
if (!hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) !== 1) {
|
|
246
249
|
return;
|
|
@@ -493,11 +496,12 @@ function Navigation(_ref) {
|
|
|
493
496
|
|
|
494
497
|
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
|
|
495
498
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
}
|
|
500
|
-
|
|
499
|
+
const WrappedNavigationMenuSelector = _ref2 => {
|
|
500
|
+
let {
|
|
501
|
+
currentMenuId
|
|
502
|
+
} = _ref2;
|
|
503
|
+
return (0, _element.createElement)(_navigationMenuSelector.default, {
|
|
504
|
+
currentMenuId: currentMenuId,
|
|
501
505
|
clientId: clientId,
|
|
502
506
|
onSelectNavigationMenu: menuId => {
|
|
503
507
|
handleUpdateMenu(menuId);
|
|
@@ -512,17 +516,35 @@ function Navigation(_ref) {
|
|
|
512
516
|
}
|
|
513
517
|
},
|
|
514
518
|
onCreateNew: createUntitledEmptyNavigationMenu,
|
|
515
|
-
createNavigationMenuIsSuccess: createNavigationMenuIsSuccess
|
|
519
|
+
createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
|
|
520
|
+
createNavigationMenuIsError: createNavigationMenuIsError
|
|
516
521
|
/* translators: %s: The name of a menu. */
|
|
517
522
|
,
|
|
518
523
|
actionLabel: (0, _i18n.__)("Switch to '%s'")
|
|
519
|
-
})
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
524
|
+
});
|
|
525
|
+
};
|
|
526
|
+
|
|
527
|
+
const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
|
|
528
|
+
|
|
529
|
+
if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
|
|
530
|
+
return (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
531
|
+
title: isOffCanvasNavigationEditorEnabled ? null : (0, _i18n.__)('Menu')
|
|
532
|
+
}, isOffCanvasNavigationEditorEnabled ? (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
533
|
+
className: "wp-block-navigation-off-canvas-editor__header"
|
|
534
|
+
}, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
535
|
+
className: "wp-block-navigation-off-canvas-editor__title",
|
|
536
|
+
level: 2
|
|
537
|
+
}, (0, _i18n.__)('Menu')), (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
538
|
+
currentMenuId: ref
|
|
539
|
+
})), (0, _element.createElement)(_blockEditor.__experimentalOffCanvasEditor, {
|
|
540
|
+
blocks: innerBlocks,
|
|
541
|
+
isExpanded: true,
|
|
542
|
+
selectBlockInCanvas: false
|
|
543
|
+
})) : (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
544
|
+
currentMenuId: ref
|
|
545
|
+
}), (0, _element.createElement)(_manageMenusButton.default, {
|
|
546
|
+
disabled: isManageMenusButtonDisabled
|
|
547
|
+
})))), stylingInspectorControls, (0, _element.createElement)(_responsiveWrapper.default, {
|
|
526
548
|
id: clientId,
|
|
527
549
|
onToggle: setResponsiveMenuVisibility,
|
|
528
550
|
isOpen: isResponsiveMenuOpen,
|
|
@@ -533,19 +555,11 @@ function Navigation(_ref) {
|
|
|
533
555
|
overlayBackgroundColor: overlayBackgroundColor,
|
|
534
556
|
overlayTextColor: overlayTextColor
|
|
535
557
|
}, (0, _element.createElement)(_unsavedInnerBlocks.default, {
|
|
558
|
+
createNavigationMenu: createNavigationMenu,
|
|
536
559
|
blocks: uncontrolledInnerBlocks,
|
|
537
|
-
clientId: clientId,
|
|
538
560
|
templateLock: templateLock,
|
|
539
561
|
navigationMenus: navigationMenus,
|
|
540
|
-
hasSelection: isSelected || isInnerBlockSelected
|
|
541
|
-
hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
|
|
542
|
-
onSave: post => {
|
|
543
|
-
// Set some state used as a guard to prevent the creation of multiple posts.
|
|
544
|
-
setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.
|
|
545
|
-
|
|
546
|
-
setRef(post.id);
|
|
547
|
-
showNavigationMenuStatusNotice((0, _i18n.__)(`New Navigation Menu created.`));
|
|
548
|
-
}
|
|
562
|
+
hasSelection: isSelected || isInnerBlockSelected
|
|
549
563
|
})));
|
|
550
564
|
} // Show a warning if the selected menu is no longer available.
|
|
551
565
|
// TODO - the user should be able to select a new one?
|
|
@@ -553,34 +567,19 @@ function Navigation(_ref) {
|
|
|
553
567
|
|
|
554
568
|
if (ref && isNavigationMenuMissing) {
|
|
555
569
|
return (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
556
|
-
title: (0, _i18n.__)('Menu')
|
|
557
|
-
}, (0, _element.createElement)(
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
});
|
|
570
|
-
}
|
|
571
|
-
},
|
|
572
|
-
onCreateNew: createUntitledEmptyNavigationMenu,
|
|
573
|
-
createNavigationMenuIsSuccess: createNavigationMenuIsSuccess
|
|
574
|
-
/* translators: %s: The name of a menu. */
|
|
575
|
-
,
|
|
576
|
-
actionLabel: (0, _i18n.__)("Switch to '%s'")
|
|
577
|
-
}), (0, _element.createElement)(_components.Button, {
|
|
578
|
-
variant: "link",
|
|
579
|
-
disabled: !hasManagePermissions || !hasResolvedNavigationMenus,
|
|
580
|
-
href: (0, _url.addQueryArgs)('edit.php', {
|
|
581
|
-
post_type: 'wp_navigation'
|
|
582
|
-
})
|
|
583
|
-
}, (0, _i18n.__)('Manage menus')))), (0, _element.createElement)(_blockEditor.Warning, null, (0, _i18n.__)('Navigation menu has been deleted or is unavailable. '), (0, _element.createElement)(_components.Button, {
|
|
570
|
+
title: isOffCanvasNavigationEditorEnabled ? null : (0, _i18n.__)('Menu')
|
|
571
|
+
}, isOffCanvasNavigationEditorEnabled ? (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
572
|
+
className: "wp-block-navigation-off-canvas-editor__header"
|
|
573
|
+
}, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
574
|
+
className: "wp-block-navigation-off-canvas-editor__title",
|
|
575
|
+
level: 2
|
|
576
|
+
}, (0, _i18n.__)('Menu')), (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
577
|
+
currentMenuId: null
|
|
578
|
+
})), (0, _element.createElement)("p", null, "Select or create a menu")) : (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
579
|
+
currentMenuId: null
|
|
580
|
+
}), (0, _element.createElement)(_manageMenusButton.default, {
|
|
581
|
+
disabled: isManageMenusButtonDisabled
|
|
582
|
+
})))), (0, _element.createElement)(_blockEditor.Warning, null, (0, _i18n.__)('Navigation menu has been deleted or is unavailable. '), (0, _element.createElement)(_components.Button, {
|
|
584
583
|
onClick: createUntitledEmptyNavigationMenu,
|
|
585
584
|
variant: "link"
|
|
586
585
|
}, (0, _i18n.__)('Create a new menu?'))));
|
|
@@ -631,35 +630,23 @@ function Navigation(_ref) {
|
|
|
631
630
|
}, (0, _element.createElement)(_blockEditor.__experimentalRecursionProvider, {
|
|
632
631
|
uniqueId: recursionId
|
|
633
632
|
}, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
634
|
-
title: (0, _i18n.__)('Menu')
|
|
635
|
-
}, (0, _element.createElement)(
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
|
|
652
|
-
createNavigationMenuIsError: createNavigationMenuIsError
|
|
653
|
-
/* translators: %s: The name of a menu. */
|
|
654
|
-
,
|
|
655
|
-
actionLabel: (0, _i18n.__)("Switch to '%s'")
|
|
656
|
-
}), (0, _element.createElement)(_components.Button, {
|
|
657
|
-
variant: "link",
|
|
658
|
-
disabled: !hasManagePermissions || !hasResolvedNavigationMenus,
|
|
659
|
-
href: (0, _url.addQueryArgs)('edit.php', {
|
|
660
|
-
post_type: 'wp_navigation'
|
|
661
|
-
})
|
|
662
|
-
}, (0, _i18n.__)('Manage menus')))), stylingInspectorControls, isEntityAvailable && (0, _element.createElement)(_blockEditor.InspectorControls, {
|
|
633
|
+
title: isOffCanvasNavigationEditorEnabled ? null : (0, _i18n.__)('Menu')
|
|
634
|
+
}, isOffCanvasNavigationEditorEnabled ? (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
635
|
+
className: "wp-block-navigation-off-canvas-editor__header"
|
|
636
|
+
}, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
637
|
+
className: "wp-block-navigation-off-canvas-editor__title",
|
|
638
|
+
level: 2
|
|
639
|
+
}, (0, _i18n.__)('Menu')), (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
640
|
+
currentMenuId: ref
|
|
641
|
+
})), (0, _element.createElement)(_blockEditor.__experimentalOffCanvasEditor, {
|
|
642
|
+
blocks: innerBlocks,
|
|
643
|
+
isExpanded: true,
|
|
644
|
+
selectBlockInCanvas: false
|
|
645
|
+
})) : (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(WrappedNavigationMenuSelector, {
|
|
646
|
+
currentMenuId: ref
|
|
647
|
+
}), (0, _element.createElement)(_manageMenusButton.default, {
|
|
648
|
+
disabled: isManageMenusButtonDisabled
|
|
649
|
+
})))), stylingInspectorControls, isEntityAvailable && (0, _element.createElement)(_blockEditor.InspectorControls, {
|
|
663
650
|
__experimentalGroup: "advanced"
|
|
664
651
|
}, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && (0, _element.createElement)(_navigationMenuNameControl.default, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && (0, _element.createElement)(_navigationMenuDeleteControl.default, {
|
|
665
652
|
onDelete: function () {
|
|
@@ -668,6 +655,9 @@ function Navigation(_ref) {
|
|
|
668
655
|
showNavigationMenuStatusNotice((0, _i18n.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
|
|
669
656
|
(0, _i18n.__)('Navigation menu %s successfully deleted.'), deletedMenuTitle));
|
|
670
657
|
}
|
|
658
|
+
}), isOffCanvasNavigationEditorEnabled && (0, _element.createElement)(_manageMenusButton.default, {
|
|
659
|
+
disabled: isManageMenusButtonDisabled,
|
|
660
|
+
className: "wp-block-navigation-manage-menus-button"
|
|
671
661
|
})), isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_components.Spinner, {
|
|
672
662
|
className: "wp-block-navigation__loading-indicator"
|
|
673
663
|
})), !isLoading && (0, _element.createElement)(TagName, blockProps, (0, _element.createElement)(_responsiveWrapper.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","coreStore","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenus","filter","menu","length","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","stylingInspectorControls","close","onChange","label","hasUnsavedBlocks","classicMenu","navMenu","post_type","post","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef, Platform } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks ] =\n\t\tuseState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = navigationMenus?.filter(\n\t\t( menu ) => menu.status === 'publish'\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tfallbackNavigationMenus.sort( ( menuA, menuB ) => {\n\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t} );\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\tclassicMenus?.length !== 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// only one classic menu then create a new navigation menu based on it.\n\t\tconvertClassicMenu(\n\t\t\tclassicMenus[ 0 ].id,\n\t\t\tclassicMenus[ 0 ].name,\n\t\t\t'publish'\n\t\t);\n\t}, [ hasResolvedNavigationMenus ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</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</Button>\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\ticon={ icon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\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</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\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'Navigation menu %s successfully deleted.'\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\tdeletedMenuTitle\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","isOffCanvasNavigationEditorEnabled","window","__experimentalEnableOffCanvasNavigationEditor","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","coreStore","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","length","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","stylingInspectorControls","close","onChange","label","hasUnsavedBlocks","WrappedNavigationMenuSelector","currentMenuId","classicMenu","navMenu","isManageMenusButtonDisabled","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\t__experimentalOffCanvasEditor as OffCanvasEditor,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst isOffCanvasNavigationEditorEnabled =\n\t\twindow?.__experimentalEnableOffCanvasNavigationEditor === true;\n\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = useMemo(\n\t\t() =>\n\t\t\tnavigationMenus\n\t\t\t\t?.filter( ( menu ) => menu.status === 'publish' )\n\t\t\t\t?.sort( ( menuA, menuB ) => {\n\t\t\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t\t\t} ),\n\t\t[ navigationMenus ]\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [\n\t\tref,\n\t\tisCreatingNavigationMenu,\n\t\tfallbackNavigationMenus,\n\t\thasUncontrolledInnerBlocks,\n\t] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\tclassicMenus?.length !== 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// only one classic menu then create a new navigation menu based on it.\n\t\tconvertClassicMenu(\n\t\t\tclassicMenus[ 0 ].id,\n\t\t\tclassicMenus[ 0 ].name,\n\t\t\t'publish'\n\t\t);\n\t}, [ hasResolvedNavigationMenus ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</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</Button>\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\ticon={ icon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tconst WrappedNavigationMenuSelector = ( { currentMenuId } ) => (\n\t\t<NavigationMenuSelector\n\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\tclientId={ clientId }\n\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t} }\n\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t'draft'\n\t\t\t\t);\n\t\t\t\tif ( navMenu ) {\n\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\tcreateNavigationMenuIsSuccess={ createNavigationMenuIsSuccess }\n\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t/* translators: %s: The name of a menu. */\n\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t/>\n\t);\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<OffCanvasEditor\n\t\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t\t\t\tselectBlockInCanvas={ false }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<p>Select or create a menu</p>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\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\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tisOffCanvasNavigationEditorEnabled\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: __( 'Menu' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t<OffCanvasEditor\n\t\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t\t\t\tselectBlockInCanvas={ false }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<WrappedNavigationMenuSelector\n\t\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\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'Navigation menu %s successfully deleted.'\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\tdeletedMenuTitle\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled && (\n\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _url = require("@wordpress/url");
|
|
11
|
+
|
|
12
|
+
var _components = require("@wordpress/components");
|
|
13
|
+
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
const ManageMenusButton = _ref => {
|
|
20
|
+
let {
|
|
21
|
+
className = '',
|
|
22
|
+
disabled
|
|
23
|
+
} = _ref;
|
|
24
|
+
return (0, _element.createElement)(_components.Button, {
|
|
25
|
+
variant: "link",
|
|
26
|
+
disabled: disabled,
|
|
27
|
+
className: className,
|
|
28
|
+
href: (0, _url.addQueryArgs)('edit.php', {
|
|
29
|
+
post_type: 'wp_navigation'
|
|
30
|
+
})
|
|
31
|
+
}, (0, _i18n.__)('Manage menus'));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var _default = ManageMenusButton;
|
|
35
|
+
exports.default = _default;
|
|
36
|
+
//# sourceMappingURL=manage-menus-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/manage-menus-button.js"],"names":["ManageMenusButton","className","disabled","post_type"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKA,MAAMA,iBAAiB,GAAG;AAAA,MAAE;AAAEC,IAAAA,SAAS,GAAG,EAAd;AAAkBC,IAAAA;AAAlB,GAAF;AAAA,SACzB,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,MADT;AAEC,IAAA,QAAQ,EAAGA,QAFZ;AAGC,IAAA,SAAS,EAAGD,SAHb;AAIC,IAAA,IAAI,EAAG,uBAAc,UAAd,EAA0B;AAChCE,MAAAA,SAAS,EAAE;AADqB,KAA1B;AAJR,KAQG,cAAI,cAAJ,CARH,CADyB;AAAA,CAA1B;;eAaeH,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst ManageMenusButton = ( { className = '', disabled } ) => (\n\t<Button\n\t\tvariant=\"link\"\n\t\tdisabled={ disabled }\n\t\tclassName={ className }\n\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\tpost_type: 'wp_navigation',\n\t\t} ) }\n\t>\n\t\t{ __( 'Manage menus' ) }\n\t</Button>\n);\n\nexport default ManageMenusButton;\n"]}
|
|
@@ -31,6 +31,8 @@ var _useNavigationEntities = _interopRequireDefault(require("../use-navigation-e
|
|
|
31
31
|
* Internal dependencies
|
|
32
32
|
*/
|
|
33
33
|
function NavigationMenuSelector(_ref) {
|
|
34
|
+
var _window;
|
|
35
|
+
|
|
34
36
|
let {
|
|
35
37
|
currentMenuId,
|
|
36
38
|
onSelectNavigationMenu,
|
|
@@ -41,8 +43,9 @@ function NavigationMenuSelector(_ref) {
|
|
|
41
43
|
createNavigationMenuIsError,
|
|
42
44
|
toggleProps = {}
|
|
43
45
|
} = _ref;
|
|
44
|
-
|
|
46
|
+
const isOffCanvasNavigationEditorEnabled = ((_window = window) === null || _window === void 0 ? void 0 : _window.__experimentalEnableOffCanvasNavigationEditor) === true;
|
|
45
47
|
/* translators: %s: The name of a menu. */
|
|
48
|
+
|
|
46
49
|
const createActionLabel = (0, _i18n.__)("Create from '%s'");
|
|
47
50
|
const [selectorLabel, setSelectorLabel] = (0, _element.useState)('');
|
|
48
51
|
const [isPressed, setIsPressed] = (0, _element.useState)(false);
|
|
@@ -132,11 +135,15 @@ function NavigationMenuSelector(_ref) {
|
|
|
132
135
|
}
|
|
133
136
|
|
|
134
137
|
return (0, _element.createElement)(_components.DropdownMenu, {
|
|
135
|
-
className:
|
|
138
|
+
className: isOffCanvasNavigationEditorEnabled ? '' : 'wp-block-navigation__navigation-selector',
|
|
136
139
|
label: selectorLabel,
|
|
137
|
-
text:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
text: (0, _element.createElement)("span", {
|
|
141
|
+
className: "wp-block-navigation__navigation-selector-button__label"
|
|
142
|
+
}, isOffCanvasNavigationEditorEnabled ? '' : selectorLabel),
|
|
143
|
+
icon: isOffCanvasNavigationEditorEnabled ? _icons.moreVertical : null,
|
|
144
|
+
toggleProps: isOffCanvasNavigationEditorEnabled ? {
|
|
145
|
+
isSmall: true
|
|
146
|
+
} : toggleProps
|
|
140
147
|
}, _ref3 => {
|
|
141
148
|
let {
|
|
142
149
|
onClose
|