@wordpress/block-library 8.28.5 → 8.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/audio/edit.js +7 -17
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js.map +1 -1
- package/build/avatar/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/edit.js +1 -6
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -7
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/edit.js +8 -2
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -1
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +0 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/details/index.js +1 -0
- package/build/details/index.js.map +1 -1
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +6 -13
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js +5 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/group/variations.js +12 -15
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +5 -0
- package/build/list/edit.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -1
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +1 -0
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +16 -7
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/pattern/edit.js +23 -9
- package/build/pattern/edit.js.map +1 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/utils.js +7 -5
- package/build/query/utils.js.map +1 -1
- package/build/query-pagination-next/edit.js.map +1 -1
- package/build/query-pagination-previous/edit.js.map +1 -1
- package/build/quote/deprecated.js +111 -12
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +5 -5
- package/build/quote/edit.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +1 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/{edit/index.js → edit.js} +1 -1
- package/build/site-title/edit.js.map +1 -0
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +53 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +2 -8
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build/utils/hooks.js +55 -4
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +7 -16
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +2 -7
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +10 -20
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/edit.js +2 -7
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -7
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +8 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -1
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +1 -7
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/details/index.js +1 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +7 -14
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js +5 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/group/variations.js +12 -15
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +5 -0
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -1
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +17 -8
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/paragraph/edit.native.js.map +1 -1
- package/build-module/pattern/edit.js +24 -10
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/utils.js +7 -5
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-pagination-next/edit.js.map +1 -1
- package/build-module/query-pagination-previous/edit.js.map +1 -1
- package/build-module/quote/deprecated.js +112 -13
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +5 -5
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +1 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/{edit/index.js → edit.js} +1 -1
- package/build-module/site-title/edit.js.map +1 -0
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +57 -5
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -8
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build-module/utils/hooks.js +54 -3
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +10 -19
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +2 -7
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/editor-rtl.css +4 -1
- package/build-style/editor.css +4 -1
- package/build-style/group/editor-rtl.css +1 -1
- package/build-style/group/editor.css +1 -1
- package/build-style/image/editor-rtl.css +3 -0
- package/build-style/image/editor.css +3 -0
- package/package.json +34 -34
- package/src/audio/edit.js +9 -19
- package/src/audio/edit.native.js +3 -3
- package/src/avatar/edit.js +1 -1
- package/src/avatar/index.php +12 -1
- package/src/block/index.php +2 -0
- package/src/button/edit.js +2 -2
- package/src/buttons/edit.js +3 -16
- package/src/buttons/edit.native.js +2 -18
- package/src/calendar/index.php +5 -0
- package/src/columns/edit.js +9 -2
- package/src/comment-author-avatar/edit.js +1 -1
- package/src/comments/index.php +2 -0
- package/src/cover/edit/index.js +2 -2
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit/resizable-cover-popover.js +1 -6
- package/src/cover/edit.native.js +1 -1
- package/src/details/block.json +1 -0
- package/src/file/deprecated.js +3 -3
- package/src/file/edit.js +8 -15
- package/src/file/edit.native.js +4 -4
- package/src/file/save.js +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/gallery/edit.js +6 -12
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/test/index.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -2
- package/src/gallery/v1/gallery.native.js +1 -1
- package/src/group/editor.scss +1 -1
- package/src/group/variations.js +3 -6
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/editor.scss +6 -0
- package/src/image/image.js +2 -2
- package/src/latest-posts/edit.native.js +1 -1
- package/src/list/edit.js +5 -0
- package/src/list/ordered-list-settings.js +1 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/hooks/use-indent-list-item.js +2 -0
- package/src/list-item/hooks/use-outdent-list-item.js +2 -0
- package/src/list-item/hooks/use-space.js +16 -9
- package/src/media-text/media-container.native.js +5 -3
- package/src/media-text/test/edit.native.js +58 -0
- package/src/missing/test/edit-integration.native.js +2 -1
- package/src/navigation/edit/index.js +1 -1
- package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
- package/src/navigation/index.php +18 -13
- package/src/navigation-link/link-ui.js +2 -2
- package/src/paragraph/edit.native.js +1 -1
- package/src/paragraph/test/edit.native.js +36 -0
- package/src/pattern/edit.js +27 -10
- package/src/post-author-biography/index.php +4 -3
- package/src/post-author-name/index.php +4 -3
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-navigation-link/edit.js +1 -1
- package/src/post-template/index.php +2 -0
- package/src/query/edit/pattern-selection-modal.js +1 -1
- package/src/query/utils.js +6 -4
- package/src/query-pagination-next/edit.js +1 -1
- package/src/query-pagination-previous/edit.js +1 -1
- package/src/quote/block.json +1 -1
- package/src/quote/deprecated.js +110 -15
- package/src/quote/edit.js +5 -5
- package/src/quote/save.js +2 -2
- package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
- package/src/read-more/edit.js +1 -1
- package/src/search/edit.js +1 -1
- package/src/search/edit.native.js +4 -4
- package/src/site-logo/edit.js +1 -1
- package/src/social-link/edit.js +1 -1
- package/src/social-links/edit.native.js +1 -1
- package/src/spacer/edit.js +1 -1
- package/src/table-of-contents/edit.js +1 -1
- package/src/template-part/edit/index.js +91 -4
- package/src/template-part/edit/selection-modal.js +4 -8
- package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
- package/src/utils/hooks.js +53 -3
- package/src/video/edit-common-settings.js +1 -1
- package/src/video/edit.js +10 -18
- package/src/video/edit.native.js +5 -8
- package/src/video/test/edit.native.js +0 -14
- package/build/site-title/edit/index.js.map +0 -1
- package/build-module/site-title/edit/index.js.map +0 -1
- /package/src/site-title/{edit/index.js → edit.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blockEditor","_coreData","_data","_components","_i18n","_a11y","_icons","_compose","_useNavigationMenu","_useNavigationEntities","_placeholder","_responsiveWrapper","_innerBlocks","_navigationMenuNameControl","_unsavedInnerBlocks","_navigationMenuDeleteControl","_useNavigationNotice","_overlayMenuIcon","_overlayMenuPreview","_useConvertClassicMenuToBlockMenu","_interopRequireWildcard","_useCreateNavigationMenu","_useInnerBlocks","_utils","_manageMenusButton","_menuInspectorControls","_deletedNavigationWarning","_accessibleDescription","_accessibleMenuDescription","_lockUnlock","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","__unstableLayoutClassNames","layoutClassNames","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","useCallback","postId","recursionId","hasAlreadyRendered","useHasRecursion","blockEditingMode","useBlockEditingMode","menus","classicMenus","useNavigationEntities","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","useNavigationNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","useCreateNavigationMenu","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","useInnerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","useState","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","useNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","useConvertClassicToBlockMenu","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","unlock","useSelect","coreStore","navigationFallbackId","useEffect","navRef","useRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","select","__unstableHasActiveBlockOverlayActive","isResponsive","blockProps","useBlockProps","classnames","color","class","getColorClassName","slug","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","id","onSelectNavigationMenu","speak","__","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","detectColors","current","subMenuElement","querySelector","hasManagePermissions","overlayMenuPreviewClasses","open","submenuAccessibilityNotice","isFirstRender","overlayMenuPreviewId","useInstanceId","OverlayMenuPreview","colorGradientSettings","useMultipleOriginColorsAndGradients","stylingInspectorControls","_react","createElement","Fragment","InspectorControls","PanelBody","title","Button","onClick","Icon","close","hidden","__experimentalToggleGroupControl","__nextHasNoMarginBottom","label","help","onChange","isBlock","hideLabelFromVision","__experimentalToggleGroupControlOption","ToggleControl","checked","disabled","Notice","spokenMessage","isDismissible","hasColorsOrGradients","group","__experimentalColorGradientSettingsDropdown","__experimentalIsRenderedInSidebar","settings","colorValue","onColorChange","resetAllFilter","panelId","gradients","disableCustomGradients","ContrastChecker","accessibleDescriptionId","isManageMenusButtonDisabled","undefined","currentMenuId","onCreateNew","onToggle","isOpen","isHiddenByDefault","blocks","hasSelection","Warning","PlaceholderComponent","Placeholder","onCreateEmpty","EntityProvider","kind","type","RecursionProvider","uniqueId","onDelete","deletedMenuTitle","sprintf","Spinner","hasCustomPlaceholder","_default","exports","withColors"],"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"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\tRecursionProvider,\n\tuseHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tuseBlockEditingMode,\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\tNotice,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { close, Icon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\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 AccessibleDescription from './accessible-description';\nimport AccessibleMenuDescription from './accessible-menu-description';\nimport { unlock } from '../../lock-unlock';\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\t__unstableLayoutClassNames: layoutClassNames,\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 = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableHasActiveBlockOverlayActive(\n\t\t\t\tclientId\n\t\t\t),\n\t\t[ clientId ]\n\t);\n\tconst isResponsive = 'never' !== overlayMenu;\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': isResponsive,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t},\n\t\t\tlayoutClassNames\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 submenuAccessibilityNotice =\n\t\t! showSubmenuIcon && ! openSubmenusOnClick\n\t\t\t? __(\n\t\t\t\t\t'The current menu options offer reduced accessibility for users and are not recommended. Enabling either \"Open on Click\" or \"Show arrow\" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'\n\t\t\t )\n\t\t\t: '';\n\n\tconst isFirstRender = useRef( true ); // Don't speak on first render.\n\tuseEffect( () => {\n\t\tif ( ! isFirstRender.current && submenuAccessibilityNotice ) {\n\t\t\tspeak( submenuAccessibilityNotice );\n\t\t}\n\t\tisFirstRender.current = false;\n\t}, [ submenuAccessibilityNotice ] );\n\n\tconst overlayMenuPreviewId = useInstanceId(\n\t\tOverlayMenuPreview,\n\t\t`overlay-menu-preview`\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\taria-label={ __( 'Overlay menu controls' ) }\n\t\t\t\t\t\t\t\t\taria-controls={ overlayMenuPreviewId }\n\t\t\t\t\t\t\t\t\taria-expanded={ overlayMenuPreview }\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<div id={ overlayMenuPreviewId }>\n\t\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\thidden={ ! 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</div>\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\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t</div>\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 accessibleDescriptionId = `${ clientId }-desc`;\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\taria-describedby={\n\t\t\t\t\t! isPlaceholder ? accessibleDescriptionId : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<AccessibleDescription id={ accessibleDescriptionId }>\n\t\t\t\t\t{ __( 'Unsaved Navigation Menu.' ) }\n\t\t\t\t</AccessibleDescription>\n\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\n\t\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t! isPlaceholder\n\t\t\t\t\t\t\t\t? accessibleDescriptionId\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AccessibleMenuDescription\n\t\t\t\t\t\t\tid={ accessibleDescriptionId }\n\t\t\t\t\t\t/>\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\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blockEditor","_coreData","_data","_components","_i18n","_a11y","_icons","_compose","_useNavigationMenu","_useNavigationEntities","_placeholder","_responsiveWrapper","_innerBlocks","_navigationMenuNameControl","_unsavedInnerBlocks","_navigationMenuDeleteControl","_useNavigationNotice","_overlayMenuIcon","_overlayMenuPreview","_useConvertClassicMenuToBlockMenu","_interopRequireWildcard","_useCreateNavigationMenu","_useInnerBlocks","_utils","_manageMenusButton","_menuInspectorControls","_deletedNavigationWarning","_accessibleDescription","_accessibleMenuDescription","_lockUnlock","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","__unstableLayoutClassNames","layoutClassNames","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","useCallback","postId","recursionId","hasAlreadyRendered","useHasRecursion","blockEditingMode","useBlockEditingMode","menus","classicMenus","useNavigationEntities","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","useNavigationNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","useCreateNavigationMenu","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","useInnerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","useState","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","useNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","useConvertClassicToBlockMenu","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","handleUpdateMenu","menuId","options","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","unlock","useSelect","coreStore","navigationFallbackId","useEffect","navRef","useRef","TagName","isPlaceholder","length","isLoading","textDecoration","style","typography","hasBlockOverlay","select","__unstableHasActiveBlockOverlayActive","isResponsive","blockProps","useBlockProps","classnames","color","class","getColorClassName","slug","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","onSelectClassicMenu","classicMenu","navMenu","id","onSelectNavigationMenu","speak","__","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","detectColors","current","subMenuElement","querySelector","hasManagePermissions","overlayMenuPreviewClasses","open","submenuAccessibilityNotice","isFirstRender","overlayMenuPreviewId","useInstanceId","OverlayMenuPreview","colorGradientSettings","useMultipleOriginColorsAndGradients","stylingInspectorControls","_react","createElement","Fragment","InspectorControls","PanelBody","title","Button","onClick","Icon","close","hidden","__experimentalToggleGroupControl","__nextHasNoMarginBottom","label","help","onChange","isBlock","hideLabelFromVision","__experimentalToggleGroupControlOption","ToggleControl","checked","disabled","Notice","spokenMessage","isDismissible","hasColorsOrGradients","group","__experimentalColorGradientSettingsDropdown","__experimentalIsRenderedInSidebar","settings","colorValue","onColorChange","resetAllFilter","panelId","gradients","disableCustomGradients","ContrastChecker","accessibleDescriptionId","isManageMenusButtonDisabled","undefined","currentMenuId","onCreateNew","onToggle","isOpen","isHiddenByDefault","blocks","hasSelection","Warning","PlaceholderComponent","Placeholder","onCreateEmpty","EntityProvider","kind","type","RecursionProvider","uniqueId","onDelete","deletedMenuTitle","sprintf","Spinner","hasCustomPlaceholder","_default","exports","withColors"],"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"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\tRecursionProvider,\n\tuseHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tuseBlockEditingMode,\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\tNotice,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { close, Icon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\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 AccessibleDescription from './accessible-description';\nimport AccessibleMenuDescription from './accessible-menu-description';\nimport { unlock } from '../../lock-unlock';\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\t__unstableLayoutClassNames: layoutClassNames,\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 = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableHasActiveBlockOverlayActive(\n\t\t\t\tclientId\n\t\t\t),\n\t\t[ clientId ]\n\t);\n\tconst isResponsive = 'never' !== overlayMenu;\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames(\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': isResponsive,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t},\n\t\t\tlayoutClassNames\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 submenuAccessibilityNotice =\n\t\t! showSubmenuIcon && ! openSubmenusOnClick\n\t\t\t? __(\n\t\t\t\t\t'The current menu options offer reduced accessibility for users and are not recommended. Enabling either \"Open on Click\" or \"Show arrow\" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'\n\t\t\t )\n\t\t\t: '';\n\n\tconst isFirstRender = useRef( true ); // Don't speak on first render.\n\tuseEffect( () => {\n\t\tif ( ! isFirstRender.current && submenuAccessibilityNotice ) {\n\t\t\tspeak( submenuAccessibilityNotice );\n\t\t}\n\t\tisFirstRender.current = false;\n\t}, [ submenuAccessibilityNotice ] );\n\n\tconst overlayMenuPreviewId = useInstanceId(\n\t\tOverlayMenuPreview,\n\t\t`overlay-menu-preview`\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\taria-label={ __( 'Overlay menu controls' ) }\n\t\t\t\t\t\t\t\t\taria-controls={ overlayMenuPreviewId }\n\t\t\t\t\t\t\t\t\taria-expanded={ overlayMenuPreview }\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<div id={ overlayMenuPreviewId }>\n\t\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\thidden={ ! 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</div>\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\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t</div>\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\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 accessibleDescriptionId = `${ clientId }-desc`;\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\taria-describedby={\n\t\t\t\t\t! isPlaceholder ? accessibleDescriptionId : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<AccessibleDescription id={ accessibleDescriptionId }>\n\t\t\t\t\t{ __( 'Unsaved Navigation Menu.' ) }\n\t\t\t\t</AccessibleDescription>\n\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\n\t\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t! isPlaceholder\n\t\t\t\t\t\t\t\t? accessibleDescriptionId\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AccessibleMenuDescription\n\t\t\t\t\t\t\tid={ accessibleDescriptionId }\n\t\t\t\t\t\t/>\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\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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dom","require","_components","_i18n","_blockEditor","_element","_coreData","_htmlEntities","_data","_icons","_compose","_lockUnlock","PrivateQuickInserter","QuickInserter","unlock","blockEditorPrivateApis","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","LinkUIBlockInserter","clientId","onBack","onSelectBlock","rootBlockClientId","useSelect","select","getBlockRootClientId","blockEditorStore","focusOnMountRef","useFocusOnMount","dialogTitleId","useInstanceId","LinkControl","dialogDescritionId","_react","createElement","className","role","ref","VisuallyHidden","id","__","Button","icon","chevronLeftSmall","onClick","e","preventDefault","size","rootClientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","onSelect","LinkUI","props","addingBlock","setAddingBlock","useState","focusAddBlockButton","setFocusAddBlockButton","showBackdrop","setShowBackdrop","saveEntityRecord","useDispatch","coreStore","pagesPermissions","useResourcePermissions","postsPermissions","handleCreate","pageTitle","postType","link","page","title","status","decodeEntities","rendered","url","label","opensInNewTab","userCanCreate","canCreate","useMemo","stripHTML","onClose","Fragment","Popover","placement","anchor","shift","__experimentalLinkControl","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","createSuggestion","createSuggestionButtonText","searchTerm","format","createInterpolateElement","sprintf","mark","noDirectEntry","noURLSuggestion","suggestionsQuery","onChange","onRemove","onCancel","renderControlBottom","length","LinkUITools","blockInserterAriaRole","addBlockButtonRef","useRef","useEffect","current","focus","__experimentalVStack","plus","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { chevronLeftSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction LinkUIBlockInserter( { clientId, onBack, onSelectBlock } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescritionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert={ true }\n\t\t\t\thasSearch={ false }\n\t\t\t\tonSelect={ onSelectBlock }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ showBackdrop, setShowBackdrop ] = useState( true );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = props.link.type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes & No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\t// Selecting a block should close the popover and also remove the (previously) automatically inserted\n\t// link block so that the newly selected block can be inserted in its place.\n\tconst { onClose: onSelectBlock } = props;\n\n\treturn (\n\t\t<>\n\t\t\t{ showBackdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover-pointer-events-trap\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tonClick={ () => setShowBackdrop( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Popover\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\tonClose={ props.onClose }\n\t\t\t\tanchor={ props.anchor }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ ! addingBlock && (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\t\taria-describedby={ dialogDescritionId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\tlet format;\n\n\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmark: <mark />,\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\t\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton={\n\t\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\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/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\n\t\t\t\t{ addingBlock && (\n\t\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelectBlock={ onSelectBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n\nconst LinkUITools = ( { setAddingBlock, focusAddBlockButton } ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\treturn (\n\t\t<VStack className=\"link-ui-tools\">\n\t\t\t<Button\n\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t>\n\t\t\t\t{ __( 'Add block' ) }\n\t\t\t</Button>\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_dom","require","_components","_i18n","_blockEditor","_element","_coreData","_htmlEntities","_data","_icons","_compose","_lockUnlock","PrivateQuickInserter","QuickInserter","unlock","blockEditorPrivateApis","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","LinkUIBlockInserter","clientId","onBack","onSelectBlock","rootBlockClientId","useSelect","select","getBlockRootClientId","blockEditorStore","focusOnMountRef","useFocusOnMount","dialogTitleId","useInstanceId","LinkControl","dialogDescritionId","_react","createElement","className","role","ref","VisuallyHidden","id","__","Button","icon","chevronLeftSmall","onClick","e","preventDefault","size","rootClientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","onSelect","LinkUI","props","addingBlock","setAddingBlock","useState","focusAddBlockButton","setFocusAddBlockButton","showBackdrop","setShowBackdrop","saveEntityRecord","useDispatch","coreStore","pagesPermissions","useResourcePermissions","postsPermissions","handleCreate","pageTitle","postType","link","page","title","status","decodeEntities","rendered","url","label","opensInNewTab","userCanCreate","canCreate","useMemo","stripHTML","onClose","Fragment","Popover","placement","anchor","shift","__experimentalLinkControl","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","createSuggestion","createSuggestionButtonText","searchTerm","format","createInterpolateElement","sprintf","mark","noDirectEntry","noURLSuggestion","suggestionsQuery","onChange","onRemove","onCancel","renderControlBottom","length","LinkUITools","blockInserterAriaRole","addBlockButtonRef","useRef","useEffect","current","focus","__experimentalVStack","plus","_default","exports","default"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { chevronLeftSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction LinkUIBlockInserter( { clientId, onBack, onSelectBlock } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescritionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert\n\t\t\t\thasSearch={ false }\n\t\t\t\tonSelect={ onSelectBlock }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ showBackdrop, setShowBackdrop ] = useState( true );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = props.link.type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes & No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\t// Selecting a block should close the popover and also remove the (previously) automatically inserted\n\t// link block so that the newly selected block can be inserted in its place.\n\tconst { onClose: onSelectBlock } = props;\n\n\treturn (\n\t\t<>\n\t\t\t{ showBackdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover-pointer-events-trap\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tonClick={ () => setShowBackdrop( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Popover\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\tonClose={ props.onClose }\n\t\t\t\tanchor={ props.anchor }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ ! addingBlock && (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\t\taria-describedby={ dialogDescritionId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\tlet format;\n\n\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmark: <mark />,\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\t\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton={\n\t\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\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/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\n\t\t\t\t{ addingBlock && (\n\t\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelectBlock={ onSelectBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n\nconst LinkUITools = ( { setAddingBlock, focusAddBlockButton } ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\treturn (\n\t\t<VStack className=\"link-ui-tools\">\n\t\t\t<Button\n\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t>\n\t\t\t\t{ __( 'Add block' ) }\n\t\t\t</Button>\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_blocks","_blockEditor","_element","_data","name","allowedParentBlockAlignments","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","parentBlockAlignment","isRTL","useSelect","select","blockEditorStore","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","useCallback","nextAlign","parentTextAlignment","includes","undefined","textAlignment","_react","createElement","Fragment","BlockControls","group","AlignmentControl","value","onChange","RichText","identifier","tagName","deleteEnter","nextContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","onRemove","__","textAlign","__unstableEmbedURLOnPaste","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nconst allowedParentBlockAlignments = [ 'left', 'center', 'right' ];\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n\tparentBlockAlignment,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\n\tconst parentTextAlignment = allowedParentBlockAlignments.includes(\n\t\tparentBlockAlignment\n\t)\n\t\t? parentBlockAlignment\n\t\t: undefined;\n\n\tconst textAlignment = align || parentTextAlignment;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter
|
|
1
|
+
{"version":3,"names":["_i18n","require","_blocks","_blockEditor","_element","_data","name","allowedParentBlockAlignments","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","parentBlockAlignment","isRTL","useSelect","select","blockEditorStore","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","useCallback","nextAlign","parentTextAlignment","includes","undefined","textAlignment","_react","createElement","Fragment","BlockControls","group","AlignmentControl","value","onChange","RichText","identifier","tagName","deleteEnter","nextContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","onRemove","__","textAlign","__unstableEmbedURLOnPaste","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nconst allowedParentBlockAlignments = [ 'left', 'center', 'right' ];\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n\tparentBlockAlignment,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\n\tconst parentTextAlignment = allowedParentBlockAlignments.includes(\n\t\tparentBlockAlignment\n\t)\n\t\t? parentBlockAlignment\n\t\t: undefined;\n\n\tconst textAlignment = align || parentTextAlignment;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter\n\t\t\t\tstyle={ styles }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onReplace ? () => onReplace( [] ) : undefined }\n\t\t\t\tplaceholder={ placeholder || __( 'Start writing…' ) }\n\t\t\t\ttextAlign={ textAlignment }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],"mappings":"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"}
|
package/build/pattern/edit.js
CHANGED
|
@@ -24,6 +24,7 @@ const PatternEdit = ({
|
|
|
24
24
|
attributes,
|
|
25
25
|
clientId
|
|
26
26
|
}) => {
|
|
27
|
+
const registry = (0, _data.useRegistry)();
|
|
27
28
|
const selectedPattern = (0, _data.useSelect)(select => select(_blockEditor.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
|
|
28
29
|
const currentThemeStylesheet = (0, _data.useSelect)(select => select(_coreData.store).getCurrentTheme()?.stylesheet, []);
|
|
29
30
|
const {
|
|
@@ -77,16 +78,29 @@ const PatternEdit = ({
|
|
|
77
78
|
// Clone blocks from the pattern before insertion to ensure they receive
|
|
78
79
|
// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
|
|
79
80
|
const clonedBlocks = selectedPattern.blocks.map(block => (0, _blocks.cloneBlock)(injectThemeAttributeInBlockTemplateContent(block)));
|
|
81
|
+
// If the pattern has a single block and categories, we should add the
|
|
82
|
+
// categories of the pattern to the block's metadata.
|
|
83
|
+
if (clonedBlocks.length === 1 && selectedPattern.categories?.length > 0) {
|
|
84
|
+
clonedBlocks[0].attributes = {
|
|
85
|
+
...clonedBlocks[0].attributes,
|
|
86
|
+
metadata: {
|
|
87
|
+
...clonedBlocks[0].attributes.metadata,
|
|
88
|
+
categories: selectedPattern.categories
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
80
92
|
const rootEditingMode = getBlockEditingMode(rootClientId);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
registry.batch(() => {
|
|
94
|
+
// Temporarily set the root block to default mode to allow replacing the pattern.
|
|
95
|
+
// This could happen when the page is disabling edits of non-content blocks.
|
|
96
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
97
|
+
setBlockEditingMode(rootClientId, 'default');
|
|
98
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
99
|
+
replaceBlocks(clientId, clonedBlocks);
|
|
100
|
+
// Restore the root block's original mode.
|
|
101
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
102
|
+
setBlockEditingMode(rootClientId, rootEditingMode);
|
|
103
|
+
});
|
|
90
104
|
});
|
|
91
105
|
}
|
|
92
106
|
}, [clientId, hasRecursionError, selectedPattern, __unstableMarkNextChangeAsNotPersistent, replaceBlocks, getBlockEditingMode, setBlockEditingMode, getBlockRootClientId]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_data","_element","_blockEditor","_coreData","_i18n","_recursionDetector","PatternEdit","attributes","clientId","selectedPattern","useSelect","select","blockEditorStore","__experimentalGetParsedPattern","slug","currentThemeStylesheet","coreStore","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","useDispatch","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","useState","parsePatternDependencies","useParsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","useEffect","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","cloneBlock","rootEditingMode","props","useBlockProps","_react","createElement","Warning","sprintf","__","_default","exports","default"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAKA,IAAAM,kBAAA,GAAAN,OAAA;AAjBA;AACA;AACA;;AAYA;AACA;AACA;;AAGA,MAAMO,WAAW,GAAGA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,KAAM;EACnD,MAAMC,eAAe,GAAG,IAAAC,eAAS,EAC9BC,MAAM,IACPA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,8BAA8B,
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_element","_blockEditor","_coreData","_i18n","_recursionDetector","PatternEdit","attributes","clientId","registry","useRegistry","selectedPattern","useSelect","select","blockEditorStore","__experimentalGetParsedPattern","slug","currentThemeStylesheet","coreStore","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","useDispatch","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","useState","parsePatternDependencies","useParsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","useEffect","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","cloneBlock","length","categories","metadata","rootEditingMode","batch","props","useBlockProps","_react","createElement","Warning","sprintf","__","_default","exports","default"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst registry = useRegistry();\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t// If the pattern has a single block and categories, we should add the\n\t\t\t\t// categories of the pattern to the block's metadata.\n\t\t\t\tif (\n\t\t\t\t\tclonedBlocks.length === 1 &&\n\t\t\t\t\tselectedPattern.categories?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tclonedBlocks[ 0 ].attributes = {\n\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\t\tcategories: selectedPattern.categories,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":"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"}
|