@wordpress/block-library 8.1.0 → 8.2.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.
Files changed (168) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/archives/edit.js +1 -0
  4. package/build/archives/edit.js.map +1 -1
  5. package/build/audio/edit.js +2 -0
  6. package/build/audio/edit.js.map +1 -1
  7. package/build/comments/edit/comments-inspector-controls.js +9 -3
  8. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  9. package/build/embed/embed-preview.js +1 -0
  10. package/build/embed/embed-preview.js.map +1 -1
  11. package/build/file/inspector.js +1 -0
  12. package/build/file/inspector.js.map +1 -1
  13. package/build/gallery/edit.js +2 -0
  14. package/build/gallery/edit.js.map +1 -1
  15. package/build/gallery/gallery.js +1 -0
  16. package/build/gallery/gallery.js.map +1 -1
  17. package/build/gallery/v1/edit.js +2 -0
  18. package/build/gallery/v1/edit.js.map +1 -1
  19. package/build/group/edit.js +1 -0
  20. package/build/group/edit.js.map +1 -1
  21. package/build/group/index.js +3 -0
  22. package/build/group/index.js.map +1 -1
  23. package/build/image/image.js +6 -10
  24. package/build/image/image.js.map +1 -1
  25. package/build/latest-posts/edit.js +11 -8
  26. package/build/latest-posts/edit.js.map +1 -1
  27. package/build/navigation/edit/index.js +6 -3
  28. package/build/navigation/edit/index.js.map +1 -1
  29. package/build/navigation/edit/menu-inspector-controls.js +64 -27
  30. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  31. package/build/navigation/edit/navigation-menu-selector.js +4 -2
  32. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  33. package/build/navigation/leaf-more-menu.js +95 -0
  34. package/build/navigation/leaf-more-menu.js.map +1 -0
  35. package/build/navigation-link/edit.js +6 -3
  36. package/build/navigation-link/edit.js.map +1 -1
  37. package/build/navigation-link/update-attributes.js +3 -3
  38. package/build/navigation-link/update-attributes.js.map +1 -1
  39. package/build/page-list-item/index.js +2 -1
  40. package/build/page-list-item/index.js.map +1 -1
  41. package/build/post-author/edit.js +2 -0
  42. package/build/post-author/edit.js.map +1 -1
  43. package/build/post-featured-image/dimension-controls.js +1 -0
  44. package/build/post-featured-image/dimension-controls.js.map +1 -1
  45. package/build/query/edit/inspector-controls/index.js +1 -0
  46. package/build/query/edit/inspector-controls/index.js.map +1 -1
  47. package/build/query/edit/inspector-controls/order-control.js +1 -0
  48. package/build/query/edit/inspector-controls/order-control.js.map +1 -1
  49. package/build/query/edit/inspector-controls/sticky-control.js +1 -0
  50. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  51. package/build/query/edit/query-content.js +8 -1
  52. package/build/query/edit/query-content.js.map +1 -1
  53. package/build/social-link/edit.js +2 -1
  54. package/build/social-link/edit.js.map +1 -1
  55. package/build/table/edit.js +1 -0
  56. package/build/table/edit.js.map +1 -1
  57. package/build/tag-cloud/edit.js +1 -0
  58. package/build/tag-cloud/edit.js.map +1 -1
  59. package/build/template-part/edit/advanced-controls.js +12 -1
  60. package/build/template-part/edit/advanced-controls.js.map +1 -1
  61. package/build/video/edit-common-settings.js +6 -5
  62. package/build/video/edit-common-settings.js.map +1 -1
  63. package/build/video/edit.js +1 -0
  64. package/build/video/edit.js.map +1 -1
  65. package/build/video/tracks-editor.js +1 -0
  66. package/build/video/tracks-editor.js.map +1 -1
  67. package/build-module/archives/edit.js +1 -0
  68. package/build-module/archives/edit.js.map +1 -1
  69. package/build-module/audio/edit.js +2 -0
  70. package/build-module/audio/edit.js.map +1 -1
  71. package/build-module/comments/edit/comments-inspector-controls.js +9 -3
  72. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  73. package/build-module/embed/embed-preview.js +1 -0
  74. package/build-module/embed/embed-preview.js.map +1 -1
  75. package/build-module/file/inspector.js +1 -0
  76. package/build-module/file/inspector.js.map +1 -1
  77. package/build-module/gallery/edit.js +2 -0
  78. package/build-module/gallery/edit.js.map +1 -1
  79. package/build-module/gallery/gallery.js +1 -0
  80. package/build-module/gallery/gallery.js.map +1 -1
  81. package/build-module/gallery/v1/edit.js +2 -0
  82. package/build-module/gallery/v1/edit.js.map +1 -1
  83. package/build-module/group/edit.js +1 -0
  84. package/build-module/group/edit.js.map +1 -1
  85. package/build-module/group/index.js +3 -0
  86. package/build-module/group/index.js.map +1 -1
  87. package/build-module/image/image.js +6 -10
  88. package/build-module/image/image.js.map +1 -1
  89. package/build-module/latest-posts/edit.js +12 -9
  90. package/build-module/latest-posts/edit.js.map +1 -1
  91. package/build-module/navigation/edit/index.js +6 -3
  92. package/build-module/navigation/edit/index.js.map +1 -1
  93. package/build-module/navigation/edit/menu-inspector-controls.js +63 -29
  94. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  95. package/build-module/navigation/edit/navigation-menu-selector.js +4 -2
  96. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  97. package/build-module/navigation/leaf-more-menu.js +76 -0
  98. package/build-module/navigation/leaf-more-menu.js.map +1 -0
  99. package/build-module/navigation-link/edit.js +6 -3
  100. package/build-module/navigation-link/edit.js.map +1 -1
  101. package/build-module/navigation-link/update-attributes.js +3 -3
  102. package/build-module/navigation-link/update-attributes.js.map +1 -1
  103. package/build-module/page-list-item/index.js +2 -1
  104. package/build-module/page-list-item/index.js.map +1 -1
  105. package/build-module/post-author/edit.js +2 -0
  106. package/build-module/post-author/edit.js.map +1 -1
  107. package/build-module/post-featured-image/dimension-controls.js +1 -0
  108. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  109. package/build-module/query/edit/inspector-controls/index.js +1 -0
  110. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  111. package/build-module/query/edit/inspector-controls/order-control.js +1 -0
  112. package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
  113. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
  114. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  115. package/build-module/query/edit/query-content.js +8 -1
  116. package/build-module/query/edit/query-content.js.map +1 -1
  117. package/build-module/social-link/edit.js +2 -1
  118. package/build-module/social-link/edit.js.map +1 -1
  119. package/build-module/table/edit.js +1 -0
  120. package/build-module/table/edit.js.map +1 -1
  121. package/build-module/tag-cloud/edit.js +1 -0
  122. package/build-module/tag-cloud/edit.js.map +1 -1
  123. package/build-module/template-part/edit/advanced-controls.js +12 -1
  124. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  125. package/build-module/video/edit-common-settings.js +6 -5
  126. package/build-module/video/edit-common-settings.js.map +1 -1
  127. package/build-module/video/edit.js +1 -0
  128. package/build-module/video/edit.js.map +1 -1
  129. package/build-module/video/tracks-editor.js +1 -0
  130. package/build-module/video/tracks-editor.js.map +1 -1
  131. package/package.json +29 -29
  132. package/src/archives/edit.js +1 -0
  133. package/src/audio/edit.js +2 -0
  134. package/src/comments/edit/comments-inspector-controls.js +12 -2
  135. package/src/embed/embed-preview.js +1 -0
  136. package/src/file/inspector.js +1 -0
  137. package/src/gallery/edit.js +2 -0
  138. package/src/gallery/gallery.js +1 -0
  139. package/src/gallery/v1/edit.js +2 -0
  140. package/src/group/block.json +3 -0
  141. package/src/group/edit.js +1 -0
  142. package/src/image/image.js +26 -36
  143. package/src/latest-posts/edit.js +6 -7
  144. package/src/navigation/edit/index.js +3 -0
  145. package/src/navigation/edit/menu-inspector-controls.js +98 -68
  146. package/src/navigation/edit/navigation-menu-selector.js +5 -2
  147. package/src/navigation/leaf-more-menu.js +93 -0
  148. package/src/navigation-link/edit.js +18 -7
  149. package/src/navigation-link/index.php +30 -3
  150. package/src/navigation-link/update-attributes.js +1 -1
  151. package/src/navigation-submenu/index.php +2 -2
  152. package/src/page-list/index.php +5 -0
  153. package/src/page-list-item/block.json +2 -1
  154. package/src/post-author/edit.js +2 -0
  155. package/src/post-featured-image/dimension-controls.js +1 -0
  156. package/src/query/edit/inspector-controls/index.js +1 -0
  157. package/src/query/edit/inspector-controls/order-control.js +1 -0
  158. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  159. package/src/query/edit/query-content.js +13 -0
  160. package/src/rss/index.php +1 -1
  161. package/src/social-link/edit.js +2 -1
  162. package/src/table/edit.js +1 -0
  163. package/src/tag-cloud/edit.js +1 -0
  164. package/src/template-part/edit/advanced-controls.js +24 -0
  165. package/src/video/edit-common-settings.js +6 -5
  166. package/src/video/edit.js +1 -0
  167. package/src/video/tracks-editor.js +1 -0
  168. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","author","orderby","_embed","value","imageDimensions","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","filter","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","width","height","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","i","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, pickBy } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = get( post, [ '_embedded', 'wp:featuredmedia', '0' ] );\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = pickBy(\n\t\t\t\t{\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t},\n\t\t\t\t( value ) => typeof value !== 'undefined'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'width' ],\n\t\t\t\t\t0\n\t\t\t\t),\n\t\t\t\tdefaultImageHeight: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'height' ],\n\t\t\t\t\t0\n\t\t\t\t),\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<div>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post, i ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = classnames( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ /* translators: excerpt truncation character, default … */ }\n\t\t\t\t\t\t\t{ __( ' … ' ) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Read more' ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ i }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\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\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\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\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\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{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","width","height","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = get( post, [ '_embedded', 'wp:featuredmedia', '0' ] );\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'width' ],\n\t\t\t\t\t0\n\t\t\t\t),\n\t\t\t\tdefaultImageHeight: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'height' ],\n\t\t\t\t\t0\n\t\t\t\t),\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<div>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = classnames( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ /* translators: excerpt truncation character, default … */ }\n\t\t\t\t\t\t\t{ __( ' … ' ) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Read more' ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\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\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\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\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\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{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n"]}
@@ -542,7 +542,8 @@ function Navigation(_ref) {
542
542
  isManageMenusButtonDisabled: isManageMenusButtonDisabled,
543
543
  onCreateNew: createUntitledEmptyNavigationMenu,
544
544
  onSelectClassicMenu: onSelectClassicMenu,
545
- onSelectNavigationMenu: onSelectNavigationMenu
545
+ onSelectNavigationMenu: onSelectNavigationMenu,
546
+ isLoading: isLoading
546
547
  }), stylingInspectorControls, (0, _element.createElement)(_responsiveWrapper.default, {
547
548
  id: clientId,
548
549
  onToggle: setResponsiveMenuVisibility,
@@ -573,7 +574,8 @@ function Navigation(_ref) {
573
574
  isManageMenusButtonDisabled: isManageMenusButtonDisabled,
574
575
  onCreateNew: createUntitledEmptyNavigationMenu,
575
576
  onSelectClassicMenu: onSelectClassicMenu,
576
- onSelectNavigationMenu: onSelectNavigationMenu
577
+ onSelectNavigationMenu: onSelectNavigationMenu,
578
+ isLoading: isLoading
577
579
  }), (0, _element.createElement)(_blockEditor.Warning, null, (0, _i18n.__)('Navigation menu has been deleted or is unavailable. '), (0, _element.createElement)(_components.Button, {
578
580
  onClick: createUntitledEmptyNavigationMenu,
579
581
  variant: "link"
@@ -623,7 +625,8 @@ function Navigation(_ref) {
623
625
  isManageMenusButtonDisabled: isManageMenusButtonDisabled,
624
626
  onCreateNew: createUntitledEmptyNavigationMenu,
625
627
  onSelectClassicMenu: onSelectClassicMenu,
626
- onSelectNavigationMenu: onSelectNavigationMenu
628
+ onSelectNavigationMenu: onSelectNavigationMenu,
629
+ isLoading: isLoading
627
630
  }), stylingInspectorControls, isEntityAvailable && (0, _element.createElement)(_blockEditor.InspectorControls, {
628
631
  __experimentalGroup: "advanced"
629
632
  }, hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && (0, _element.createElement)(_navigationMenuNameControl.default, null), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && (0, _element.createElement)(_navigationMenuDeleteControl.default, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","isOffCanvasNavigationEditorEnabled","window","__experimentalEnableOffCanvasNavigationEditor","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","coreStore","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","length","primaryMenus","classicMenu","locations","includes","slug","a","b","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","onSelectClassicMenu","navMenu","onSelectNavigationMenu","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","colorGradientSettings","stylingInspectorControls","close","colorValue","label","onColorChange","resetAllFilter","hasUnsavedBlocks","isManageMenusButtonDisabled","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport 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';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst isOffCanvasNavigationEditorEnabled =\n\t\twindow?.__experimentalEnableOffCanvasNavigationEditor === true;\n\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = useMemo(\n\t\t() =>\n\t\t\tnavigationMenus\n\t\t\t\t?.filter( ( menu ) => menu.status === 'publish' )\n\t\t\t\t?.sort( ( menuA, menuB ) => {\n\t\t\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t\t\t} ),\n\t\t[ navigationMenus ]\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [\n\t\tref,\n\t\tisCreatingNavigationMenu,\n\t\tfallbackNavigationMenus,\n\t\thasUncontrolledInnerBlocks,\n\t] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\t! classicMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// a classic menu with a `primary` location or slug,\n\t\t// then create a new navigation menu based on it.\n\t\t// Otherwise, use the most recently created classic menu.\n\t\tconst primaryMenus = classicMenus.filter(\n\t\t\t( classicMenu ) =>\n\t\t\t\tclassicMenu.locations.includes( 'primary' ) ||\n\t\t\t\tclassicMenu.slug === 'primary'\n\t\t);\n\n\t\tif ( primaryMenus.length ) {\n\t\t\tconvertClassicMenu(\n\t\t\t\tprimaryMenus[ 0 ].id,\n\t\t\t\tprimaryMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t} else {\n\t\t\tclassicMenus.sort( ( a, b ) => {\n\t\t\t\treturn b.id - a.id;\n\t\t\t} );\n\t\t\tconvertClassicMenu(\n\t\t\t\tclassicMenus[ 0 ].id,\n\t\t\t\tclassicMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t}\n\t}, [ hasResolvedNavigationMenus ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\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\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\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\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\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"color\">\n\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<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\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/>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ 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/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled && (\n\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","isOffCanvasNavigationEditorEnabled","window","__experimentalEnableOffCanvasNavigationEditor","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","coreStore","menus","classicMenus","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","name","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showMenuAutoPublishDraftNotice","hideMenuAutoPublishDraftNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","createNavigationMenuIsSuccess","isError","createNavigationMenuIsError","createUntitledEmptyNavigationMenu","handleUpdateMenu","id","focusNavigationBlock","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","innerBlocks","hasSubmenus","find","block","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","fallbackNavigationMenus","filter","menu","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","length","primaryMenus","classicMenu","locations","includes","slug","a","b","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","onSelectClassicMenu","navMenu","onSelectNavigationMenu","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","catch","colorGradientSettings","stylingInspectorControls","close","colorValue","label","onColorChange","resetAllFilter","hasUnsavedBlocks","isManageMenusButtonDisabled","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport 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';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst isOffCanvasNavigationEditorEnabled =\n\t\twindow?.__experimentalEnableOffCanvasNavigationEditor === true;\n\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = useMemo(\n\t\t() =>\n\t\t\tnavigationMenus\n\t\t\t\t?.filter( ( menu ) => menu.status === 'publish' )\n\t\t\t\t?.sort( ( menuA, menuB ) => {\n\t\t\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t\t\t} ),\n\t\t[ navigationMenus ]\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [\n\t\tref,\n\t\tisCreatingNavigationMenu,\n\t\tfallbackNavigationMenus,\n\t\thasUncontrolledInnerBlocks,\n\t] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\t! classicMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// a classic menu with a `primary` location or slug,\n\t\t// then create a new navigation menu based on it.\n\t\t// Otherwise, use the most recently created classic menu.\n\t\tconst primaryMenus = classicMenus.filter(\n\t\t\t( classicMenu ) =>\n\t\t\t\tclassicMenu.locations.includes( 'primary' ) ||\n\t\t\t\tclassicMenu.slug === 'primary'\n\t\t);\n\n\t\tif ( primaryMenus.length ) {\n\t\t\tconvertClassicMenu(\n\t\t\t\tprimaryMenus[ 0 ].id,\n\t\t\t\tprimaryMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t} else {\n\t\t\tclassicMenus.sort( ( a, b ) => {\n\t\t\t\treturn b.id - a.id;\n\t\t\t} );\n\t\t\tconvertClassicMenu(\n\t\t\t\tclassicMenus[ 0 ].id,\n\t\t\t\tclassicMenus[ 0 ].name,\n\t\t\t\t'publish'\n\t\t\t);\n\t\t}\n\t}, [ hasResolvedNavigationMenus ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\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\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) {\n\t\t\treturn;\n\t\t}\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tnavigationMenu?.id,\n\t\t\t{ status: 'publish' },\n\t\t\t{ throwOnError: true }\n\t\t).catch( () => {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t} );\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\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\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\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"color\">\n\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tresetAllFilter: () =>\n\t\t\t\t\t\t\t\t\t\tsetOverlayBackgroundColor(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\tgradients={ [] }\n\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<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\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/>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ 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/>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isOffCanvasNavigationEditorEnabled && (\n\t\t\t\t\t\t\t<ManageMenusButton\n\t\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -21,6 +21,8 @@ var _manageMenusButton = _interopRequireDefault(require("./manage-menus-button")
21
21
 
22
22
  var _navigationMenuSelector = _interopRequireDefault(require("./navigation-menu-selector"));
23
23
 
24
+ var _leafMoreMenu = require("../leaf-more-menu");
25
+
24
26
  /**
25
27
  * WordPress dependencies
26
28
  */
@@ -28,38 +30,52 @@ var _navigationMenuSelector = _interopRequireDefault(require("./navigation-menu-
28
30
  /**
29
31
  * Internal dependencies
30
32
  */
31
- const MenuInspectorControls = _ref => {
32
- var _window, _window2;
33
33
 
34
+ /* translators: %s: The name of a menu. */
35
+ const actionLabel = (0, _i18n.__)("Switch to '%s'");
36
+
37
+ const ExperimentMainContent = _ref => {
34
38
  let {
35
39
  clientId,
36
- createNavigationMenuIsSuccess,
37
- createNavigationMenuIsError,
38
- currentMenuId = null,
39
- isNavigationMenuMissing,
40
- isManageMenusButtonDisabled,
41
- onCreateNew,
42
- onSelectClassicMenu,
43
- onSelectNavigationMenu
40
+ currentMenuId,
41
+ isLoading,
42
+ isNavigationMenuMissing
44
43
  } = _ref;
45
- const isOffCanvasNavigationEditorEnabled = ((_window = window) === null || _window === void 0 ? void 0 : _window.__experimentalEnableOffCanvasNavigationEditor) === true;
46
- const menuControlsSlot = (_window2 = window) !== null && _window2 !== void 0 && _window2.__experimentalEnableBlockInspectorTabs ? 'list' : undefined;
47
- /* translators: %s: The name of a menu. */
48
-
49
- const actionLabel = (0, _i18n.__)("Switch to '%s'"); // Provide a hierarchy of clientIds for the given Navigation block (clientId).
44
+ // Provide a hierarchy of clientIds for the given Navigation block (clientId).
50
45
  // This is required else the list view will display the entire block tree.
51
-
52
46
  const clientIdsTree = (0, _data.useSelect)(select => {
53
47
  const {
54
48
  __unstableGetClientIdsTree
55
49
  } = select(_blockEditor.store);
56
50
  return __unstableGetClientIdsTree(clientId);
57
51
  }, [clientId]);
58
- return (0, _element.createElement)(_blockEditor.InspectorControls, {
59
- __experimentalGroup: menuControlsSlot
60
- }, (0, _element.createElement)(_components.PanelBody, {
61
- title: isOffCanvasNavigationEditorEnabled ? null : (0, _i18n.__)('Menu')
62
- }, isOffCanvasNavigationEditorEnabled ? (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalHStack, {
52
+
53
+ if (currentMenuId && isNavigationMenuMissing) {
54
+ return (0, _element.createElement)("p", null, (0, _i18n.__)('Select or create a menu'));
55
+ }
56
+
57
+ if (isLoading) {
58
+ return (0, _element.createElement)(_components.Spinner, null);
59
+ }
60
+
61
+ return (0, _element.createElement)(_blockEditor.__experimentalOffCanvasEditor, {
62
+ blocks: clientIdsTree,
63
+ isExpanded: true,
64
+ selectBlockInCanvas: false,
65
+ LeafMoreMenu: _leafMoreMenu.LeafMoreMenu
66
+ });
67
+ };
68
+
69
+ const ExperimentControls = props => {
70
+ const {
71
+ createNavigationMenuIsSuccess,
72
+ createNavigationMenuIsError,
73
+ currentMenuId = null,
74
+ onCreateNew,
75
+ onSelectClassicMenu,
76
+ onSelectNavigationMenu
77
+ } = props;
78
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalHStack, {
63
79
  className: "wp-block-navigation-off-canvas-editor__header"
64
80
  }, (0, _element.createElement)(_components.__experimentalHeading, {
65
81
  className: "wp-block-navigation-off-canvas-editor__title",
@@ -72,11 +88,20 @@ const MenuInspectorControls = _ref => {
72
88
  createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
73
89
  createNavigationMenuIsError: createNavigationMenuIsError,
74
90
  actionLabel: actionLabel
75
- })), currentMenuId && isNavigationMenuMissing ? (0, _element.createElement)("p", null, (0, _i18n.__)('Select or create a menu')) : (0, _element.createElement)(_blockEditor.__experimentalOffCanvasEditor, {
76
- blocks: clientIdsTree,
77
- isExpanded: true,
78
- selectBlockInCanvas: false
79
- })) : (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_navigationMenuSelector.default, {
91
+ })), (0, _element.createElement)(ExperimentMainContent, props));
92
+ };
93
+
94
+ const DefaultControls = props => {
95
+ const {
96
+ createNavigationMenuIsSuccess,
97
+ createNavigationMenuIsError,
98
+ currentMenuId = null,
99
+ isManageMenusButtonDisabled,
100
+ onCreateNew,
101
+ onSelectClassicMenu,
102
+ onSelectNavigationMenu
103
+ } = props;
104
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_navigationMenuSelector.default, {
80
105
  currentMenuId: currentMenuId,
81
106
  onSelectClassicMenu: onSelectClassicMenu,
82
107
  onSelectNavigationMenu: onSelectNavigationMenu,
@@ -86,7 +111,19 @@ const MenuInspectorControls = _ref => {
86
111
  actionLabel: actionLabel
87
112
  }), (0, _element.createElement)(_manageMenusButton.default, {
88
113
  disabled: isManageMenusButtonDisabled
89
- }))));
114
+ }));
115
+ };
116
+
117
+ const MenuInspectorControls = props => {
118
+ var _window;
119
+
120
+ const isOffCanvasNavigationEditorEnabled = ((_window = window) === null || _window === void 0 ? void 0 : _window.__experimentalEnableOffCanvasNavigationEditor) === true;
121
+ const menuControlsSlot = isOffCanvasNavigationEditorEnabled ? 'list' : undefined;
122
+ return (0, _element.createElement)(_blockEditor.InspectorControls, {
123
+ __experimentalGroup: menuControlsSlot
124
+ }, (0, _element.createElement)(_components.PanelBody, {
125
+ title: isOffCanvasNavigationEditorEnabled ? null : (0, _i18n.__)('Menu')
126
+ }, isOffCanvasNavigationEditorEnabled ? (0, _element.createElement)(ExperimentControls, props) : (0, _element.createElement)(DefaultControls, props)));
90
127
  };
91
128
 
92
129
  var _default = MenuInspectorControls;