@wordpress/block-library 8.12.8 → 8.12.10

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.
Files changed (33) hide show
  1. package/build/block/index.js +2 -1
  2. package/build/block/index.js.map +1 -1
  3. package/build/cover/deprecated.js +4 -2
  4. package/build/cover/deprecated.js.map +1 -1
  5. package/build/footnotes/format.js +18 -10
  6. package/build/footnotes/format.js.map +1 -1
  7. package/build/navigation/edit/index.js +1 -1
  8. package/build/navigation/edit/index.js.map +1 -1
  9. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -10
  10. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  11. package/build/search/index.js +1 -0
  12. package/build/search/index.js.map +1 -1
  13. package/build-module/block/index.js +2 -1
  14. package/build-module/block/index.js.map +1 -1
  15. package/build-module/cover/deprecated.js +4 -2
  16. package/build-module/cover/deprecated.js.map +1 -1
  17. package/build-module/footnotes/format.js +18 -10
  18. package/build-module/footnotes/format.js.map +1 -1
  19. package/build-module/navigation/edit/index.js +1 -1
  20. package/build-module/navigation/edit/index.js.map +1 -1
  21. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -9
  22. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  23. package/build-module/search/index.js +1 -0
  24. package/build-module/search/index.js.map +1 -1
  25. package/package.json +13 -13
  26. package/src/block/block.json +2 -1
  27. package/src/cover/deprecated.js +2 -0
  28. package/src/footnotes/format.js +21 -15
  29. package/src/navigation/edit/index.js +1 -1
  30. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -10
  31. package/src/search/block.json +1 -0
  32. package/src/search/index.php +22 -4
  33. package/src/template-part/index.php +9 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useCallback","useState","useEffect","useRef","Platform","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","ContrastChecker","getColorClassName","Warning","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseBlockOverlayActive","useBlockOverlayActive","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","privateApis","blockEditorPrivateApis","EntityProvider","coreStore","useDispatch","useSelect","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","ManageMenusButton","MenuInspectorControls","DeletedNavigationWarning","unlock","useBlockEditingMode","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","blockEditingMode","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","navigationFallbackId","navRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","isResponsive","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","id","onSelectNavigationMenu","current","subMenuElement","querySelector","hasManagePermissions","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","hasColorsOrGradients","colorValue","label","onColorChange","resetAllFilter","isManageMenusButtonDisabled","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } 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 { 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 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';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport { unlock } from '../../lock-unlock';\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\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\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 = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\tconst blockEditingMode = useBlockEditingMode();\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 [\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\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\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\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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 { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\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 * 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\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\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\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 isResponsive = 'never' !== overlayMenu;\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': isResponsive,\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 onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\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?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\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}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t] );\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\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\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\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\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\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\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\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 && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\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) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\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) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\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} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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) }\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\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</InspectorControls>\n\t\t\t) }\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && 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={ isResponsive }\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\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\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={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t{ blockEditingMode === 'default' && isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"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<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\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<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\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":["classnames","useCallback","useState","useEffect","useRef","Platform","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","ContrastChecker","getColorClassName","Warning","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseBlockOverlayActive","useBlockOverlayActive","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","privateApis","blockEditorPrivateApis","EntityProvider","coreStore","useDispatch","useSelect","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","ManageMenusButton","MenuInspectorControls","DeletedNavigationWarning","unlock","useBlockEditingMode","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","blockEditingMode","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","navigationFallbackId","navRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","isResponsive","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","id","onSelectNavigationMenu","current","subMenuElement","querySelector","hasManagePermissions","overlayMenuPreviewClasses","open","colorGradientSettings","stylingInspectorControls","hasColorsOrGradients","colorValue","label","onColorChange","resetAllFilter","isManageMenusButtonDisabled","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } 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 { 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 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';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport { unlock } from '../../lock-unlock';\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\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\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 = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\tconst blockEditingMode = useBlockEditingMode();\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 [\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\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\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( createNavigationMenu );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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 { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\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 * 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\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\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\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 isResponsive = 'never' !== overlayMenu;\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': isResponsive,\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 onSelectClassicMenu = async ( classicMenu ) => {\n\t\tconst navMenu = await convertClassicMenu(\n\t\t\tclassicMenu.id,\n\t\t\tclassicMenu.name,\n\t\t\t'draft'\n\t\t);\n\t\tif ( navMenu ) {\n\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\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?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\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}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t] );\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\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\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\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\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\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\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\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 && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\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) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\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) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\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} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\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) }\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\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</InspectorControls>\n\t\t\t) }\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && 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={ isResponsive }\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\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\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={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\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<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t{ blockEditingMode === 'default' && isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"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<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\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<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\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"]}
@@ -9,7 +9,6 @@ import { __, sprintf } from '@wordpress/i18n';
9
9
  * Internal dependencies
10
10
  */
11
11
 
12
- import useCreateNavigationMenu from './use-create-navigation-menu';
13
12
  import menuItemsToBlocks from '../menu-items-to-blocks';
14
13
  export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
15
14
  export const CLASSIC_MENU_CONVERSION_ERROR = 'error';
@@ -19,14 +18,7 @@ export const CLASSIC_MENU_CONVERSION_IDLE = 'idle'; // This is needed to ensure
19
18
 
20
19
  let classicMenuBeingConvertedId = null;
21
20
 
22
- function useConvertClassicToBlockMenu(clientId) {
23
- /*
24
- * The wp_navigation post is created as a draft so the changes on the frontend and
25
- * the site editor are not permanent without a save interaction done by the user.
26
- */
27
- const {
28
- create: createNavigationMenu
29
- } = useCreateNavigationMenu(clientId, 'draft');
21
+ function useConvertClassicToBlockMenu(createNavigationMenu) {
30
22
  const registry = useRegistry();
31
23
  const {
32
24
  editEntityRecord
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["useRegistry","useDispatch","store","coreStore","useState","useCallback","__","sprintf","useCreateNavigationMenu","menuItemsToBlocks","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","classicMenuBeingConvertedId","useConvertClassicToBlockMenu","clientId","create","createNavigationMenu","registry","editEntityRecord","status","setStatus","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","postStatus","navigationMenu","classicMenuItems","resolveSelect","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","id","throwOnError","convert","then","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\n// This is needed to ensure that multiple components using this hook\n// do not import the same classic menu twice.\nlet classicMenuBeingConvertedId = null;\n\nfunction useConvertClassicToBlockMenu( clientId ) {\n\t/*\n\t * The wp_navigation post is created as a draft so the changes on the frontend and\n\t * the site editor are not permanent without a save interaction done by the user.\n\t */\n\tconst { create: createNavigationMenu } = useCreateNavigationMenu(\n\t\tclientId,\n\t\t'draft'\n\t);\n\tconst registry = useRegistry();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ error, setError ] = useState( null );\n\n\tconst convertClassicMenuToBlockMenu = useCallback(\n\t\tasync ( menuId, menuName, postStatus = 'publish' ) => {\n\t\t\tlet navigationMenu;\n\t\t\tlet classicMenuItems;\n\n\t\t\t// 1. Fetch the classic Menu items.\n\t\t\ttry {\n\t\t\t\tclassicMenuItems = await registry\n\t\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t\t.getMenuItems( {\n\t\t\t\t\t\tmenus: menuId,\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} );\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Handle offline response which resolves to `null`.\n\t\t\tif ( classicMenuItems === null ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 2. Convert the classic items into blocks.\n\t\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\t\ttry {\n\t\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\t\tmenuName,\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpostStatus\n\t\t\t\t);\n\n\t\t\t\t/**\n\t\t\t\t * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.\n\t\t\t\t * This status change causes the menu to be displayed on the front of the site and sets the post state to be \"dirty\".\n\t\t\t\t * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,\n\t\t\t\t * without user interaction.\n\t\t\t\t * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.\n\t\t\t\t */\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_navigation',\n\t\t\t\t\tnavigationMenu.id,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ createNavigationMenu, editEntityRecord, registry ]\n\t);\n\n\tconst convert = useCallback(\n\t\tasync ( menuId, menuName, postStatus ) => {\n\t\t\t// Check whether this classic menu is being imported already.\n\t\t\tif ( classicMenuBeingConvertedId === menuId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ID for the currently importing classic menu.\n\t\t\tclassicMenuBeingConvertedId = menuId;\n\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetError( null );\n\n\t\t\treturn await convertClassicMenuToBlockMenu(\n\t\t\t\tmenuId,\n\t\t\t\tmenuName,\n\t\t\t\tpostStatus\n\t\t\t)\n\t\t\t\t.then( ( navigationMenu ) => {\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\t\t\t\t\treturn navigationMenu;\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tsprintf(\n\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__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\t\t[ convertClassicMenuToBlockMenu ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["useRegistry","useDispatch","store","coreStore","useState","useCallback","__","sprintf","menuItemsToBlocks","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","classicMenuBeingConvertedId","useConvertClassicToBlockMenu","createNavigationMenu","registry","editEntityRecord","status","setStatus","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","postStatus","navigationMenu","classicMenuItems","resolveSelect","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","id","throwOnError","convert","then","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\n// This is needed to ensure that multiple components using this hook\n// do not import the same classic menu twice.\nlet classicMenuBeingConvertedId = null;\n\nfunction useConvertClassicToBlockMenu( createNavigationMenu ) {\n\tconst registry = useRegistry();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ error, setError ] = useState( null );\n\n\tconst convertClassicMenuToBlockMenu = useCallback(\n\t\tasync ( menuId, menuName, postStatus = 'publish' ) => {\n\t\t\tlet navigationMenu;\n\t\t\tlet classicMenuItems;\n\n\t\t\t// 1. Fetch the classic Menu items.\n\t\t\ttry {\n\t\t\t\tclassicMenuItems = await registry\n\t\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t\t.getMenuItems( {\n\t\t\t\t\t\tmenus: menuId,\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} );\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Handle offline response which resolves to `null`.\n\t\t\tif ( classicMenuItems === null ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 2. Convert the classic items into blocks.\n\t\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\t\ttry {\n\t\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\t\tmenuName,\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpostStatus\n\t\t\t\t);\n\n\t\t\t\t/**\n\t\t\t\t * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.\n\t\t\t\t * This status change causes the menu to be displayed on the front of the site and sets the post state to be \"dirty\".\n\t\t\t\t * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,\n\t\t\t\t * without user interaction.\n\t\t\t\t * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.\n\t\t\t\t */\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_navigation',\n\t\t\t\t\tnavigationMenu.id,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ createNavigationMenu, editEntityRecord, registry ]\n\t);\n\n\tconst convert = useCallback(\n\t\tasync ( menuId, menuName, postStatus ) => {\n\t\t\t// Check whether this classic menu is being imported already.\n\t\t\tif ( classicMenuBeingConvertedId === menuId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ID for the currently importing classic menu.\n\t\t\tclassicMenuBeingConvertedId = menuId;\n\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetError( null );\n\n\t\t\treturn await convertClassicMenuToBlockMenu(\n\t\t\t\tmenuId,\n\t\t\t\tmenuName,\n\t\t\t\tpostStatus\n\t\t\t)\n\t\t\t\t.then( ( navigationMenu ) => {\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\t\t\t\t\treturn navigationMenu;\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tsprintf(\n\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__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\t\t[ convertClassicMenuToBlockMenu ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
@@ -100,6 +100,7 @@ const metadata = {
100
100
  },
101
101
  html: false
102
102
  },
103
+ viewScript: "file:./view.min.js",
103
104
  editorStyle: "wp-block-search-editor",
104
105
  style: "wp-block-search"
105
106
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["__","search","icon","initBlock","edit","variations","name","metadata","settings","example","attributes","buttonText","label","viewportWidth","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBO,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAEX,EAAE,CAAE,QAAF,CAAhB;AAA8BY,MAAAA,KAAK,EAAEZ,EAAE,CAAE,QAAF;AAAvC,KADJ;AAERa,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBR,EAAAA,UANuB;AAOvBD,EAAAA;AAPuB,CAAjB;AAUP,OAAO,MAAMU,IAAI,GAAG,MAAMX,SAAS,CAAE;AAAEG,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["__","search","icon","initBlock","edit","variations","name","metadata","settings","example","attributes","buttonText","label","viewportWidth","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBN,EAAAA,IADuB;AAEvBO,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAEX,EAAE,CAAE,QAAF,CAAhB;AAA8BY,MAAAA,KAAK,EAAEZ,EAAE,CAAE,QAAF;AAAvC,KADJ;AAERa,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBR,EAAAA,UANuB;AAOvBD,EAAAA;AAPuB,CAAjB;AAUP,OAAO,MAAMU,IAAI,GAAG,MAAMX,SAAS,CAAE;AAAEG,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "8.12.8",
3
+ "version": "8.12.10",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -37,12 +37,12 @@
37
37
  "@wordpress/api-fetch": "^6.32.1",
38
38
  "@wordpress/autop": "^3.35.1",
39
39
  "@wordpress/blob": "^3.35.1",
40
- "@wordpress/block-editor": "^12.3.6",
41
- "@wordpress/blocks": "^12.12.3",
42
- "@wordpress/components": "^25.1.6",
40
+ "@wordpress/block-editor": "^12.3.8",
41
+ "@wordpress/blocks": "^12.12.4",
42
+ "@wordpress/components": "^25.1.8",
43
43
  "@wordpress/compose": "^6.12.1",
44
- "@wordpress/core-data": "^6.12.6",
45
- "@wordpress/data": "^9.5.3",
44
+ "@wordpress/core-data": "^6.12.8",
45
+ "@wordpress/data": "^9.5.4",
46
46
  "@wordpress/date": "^4.35.1",
47
47
  "@wordpress/deprecated": "^3.35.1",
48
48
  "@wordpress/dom": "^3.35.1",
@@ -53,14 +53,14 @@
53
53
  "@wordpress/i18n": "^4.35.1",
54
54
  "@wordpress/icons": "^9.26.2",
55
55
  "@wordpress/keycodes": "^3.35.1",
56
- "@wordpress/notices": "^4.3.3",
56
+ "@wordpress/notices": "^4.3.4",
57
57
  "@wordpress/primitives": "^3.33.1",
58
- "@wordpress/private-apis": "^0.17.1",
59
- "@wordpress/reusable-blocks": "^4.12.6",
60
- "@wordpress/rich-text": "^6.12.4",
61
- "@wordpress/server-side-render": "^4.12.6",
58
+ "@wordpress/private-apis": "^0.17.2",
59
+ "@wordpress/reusable-blocks": "^4.12.8",
60
+ "@wordpress/rich-text": "^6.12.5",
61
+ "@wordpress/server-side-render": "^4.12.8",
62
62
  "@wordpress/url": "^3.36.1",
63
- "@wordpress/viewport": "^5.12.3",
63
+ "@wordpress/viewport": "^5.12.4",
64
64
  "@wordpress/wordcount": "^3.35.1",
65
65
  "change-case": "^4.1.2",
66
66
  "classnames": "^2.3.1",
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "86ecd96b3bcada6b4cc35bb2455b3029cebb0ff3"
86
+ "gitHead": "cedb8caa943db47c16bdb4fa8880d506ce938fab"
87
87
  }
@@ -4,7 +4,8 @@
4
4
  "name": "core/block",
5
5
  "title": "Pattern",
6
6
  "category": "reusable",
7
- "description": "Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.",
7
+ "description": "Create and save content to reuse across your site. Update the pattern, and the changes apply everywhere it’s used.",
8
+ "keywords": [ "reusable" ],
8
9
  "textdomain": "default",
9
10
  "attributes": {
10
11
  "ref": {
@@ -329,6 +329,7 @@ const v11 = {
329
329
  </div>
330
330
  );
331
331
  },
332
+ migrate: migrateTag,
332
333
  };
333
334
 
334
335
  // Deprecation for blocks that renders fixed background as backgroud from the main block container.
@@ -465,6 +466,7 @@ const v10 = {
465
466
  </div>
466
467
  );
467
468
  },
469
+ migrate: migrateTag,
468
470
  };
469
471
 
470
472
  // Deprecation for blocks with `minHeightUnit` set but no `minHeight`.
@@ -40,24 +40,30 @@ export const format = {
40
40
  } = useSelect( blockEditorStore );
41
41
  const { selectionChange, insertBlock } =
42
42
  useDispatch( blockEditorStore );
43
+
43
44
  function onClick() {
44
45
  registry.batch( () => {
45
- const id = createId();
46
- const newValue = insertObject(
47
- value,
48
- {
49
- type: formatName,
50
- attributes: {
51
- 'data-fn': id,
46
+ let id;
47
+ if ( isObjectActive ) {
48
+ const object = value.replacements[ value.start ];
49
+ id = object?.attributes?.[ 'data-fn' ];
50
+ } else {
51
+ id = createId();
52
+ const newValue = insertObject(
53
+ value,
54
+ {
55
+ type: formatName,
56
+ attributes: {
57
+ 'data-fn': id,
58
+ },
59
+ innerHTML: `<a href="#${ id }" id="${ id }-link">*</a>`,
52
60
  },
53
- innerHTML: `<a href="#${ id }" id="${ id }-link">*</a>`,
54
- },
55
- value.end,
56
- value.end
57
- );
58
- newValue.start = newValue.end - 1;
59
-
60
- onChange( newValue );
61
+ value.end,
62
+ value.end
63
+ );
64
+ newValue.start = newValue.end - 1;
65
+ onChange( newValue );
66
+ }
61
67
 
62
68
  // BFS search to find the first footnote block.
63
69
  let fnBlock = null;
@@ -196,7 +196,7 @@ function Navigation( {
196
196
  convert: convertClassicMenu,
197
197
  status: classicMenuConversionStatus,
198
198
  error: classicMenuConversionError,
199
- } = useConvertClassicToBlockMenu( clientId );
199
+ } = useConvertClassicToBlockMenu( createNavigationMenu );
200
200
 
201
201
  const isConvertingClassicMenu =
202
202
  classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
@@ -9,7 +9,6 @@ import { __, sprintf } from '@wordpress/i18n';
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
- import useCreateNavigationMenu from './use-create-navigation-menu';
13
12
  import menuItemsToBlocks from '../menu-items-to-blocks';
14
13
 
15
14
  export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
@@ -21,15 +20,7 @@ export const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
21
20
  // do not import the same classic menu twice.
22
21
  let classicMenuBeingConvertedId = null;
23
22
 
24
- function useConvertClassicToBlockMenu( clientId ) {
25
- /*
26
- * The wp_navigation post is created as a draft so the changes on the frontend and
27
- * the site editor are not permanent without a save interaction done by the user.
28
- */
29
- const { create: createNavigationMenu } = useCreateNavigationMenu(
30
- clientId,
31
- 'draft'
32
- );
23
+ function useConvertClassicToBlockMenu( createNavigationMenu ) {
33
24
  const registry = useRegistry();
34
25
  const { editEntityRecord } = useDispatch( coreStore );
35
26
 
@@ -90,6 +90,7 @@
90
90
  },
91
91
  "html": false
92
92
  },
93
+ "viewScript": "file:./view.min.js",
93
94
  "editorStyle": "wp-block-search-editor",
94
95
  "style": "wp-block-search"
95
96
  }
@@ -8,11 +8,13 @@
8
8
  /**
9
9
  * Dynamically renders the `core/search` block.
10
10
  *
11
- * @param array $attributes The block attributes.
11
+ * @param array $attributes The block attributes.
12
+ * @param string $content The saved content.
13
+ * @param WP_Block $block The parsed block.
12
14
  *
13
15
  * @return string The search block markup.
14
16
  */
15
- function render_block_core_search( $attributes ) {
17
+ function render_block_core_search( $attributes, $content, $block ) {
16
18
  // Older versions of the Search block defaulted the label and buttonText
17
19
  // attributes to `__( 'Search' )` meaning that many posts contain `<!--
18
20
  // wp:search /-->`. Support these by defaulting an undefined label and
@@ -70,10 +72,26 @@ function render_block_core_search( $attributes ) {
70
72
  $input->set_attribute( 'id', $input_id );
71
73
  $input->set_attribute( 'value', get_search_query() );
72
74
  $input->set_attribute( 'placeholder', $attributes['placeholder'] );
73
- if ( 'button-only' === $button_position && 'expand-searchfield' === $button_behavior ) {
75
+
76
+ $is_expandable_searchfield = 'button-only' === $button_position && 'expand-searchfield' === $button_behavior;
77
+ if ( $is_expandable_searchfield ) {
74
78
  $input->set_attribute( 'aria-hidden', 'true' );
75
79
  $input->set_attribute( 'tabindex', '-1' );
76
- wp_enqueue_script( 'wp-block--search-view', plugins_url( 'search/view.min.js', __FILE__ ) );
80
+ }
81
+
82
+ // If the script already exists, there is no point in removing it from viewScript.
83
+ $view_js_file = 'wp-block-search-view';
84
+ if ( ! wp_script_is( $view_js_file ) ) {
85
+ $script_handles = $block->block_type->view_script_handles;
86
+
87
+ // If the script is not needed, and it is still in the `view_script_handles`, remove it.
88
+ if ( ! $is_expandable_searchfield && in_array( $view_js_file, $script_handles, true ) ) {
89
+ $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file ) );
90
+ }
91
+ // If the script is needed, but it was previously removed, add it again.
92
+ if ( $is_expandable_searchfield && ! in_array( $view_js_file, $script_handles, true ) ) {
93
+ $block->block_type->view_script_handles = array_merge( $script_handles, array( $view_js_file ) );
94
+ }
77
95
  }
78
96
  }
79
97
 
@@ -18,12 +18,11 @@ function render_block_core_template_part( $attributes ) {
18
18
  $template_part_id = null;
19
19
  $content = null;
20
20
  $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED;
21
- $stylesheet = get_stylesheet();
22
21
 
23
22
  if (
24
23
  isset( $attributes['slug'] ) &&
25
24
  isset( $attributes['theme'] ) &&
26
- $stylesheet === $attributes['theme']
25
+ get_stylesheet() === $attributes['theme']
27
26
  ) {
28
27
  $template_part_id = $attributes['theme'] . '//' . $attributes['slug'];
29
28
  $template_part_query = new WP_Query(
@@ -64,22 +63,17 @@ function render_block_core_template_part( $attributes ) {
64
63
  */
65
64
  do_action( 'render_block_core_template_part_post', $template_part_id, $attributes, $template_part_post, $content );
66
65
  } else {
66
+ $template_part_file_path = '';
67
67
  // Else, if the template part was provided by the active theme,
68
68
  // render the corresponding file content.
69
69
  if ( 0 === validate_file( $attributes['slug'] ) ) {
70
- $themes = array( $stylesheet );
71
- $template = get_template();
72
- if ( $stylesheet !== $template ) {
73
- $themes[] = $template;
74
- }
75
-
76
- foreach ( $themes as $theme ) {
77
- $theme_folders = get_block_theme_folders( $theme );
78
- $template_part_file_path = get_theme_file_path( '/' . $theme_folders['wp_template_part'] . '/' . $attributes['slug'] . '.html' );
79
- if ( file_exists( $template_part_file_path ) ) {
80
- $content = (string) file_get_contents( $template_part_file_path );
81
- $content = '' !== $content ? _inject_theme_attribute_in_block_template_content( $content ) : '';
82
- break;
70
+ $block_template_file = _get_block_template_file( 'wp_template_part', $attributes['slug'] );
71
+ if ( $block_template_file ) {
72
+ $template_part_file_path = $block_template_file['path'];
73
+ $content = (string) file_get_contents( $template_part_file_path );
74
+ $content = '' !== $content ? _inject_theme_attribute_in_block_template_content( $content ) : '';
75
+ if ( isset( $block_template_file['area'] ) ) {
76
+ $area = $block_template_file['area'];
83
77
  }
84
78
  }
85
79
  }