@wordpress/block-library 7.0.1 → 7.0.2
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/README.md +16 -0
- package/build/button/edit.native.js +2 -2
- package/build/button/edit.native.js.map +1 -1
- package/build/columns/index.js +12 -0
- package/build/columns/index.js.map +1 -1
- package/build/comment-author-avatar/edit.js +17 -4
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/comment-template/edit.js +94 -36
- package/build/comment-template/edit.js.map +1 -1
- package/build/comment-template/hooks.js +175 -0
- package/build/comment-template/hooks.js.map +1 -0
- package/build/comment-template/index.js +1 -1
- package/build/comment-template/util.js.map +1 -1
- package/build/comments-pagination-next/index.js +1 -1
- package/build/comments-pagination-numbers/index.js +1 -1
- package/build/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build/comments-query-loop/edit.js +1 -19
- package/build/comments-query-loop/edit.js.map +1 -1
- package/build/comments-query-loop/index.js +5 -0
- package/build/comments-query-loop/index.js.map +1 -1
- package/build/cover/edit.js +21 -22
- package/build/cover/edit.js.map +1 -1
- package/build/cover/edit.native.js +7 -5
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/overlay-color-settings.native.js +4 -3
- package/build/cover/overlay-color-settings.native.js.map +1 -1
- package/build/cover/transforms.js +4 -2
- package/build/cover/transforms.js.map +1 -1
- package/build/group/index.js +1 -0
- package/build/group/index.js.map +1 -1
- package/build/heading/edit.js +14 -2
- package/build/heading/edit.js.map +1 -1
- package/build/image/deprecated.js +89 -5
- package/build/image/deprecated.js.map +1 -1
- package/build/image/save.js +0 -7
- package/build/image/save.js.map +1 -1
- package/build/latest-posts/edit.js +1 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/navigation/edit/index.js +17 -15
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +44 -27
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +8 -22
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +6 -6
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-submenu/edit.js +41 -9
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +11 -17
- package/build/page-list/edit.js.map +1 -1
- package/build/social-links/deprecated.js +1 -62
- package/build/social-links/deprecated.js.map +1 -1
- package/build/template-part/edit/index.js +36 -64
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/placeholder.js +64 -0
- package/build/template-part/edit/placeholder.js.map +1 -0
- package/build/template-part/edit/selection-modal.js +103 -0
- package/build/template-part/edit/selection-modal.js.map +1 -0
- package/build/template-part/edit/title-modal.js +54 -0
- package/build/template-part/edit/title-modal.js.map +1 -0
- package/build/template-part/edit/utils/hooks.js +156 -0
- package/build/template-part/edit/utils/hooks.js.map +1 -0
- package/build/template-part/index.js +3 -1
- package/build/template-part/index.js.map +1 -1
- package/build-module/button/edit.native.js +4 -4
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/columns/index.js +12 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +18 -6
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/comment-template/edit.js +95 -37
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/comment-template/hooks.js +156 -0
- package/build-module/comment-template/hooks.js.map +1 -0
- package/build-module/comment-template/index.js +1 -1
- package/build-module/comment-template/util.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +1 -1
- package/build-module/comments-pagination-numbers/index.js +1 -1
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/comments-query-loop/edit.js +2 -19
- package/build-module/comments-query-loop/edit.js.map +1 -1
- package/build-module/comments-query-loop/index.js +5 -0
- package/build-module/comments-query-loop/index.js.map +1 -1
- package/build-module/cover/edit.js +23 -24
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/cover/edit.native.js +10 -8
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/overlay-color-settings.native.js +4 -4
- package/build-module/cover/overlay-color-settings.native.js.map +1 -1
- package/build-module/cover/transforms.js +4 -2
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/group/index.js +1 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/edit.js +15 -3
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/image/deprecated.js +90 -7
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/save.js +0 -7
- package/build-module/image/save.js.map +1 -1
- package/build-module/latest-posts/edit.js +1 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +17 -15
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +45 -27
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +8 -21
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +6 -6
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +41 -10
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +12 -18
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/social-links/deprecated.js +1 -62
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/template-part/edit/index.js +37 -65
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +52 -0
- package/build-module/template-part/edit/placeholder.js.map +1 -0
- package/build-module/template-part/edit/selection-modal.js +89 -0
- package/build-module/template-part/edit/selection-modal.js.map +1 -0
- package/build-module/template-part/edit/title-modal.js +46 -0
- package/build-module/template-part/edit/title-modal.js.map +1 -0
- package/build-module/template-part/edit/utils/hooks.js +135 -0
- package/build-module/template-part/edit/utils/hooks.js.map +1 -0
- package/build-module/template-part/index.js +2 -1
- package/build-module/template-part/index.js.map +1 -1
- package/build-style/comment-author-avatar/editor-rtl.css +83 -0
- package/build-style/comment-author-avatar/editor.css +83 -0
- package/build-style/cover/style-rtl.css +4 -0
- package/build-style/cover/style.css +4 -0
- package/build-style/editor-rtl.css +27 -81
- package/build-style/editor.css +27 -81
- package/build-style/image/editor-rtl.css +0 -16
- package/build-style/image/editor.css +0 -16
- package/build-style/image/style-rtl.css +2 -0
- package/build-style/image/style.css +2 -0
- package/build-style/navigation/style-rtl.css +14 -3
- package/build-style/navigation/style.css +14 -3
- package/build-style/page-list/editor-rtl.css +0 -9
- package/build-style/page-list/editor.css +0 -9
- package/build-style/style-rtl.css +20 -3
- package/build-style/style.css +20 -3
- package/build-style/template-part/editor-rtl.css +19 -56
- package/build-style/template-part/editor.css +19 -56
- package/package.json +15 -15
- package/src/archives/index.php +1 -1
- package/src/button/edit.native.js +3 -3
- package/src/columns/block.json +12 -0
- package/src/comment-author-avatar/edit.js +13 -8
- package/src/comment-author-avatar/editor.scss +7 -0
- package/src/comment-template/block.json +7 -1
- package/src/comment-template/edit.js +102 -40
- package/src/comment-template/hooks.js +151 -0
- package/src/comment-template/index.php +8 -0
- package/src/comment-template/util.js +1 -0
- package/src/comments-pagination-next/block.json +8 -1
- package/src/comments-pagination-next/index.php +6 -8
- package/src/comments-pagination-numbers/block.json +7 -1
- package/src/comments-pagination-numbers/index.php +3 -10
- package/src/comments-query-loop/block.json +5 -0
- package/src/comments-query-loop/edit/comments-inspector-controls.js +22 -4
- package/src/comments-query-loop/edit.js +1 -16
- package/src/cover/edit.js +15 -28
- package/src/cover/edit.native.js +15 -7
- package/src/cover/overlay-color-settings.native.js +3 -4
- package/src/cover/style.scss +4 -0
- package/src/cover/transforms.js +2 -0
- package/src/editor.scss +1 -0
- package/src/gallery/index.php +1 -8
- package/src/group/block.json +1 -0
- package/src/heading/edit.js +18 -5
- package/src/home-link/index.php +1 -19
- package/src/image/deprecated.js +105 -1
- package/src/image/editor.scss +0 -18
- package/src/image/save.js +0 -8
- package/src/image/style.scss +3 -0
- package/src/image/test/edit.native.js +0 -10
- package/src/latest-posts/edit.js +1 -0
- package/src/latest-posts/index.php +1 -1
- package/src/navigation/edit/index.js +25 -26
- package/src/navigation/edit/navigation-menu-selector.js +73 -28
- package/src/navigation/edit/placeholder/index.js +8 -32
- package/src/navigation/index.php +4 -4
- package/src/navigation/style.scss +22 -3
- package/src/navigation/use-navigation-menu.js +6 -6
- package/src/navigation-link/index.php +3 -22
- package/src/navigation-submenu/edit.js +50 -12
- package/src/navigation-submenu/index.php +3 -21
- package/src/page-list/edit.js +21 -25
- package/src/page-list/editor.scss +0 -10
- package/src/page-list/index.php +4 -4
- package/src/post-navigation-link/index.php +3 -3
- package/src/search/index.php +6 -3
- package/src/site-logo/index.php +1 -1
- package/src/social-links/deprecated.js +0 -59
- package/src/template-part/edit/index.js +61 -71
- package/src/template-part/edit/placeholder.js +78 -0
- package/src/template-part/edit/selection-modal.js +115 -0
- package/src/template-part/edit/title-modal.js +59 -0
- package/src/template-part/edit/utils/hooks.js +158 -0
- package/src/template-part/editor.scss +16 -74
- package/src/template-part/index.js +4 -1
- package/build/navigation/edit/existing-menus-options.js +0 -62
- package/build/navigation/edit/existing-menus-options.js.map +0 -1
- package/build/template-part/edit/placeholder/index.js +0 -141
- package/build/template-part/edit/placeholder/index.js.map +0 -1
- package/build/template-part/edit/placeholder/patterns-setup.js +0 -100
- package/build/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build/template-part/edit/selection/index.js +0 -45
- package/build/template-part/edit/selection/index.js.map +0 -1
- package/build/template-part/edit/selection/template-part-previews.js +0 -317
- package/build/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/build-module/navigation/edit/existing-menus-options.js +0 -53
- package/build-module/navigation/edit/existing-menus-options.js.map +0 -1
- package/build-module/template-part/edit/placeholder/index.js +0 -124
- package/build-module/template-part/edit/placeholder/index.js.map +0 -1
- package/build-module/template-part/edit/placeholder/patterns-setup.js +0 -91
- package/build-module/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build-module/template-part/edit/selection/index.js +0 -35
- package/build-module/template-part/edit/selection/index.js.map +0 -1
- package/build-module/template-part/edit/selection/template-part-previews.js +0 -298
- package/build-module/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/src/navigation/edit/existing-menus-options.js +0 -70
- package/src/template-part/edit/placeholder/index.js +0 -172
- package/src/template-part/edit/placeholder/patterns-setup.js +0 -124
- package/src/template-part/edit/selection/index.js +0 -37
- package/src/template-part/edit/selection/template-part-previews.js +0 -372
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","noop","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","EntityProvider","useEntityProp","useDispatch","useSelect","useRegistry","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","ToolbarDropdownMenu","Button","__","useListViewModal","useNavigationMenu","useNavigationEntities","Placeholder","PlaceholderPreview","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","areaMenu","setAreaMenu","process","env","IS_GUTENBERG_PLUGIN","navigationAreaMenu","undefined","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","name","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","canUserUpdateNavigationEntity","hasResolvedCanUserUpdateNavigationEntity","canUserDeleteNavigationEntity","hasResolvedCanUserDeleteNavigationEntity","canUserCreateNavigation","hasResolvedCanUserCreateNavigation","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","startWithEmptyMenu","batch","hasUnsavedBlocks","post","id","PlaceholderComponent","isResponsive","overlayMenuPreviewClasses","open","onClose","value","onChange","label"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\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';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\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\tcontext: { navigationArea },\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\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tlet areaMenu,\n\t\tsetAreaMenu = noop;\n\t// Navigation areas are deprecated and on their way out. Let's not perform\n\t// the request unless we're in an environment where the endpoint exists.\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\t[ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t\t'root',\n\t\t\t'navigationArea',\n\t\t\t'navigation',\n\t\t\tnavigationArea\n\t\t);\n\t}\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks =\n\t\t\t\t_uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = !! navigationArea && ! ref;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasUncontrolledInnerBlocks || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationEntity,\n\t\thasResolvedCanUserUpdateNavigationEntity,\n\t\tcanUserDeleteNavigationEntity,\n\t\thasResolvedCanUserDeleteNavigationEntity,\n\t\tcanUserCreateNavigation,\n\t\thasResolvedCanUserCreateNavigation,\n\t} = useNavigationMenu( ref );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\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(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\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\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\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\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\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationEntity &&\n\t\t\t\t! canUserUpdateNavigationEntity\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigation &&\n\t\t\t\t! canUserCreateNavigation\n\t\t\t) {\n\t\t\t\tshowCantCreateNotice();\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationEntity,\n\t\thasResolvedCanUserUpdateNavigationEntity,\n\t\tcanUserCreateNavigation,\n\t\thasResolvedCanUserCreateNavigation,\n\t\tref,\n\t] );\n\n\tconst startWithEmptyMenu = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( 0 );\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t\tsetIsPlaceholderShown( true );\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<nav { ...blockProps }>\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\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\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\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</nav>\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<div { ...blockProps }>\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 onClick={ startWithEmptyMenu } variant=\"link\">\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</div>\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\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\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetRef( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ startWithEmptyMenu }\n\t\t\t\t\t\t\t\t\t\tcanUserCreateNavigation={\n\t\t\t\t\t\t\t\t\t\t\tcanUserCreateNavigation\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcanUserSwitchNavigation={\n\t\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ hasIcon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\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\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\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\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\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{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationEntity &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationEntity && (\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{ hasResolvedCanUserDeleteNavigationEntity &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationEntity && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ startWithEmptyMenu }\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\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tif ( post ) {\n\t\t\t\t\t\t\t\t\tsetRef( post.id );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcanUserCreateNavigation={ canUserCreateNavigation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! hasResolvedCanUserCreateNavigation ||\n\t\t\t\t\t\t( ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\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\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\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\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\tisVisible={ ! isPlaceholderShown }\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\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) }\n\t\t\t\t</nav>\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":["classnames","noop","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","EntityProvider","useEntityProp","useDispatch","useSelect","useRegistry","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","ToolbarDropdownMenu","Button","__","useListViewModal","useNavigationMenu","useNavigationEntities","Placeholder","PlaceholderPreview","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","areaMenu","setAreaMenu","process","env","IS_GUTENBERG_PLUGIN","navigationAreaMenu","undefined","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","name","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","startWithEmptyMenu","batch","hasUnsavedBlocks","post","id","PlaceholderComponent","isResponsive","overlayMenuPreviewClasses","open","onClose","value","onChange","label"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\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';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\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\tcontext: { navigationArea },\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\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tlet areaMenu,\n\t\tsetAreaMenu = noop;\n\t// Navigation areas are deprecated and on their way out. Let's not perform\n\t// the request unless we're in an environment where the endpoint exists.\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\t[ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t\t'root',\n\t\t\t'navigationArea',\n\t\t\t'navigation',\n\t\t\tnavigationArea\n\t\t);\n\t}\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks =\n\t\t\t\t_uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = !! navigationArea && ! ref;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasUncontrolledInnerBlocks || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\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(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\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\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\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\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\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\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\tshowCantCreateNotice();\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 startWithEmptyMenu = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( 0 );\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t\tsetIsPlaceholderShown( true );\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<nav { ...blockProps }>\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\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\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\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</nav>\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<div { ...blockProps }>\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 onClick={ startWithEmptyMenu } variant=\"link\">\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</div>\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\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\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetRef( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ startWithEmptyMenu }\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\t\t\tshowManageActions\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ hasIcon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\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\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\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\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\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{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\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={ startWithEmptyMenu }\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\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tif ( post ) {\n\t\t\t\t\t\t\t\t\tsetRef( post.id );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcanUserCreateNavigationMenu={\n\t\t\t\t\t\t\t\tcanUserCreateNavigationMenu\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{ ! hasResolvedCanUserCreateNavigationMenu ||\n\t\t\t\t\t\t( ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\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\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\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\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\tisVisible={ ! isPlaceholderShown }\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\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) }\n\t\t\t\t</nav>\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"]}
|
|
@@ -4,7 +4,8 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
6
|
import { MenuGroup, MenuItem } from '@wordpress/components';
|
|
7
|
-
import { __ } from '@wordpress/i18n';
|
|
7
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
8
9
|
import { addQueryArgs } from '@wordpress/url';
|
|
9
10
|
/**
|
|
10
11
|
* Internal dependencies
|
|
@@ -14,28 +15,34 @@ import useNavigationMenu from '../use-navigation-menu';
|
|
|
14
15
|
import useNavigationEntities from '../use-navigation-entities';
|
|
15
16
|
import useConvertClassicMenu from '../use-convert-classic-menu';
|
|
16
17
|
import useCreateNavigationMenu from './use-create-navigation-menu';
|
|
17
|
-
import ExistingMenusOptions from './existing-menus-options';
|
|
18
18
|
export default function NavigationMenuSelector(_ref) {
|
|
19
19
|
let {
|
|
20
20
|
clientId,
|
|
21
21
|
onSelect,
|
|
22
22
|
onCreateNew,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
showManageActions = false,
|
|
24
|
+
actionLabel
|
|
25
25
|
} = _ref;
|
|
26
|
+
|
|
27
|
+
/* translators: %s: The name of a menu. */
|
|
28
|
+
const createActionLabel = __("Create from '%s'");
|
|
29
|
+
|
|
30
|
+
actionLabel = actionLabel || createActionLabel;
|
|
26
31
|
const {
|
|
27
|
-
menus: classicMenus
|
|
28
|
-
hasMenus: hasClassicMenus
|
|
32
|
+
menus: classicMenus
|
|
29
33
|
} = useNavigationEntities();
|
|
30
34
|
const {
|
|
31
|
-
navigationMenus
|
|
35
|
+
navigationMenus,
|
|
36
|
+
canUserCreateNavigationMenu,
|
|
37
|
+
canUserUpdateNavigationMenu,
|
|
38
|
+
canSwitchNavigationMenu
|
|
32
39
|
} = useNavigationMenu();
|
|
33
40
|
const createNavigationMenu = useCreateNavigationMenu(clientId);
|
|
34
41
|
|
|
35
42
|
const onFinishMenuCreation = async function (blocks) {
|
|
36
43
|
let navigationMenuTitle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
37
44
|
|
|
38
|
-
if (!
|
|
45
|
+
if (!canUserCreateNavigationMenu) {
|
|
39
46
|
return;
|
|
40
47
|
}
|
|
41
48
|
|
|
@@ -44,31 +51,42 @@ export default function NavigationMenuSelector(_ref) {
|
|
|
44
51
|
};
|
|
45
52
|
|
|
46
53
|
const convertClassicMenuToBlocks = useConvertClassicMenu(onFinishMenuCreation);
|
|
47
|
-
const
|
|
54
|
+
const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length);
|
|
55
|
+
const hasClassicMenus = !!(classicMenus !== null && classicMenus !== void 0 && classicMenus.length);
|
|
56
|
+
const showNavigationMenus = !!canSwitchNavigationMenu;
|
|
57
|
+
const showClassicMenus = !!canUserCreateNavigationMenu;
|
|
58
|
+
const hasManagePermissions = canUserCreateNavigationMenu || canUserUpdateNavigationMenu;
|
|
59
|
+
const showSelectMenus = (canSwitchNavigationMenu || canUserCreateNavigationMenu) && (hasNavigationMenus || hasClassicMenus);
|
|
48
60
|
|
|
49
61
|
if (!showSelectMenus) {
|
|
50
62
|
return null;
|
|
51
63
|
}
|
|
52
64
|
|
|
53
|
-
return createElement(Fragment, null, createElement(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
return createElement(Fragment, null, showNavigationMenus && hasNavigationMenus && createElement(MenuGroup, {
|
|
66
|
+
label: __('Menus')
|
|
67
|
+
}, navigationMenus.map(menu => {
|
|
68
|
+
const label = decodeEntities(menu.title.rendered);
|
|
69
|
+
return createElement(MenuItem, {
|
|
70
|
+
onClick: () => {
|
|
71
|
+
onSelect(menu);
|
|
72
|
+
},
|
|
73
|
+
key: menu.id,
|
|
74
|
+
"aria-label": sprintf(actionLabel, label)
|
|
75
|
+
}, label);
|
|
76
|
+
})), showClassicMenus && hasClassicMenus && createElement(MenuGroup, {
|
|
77
|
+
label: __('Classic Menus')
|
|
78
|
+
}, classicMenus.map(menu => {
|
|
79
|
+
const label = decodeEntities(menu.name);
|
|
80
|
+
return createElement(MenuItem, {
|
|
81
|
+
onClick: () => {
|
|
82
|
+
convertClassicMenuToBlocks(menu.id, menu.name);
|
|
83
|
+
},
|
|
84
|
+
key: menu.id,
|
|
85
|
+
"aria-label": sprintf(createActionLabel, label)
|
|
86
|
+
}, label);
|
|
87
|
+
})), showManageActions && hasManagePermissions && createElement(MenuGroup, {
|
|
70
88
|
label: __('Tools')
|
|
71
|
-
}, createElement(MenuItem, {
|
|
89
|
+
}, canUserCreateNavigationMenu && createElement(MenuItem, {
|
|
72
90
|
onClick: onCreateNew
|
|
73
91
|
}, __('Create new menu')), createElement(MenuItem, {
|
|
74
92
|
href: addQueryArgs('edit.php', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","__","addQueryArgs","useNavigationMenu","useNavigationEntities","useConvertClassicMenu","useCreateNavigationMenu","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","__","sprintf","decodeEntities","addQueryArgs","useNavigationMenu","useNavigationEntities","useConvertClassicMenu","useCreateNavigationMenu","NavigationMenuSelector","clientId","onSelect","onCreateNew","showManageActions","actionLabel","createActionLabel","menus","classicMenus","navigationMenus","canUserCreateNavigationMenu","canUserUpdateNavigationMenu","canSwitchNavigationMenu","createNavigationMenu","onFinishMenuCreation","blocks","navigationMenuTitle","navigationMenu","convertClassicMenuToBlocks","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","hasManagePermissions","showSelectMenus","map","menu","label","title","rendered","id","name","post_type"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport useConvertClassicMenu from '../use-convert-classic-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nexport default function NavigationMenuSelector( {\n\tclientId,\n\tonSelect,\n\tonCreateNew,\n\tshowManageActions = false,\n\tactionLabel,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\tconst onFinishMenuCreation = async (\n\t\tblocks,\n\t\tnavigationMenuTitle = null\n\t) => {\n\t\tif ( ! canUserCreateNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonSelect( navigationMenu );\n\t};\n\n\tconst convertClassicMenuToBlocks = useConvertClassicMenu(\n\t\tonFinishMenuCreation\n\t);\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst showSelectMenus =\n\t\t( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&\n\t\t( hasNavigationMenus || hasClassicMenus );\n\n\tif ( ! showSelectMenus ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t{ navigationMenus.map( ( menu ) => {\n\t\t\t\t\t\tconst label = decodeEntities( menu.title.rendered );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonSelect( menu );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\taria-label={ sprintf( actionLabel, label ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t{ classicMenus.map( ( menu ) => {\n\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tconvertClassicMenuToBlocks(\n\t\t\t\t\t\t\t\t\t\tmenu.id,\n\t\t\t\t\t\t\t\t\t\tmenu.name\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\tkey={ menu.id }\n\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\tlabel\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{ label }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\n\t\t\t{ showManageActions && hasManagePermissions && (\n\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuItem onClick={ onCreateNew }>\n\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -14,22 +14,21 @@ import useNavigationEntities from '../../use-navigation-entities';
|
|
|
14
14
|
import PlaceholderPreview from './placeholder-preview';
|
|
15
15
|
import useNavigationMenu from '../../use-navigation-menu';
|
|
16
16
|
import useCreateNavigationMenu from '../use-create-navigation-menu';
|
|
17
|
-
import
|
|
18
|
-
import ExistingMenusOptions from '../existing-menus-options';
|
|
17
|
+
import NavigationMenuSelector from '../navigation-menu-selector';
|
|
19
18
|
export default function NavigationPlaceholder(_ref) {
|
|
20
19
|
let {
|
|
21
20
|
clientId,
|
|
22
21
|
onFinish,
|
|
23
22
|
canSwitchNavigationMenu,
|
|
24
23
|
hasResolvedNavigationMenus,
|
|
25
|
-
|
|
24
|
+
canUserCreateNavigationMenu = false
|
|
26
25
|
} = _ref;
|
|
27
26
|
const createNavigationMenu = useCreateNavigationMenu(clientId);
|
|
28
27
|
|
|
29
28
|
const onFinishMenuCreation = async function (blocks) {
|
|
30
29
|
let navigationMenuTitle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
31
30
|
|
|
32
|
-
if (!
|
|
31
|
+
if (!canUserCreateNavigationMenu) {
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
35
34
|
|
|
@@ -37,10 +36,8 @@ export default function NavigationPlaceholder(_ref) {
|
|
|
37
36
|
onFinish(navigationMenu, blocks);
|
|
38
37
|
};
|
|
39
38
|
|
|
40
|
-
const convertClassicMenu = useConvertClassicMenu(onFinishMenuCreation);
|
|
41
39
|
const {
|
|
42
40
|
isResolvingPages,
|
|
43
|
-
menus,
|
|
44
41
|
isResolvingMenus,
|
|
45
42
|
hasMenus
|
|
46
43
|
} = useNavigationEntities();
|
|
@@ -54,7 +51,7 @@ export default function NavigationPlaceholder(_ref) {
|
|
|
54
51
|
navigationMenus
|
|
55
52
|
} = useNavigationMenu();
|
|
56
53
|
const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length);
|
|
57
|
-
const showSelectMenus = (canSwitchNavigationMenu ||
|
|
54
|
+
const showSelectMenus = (canSwitchNavigationMenu || canUserCreateNavigationMenu) && (hasNavigationMenus || hasMenus);
|
|
58
55
|
return createElement(Fragment, null, (!hasResolvedNavigationMenus || isStillLoading) && createElement(PlaceholderPreview, {
|
|
59
56
|
isLoading: true
|
|
60
57
|
}), hasResolvedNavigationMenus && !isStillLoading && createElement(Placeholder, {
|
|
@@ -78,20 +75,10 @@ export default function NavigationPlaceholder(_ref) {
|
|
|
78
75
|
popoverProps: {
|
|
79
76
|
isAlternate: true
|
|
80
77
|
}
|
|
81
|
-
}, () => createElement(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
classicMenus: menus,
|
|
86
|
-
onSelectClassicMenu: _ref2 => {
|
|
87
|
-
let {
|
|
88
|
-
id,
|
|
89
|
-
name
|
|
90
|
-
} = _ref2;
|
|
91
|
-
return convertClassicMenu(id, name);
|
|
92
|
-
},
|
|
93
|
-
showClassicMenus: canUserCreateNavigation
|
|
94
|
-
})), createElement("hr", null)) : undefined, canUserCreateNavigation && createElement(Button, {
|
|
78
|
+
}, () => createElement(NavigationMenuSelector, {
|
|
79
|
+
clientId: clientId,
|
|
80
|
+
onSelect: onFinish
|
|
81
|
+
})), createElement("hr", null)) : undefined, canUserCreateNavigationMenu && createElement(Button, {
|
|
95
82
|
variant: "tertiary",
|
|
96
83
|
onClick: onCreateEmptyMenu
|
|
97
84
|
}, __('Start empty'))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["Placeholder","Button","DropdownMenu","__","navigation","Icon","useNavigationEntities","PlaceholderPreview","useNavigationMenu","useCreateNavigationMenu","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["Placeholder","Button","DropdownMenu","__","navigation","Icon","useNavigationEntities","PlaceholderPreview","useNavigationMenu","useCreateNavigationMenu","NavigationMenuSelector","NavigationPlaceholder","clientId","onFinish","canSwitchNavigationMenu","hasResolvedNavigationMenus","canUserCreateNavigationMenu","createNavigationMenu","onFinishMenuCreation","blocks","navigationMenuTitle","navigationMenu","isResolvingPages","isResolvingMenus","hasMenus","isStillLoading","onCreateEmptyMenu","navigationMenus","hasNavigationMenus","length","showSelectMenus","variant","iconPosition","className","isAlternate","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, DropdownMenu } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport useNavigationMenu from '../../use-navigation-menu';\nimport useCreateNavigationMenu from '../use-create-navigation-menu';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tclientId,\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n\tcanUserCreateNavigationMenu = false,\n} ) {\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\tconst onFinishMenuCreation = async (\n\t\tblocks,\n\t\tnavigationMenuTitle = null\n\t) => {\n\t\tif ( ! canUserCreateNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu, blocks );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tisResolvingMenus,\n\t\thasMenus,\n\t} = useNavigationEntities();\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst onCreateEmptyMenu = () => {\n\t\tonFinishMenuCreation( [] );\n\t};\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\n\tconst showSelectMenus =\n\t\t( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&\n\t\t( hasNavigationMenus || hasMenus );\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t\t{ showSelectMenus ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\t\ttext={ __( 'Select menu' ) }\n\t\t\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\t\t\t\t\t\ticonPosition: 'right',\n\t\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t\t'wp-block-navigation-placeholder__actions__dropdown',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tonSelect={ onFinish }\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</DropdownMenu>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\n\t\t\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ onCreateEmptyMenu }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -37,12 +37,12 @@ export default function useNavigationMenu(ref) {
|
|
|
37
37
|
hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
|
|
38
38
|
navigationMenu,
|
|
39
39
|
navigationMenus,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
canUserUpdateNavigationMenu: ref ? canUser('update', 'navigation', ref) : undefined,
|
|
41
|
+
hasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution('canUser', ['update', 'navigation', ref]),
|
|
42
|
+
canUserDeleteNavigationMenu: ref ? canUser('delete', 'navigation', ref) : undefined,
|
|
43
|
+
hasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution('canUser', ['delete', 'navigation', ref]),
|
|
44
|
+
canUserCreateNavigationMenu: canUser('create', 'navigation'),
|
|
45
|
+
hasResolvedCanUserCreateNavigationMenu: hasFinishedResolution('canUser', ['create', 'navigation'])
|
|
46
46
|
};
|
|
47
47
|
}, [ref]);
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","useSelect","useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","canUser","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","useSelect","useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","canUser","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus","canUserUpdateNavigationMenu","undefined","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,eAAe,SAASC,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,SAAOF,SAAS,CACbG,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA,qBAJK;AAKLC,MAAAA;AALK,QAMFL,MAAM,CAAEJ,SAAF,CANV;AAQA,UAAMU,wBAAwB,GAAG,CAChC,UADgC,EAEhC,eAFgC,EAGhCP,GAHgC,CAAjC;AAKA,UAAMQ,iBAAiB,GAAGR,GAAG,GAC1BE,eAAe,CAAE,GAAGK,wBAAL,CADW,GAE1B,IAFH;AAGA,QAAIE,cAAc,GAAGT,GAAG,GACrBG,qBAAqB,CAAE,GAAGI,wBAAL,CADA,GAErB,IAFH,CAjBa,CAqBb;AACA;;AACA,QAAK,oBAAAE,cAAc,UAAd,0DAAgBC,MAAhB,MAA2B,SAAhC,EAA4C;AAC3CD,MAAAA,cAAc,GAAG,IAAjB;AACA;;AAED,UAAME,yBAAyB,GAAGX,GAAG,GAClCK,qBAAqB,CACrB,uBADqB,EAErBE,wBAFqB,CADa,GAKlC,KALH;AAOA,UAAMK,0BAA0B,GAAG,CAClC,UADkC,EAElC,eAFkC,EAGlC;AAAEC,MAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBH,MAAAA,MAAM,EAAE;AAAxB,KAHkC,CAAnC;AAKA,UAAMI,eAAe,GAAGV,gBAAgB,CACvC,GAAGQ,0BADoC,CAAxC;AAIA,UAAMG,uBAAuB,GAAGf,GAAG,GAChC,CAAAc,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CADM,GAEhC,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CAF7B;AAIA,WAAO;AACNC,MAAAA,wBAAwB,EAAEN,yBADpB;AAENO,MAAAA,uBAAuB,EACtB,CAAElB,GAAF,IACEW,yBAAyB,IAAI,CAAEH,iBAJ5B;AAKNO,MAAAA,uBALM;AAMNI,MAAAA,0BAA0B,EAAEd,qBAAqB,CAChD,kBADgD,EAEhDO,0BAFgD,CAN3C;AAUNH,MAAAA,cAVM;AAWNK,MAAAA,eAXM;AAYNM,MAAAA,2BAA2B,EAAEpB,GAAG,GAC7BM,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BN,GAA1B,CADsB,GAE7BqB,SAdG;AAeNC,MAAAA,sCAAsC,EAAEjB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF4D,CAfvD;AAmBNuB,MAAAA,2BAA2B,EAAEvB,GAAG,GAC7BM,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BN,GAA1B,CADsB,GAE7BqB,SArBG;AAsBNG,MAAAA,sCAAsC,EAAEnB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF4D,CAtBvD;AA0BNyB,MAAAA,2BAA2B,EAAEnB,OAAO,CAAE,QAAF,EAAY,YAAZ,CA1B9B;AA2BNoB,MAAAA,sCAAsC,EAAErB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,CAF4D;AA3BvD,KAAP;AAgCA,GAhFc,EAiFf,CAAEL,GAAF,CAjFe,CAAhB;AAmFA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst navigationMenuSingleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tref,\n\t\t\t];\n\t\t\tconst rawNavigationMenu = ref\n\t\t\t\t? getEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\t\t\tlet navigationMenu = ref\n\t\t\t\t? getEditedEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\n\t\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t\t// Therefore if the found post is not published then we should ignore it.\n\t\t\tif ( navigationMenu?.status !== 'publish' ) {\n\t\t\t\tnavigationMenu = null;\n\t\t\t}\n\n\t\t\tconst hasResolvedNavigationMenu = ref\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tnavigationMenuSingleArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst navigationMenuMultipleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\t{ per_page: -1, status: 'publish' },\n\t\t\t];\n\t\t\tconst navigationMenus = getEntityRecords(\n\t\t\t\t...navigationMenuMultipleArgs\n\t\t\t);\n\n\t\t\tconst canSwitchNavigationMenu = ref\n\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t: navigationMenus?.length > 0;\n\n\t\t\treturn {\n\t\t\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\t\t\tisNavigationMenuMissing:\n\t\t\t\t\t! ref ||\n\t\t\t\t\t( hasResolvedNavigationMenu && ! rawNavigationMenu ),\n\t\t\t\tcanSwitchNavigationMenu,\n\t\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\tnavigationMenu,\n\t\t\t\tnavigationMenus,\n\t\t\t\tcanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? canUser( 'update', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'update', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? canUser( 'delete', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'delete', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserCreateNavigationMenu: canUser( 'create', 'navigation' ),\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'create', 'navigation' ]\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ ref ]\n\t);\n}\n"]}
|