@wordpress/block-library 7.15.1-next.4d3b314fd5.0 → 7.17.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 (351) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/build/archives/edit.js +1 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/code/utils.js +3 -3
  5. package/build/code/utils.js.map +1 -1
  6. package/build/comment-template/edit.js +40 -32
  7. package/build/comment-template/edit.js.map +1 -1
  8. package/build/comments/edit/placeholder.js +1 -4
  9. package/build/comments/edit/placeholder.js.map +1 -1
  10. package/build/comments/index.js +5 -1
  11. package/build/comments/index.js.map +1 -1
  12. package/build/comments-title/edit.js +18 -1
  13. package/build/comments-title/edit.js.map +1 -1
  14. package/build/cover/edit/index.js +2 -2
  15. package/build/cover/edit/index.js.map +1 -1
  16. package/build/cover/edit/use-cover-is-dark.js +8 -7
  17. package/build/cover/edit/use-cover-is-dark.js.map +1 -1
  18. package/build/embed/variations.js +1 -1
  19. package/build/embed/variations.js.map +1 -1
  20. package/build/gallery/transforms.js +3 -3
  21. package/build/gallery/transforms.js.map +1 -1
  22. package/build/gallery/v1/edit.js +1 -1
  23. package/build/gallery/v1/edit.js.map +1 -1
  24. package/build/group/edit.js +1 -1
  25. package/build/group/edit.js.map +1 -1
  26. package/build/image/image.js +34 -10
  27. package/build/image/image.js.map +1 -1
  28. package/build/image/transforms.js +1 -7
  29. package/build/image/transforms.js.map +1 -1
  30. package/build/list/transforms.js +9 -1
  31. package/build/list/transforms.js.map +1 -1
  32. package/build/list-item/edit.js +3 -2
  33. package/build/list-item/edit.js.map +1 -1
  34. package/build/list-item/edit.native.js +3 -2
  35. package/build/list-item/edit.native.js.map +1 -1
  36. package/build/list-item/hooks/use-merge.js +19 -22
  37. package/build/list-item/hooks/use-merge.js.map +1 -1
  38. package/build/list-item/hooks/use-outdent-list-item.js +19 -3
  39. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  40. package/build/list-item/index.js +14 -1
  41. package/build/list-item/index.js.map +1 -1
  42. package/build/list-item/utils.js +14 -1
  43. package/build/list-item/utils.js.map +1 -1
  44. package/build/navigation/edit/index.js +46 -33
  45. package/build/navigation/edit/index.js.map +1 -1
  46. package/build/navigation/edit/inner-blocks.js +3 -5
  47. package/build/navigation/edit/inner-blocks.js.map +1 -1
  48. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +25 -8
  49. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  50. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  51. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  52. package/build/navigation/index.js +4 -1
  53. package/build/navigation/index.js.map +1 -1
  54. package/build/navigation-link/edit.js +1 -1
  55. package/build/navigation-link/edit.js.map +1 -1
  56. package/build/page-list/index.js +1 -5
  57. package/build/page-list/index.js.map +1 -1
  58. package/build/paragraph/deprecated.js +49 -10
  59. package/build/paragraph/deprecated.js.map +1 -1
  60. package/build/paragraph/edit.js +22 -14
  61. package/build/paragraph/edit.js.map +1 -1
  62. package/build/paragraph/save.js +3 -1
  63. package/build/paragraph/save.js.map +1 -1
  64. package/build/pattern/edit.js +11 -4
  65. package/build/pattern/edit.js.map +1 -1
  66. package/build/post-author/edit.js +20 -2
  67. package/build/post-author/edit.js.map +1 -1
  68. package/build/post-author/index.js +8 -0
  69. package/build/post-author/index.js.map +1 -1
  70. package/build/post-comments-form/form.js +1 -2
  71. package/build/post-comments-form/form.js.map +1 -1
  72. package/build/post-featured-image/index.js +1 -1
  73. package/build/post-featured-image/overlay.js +2 -2
  74. package/build/post-featured-image/overlay.js.map +1 -1
  75. package/build/post-terms/index.js +4 -0
  76. package/build/post-terms/index.js.map +1 -1
  77. package/build/query/edit/inspector-controls/author-control.js +2 -1
  78. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  79. package/build/query/edit/inspector-controls/index.js +3 -3
  80. package/build/query/edit/inspector-controls/index.js.map +1 -1
  81. package/build/query/edit/inspector-controls/parent-control.js +2 -1
  82. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  83. package/build/query/edit/inspector-controls/taxonomy-controls.js +79 -103
  84. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  85. package/build/query/utils.js +1 -1
  86. package/build/query/utils.js.map +1 -1
  87. package/build/quote/index.js +0 -1
  88. package/build/quote/index.js.map +1 -1
  89. package/build/search/edit.js +2 -1
  90. package/build/search/edit.js.map +1 -1
  91. package/build/site-logo/edit.js +6 -9
  92. package/build/site-logo/edit.js.map +1 -1
  93. package/build/site-title/index.js +2 -1
  94. package/build/site-title/index.js.map +1 -1
  95. package/build/table/state.js +1 -1
  96. package/build/table/state.js.map +1 -1
  97. package/build/table-of-contents/edit.js +1 -4
  98. package/build/table-of-contents/edit.js.map +1 -1
  99. package/build/tag-cloud/edit.js +1 -1
  100. package/build/tag-cloud/edit.js.map +1 -1
  101. package/build/tag-cloud/index.js +8 -0
  102. package/build/tag-cloud/index.js.map +1 -1
  103. package/build/template-part/index.js +2 -2
  104. package/build/template-part/index.js.map +1 -1
  105. package/build/video/edit.js +13 -1
  106. package/build/video/edit.js.map +1 -1
  107. package/build-module/archives/edit.js +1 -0
  108. package/build-module/archives/edit.js.map +1 -1
  109. package/build-module/code/utils.js +3 -3
  110. package/build-module/code/utils.js.map +1 -1
  111. package/build-module/comment-template/edit.js +38 -30
  112. package/build-module/comment-template/edit.js.map +1 -1
  113. package/build-module/comments/edit/placeholder.js +1 -3
  114. package/build-module/comments/edit/placeholder.js.map +1 -1
  115. package/build-module/comments/index.js +5 -1
  116. package/build-module/comments/index.js.map +1 -1
  117. package/build-module/comments-title/edit.js +18 -2
  118. package/build-module/comments-title/edit.js.map +1 -1
  119. package/build-module/cover/edit/index.js +2 -2
  120. package/build-module/cover/edit/index.js.map +1 -1
  121. package/build-module/cover/edit/use-cover-is-dark.js +7 -7
  122. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -1
  123. package/build-module/embed/variations.js +1 -1
  124. package/build-module/embed/variations.js.map +1 -1
  125. package/build-module/gallery/transforms.js +4 -4
  126. package/build-module/gallery/transforms.js.map +1 -1
  127. package/build-module/gallery/v1/edit.js +2 -2
  128. package/build-module/gallery/v1/edit.js.map +1 -1
  129. package/build-module/group/edit.js +1 -1
  130. package/build-module/group/edit.js.map +1 -1
  131. package/build-module/image/image.js +35 -11
  132. package/build-module/image/image.js.map +1 -1
  133. package/build-module/image/transforms.js +1 -6
  134. package/build-module/image/transforms.js.map +1 -1
  135. package/build-module/list/transforms.js +9 -1
  136. package/build-module/list/transforms.js.map +1 -1
  137. package/build-module/list-item/edit.js +3 -2
  138. package/build-module/list-item/edit.js.map +1 -1
  139. package/build-module/list-item/edit.native.js +3 -2
  140. package/build-module/list-item/edit.native.js.map +1 -1
  141. package/build-module/list-item/hooks/use-merge.js +19 -21
  142. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  143. package/build-module/list-item/hooks/use-outdent-list-item.js +19 -3
  144. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  145. package/build-module/list-item/index.js +14 -1
  146. package/build-module/list-item/index.js.map +1 -1
  147. package/build-module/list-item/utils.js +14 -1
  148. package/build-module/list-item/utils.js.map +1 -1
  149. package/build-module/navigation/edit/index.js +46 -33
  150. package/build-module/navigation/edit/index.js.map +1 -1
  151. package/build-module/navigation/edit/inner-blocks.js +3 -5
  152. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  153. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +25 -8
  154. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  155. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  156. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  157. package/build-module/navigation/index.js +4 -1
  158. package/build-module/navigation/index.js.map +1 -1
  159. package/build-module/navigation-link/edit.js +1 -1
  160. package/build-module/navigation-link/edit.js.map +1 -1
  161. package/build-module/page-list/index.js +1 -5
  162. package/build-module/page-list/index.js.map +1 -1
  163. package/build-module/paragraph/deprecated.js +49 -11
  164. package/build-module/paragraph/deprecated.js.map +1 -1
  165. package/build-module/paragraph/edit.js +22 -13
  166. package/build-module/paragraph/edit.js.map +1 -1
  167. package/build-module/paragraph/save.js +2 -1
  168. package/build-module/paragraph/save.js.map +1 -1
  169. package/build-module/pattern/edit.js +10 -3
  170. package/build-module/pattern/edit.js.map +1 -1
  171. package/build-module/post-author/edit.js +21 -2
  172. package/build-module/post-author/edit.js.map +1 -1
  173. package/build-module/post-author/index.js +8 -0
  174. package/build-module/post-author/index.js.map +1 -1
  175. package/build-module/post-comments-form/form.js +2 -3
  176. package/build-module/post-comments-form/form.js.map +1 -1
  177. package/build-module/post-featured-image/index.js +1 -1
  178. package/build-module/post-featured-image/overlay.js +2 -2
  179. package/build-module/post-featured-image/overlay.js.map +1 -1
  180. package/build-module/post-terms/index.js +4 -0
  181. package/build-module/post-terms/index.js.map +1 -1
  182. package/build-module/query/edit/inspector-controls/author-control.js +2 -1
  183. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  184. package/build-module/query/edit/inspector-controls/index.js +5 -5
  185. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  186. package/build-module/query/edit/inspector-controls/parent-control.js +2 -1
  187. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  188. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +81 -101
  189. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  190. package/build-module/query/utils.js +1 -1
  191. package/build-module/query/utils.js.map +1 -1
  192. package/build-module/quote/index.js +0 -1
  193. package/build-module/quote/index.js.map +1 -1
  194. package/build-module/search/edit.js +3 -2
  195. package/build-module/search/edit.js.map +1 -1
  196. package/build-module/site-logo/edit.js +6 -9
  197. package/build-module/site-logo/edit.js.map +1 -1
  198. package/build-module/site-title/index.js +2 -1
  199. package/build-module/site-title/index.js.map +1 -1
  200. package/build-module/table/state.js +2 -2
  201. package/build-module/table/state.js.map +1 -1
  202. package/build-module/table-of-contents/edit.js +1 -3
  203. package/build-module/table-of-contents/edit.js.map +1 -1
  204. package/build-module/tag-cloud/edit.js +1 -1
  205. package/build-module/tag-cloud/edit.js.map +1 -1
  206. package/build-module/tag-cloud/index.js +8 -0
  207. package/build-module/tag-cloud/index.js.map +1 -1
  208. package/build-module/template-part/index.js +2 -2
  209. package/build-module/template-part/index.js.map +1 -1
  210. package/build-module/video/edit.js +15 -3
  211. package/build-module/video/edit.js.map +1 -1
  212. package/build-style/archives/style-rtl.css +4 -0
  213. package/build-style/archives/style.css +4 -0
  214. package/build-style/code/style-rtl.css +3 -0
  215. package/build-style/code/style.css +3 -0
  216. package/build-style/comments/editor-rtl.css +1 -0
  217. package/build-style/comments/editor.css +1 -0
  218. package/build-style/comments/style-rtl.css +1 -0
  219. package/build-style/comments/style.css +1 -0
  220. package/build-style/cover/editor-rtl.css +4 -0
  221. package/build-style/cover/editor.css +4 -0
  222. package/build-style/editor-rtl.css +78 -46
  223. package/build-style/editor.css +78 -46
  224. package/build-style/group/editor-rtl.css +1 -0
  225. package/build-style/group/editor.css +1 -0
  226. package/build-style/image/editor-rtl.css +1 -1
  227. package/build-style/image/editor.css +1 -1
  228. package/build-style/navigation/editor-rtl.css +5 -0
  229. package/build-style/navigation/editor.css +5 -0
  230. package/build-style/navigation/style-rtl.css +3 -0
  231. package/build-style/navigation/style.css +3 -0
  232. package/build-style/paragraph/editor-rtl.css +0 -16
  233. package/build-style/paragraph/editor.css +0 -16
  234. package/build-style/paragraph/style-rtl.css +5 -0
  235. package/build-style/paragraph/style.css +5 -0
  236. package/build-style/post-featured-image/editor-rtl.css +39 -29
  237. package/build-style/post-featured-image/editor.css +39 -29
  238. package/build-style/post-terms/style-rtl.css +4 -1
  239. package/build-style/post-terms/style.css +4 -1
  240. package/build-style/site-logo/editor-rtl.css +1 -0
  241. package/build-style/site-logo/editor.css +1 -0
  242. package/build-style/site-title/editor-rtl.css +4 -0
  243. package/build-style/site-title/editor.css +4 -0
  244. package/build-style/site-title/style-rtl.css +79 -0
  245. package/build-style/site-title/style.css +79 -0
  246. package/build-style/style-rtl.css +27 -1
  247. package/build-style/style.css +27 -1
  248. package/build-style/tag-cloud/style-rtl.css +3 -0
  249. package/build-style/tag-cloud/style.css +3 -0
  250. package/build-style/video/editor-rtl.css +22 -0
  251. package/build-style/video/editor.css +22 -0
  252. package/package.json +28 -28
  253. package/src/archives/edit.js +1 -0
  254. package/src/archives/style.scss +5 -0
  255. package/src/avatar/index.php +1 -1
  256. package/src/categories/index.php +1 -1
  257. package/src/code/style.scss +12 -7
  258. package/src/code/test/__snapshots__/edit.native.js.snap +13 -0
  259. package/src/code/test/edit.native.js +46 -32
  260. package/src/code/utils.js +3 -3
  261. package/src/comment-author-name/index.php +1 -1
  262. package/src/comment-reply-link/index.php +1 -1
  263. package/src/comment-template/edit.js +47 -34
  264. package/src/comment-template/index.php +2 -3
  265. package/src/comments/block.json +5 -1
  266. package/src/comments/edit/placeholder.js +1 -7
  267. package/src/comments/style.scss +2 -0
  268. package/src/comments-title/edit.js +24 -1
  269. package/src/cover/edit/index.js +2 -7
  270. package/src/cover/edit/use-cover-is-dark.js +11 -11
  271. package/src/cover/editor.scss +7 -0
  272. package/src/cover/index.php +1 -1
  273. package/src/embed/variations.js +1 -1
  274. package/src/gallery/transforms.js +8 -5
  275. package/src/gallery/v1/edit.js +2 -2
  276. package/src/group/edit.js +1 -1
  277. package/src/group/editor.scss +1 -0
  278. package/src/image/editor.scss +4 -1
  279. package/src/image/image.js +59 -29
  280. package/src/image/transforms.js +1 -7
  281. package/src/latest-posts/index.php +1 -1
  282. package/src/list/test/edit.native.js +102 -3
  283. package/src/list/transforms.js +11 -0
  284. package/src/list-item/block.json +14 -1
  285. package/src/list-item/edit.js +2 -1
  286. package/src/list-item/edit.native.js +2 -1
  287. package/src/list-item/hooks/use-merge.js +4 -23
  288. package/src/list-item/hooks/use-outdent-list-item.js +6 -2
  289. package/src/navigation/block.json +4 -1
  290. package/src/navigation/edit/index.js +60 -32
  291. package/src/navigation/edit/inner-blocks.js +2 -5
  292. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +32 -5
  293. package/src/navigation/edit/use-create-navigation-menu.js +2 -5
  294. package/src/navigation/editor.scss +7 -0
  295. package/src/navigation/index.php +103 -6
  296. package/src/navigation/style.scss +8 -0
  297. package/src/navigation-link/edit.js +1 -1
  298. package/src/navigation-link/index.php +8 -1
  299. package/src/navigation-submenu/index.php +8 -1
  300. package/src/page-list/block.json +1 -5
  301. package/src/page-list/index.php +10 -8
  302. package/src/paragraph/deprecated.js +36 -0
  303. package/src/paragraph/edit.js +24 -22
  304. package/src/paragraph/editor.scss +0 -20
  305. package/src/paragraph/save.js +5 -1
  306. package/src/paragraph/style.scss +5 -0
  307. package/src/pattern/edit.js +10 -3
  308. package/src/post-author/block.json +8 -0
  309. package/src/post-author/edit.js +29 -3
  310. package/src/post-author/index.php +7 -1
  311. package/src/post-comments-form/form.js +2 -3
  312. package/src/post-featured-image/block.json +1 -1
  313. package/src/post-featured-image/editor.scss +79 -72
  314. package/src/post-featured-image/index.php +18 -24
  315. package/src/post-featured-image/overlay.js +17 -14
  316. package/src/post-terms/block.json +4 -0
  317. package/src/post-terms/style.scss +7 -2
  318. package/src/query/edit/inspector-controls/author-control.js +1 -0
  319. package/src/query/edit/inspector-controls/index.js +5 -7
  320. package/src/query/edit/inspector-controls/parent-control.js +1 -0
  321. package/src/query/edit/inspector-controls/taxonomy-controls.js +82 -86
  322. package/src/query/utils.js +1 -1
  323. package/src/quote/block.json +0 -1
  324. package/src/rss/index.php +3 -3
  325. package/src/search/edit.js +6 -1
  326. package/src/search/index.php +21 -13
  327. package/src/site-logo/edit.js +10 -8
  328. package/src/site-logo/editor.scss +1 -0
  329. package/src/site-title/block.json +2 -1
  330. package/src/site-title/editor.scss +6 -0
  331. package/src/site-title/style.scss +5 -0
  332. package/src/style.scss +1 -0
  333. package/src/table/state.js +2 -2
  334. package/src/table-of-contents/edit.js +1 -3
  335. package/src/tag-cloud/block.json +8 -0
  336. package/src/tag-cloud/edit.js +1 -1
  337. package/src/tag-cloud/style.scss +3 -0
  338. package/src/template-part/index.js +2 -2
  339. package/src/template-part/index.php +4 -0
  340. package/src/video/edit.js +19 -0
  341. package/src/video/editor.scss +37 -0
  342. package/build/navigation-submenu/view.js +0 -56
  343. package/build/navigation-submenu/view.js.map +0 -1
  344. package/build/paragraph/drop-zone.js +0 -99
  345. package/build/paragraph/drop-zone.js.map +0 -1
  346. package/build-module/navigation-submenu/view.js +0 -54
  347. package/build-module/navigation-submenu/view.js.map +0 -1
  348. package/build-module/paragraph/drop-zone.js +0 -88
  349. package/build-module/paragraph/drop-zone.js.map +0 -1
  350. package/src/navigation-submenu/view.js +0 -67
  351. package/src/paragraph/drop-zone.js +0 -105
@@ -66,6 +66,7 @@ function Navigation(_ref) {
66
66
  openSubmenusOnClick,
67
67
  overlayMenu,
68
68
  showSubmenuIcon,
69
+ templateLock,
69
70
  layout: {
70
71
  justifyContent,
71
72
  orientation = 'horizontal',
@@ -89,7 +90,9 @@ function Navigation(_ref) {
89
90
  } = useDispatch(coreStore); // Preload classic menus, so that they don't suddenly pop-in when viewing
90
91
  // the Select Menu dropdown.
91
92
 
92
- useNavigationEntities();
93
+ const {
94
+ menus: classicMenus
95
+ } = useNavigationEntities();
93
96
  const [showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice] = useNavigationNotice({
94
97
  name: 'block-library/core/navigation/status'
95
98
  });
@@ -163,7 +166,15 @@ function Navigation(_ref) {
163
166
  isResolvingCanUserCreateNavigationMenu,
164
167
  hasResolvedCanUserCreateNavigationMenu
165
168
  } = useNavigationMenu(ref);
166
- const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing; // Attempt to retrieve and prioritize any existing navigation menu unless:
169
+ const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing;
170
+ const {
171
+ convert: convertClassicMenu,
172
+ status: classicMenuConversionStatus,
173
+ error: classicMenuConversionError
174
+ } = useConvertClassicToBlockMenu(clientId);
175
+ const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // Only autofallback to published menus.
176
+
177
+ const fallbackNavigationMenus = navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.filter(menu => menu.status === 'publish'); // Attempt to retrieve and prioritize any existing navigation menu unless:
167
178
  // - the are uncontrolled inner blocks already present in the block.
168
179
  // - the user is creating a new menu.
169
180
  // - there are no menus to choose from.
@@ -172,18 +183,15 @@ function Navigation(_ref) {
172
183
  // The aim is for the block to "just work" from a user perspective using existing data.
173
184
 
174
185
  useEffect(() => {
175
- if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length)) {
186
+ if (hasUncontrolledInnerBlocks || isCreatingNavigationMenu || ref || !(fallbackNavigationMenus !== null && fallbackNavigationMenus !== void 0 && fallbackNavigationMenus.length)) {
176
187
  return;
177
188
  }
178
189
 
179
- navigationMenus.sort((menuA, menuB) => {
190
+ fallbackNavigationMenus.sort((menuA, menuB) => {
180
191
  const menuADate = new Date(menuA.date);
181
192
  const menuBDate = new Date(menuB.date);
182
193
  return menuADate.getTime() < menuBDate.getTime();
183
- }); // Only autofallback to published menus.
184
-
185
- const fallbackNavigationMenus = navigationMenus.filter(menu => menu.status === 'publish');
186
- if (fallbackNavigationMenus.length === 0) return;
194
+ });
187
195
  /**
188
196
  * This fallback displays (both in editor and on front)
189
197
  * a list of pages only if no menu (user assigned or
@@ -196,13 +204,16 @@ function Navigation(_ref) {
196
204
 
197
205
  setRef(fallbackNavigationMenus[0].id);
198
206
  }, [navigationMenus]);
199
- const navRef = useRef();
200
- const {
201
- convert: convertClassicMenu,
202
- status: classicMenuConversionStatus,
203
- error: classicMenuConversionError
204
- } = useConvertClassicToBlockMenu(clientId);
205
- const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING; // The standard HTML5 tag for the block wrapper.
207
+ useEffect(() => {
208
+ if (!hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) !== 1) {
209
+ return false;
210
+ } // If there's non fallback navigation menus and
211
+ // only one classic menu then create a new navigation menu based on it.
212
+
213
+
214
+ convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
215
+ }, [hasResolvedNavigationMenus]);
216
+ const navRef = useRef(); // The standard HTML5 tag for the block wrapper.
206
217
 
207
218
  const TagName = 'nav'; // "placeholder" shown if:
208
219
  // - there is no ref attribute pointing to a Navigation Post.
@@ -210,20 +221,20 @@ function Navigation(_ref) {
210
221
  // - there is no menu creation process in progress.
211
222
  // - there are no uncontrolled blocks.
212
223
 
213
- const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && !hasUncontrolledInnerBlocks;
214
-
215
- if (isPlaceholder && !ref) {
216
- /**
217
- * this fallback only displays (both in editor and on front)
218
- * the list of pages block if no menu is available as a fallback.
219
- * We don't want the fallback to request a save,
220
- * nor to be undoable, hence we mark it non persistent.
221
- */
222
- __unstableMarkNextChangeAsNotPersistent();
223
-
224
- replaceInnerBlocks(clientId, [createBlock('core/page-list')]);
225
- }
224
+ const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) === 0 && !hasUncontrolledInnerBlocks;
225
+ useEffect(() => {
226
+ if (isPlaceholder) {
227
+ /**
228
+ * this fallback only displays (both in editor and on front)
229
+ * the list of pages block if no menu is available as a fallback.
230
+ * We don't want the fallback to request a save,
231
+ * nor to be undoable, hence we mark it non persistent.
232
+ */
233
+ __unstableMarkNextChangeAsNotPersistent();
226
234
 
235
+ replaceInnerBlocks(clientId, [createBlock('core/page-list')]);
236
+ }
237
+ }, [clientId, isPlaceholder, ref]);
227
238
  const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state:
228
239
  // - there is a menu creation process in progress.
229
240
  // - there is a classic menu conversion process in progress.
@@ -350,7 +361,7 @@ function Navigation(_ref) {
350
361
  throwOnError: true
351
362
  });
352
363
  } catch {
353
- showMenuAutoPublishDraftNotice(__('Error ocurred while publishing the navigation menu.'));
364
+ showMenuAutoPublishDraftNotice(__('Error occurred while publishing the navigation menu.'));
354
365
  }
355
366
  }, [isDraftNavigationMenu, navigationMenu]);
356
367
  const stylingInspectorControls = createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
@@ -454,7 +465,7 @@ function Navigation(_ref) {
454
465
  handleUpdateMenu(menuId);
455
466
  },
456
467
  onSelectClassicMenu: async classicMenu => {
457
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
468
+ const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
458
469
 
459
470
  if (navMenu) {
460
471
  handleUpdateMenu(navMenu.id, {
@@ -486,6 +497,7 @@ function Navigation(_ref) {
486
497
  }, createElement(UnsavedInnerBlocks, {
487
498
  blocks: uncontrolledInnerBlocks,
488
499
  clientId: clientId,
500
+ templateLock: templateLock,
489
501
  navigationMenus: navigationMenus,
490
502
  hasSelection: isSelected || isInnerBlockSelected,
491
503
  hasSavedUnsavedInnerBlocks: hasSavedUnsavedInnerBlocks,
@@ -511,7 +523,7 @@ function Navigation(_ref) {
511
523
  handleUpdateMenu(menuId);
512
524
  },
513
525
  onSelectClassicMenu: async classicMenu => {
514
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
526
+ const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
515
527
 
516
528
  if (navMenu) {
517
529
  handleUpdateMenu(navMenu.id, {
@@ -562,7 +574,7 @@ function Navigation(_ref) {
562
574
  handleUpdateMenu(menuId);
563
575
  },
564
576
  onSelectClassicMenu: async classicMenu => {
565
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
577
+ const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
566
578
 
567
579
  if (navMenu) {
568
580
  handleUpdateMenu(navMenu.id, {
@@ -589,7 +601,7 @@ function Navigation(_ref) {
589
601
  handleUpdateMenu(menuId);
590
602
  },
591
603
  onSelectClassicMenu: async classicMenu => {
592
- const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name);
604
+ const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
593
605
 
594
606
  if (navMenu) {
595
607
  handleUpdateMenu(navMenu.id, {
@@ -634,6 +646,7 @@ function Navigation(_ref) {
634
646
  }, isEntityAvailable && createElement(NavigationInnerBlocks, {
635
647
  clientId: clientId,
636
648
  hasCustomPlaceholder: !!CustomPlaceholder,
649
+ templateLock: templateLock,
637
650
  orientation: orientation
638
651
  })))));
639
652
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","Platform","addQueryArgs","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","coreStore","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","createBlock","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","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","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","length","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","fallbackNavigationMenus","filter","menu","navRef","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","stylingInspectorControls","onChange","label","hasUnsavedBlocks","classicMenu","navMenu","post_type","post","PlaceholderComponent","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef, Platform } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\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\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks ] =\n\t\tuseState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\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! navigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigationMenus.sort( ( menuA, menuB ) => {\n\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t} );\n\n\t\t// Only autofallback to published menus.\n\t\tconst fallbackNavigationMenus = navigationMenus.filter(\n\t\t\t( menu ) => menu.status === 'publish'\n\t\t);\n\t\tif ( fallbackNavigationMenus.length === 0 ) return;\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\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// 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\t! hasUncontrolledInnerBlocks;\n\n\tif ( isPlaceholder && ! ref ) {\n\t\t/**\n\t\t * this fallback only displays (both in editor and on front)\n\t\t * the list of pages block if no menu is available as a fallback.\n\t\t * We don't want the fallback to request a save,\n\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t}\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( async () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) return;\n\t\ttry {\n\t\t\tawait editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tnavigationMenu?.id,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t} catch {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error ocurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t}\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","Platform","addQueryArgs","InspectorControls","useBlockProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","__experimentalUseBlockOverlayActive","useBlockOverlayActive","EntityProvider","coreStore","useDispatch","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","Spinner","__","sprintf","speak","createBlock","close","Icon","useNavigationMenu","useNavigationEntities","Placeholder","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","useNavigationNotice","OverlayMenuIcon","OverlayMenuPreview","useConvertClassicToBlockMenu","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_SUCCESS","useCreateNavigationMenu","useInnerBlocks","detectColors","Navigation","attributes","setAttributes","clientId","isSelected","className","backgroundColor","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","templateLock","layout","justifyContent","orientation","flexWrap","hasIcon","icon","ref","setRef","postId","recursionId","hasAlreadyRendered","editEntityRecord","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","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","isConvertingClassicMenu","fallbackNavigationMenus","filter","menu","length","sort","menuA","menuB","menuADate","Date","date","menuBDate","getTime","navRef","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","color","class","slug","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","menuId","options","current","subMenuElement","querySelector","hasManagePermissions","isResponsive","overlayMenuPreviewClasses","open","isDraftNavigationMenu","throwOnError","stylingInspectorControls","onChange","label","hasUnsavedBlocks","classicMenu","navMenu","post_type","post","PlaceholderComponent","deletedMenuTitle"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,EAAsCC,QAAtC,QAAsD,oBAAtD;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SACCC,iBADD,EAECC,aAFD,EAGCC,+BAA+B,IAAIC,iBAHpC,EAICC,6BAA6B,IAAIC,eAJlC,EAKCC,KAAK,IAAIC,gBALV,EAMCC,UAND,EAOCC,kBAPD,EAQCC,eARD,EASCC,iBATD,EAUCC,OAVD,EAWCC,mCAAmC,IAAIC,qBAXxC,QAYO,yBAZP;AAaA,SAASC,cAAT,EAAyBT,KAAK,IAAIU,SAAlC,QAAmD,sBAAnD;AAEA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SACCC,SADD,EAECC,aAFD,EAGCC,gCAAgC,IAAIC,kBAHrC,EAICC,sCAAsC,IAAIC,wBAJ3C,EAKCC,MALD,EAMCC,OAND,QAOO,uBAPP;AAQA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,KAAT,QAAsB,iBAAtB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SAASC,KAAT,EAAgBC,IAAhB,QAA4B,kBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,iBAAP,MAA8B,sBAA9B;AACA,OAAOC,qBAAP,MAAkC,gBAAlC;AACA,OAAOC,sBAAP,MAAmC,4BAAnC;AACA,OAAOC,yBAAP,MAAsC,gCAAtC;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,2BAAP,MAAwC,kCAAxC;AACA,OAAOC,mBAAP,MAAgC,yBAAhC;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,4BAAP,IACCC,6BADD,EAECC,+BAFD,EAGCC,+BAHD,QAIO,0CAJP;AAKA,OAAOC,uBAAP,MAAoC,8BAApC;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,SAASC,YAAT,QAA6B,SAA7B;;AAEA,SAASC,UAAT,OAoBI;AAAA;;AAAA,MApBiB;AACpBC,IAAAA,UADoB;AAEpBC,IAAAA,aAFoB;AAGpBC,IAAAA,QAHoB;AAIpBC,IAAAA,UAJoB;AAKpBC,IAAAA,SALoB;AAMpBC,IAAAA,eANoB;AAOpBC,IAAAA,kBAPoB;AAQpBC,IAAAA,SARoB;AASpBC,IAAAA,YAToB;AAUpBC,IAAAA,sBAVoB;AAWpBC,IAAAA,yBAXoB;AAYpBC,IAAAA,gBAZoB;AAapBC,IAAAA,mBAboB;AAepB;AACA;AACAC,IAAAA,0BAA0B,GAAG,IAjBT;AAkBpBC,IAAAA,gBAAgB,GAAG,IAlBC;AAmBpBC,IAAAA,iBAAiB,EAAEC,iBAAiB,GAAG;AAnBnB,GAoBjB;AACH,QAAM;AACLC,IAAAA,mBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA,YAJK;AAKLC,IAAAA,MAAM,EAAE;AACPC,MAAAA,cADO;AAEPC,MAAAA,WAAW,GAAG,YAFP;AAGPC,MAAAA,QAAQ,GAAG;AAHJ,QAIJ,EATC;AAULC,IAAAA,OAVK;AAWLC,IAAAA,IAAI,GAAG;AAXF,MAYF1B,UAZJ;AAcA,QAAM2B,GAAG,GAAG3B,UAAU,CAAC2B,GAAvB;;AAEA,QAAMC,MAAM,GAAKC,MAAF,IAAc;AAC5B5B,IAAAA,aAAa,CAAE;AAAE0B,MAAAA,GAAG,EAAEE;AAAP,KAAF,CAAb;AACA,GAFD;;AAIA,QAAMC,WAAW,GAAI,kBAAkBH,GAAK,EAA5C;AACA,QAAMI,kBAAkB,GAAG9E,eAAe,CAAE6E,WAAF,CAA1C;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAuBnE,WAAW,CAAED,SAAF,CAAxC,CAvBG,CAyBH;AACA;;AACA,QAAM;AAAEqE,IAAAA,KAAK,EAAEC;AAAT,MAA0BrD,qBAAqB,EAArD;AAEA,QAAM,CAAEsD,8BAAF,EAAkCC,8BAAlC,IACL/C,mBAAmB,CAAE;AACpBgD,IAAAA,IAAI,EAAE;AADc,GAAF,CADpB;AAKA,QAAM,CAAEC,+BAAF,EAAmCC,+BAAnC,IACLlD,mBAAmB,CAAE;AACpBgD,IAAAA,IAAI,EAAE;AADc,GAAF,CADpB;AAKA,QAAM,CAAEG,8BAAF,EAAkCC,8BAAlC,IACLpD,mBAAmB,CAAE;AACpBgD,IAAAA,IAAI,EAAE;AADc,GAAF,CADpB;AAKA,QAAM,CACLK,mCADK,EAELC,mCAFK,IAGFtD,mBAAmB,CAAE;AACxBgD,IAAAA,IAAI,EAAE;AADkB,GAAF,CAHvB;AAOA,QAAM;AACLO,IAAAA,MAAM,EAAEC,oBADH;AAELC,IAAAA,MAAM,EAAEC,0BAFH;AAGLC,IAAAA,KAAK,EAAEC,yBAHF;AAILC,IAAAA,KAAK,EAAEC,wBAJF;AAKLC,IAAAA,SAAS,EAAEC,wBALN;AAMLC,IAAAA,SAAS,EAAEC,6BANN;AAOLC,IAAAA,OAAO,EAAEC;AAPJ,MAQF7D,uBAAuB,CAAEM,QAAF,CAR3B;;AAUA,QAAMwD,iCAAiC,GAAG,MAAM;AAC/Cb,IAAAA,oBAAoB,CAAE,EAAF,CAApB;AACA,GAFD;;AAIArG,EAAAA,SAAS,CAAE,MAAM;AAChB4F,IAAAA,8BAA8B;;AAE9B,QAAKiB,wBAAL,EAAgC;AAC/B7E,MAAAA,KAAK,CAAEF,EAAE,CAAG,2BAAH,CAAJ,CAAL;AACA;;AAED,QAAKiF,6BAAL,EAAqC;AACpCI,MAAAA,gBAAgB,CAAER,wBAAwB,CAACS,EAA3B,EAA+B;AAC9CC,QAAAA,oBAAoB,EAAE;AADwB,OAA/B,CAAhB;AAIA1B,MAAAA,8BAA8B,CAC7B7D,EAAE,CAAG,uCAAH,CAD2B,CAA9B;AAGA;;AAED,QAAKmF,2BAAL,EAAmC;AAClCtB,MAAAA,8BAA8B,CAC7B7D,EAAE,CAAE,mCAAF,CAD2B,CAA9B;AAGA;AACD,GAtBQ,EAsBN,CACFyE,0BADE,EAEFE,yBAFE,EAGFE,wBAHE,CAtBM,CAAT;AA4BA,QAAM;AACLW,IAAAA,0BADK;AAELC,IAAAA,uBAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA;AAJK,MAKFpE,cAAc,CAAEK,QAAF,CALlB;AAOA,QAAMgE,WAAW,GAAG,CAAC,CAAED,WAAW,CAACE,IAAZ,CACpBC,KAAF,IAAaA,KAAK,CAAC/B,IAAN,KAAe,yBADN,CAAvB;AAIA,QAAM;AACLgC,IAAAA,kBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA;AAHK,MAIF1G,WAAW,CAAEV,gBAAF,CAJf;AAMA,QAAM,CAAEqH,0BAAF,EAA8BC,6BAA9B,IACLlI,QAAQ,CAAE,KAAF,CADT;AAGA,QAAM,CAAEmI,oBAAF,EAAwBC,2BAAxB,IACLpI,QAAQ,CAAE,KAAF,CADT;AAGA,QAAM,CAAEqI,kBAAF,EAAsBC,qBAAtB,IAAgDtI,QAAQ,CAAE,KAAF,CAA9D;AAEA,QAAM;AACLuI,IAAAA,0BADK;AAELC,IAAAA,wBAFK;AAGLC,IAAAA,uBAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA,cALK;AAMLC,IAAAA,2BANK;AAOLC,IAAAA,sCAPK;AAQLC,IAAAA,2BARK;AASLC,IAAAA,sCATK;AAULC,IAAAA,2BAVK;AAWLC,IAAAA,sCAXK;AAYLC,IAAAA;AAZK,MAaF7G,iBAAiB,CAAE+C,GAAF,CAbrB;AAeA,QAAM+D,yBAAyB,GAC9BZ,0BAA0B,IAAIE,uBAD/B;AAGA,QAAM;AACLW,IAAAA,OAAO,EAAEC,kBADJ;AAEL9C,IAAAA,MAAM,EAAE+C,2BAFH;AAGL7C,IAAAA,KAAK,EAAE8C;AAHF,MAIFtG,4BAA4B,CAAEU,QAAF,CAJhC;AAMA,QAAM6F,uBAAuB,GAC5BF,2BAA2B,KAAKnG,+BADjC,CA9IG,CAiJH;;AACA,QAAMsG,uBAAuB,GAAGf,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEgB,MAAjB,CAC7BC,IAAF,IAAYA,IAAI,CAACpD,MAAL,KAAgB,SADG,CAAhC,CAlJG,CAsJH;AACA;AACA;AACA;AACA;AACA;AACA;;AACAtG,EAAAA,SAAS,CAAE,MAAM;AAChB,QACCsH,0BAA0B,IAC1BT,wBADA,IAEA1B,GAFA,IAGA,EAAEqE,uBAAF,aAAEA,uBAAF,eAAEA,uBAAuB,CAAEG,MAA3B,CAJD,EAKE;AACD;AACA;;AAEDH,IAAAA,uBAAuB,CAACI,IAAxB,CAA8B,CAAEC,KAAF,EAASC,KAAT,KAAoB;AACjD,YAAMC,SAAS,GAAG,IAAIC,IAAJ,CAAUH,KAAK,CAACI,IAAhB,CAAlB;AACA,YAAMC,SAAS,GAAG,IAAIF,IAAJ,CAAUF,KAAK,CAACG,IAAhB,CAAlB;AACA,aAAOF,SAAS,CAACI,OAAV,KAAsBD,SAAS,CAACC,OAAV,EAA7B;AACA,KAJD;AAMA;AACF;AACA;AACA;AACA;AACA;AACA;;AACEpC,IAAAA,uCAAuC;;AACvC3C,IAAAA,MAAM,CAAEoE,uBAAuB,CAAE,CAAF,CAAvB,CAA6BpC,EAA/B,CAAN;AACA,GAzBQ,EAyBN,CAAEqB,eAAF,CAzBM,CAAT;AA2BAzI,EAAAA,SAAS,CAAE,MAAM;AAChB,QACC,CAAEsI,0BAAF,IACAiB,uBADA,IAEA,CAAAC,uBAAuB,SAAvB,IAAAA,uBAAuB,WAAvB,YAAAA,uBAAuB,CAAEG,MAAzB,IAAkC,CAFlC,IAGA,CAAAjE,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEiE,MAAd,MAAyB,CAJ1B,EAKE;AACD,aAAO,KAAP;AACA,KARe,CAUhB;AACA;;;AACAP,IAAAA,kBAAkB,CACjB1D,YAAY,CAAE,CAAF,CAAZ,CAAkB0B,EADD,EAEjB1B,YAAY,CAAE,CAAF,CAAZ,CAAkBG,IAFD,EAGjB,SAHiB,CAAlB;AAKA,GAjBQ,EAiBN,CAAEyC,0BAAF,CAjBM,CAAT;AAmBA,QAAM8B,MAAM,GAAGnK,MAAM,EAArB,CA3MG,CA6MH;;AACA,QAAMoK,OAAO,GAAG,KAAhB,CA9MG,CAgNH;AACA;AACA;AACA;AACA;;AACA,QAAMC,aAAa,GAClB,CAAEnF,GAAF,IACA,CAAE0B,wBADF,IAEA,CAAE0C,uBAFF,IAGAjB,0BAHA,IAIA,CAAA5C,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEiE,MAAd,MAAyB,CAJzB,IAKA,CAAErC,0BANH;AAQAtH,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKsK,aAAL,EAAqB;AACpB;AACH;AACA;AACA;AACA;AACA;AACGvC,MAAAA,uCAAuC;;AACvCF,MAAAA,kBAAkB,CAAEnE,QAAF,EAAY,CAAEzB,WAAW,CAAE,gBAAF,CAAb,CAAZ,CAAlB;AACA;AACD,GAXQ,EAWN,CAAEyB,QAAF,EAAY4G,aAAZ,EAA2BnF,GAA3B,CAXM,CAAT;AAaA,QAAMoF,iBAAiB,GACtB,CAAE/B,uBAAF,IAA6BD,wBAD9B,CA1OG,CA6OH;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMiC,SAAS,GACd,CAAElC,0BAAF,IACAzB,wBADA,IAEA0C,uBAFA,IAGA,CAAC,EAAIpE,GAAG,IAAI,CAAEoF,iBAAT,IAA8B,CAAEhB,uBAApC,CAJF;AAMA,QAAMkB,cAAc,wBAAGjH,UAAU,CAACkH,KAAd,+EAAG,kBAAkBC,UAArB,0DAAG,sBAA8BF,cAArD;AAEA,QAAMG,eAAe,GAAG1J,qBAAqB,CAAEwC,QAAF,CAA7C;AACA,QAAMmH,UAAU,GAAGxK,aAAa,CAAE;AACjC8E,IAAAA,GAAG,EAAEiF,MAD4B;AAEjCxG,IAAAA,SAAS,EAAE9D,UAAU,CAAE8D,SAAF,EAAa;AACjC,+BAAyBkB,cAAc,KAAK,OADX;AAEjC,uCAAiCA,cAAc,KAAK,eAFnB;AAGjC,8BAAwBA,cAAc,KAAK,MAHV;AAIjC,gCAA0BA,cAAc,KAAK,QAJZ;AAKjC,qBAAeC,WAAW,KAAK,UALE;AAMjC,iBAAWC,QAAQ,KAAK,QANS;AAOjC,uBAAiB,YAAYN,WAPI;AAQjC,wBAAkB,CAAC,CAAEX,SAAS,CAAC+G,KAAb,IAAsB,CAAC,EAAE/G,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAEgH,KAAb,CARR;AASjC,OAAEhK,iBAAiB,CAAE,OAAF,EAAWgD,SAAX,aAAWA,SAAX,uBAAWA,SAAS,CAAEiH,IAAtB,CAAnB,GACC,CAAC,EAAEjH,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAEiH,IAAb,CAV+B;AAWjC,wBAAkB,CAAC,CAAEnH,eAAe,CAACiH,KAAnB,IAA4BjH,eAAe,CAACkH,KAX7B;AAYjC,OAAEhK,iBAAiB,CAAE,kBAAF,EAAsB8C,eAAtB,aAAsBA,eAAtB,uBAAsBA,eAAe,CAAEmH,IAAvC,CAAnB,GACC,CAAC,EAAEnH,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEmH,IAAnB,CAb+B;AAcjC,OAAG,uBAAuBP,cAAgB,EAA1C,GAA+CA,cAdd;AAejC,4CAAsCG;AAfL,KAAb,CAFY;AAmBjCF,IAAAA,KAAK,EAAE;AACNI,MAAAA,KAAK,EAAE,EAAE/G,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAEiH,IAAb,MAAqBjH,SAArB,aAAqBA,SAArB,uBAAqBA,SAAS,CAAE+G,KAAhC,CADD;AAENjH,MAAAA,eAAe,EAAE,EAAEA,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEmH,IAAnB,MAA2BnH,eAA3B,aAA2BA,eAA3B,uBAA2BA,eAAe,CAAEiH,KAA5C;AAFX;AAnB0B,GAAF,CAAhC,CA5PG,CAqRH;;AACA,QAAMG,sBAAsB,GAAG/K,QAAQ,CAACgL,EAAT,KAAgB,KAA/C;AAEA,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0DrL,QAAQ,EAAxE;AACA,QAAM,CAAEsL,aAAF,EAAiBC,gBAAjB,IAAsCvL,QAAQ,EAApD;AACA,QAAM,CACLwL,8BADK,EAELC,iCAFK,IAGFzL,QAAQ,EAHZ;AAIA,QAAM,CAAE0L,oBAAF,EAAwBC,uBAAxB,IAAoD3L,QAAQ,EAAlE;;AAEA,QAAMoH,gBAAgB,GAAG,UACxBwE,MADwB,EAGpB;AAAA,QADJC,OACI,uEADM;AAAEvE,MAAAA,oBAAoB,EAAE;AAAxB,KACN;AACJ,UAAM;AAAEA,MAAAA;AAAF,QAA2BuE,OAAjC;AACAxG,IAAAA,MAAM,CAAEuG,MAAF,CAAN;;AACA,QAAKtE,oBAAL,EAA4B;AAC3BS,MAAAA,WAAW,CAAEpE,QAAF,CAAX;AACA;AACD,GATD;;AAWA1D,EAAAA,SAAS,CAAE,MAAM;AAChB+F,IAAAA,+BAA+B;;AAC/B,QAAKsD,2BAA2B,KAAKnG,+BAArC,EAAuE;AACtElB,MAAAA,KAAK,CAAEF,EAAE,CAAE,yBAAF,CAAJ,CAAL;AACA;;AAED,QAAKuH,2BAA2B,KAAKlG,+BAArC,EAAuE;AACtE2C,MAAAA,+BAA+B,CAC9BhE,EAAE,CAAE,qCAAF,CAD4B,CAA/B;AAGA;;AAED,QAAKuH,2BAA2B,KAAKpG,6BAArC,EAAqE;AACpE6C,MAAAA,+BAA+B,CAC9BhE,EAAE,CAAE,6BAAF,CAD4B,CAA/B;AAGA;AACD,GAjBQ,EAiBN,CAAEuH,2BAAF,EAA+BC,0BAA/B,CAjBM,CAAT,CA3SG,CA8TH;AACA;;AACAtJ,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK+E,WAAL,EAAmB;AAClBgD,MAAAA,uCAAuC;;AACvCtE,MAAAA,aAAa,CAAE;AAAEsB,QAAAA;AAAF,OAAF,CAAb;AACA;AACD,GALQ,EAKN,CAAEA,WAAF,CALM,CAAT;AAOA/E,EAAAA,SAAS,CAAE,MAAM;AAAA;;AAChB,QAAK,CAAEiL,sBAAP,EAAgC;AAC/B;AACA;;AACD3H,IAAAA,YAAY,CACX8G,MAAM,CAACyB,OADI,EAEXP,gBAFW,EAGXF,0BAHW,CAAZ;AAKA,UAAMU,cAAc,sBAAG1B,MAAM,CAACyB,OAAV,oDAAG,gBAAgBE,aAAhB,CACtB,uEADsB,CAAvB;;AAGA,QAAKD,cAAL,EAAsB;AACrBxI,MAAAA,YAAY,CACXwI,cADW,EAEXJ,uBAFW,EAGXF,iCAHW,CAAZ;AAKA;AACD,GAnBQ,CAAT;AAqBAxL,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE2D,UAAF,IAAgB,CAAE6D,oBAAvB,EAA8C;AAC7CrB,MAAAA,mCAAmC;AACnC;;AAED,QAAKxC,UAAU,IAAI6D,oBAAnB,EAA0C;AACzC,UACCrC,GAAG,IACH,CAAE+D,yBADF,IAEAN,sCAFA,IAGA,CAAED,2BAJH,EAKE;AACDzC,QAAAA,mCAAmC,CAClCpE,EAAE,CACD,mFADC,CADgC,CAAnC;AAKA;;AAED,UACC,CAAEqD,GAAF,IACA8D,sCADA,IAEA,CAAEF,2BAHH,EAIE;AACD7C,QAAAA,mCAAmC,CAClCpE,EAAE,CACD,wDADC,CADgC,CAAnC;AAKA;AACD;AACD,GA/BQ,EA+BN,CACF6B,UADE,EAEF6D,oBAFE,EAGFmB,2BAHE,EAIFC,sCAJE,EAKFG,2BALE,EAMFE,sCANE,EAOF9D,GAPE,CA/BM,CAAT;AAyCA,QAAM6G,oBAAoB,GACzBjD,2BAA2B,IAAIJ,2BADhC;AAEA,QAAMsD,YAAY,GAAG,YAAYvH,WAAjC;AAEA,QAAMwH,yBAAyB,GAAGpM,UAAU,CAC3C,2CAD2C,EAE3C;AAAEqM,IAAAA,IAAI,EAAE/D;AAAR,GAF2C,CAA5C,CAzYG,CA8YH;;AACA,QAAMgE,qBAAqB,GAAG,CAAA1D,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEpC,MAAhB,MAA2B,OAAzD;AACAtG,EAAAA,SAAS,CAAE,YAAY;AACtBiG,IAAAA,8BAA8B;AAC9B,QAAK,CAAEmG,qBAAP,EAA+B;;AAC/B,QAAI;AACH,YAAM5G,gBAAgB,CACrB,UADqB,EAErB,eAFqB,EAGrBkD,cAHqB,aAGrBA,cAHqB,uBAGrBA,cAAc,CAAEtB,EAHK,EAIrB;AACCd,QAAAA,MAAM,EAAE;AADT,OAJqB,EAOrB;AAAE+F,QAAAA,YAAY,EAAE;AAAhB,OAPqB,CAAtB;AASA,KAVD,CAUE,MAAM;AACPrG,MAAAA,8BAA8B,CAC7BlE,EAAE,CAAE,sDAAF,CAD2B,CAA9B;AAGA;AACD,GAlBQ,EAkBN,CAAEsK,qBAAF,EAAyB1D,cAAzB,CAlBM,CAAT;AAoBA,QAAM4D,wBAAwB,GAC7B,cAAC,iBAAD,QACGjI,0BAA0B,IAC3B,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGvC,EAAE,CAAE,SAAF;AAArB,KACGmK,YAAY,IACb,8BACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAGC,yBADb;AAEC,IAAA,OAAO,EAAG,MAAM;AACf7D,MAAAA,qBAAqB,CACpB,CAAED,kBADkB,CAArB;AAGA;AANF,KAQGnD,OAAO,IACR,8BACC,cAAC,eAAD;AAAiB,IAAA,IAAI,EAAGC;AAAxB,IADD,EAEC,cAAC,IAAD;AAAM,IAAA,IAAI,EAAGhD;AAAb,IAFD,CATF,EAcG,CAAE+C,OAAF,IACD,8BACC,4BAAQnD,EAAE,CAAE,MAAF,CAAV,CADD,EAEC,4BAAQA,EAAE,CAAE,OAAF,CAAV,CAFD,CAfF,CADD,EAsBGsG,kBAAkB,IACnB,cAAC,kBAAD;AACC,IAAA,aAAa,EAAG3E,aADjB;AAEC,IAAA,OAAO,EAAGwB,OAFX;AAGC,IAAA,IAAI,EAAGC;AAHR,IAvBF,CAFF,EAiCC,0BAAMpD,EAAE,CAAE,cAAF,CAAR,CAjCD,EAkCC,cAAC,kBAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,wBAAF,CADX;AAEC,IAAA,KAAK,EAAG4C,WAFT;AAGC,IAAA,IAAI,EAAG5C,EAAE,CACR,qEADQ,CAHV;AAMC,IAAA,QAAQ,EAAK4E,KAAF,IACVjD,aAAa,CAAE;AAAEiB,MAAAA,WAAW,EAAEgC;AAAf,KAAF,CAPf;AASC,IAAA,OAAO,MATR;AAUC,IAAA,mBAAmB;AAVpB,KAYC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,KAAK,EAAG5E,EAAE,CAAE,KAAF;AAFX,IAZD,EAgBC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,QAAF;AAFX,IAhBD,EAoBC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,QAAF;AAFX,IApBD,CAlCD,EA2DG4F,WAAW,IACZ,8BACC,0BAAM5F,EAAE,CAAE,UAAF,CAAR,CADD,EAEC,cAAC,aAAD;AACC,IAAA,OAAO,EAAG2C,mBADX;AAEC,IAAA,QAAQ,EAAKiC,KAAF,IAAa;AACvBjD,MAAAA,aAAa,CAAE;AACdgB,QAAAA,mBAAmB,EAAEiC,KADP;AAEd,YAAKA,KAAK,IAAI;AACb/B,UAAAA,eAAe,EAAE;AADJ,SAAd,CAFc,CAIT;;AAJS,OAAF,CAAb;AAMA,KATF;AAUC,IAAA,KAAK,EAAG7C,EAAE,CAAE,eAAF;AAVX,IAFD,EAeC,cAAC,aAAD;AACC,IAAA,OAAO,EAAG6C,eADX;AAEC,IAAA,QAAQ,EAAK+B,KAAF,IAAa;AACvBjD,MAAAA,aAAa,CAAE;AACdkB,QAAAA,eAAe,EAAE+B;AADH,OAAF,CAAb;AAGA,KANF;AAOC,IAAA,QAAQ,EAAGlD,UAAU,CAACiB,mBAPvB;AAQC,IAAA,KAAK,EAAG3C,EAAE,CAAE,YAAF;AARX,IAfD,CA5DF,CAFF,EA2FGwC,gBAAgB,IACjB,cAAC,kBAAD;AACC,IAAA,gCAAgC,MADjC;AAEC,IAAA,iCAAiC,MAFlC;AAGC,IAAA,KAAK,EAAGxC,EAAE,CAAE,OAAF,CAHX;AAIC,IAAA,WAAW,EAAG,KAJf;AAKC,IAAA,aAAa,EAAG,CACf;AACC4E,MAAAA,KAAK,EAAE3C,SAAS,CAAC+G,KADlB;AAECyB,MAAAA,QAAQ,EAAEvI,YAFX;AAGCwI,MAAAA,KAAK,EAAE1K,EAAE,CAAE,MAAF;AAHV,KADe,EAMf;AACC4E,MAAAA,KAAK,EAAE7C,eAAe,CAACiH,KADxB;AAECyB,MAAAA,QAAQ,EAAEzI,kBAFX;AAGC0I,MAAAA,KAAK,EAAE1K,EAAE,CAAE,YAAF;AAHV,KANe,EAWf;AACC4E,MAAAA,KAAK,EAAEvC,gBAAgB,CAAC2G,KADzB;AAECyB,MAAAA,QAAQ,EAAEnI,mBAFX;AAGCoI,MAAAA,KAAK,EAAE1K,EAAE,CAAE,wBAAF;AAHV,KAXe,EAgBf;AACC4E,MAAAA,KAAK,EAAEzC,sBAAsB,CAAC6G,KAD/B;AAECyB,MAAAA,QAAQ,EAAErI,yBAFX;AAGCsI,MAAAA,KAAK,EAAE1K,EAAE,CAAE,8BAAF;AAHV,KAhBe;AALjB,KA4BGmJ,sBAAsB,IACvB,8BACC,cAAC,eAAD;AACC,IAAA,eAAe,EAAGE,uBADnB;AAEC,IAAA,SAAS,EAAGE;AAFb,IADD,EAKC,cAAC,eAAD;AACC,IAAA,eAAe,EACdE,8BAFF;AAIC,IAAA,SAAS,EAAGE;AAJb,IALD,CA7BF,CA5FF,CADD,CApaG,CAgjBH;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMgB,gBAAgB,GAAGnF,0BAA0B,IAAI,CAAEiD,iBAAzD;;AACA,MAAKkC,gBAAL,EAAwB;AACvB,WACC,cAAC,OAAD,EAAc5B,UAAd,EACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,MAAA,KAAK,EAAG/I,EAAE,CAAE,MAAF;AAArB,OACC,cAAC,sBAAD;AACC,MAAA,aAAa,EAAGqD,GADjB;AAEC,MAAA,QAAQ,EAAGzB,QAFZ;AAGC,MAAA,sBAAsB,EAAKiI,MAAF,IAAc;AACtCxE,QAAAA,gBAAgB,CAAEwE,MAAF,CAAhB;AACA,OALF;AAMC,MAAA,mBAAmB,EAAG,MAAQe,WAAR,IAAyB;AAC9C,cAAMC,OAAO,GAAG,MAAMvD,kBAAkB,CACvCsD,WAAW,CAACtF,EAD2B,EAEvCsF,WAAW,CAAC7G,IAF2B,EAGvC,OAHuC,CAAxC;;AAKA,YAAK8G,OAAL,EAAe;AACdxF,UAAAA,gBAAgB,CAAEwF,OAAO,CAACvF,EAAV,EAAc;AAC7BC,YAAAA,oBAAoB,EAAE;AADO,WAAd,CAAhB;AAGA;AACD,OAjBF;AAkBC,MAAA,WAAW,EAAGH,iCAlBf;AAmBC,MAAA,6BAA6B,EAC5BH;AAED;AAtBD;AAuBC,MAAA,WAAW,EAAGjF,EAAE,CAAE,gBAAF;AAvBjB,MADD,EA0BC,cAAC,MAAD;AACC,MAAA,OAAO,EAAC,MADT;AAEC,MAAA,QAAQ,EACP,CAAEkK,oBAAF,IACA,CAAE1D,0BAJJ;AAMC,MAAA,IAAI,EAAGnI,YAAY,CAAE,UAAF,EAAc;AAChCyM,QAAAA,SAAS,EAAE;AADqB,OAAd;AANpB,OAUG9K,EAAE,CAAE,cAAF,CAVL,CA1BD,CADD,CADD,EA0CGwK,wBA1CH,EA2CC,cAAC,iBAAD;AACC,MAAA,EAAE,EAAG5I,QADN;AAEC,MAAA,QAAQ,EAAGyE,2BAFZ;AAGC,MAAA,MAAM,EAAGD,oBAHV;AAIC,MAAA,OAAO,EAAGjD,OAJX;AAKC,MAAA,IAAI,EAAGC,IALR;AAMC,MAAA,YAAY,EAAG,YAAYR,WAN5B;AAOC,MAAA,iBAAiB,EAAG,aAAaA,WAPlC;AAQC,MAAA,sBAAsB,EAAGT,sBAR1B;AASC,MAAA,gBAAgB,EAAGE;AATpB,OAWC,cAAC,kBAAD;AACC,MAAA,MAAM,EAAGoD,uBADV;AAEC,MAAA,QAAQ,EAAG7D,QAFZ;AAGC,MAAA,YAAY,EAAGkB,YAHhB;AAIC,MAAA,eAAe,EAAG6D,eAJnB;AAKC,MAAA,YAAY,EAAG9E,UAAU,IAAI6D,oBAL9B;AAMC,MAAA,0BAA0B,EACzBQ,0BAPF;AASC,MAAA,MAAM,EAAK6E,IAAF,IAAY;AACpB;AACA5E,QAAAA,6BAA6B,CAAE,IAAF,CAA7B,CAFoB,CAGpB;;AACA7C,QAAAA,MAAM,CAAEyH,IAAI,CAACzF,EAAP,CAAN;AAEAzB,QAAAA,8BAA8B,CAC7B7D,EAAE,CAAG,8BAAH,CAD2B,CAA9B;AAGA;AAlBF,MAXD,CA3CD,CADD;AA8EA,GAtoBE,CAwoBH;AACA;;;AACA,MAAKqD,GAAG,IAAIqD,uBAAZ,EAAsC;AACrC,WACC,cAAC,OAAD,EAAcqC,UAAd,EACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,MAAA,KAAK,EAAG/I,EAAE,CAAE,MAAF;AAArB,OACC,cAAC,sBAAD;AACC,MAAA,aAAa,EAAG,IADjB;AAEC,MAAA,QAAQ,EAAG4B,QAFZ;AAGC,MAAA,sBAAsB,EAAKiI,MAAF,IAAc;AACtCxE,QAAAA,gBAAgB,CAAEwE,MAAF,CAAhB;AACA,OALF;AAMC,MAAA,mBAAmB,EAAG,MAAQe,WAAR,IAAyB;AAC9C,cAAMC,OAAO,GAAG,MAAMvD,kBAAkB,CACvCsD,WAAW,CAACtF,EAD2B,EAEvCsF,WAAW,CAAC7G,IAF2B,EAGvC,OAHuC,CAAxC;;AAKA,YAAK8G,OAAL,EAAe;AACdxF,UAAAA,gBAAgB,CAAEwF,OAAO,CAACvF,EAAV,EAAc;AAC7BC,YAAAA,oBAAoB,EAAE;AADO,WAAd,CAAhB;AAGA;AACD,OAjBF;AAkBC,MAAA,WAAW,EAAGH,iCAlBf;AAmBC,MAAA,6BAA6B,EAC5BH;AAED;AAtBD;AAuBC,MAAA,WAAW,EAAGjF,EAAE,CAAE,gBAAF;AAvBjB,MADD,EA0BC,cAAC,MAAD;AACC,MAAA,OAAO,EAAC,MADT;AAEC,MAAA,QAAQ,EACP,CAAEkK,oBAAF,IACA,CAAE1D,0BAJJ;AAMC,MAAA,IAAI,EAAGnI,YAAY,CAAE,UAAF,EAAc;AAChCyM,QAAAA,SAAS,EAAE;AADqB,OAAd;AANpB,OAUG9K,EAAE,CAAE,cAAF,CAVL,CA1BD,CADD,CADD,EA0CC,cAAC,OAAD,QACGA,EAAE,CACH,sDADG,CADL,EAIC,cAAC,MAAD;AACC,MAAA,OAAO,EAAGoF,iCADX;AAEC,MAAA,OAAO,EAAC;AAFT,OAIGpF,EAAE,CAAE,oBAAF,CAJL,CAJD,CA1CD,CADD;AAwDA;;AAED,MAAKyI,iBAAiB,IAAIhF,kBAA1B,EAA+C;AAC9C,WACC,qBAAUsF,UAAV,EACC,cAAC,OAAD,QACG/I,EAAE,CAAE,yCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAMgL,oBAAoB,GAAGtI,iBAAiB,GAC3CA,iBAD2C,GAE3ClC,WAFH;AAIA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEC,MAAKgI,aAAa,IAAI9F,iBAAtB,EAA0C;AACzC,WACC,cAAC,OAAD,EAAcqG,UAAd,EACC,cAAC,oBAAD;AACC,MAAA,UAAU,EAAGlH,UADd;AAEC,MAAA,aAAa,EAAGwB,GAFjB;AAGC,MAAA,QAAQ,EAAGzB,QAHZ;AAIC,MAAA,2BAA2B,EAAGqF,2BAJ/B;AAKC,MAAA,sCAAsC,EACrCC,sCANF;AAQC,MAAA,sBAAsB,EAAK2C,MAAF,IAAc;AACtCxE,QAAAA,gBAAgB,CAAEwE,MAAF,CAAhB;AACA,OAVF;AAWC,MAAA,mBAAmB,EAAG,MAAQe,WAAR,IAAyB;AAC9C,cAAMC,OAAO,GAAG,MAAMvD,kBAAkB,CACvCsD,WAAW,CAACtF,EAD2B,EAEvCsF,WAAW,CAAC7G,IAF2B,EAGvC,OAHuC,CAAxC;;AAKA,YAAK8G,OAAL,EAAe;AACdxF,UAAAA,gBAAgB,CAAEwF,OAAO,CAACvF,EAAV,EAAc;AAC7BC,YAAAA,oBAAoB,EAAE;AADO,WAAd,CAAhB;AAGA;AACD,OAtBF;AAuBC,MAAA,aAAa,EAAGH;AAvBjB,MADD,CADD;AA6BA;;AAED,SACC,cAAC,cAAD;AAAgB,IAAA,IAAI,EAAC,UAArB;AAAgC,IAAA,IAAI,EAAC,eAArC;AAAqD,IAAA,EAAE,EAAG/B;AAA1D,KACC,cAAC,iBAAD;AAAmB,IAAA,QAAQ,EAAGG;AAA9B,KACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGxD,EAAE,CAAE,MAAF;AAArB,KACC,cAAC,sBAAD;AACC,IAAA,aAAa,EAAGqD,GADjB;AAEC,IAAA,QAAQ,EAAGzB,QAFZ;AAGC,IAAA,sBAAsB,EAAKiI,MAAF,IAAc;AACtCxE,MAAAA,gBAAgB,CAAEwE,MAAF,CAAhB;AACA,KALF;AAMC,IAAA,mBAAmB,EAAG,MAAQe,WAAR,IAAyB;AAC9C,YAAMC,OAAO,GAAG,MAAMvD,kBAAkB,CACvCsD,WAAW,CAACtF,EAD2B,EAEvCsF,WAAW,CAAC7G,IAF2B,EAGvC,OAHuC,CAAxC;;AAKA,UAAK8G,OAAL,EAAe;AACdxF,QAAAA,gBAAgB,CAAEwF,OAAO,CAACvF,EAAV,EAAc;AAC7BC,UAAAA,oBAAoB,EAAE;AADO,SAAd,CAAhB;AAGA;AACD,KAjBF;AAkBC,IAAA,WAAW,EAAGH,iCAlBf;AAmBC,IAAA,6BAA6B,EAC5BH,6BApBF;AAsBC,IAAA,2BAA2B,EAC1BE;AAED;AAzBD;AA0BC,IAAA,WAAW,EAAGnF,EAAE,CAAE,gBAAF;AA1BjB,IADD,EA6BC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,MADT;AAEC,IAAA,QAAQ,EACP,CAAEkK,oBAAF,IACA,CAAE1D,0BAJJ;AAMC,IAAA,IAAI,EAAGnI,YAAY,CAAE,UAAF,EAAc;AAChCyM,MAAAA,SAAS,EAAE;AADqB,KAAd;AANpB,KAUG9K,EAAE,CAAE,cAAF,CAVL,CA7BD,CADD,CADD,EA6CGwK,wBA7CH,EA8CG/B,iBAAiB,IAClB,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACG3B,sCAAsC,IACvCD,2BADC,IAEA,cAAC,yBAAD,OAHH,EAKGG,sCAAsC,IACvCD,2BADC,IAEA,cAAC,2BAAD;AACC,IAAA,QAAQ,EAAG,YAA6B;AAAA,UAA3BkE,gBAA2B,uEAAR,EAAQ;AACvClF,MAAAA,kBAAkB,CAAEnE,QAAF,EAAY,EAAZ,CAAlB;AACAiC,MAAAA,8BAA8B,CAC7B5D,OAAO,EACN;AACAD,MAAAA,EAAE,CACD,0CADC,CAFI,EAKNiL,gBALM,CADsB,CAA9B;AASA;AAZF,IAPH,CA/CF,EAwEGvC,SAAS,IACV,cAAC,OAAD,EAAcK,UAAd,EACC,cAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,IADD,CAzEF,EA8EG,CAAEL,SAAF,IACD,cAAC,OAAD,EAAcK,UAAd,EACC,cAAC,iBAAD;AACC,IAAA,EAAE,EAAGnH,QADN;AAEC,IAAA,QAAQ,EAAGyE,2BAFZ;AAGC,IAAA,KAAK,EAAGrG,EAAE,CAAE,MAAF,CAHX;AAIC,IAAA,OAAO,EAAGmD,OAJX;AAKC,IAAA,IAAI,EAAGC,IALR;AAMC,IAAA,MAAM,EAAGgD,oBANV;AAOC,IAAA,YAAY,EAAG+D,YAPhB;AAQC,IAAA,iBAAiB,EAAG,aAAavH,WARlC;AASC,IAAA,sBAAsB,EAAGT,sBAT1B;AAUC,IAAA,gBAAgB,EAAGE;AAVpB,KAYGoG,iBAAiB,IAClB,cAAC,qBAAD;AACC,IAAA,QAAQ,EAAG7G,QADZ;AAEC,IAAA,oBAAoB,EACnB,CAAC,CAAEc,iBAHL;AAKC,IAAA,YAAY,EAAGI,YALhB;AAMC,IAAA,WAAW,EAAGG;AANf,IAbF,CADD,CA/EF,CADD,CADD;AA8GA;;AAED,eAAenE,UAAU,CACxB;AAAEmD,EAAAA,SAAS,EAAE;AAAb,CADwB,EAExB;AAAEF,EAAAA,eAAe,EAAE;AAAnB,CAFwB,EAGxB;AAAEI,EAAAA,sBAAsB,EAAE;AAA1B,CAHwB,EAIxB;AAAEE,EAAAA,gBAAgB,EAAE;AAApB,CAJwB,CAAV,CAKZZ,UALY,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef, Platform } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { close, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [ showMenuAutoPublishDraftNotice, hideMenuAutoPublishDraftNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/auto-publish-draft',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = () => {\n\t\tcreateNavigationMenu( '' );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks ] =\n\t\tuseState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// Only autofallback to published menus.\n\tconst fallbackNavigationMenus = navigationMenus?.filter(\n\t\t( menu ) => menu.status === 'publish'\n\t);\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless:\n\t// - the are uncontrolled inner blocks already present in the block.\n\t// - the user is creating a new menu.\n\t// - there are no menus to choose from.\n\t// This attempts to pick the first menu if there is a single Navigation Post. If more\n\t// than 1 exists then use the most recent.\n\t// The aim is for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasUncontrolledInnerBlocks ||\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! fallbackNavigationMenus?.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tfallbackNavigationMenus.sort( ( menuA, menuB ) => {\n\t\t\tconst menuADate = new Date( menuA.date );\n\t\t\tconst menuBDate = new Date( menuB.date );\n\t\t\treturn menuADate.getTime() < menuBDate.getTime();\n\t\t} );\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * a list of pages only if no menu (user assigned or\n\t\t * automatically picked) is available.\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( fallbackNavigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\tisConvertingClassicMenu ||\n\t\t\tfallbackNavigationMenus?.length > 0 ||\n\t\t\tclassicMenus?.length !== 1\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If there's non fallback navigation menus and\n\t\t// only one classic menu then create a new navigation menu based on it.\n\t\tconvertClassicMenu(\n\t\t\tclassicMenus[ 0 ].id,\n\t\t\tclassicMenus[ 0 ].name,\n\t\t\t'publish'\n\t\t);\n\t}, [ hasResolvedNavigationMenus ] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\tuseEffect( () => {\n\t\tif ( isPlaceholder ) {\n\t\t\t/**\n\t\t\t * this fallback only displays (both in editor and on front)\n\t\t\t * the list of pages block if no menu is available as a fallback.\n\t\t\t * We don't want the fallback to request a save,\n\t\t\t * nor to be undoable, hence we mark it non persistent.\n\t\t\t */\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\treplaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );\n\t\t}\n\t}, [ clientId, isPlaceholder, ref ] );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useBlockOverlayActive( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t!! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor?.slug ) ]:\n\t\t\t\t!! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst handleUpdateMenu = (\n\t\tmenuId,\n\t\toptions = { focusNavigationBlock: false }\n\t) => {\n\t\tconst { focusNavigationBlock } = options;\n\t\tsetRef( menuId );\n\t\tif ( focusNavigationBlock ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [ classicMenuConversionStatus, classicMenuConversionError ] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\t// Prompt the user to publish the menu they have set as a draft\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\tuseEffect( async () => {\n\t\thideMenuAutoPublishDraftNotice();\n\t\tif ( ! isDraftNavigationMenu ) return;\n\t\ttry {\n\t\t\tawait editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tnavigationMenu?.id,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t} catch {\n\t\t\tshowMenuAutoPublishDraftNotice(\n\t\t\t\t__( 'Error occurred while publishing the navigation menu.' )\n\t\t\t);\n\t\t}\n\t}, [ isDraftNavigationMenu, navigationMenu ] );\n\n\tconst stylingInspectorControls = (\n\t\t<InspectorControls>\n\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ hasColorSettings && (\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelColorSettings>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ null }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Menu' ) }>\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ ( menuId ) => {\n\t\t\t\t\t\t\t\thandleUpdateMenu( menuId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectClassicMenu={ async ( classicMenu ) => {\n\t\t\t\t\t\t\t\tconst navMenu = await convertClassicMenu(\n\t\t\t\t\t\t\t\t\tclassicMenu.id,\n\t\t\t\t\t\t\t\t\tclassicMenu.name,\n\t\t\t\t\t\t\t\t\t'draft'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( navMenu ) {\n\t\t\t\t\t\t\t\t\thandleUpdateMenu( navMenu.id, {\n\t\t\t\t\t\t\t\t\t\tfocusNavigationBlock: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t! hasManagePermissions ||\n\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage menus' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ stylingInspectorControls }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Navigation menu %s successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdeletedMenuTitle\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -24,7 +24,8 @@ export default function NavigationInnerBlocks(_ref) {
24
24
  let {
25
25
  clientId,
26
26
  hasCustomPlaceholder,
27
- orientation
27
+ orientation,
28
+ templateLock
28
29
  } = _ref;
29
30
  const {
30
31
  isImmediateParentOfSelectedBlock,
@@ -73,6 +74,7 @@ export default function NavigationInnerBlocks(_ref) {
73
74
  __experimentalDefaultBlock: DEFAULT_BLOCK,
74
75
  __experimentalDirectInsert: shouldDirectInsert,
75
76
  orientation,
77
+ templateLock,
76
78
  // As an exception to other blocks which feature nesting, show
77
79
  // the block appender even when a child block is selected.
78
80
  // This should be a temporary fix, to be replaced by improvements to
@@ -80,10 +82,6 @@ export default function NavigationInnerBlocks(_ref) {
80
82
  // See https://github.com/WordPress/gutenberg/issues/37572.
81
83
  renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
82
84
  parentOrChildHasSelection ? InnerBlocks.ButtonBlockAppender : false,
83
- // Template lock set to false here so that the Nav
84
- // Block on the experimental menus screen does not
85
- // inherit templateLock={ 'all' }.
86
- templateLock: false,
87
85
  __experimentalLayout: LAYOUT,
88
86
  placeholder: showPlaceholder ? placeholder : undefined
89
87
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["useEntityBlockEditor","useInnerBlocksProps","InnerBlocks","store","blockEditorStore","useSelect","useMemo","PlaceholderPreview","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","LAYOUT","type","alignments","NavigationInnerBlocks","clientId","hasCustomPlaceholder","orientation","isImmediateParentOfSelectedBlock","selectedBlockHasChildren","isSelected","select","getBlockCount","hasSelectedInnerBlock","getSelectedBlockClientId","selectedBlockId","blocks","onInput","onChange","shouldDirectInsert","every","parentOrChildHasSelection","placeholder","hasMenuItems","length","showPlaceholder","innerBlocksProps","className","value","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","ButtonBlockAppender","templateLock","__experimentalLayout","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,oBAAT,QAAqC,sBAArC;AACA,SACCC,mBADD,EAECC,WAFD,EAGCC,KAAK,IAAIC,gBAHV,QAIO,yBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,mCAA/B;AAEA,MAAMC,cAAc,GAAG,CACtB,sBADsB,EAEtB,aAFsB,EAGtB,mBAHsB,EAItB,gBAJsB,EAKtB,aALsB,EAMtB,gBANsB,EAOtB,iBAPsB,EAQtB,gBARsB,EAStB,yBATsB,CAAvB;AAYA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,IAAI,EAAE;AADe,CAAtB;AAIA,MAAMC,MAAM,GAAG;AACdC,EAAAA,IAAI,EAAE,SADQ;AAEdC,EAAAA,UAAU,EAAE;AAFE,CAAf;AAKA,eAAe,SAASC,qBAAT,OAIX;AAAA,MAJ2C;AAC9CC,IAAAA,QAD8C;AAE9CC,IAAAA,oBAF8C;AAG9CC,IAAAA;AAH8C,GAI3C;AACH,QAAM;AACLC,IAAAA,gCADK;AAELC,IAAAA,wBAFK;AAGLC,IAAAA;AAHK,MAIFf,SAAS,CACVgB,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,aADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEjB,gBAAF,CAJV;AAKA,UAAMqB,eAAe,GAAGD,wBAAwB,EAAhD;AAEA,WAAO;AACNN,MAAAA,gCAAgC,EAAEK,qBAAqB,CACtDR,QADsD,EAEtD,KAFsD,CADjD;AAKNI,MAAAA,wBAAwB,EAAE,CAAC,CAAEG,aAAa,CAAEG,eAAF,CALpC;AAON;AACA;AACAL,MAAAA,UAAU,EAAEK,eAAe,KAAKV;AAT1B,KAAP;AAWA,GApBW,EAqBZ,CAAEA,QAAF,CArBY,CAJb;AA4BA,QAAM,CAAEW,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgC5B,oBAAoB,CACzD,UADyD,EAEzD,eAFyD,CAA1D;AAKA,QAAM6B,kBAAkB,GAAGvB,OAAO,CACjC,MACCoB,MAAM,CAACI,KAAP,CACC;AAAA,QAAE;AAAEpB,MAAAA;AAAF,KAAF;AAAA,WACCA,IAAI,KAAK,sBAAT,IACAA,IAAI,KAAK,yBADT,IAEAA,IAAI,KAAK,gBAHV;AAAA,GADD,CAFgC,EAQjC,CAAEgB,MAAF,CARiC,CAAlC,CAlCG,CA6CH;AACA;AACA;;AACA,QAAMK,yBAAyB,GAC9BX,UAAU,IACRF,gCAAgC,IAAI,CAAEC,wBAFzC;AAIA,QAAMa,WAAW,GAAG1B,OAAO,CAAE,MAAM,cAAC,kBAAD,OAAR,EAAgC,EAAhC,CAA3B;AAEA,QAAM2B,YAAY,GAAG,CAAC,EAAEP,MAAF,aAAEA,MAAF,eAAEA,MAAM,CAAEQ,MAAV,CAAtB,CAtDG,CAwDH;AACA;AACA;AACA;;AACA,QAAMC,eAAe,GACpB,CAAEnB,oBAAF,IAA0B,CAAEiB,YAA5B,IAA4C,CAAEb,UAD/C;AAGA,QAAMgB,gBAAgB,GAAGnC,mBAAmB,CAC3C;AACCoC,IAAAA,SAAS,EAAE;AADZ,GAD2C,EAI3C;AACCC,IAAAA,KAAK,EAAEZ,MADR;AAECC,IAAAA,OAFD;AAGCC,IAAAA,QAHD;AAICW,IAAAA,aAAa,EAAE/B,cAJhB;AAKCgC,IAAAA,0BAA0B,EAAE/B,aAL7B;AAMCgC,IAAAA,0BAA0B,EAAEZ,kBAN7B;AAOCZ,IAAAA,WAPD;AASC;AACA;AACA;AACA;AACA;AACAyB,IAAAA,cAAc,EACbtB,UAAU,IACRF,gCAAgC,IACjC,CAAEC,wBAFH,IAGA;AACAY,IAAAA,yBAJA,GAKG7B,WAAW,CAACyC,mBALf,GAMG,KArBL;AAuBC;AACA;AACA;AACAC,IAAAA,YAAY,EAAE,KA1Bf;AA2BCC,IAAAA,oBAAoB,EAAElC,MA3BvB;AA4BCqB,IAAAA,WAAW,EAAEG,eAAe,GAAGH,WAAH,GAAiBc;AA5B9C,GAJ2C,CAA5C;AAoCA,SAAO,qBAAUV,gBAAV,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst LAYOUT = {\n\ttype: 'default',\n\talignments: [],\n};\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasChildren,\n\t\tisSelected,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasChildren: !! getBlockCount( selectedBlockId ),\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasChildren );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t\torientation,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\n\t\t\t// Template lock set to false here so that the Nav\n\t\t\t// Block on the experimental menus screen does not\n\t\t\t// inherit templateLock={ 'all' }.\n\t\t\ttemplateLock: false,\n\t\t\t__experimentalLayout: LAYOUT,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t}\n\t);\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["useEntityBlockEditor","useInnerBlocksProps","InnerBlocks","store","blockEditorStore","useSelect","useMemo","PlaceholderPreview","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","LAYOUT","type","alignments","NavigationInnerBlocks","clientId","hasCustomPlaceholder","orientation","templateLock","isImmediateParentOfSelectedBlock","selectedBlockHasChildren","isSelected","select","getBlockCount","hasSelectedInnerBlock","getSelectedBlockClientId","selectedBlockId","blocks","onInput","onChange","shouldDirectInsert","every","parentOrChildHasSelection","placeholder","hasMenuItems","length","showPlaceholder","innerBlocksProps","className","value","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","ButtonBlockAppender","__experimentalLayout","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst LAYOUT = {\n\ttype: 'default',\n\talignments: [],\n};\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n\ttemplateLock,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasChildren,\n\t\tisSelected,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasChildren: !! getBlockCount( selectedBlockId ),\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasChildren );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t\torientation,\n\t\t\ttemplateLock,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\t\t\t__experimentalLayout: LAYOUT,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t}\n\t);\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"]}
@@ -14,7 +14,10 @@ import menuItemsToBlocks from '../menu-items-to-blocks';
14
14
  export const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
15
15
  export const CLASSIC_MENU_CONVERSION_ERROR = 'error';
16
16
  export const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
17
- export const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
17
+ export const CLASSIC_MENU_CONVERSION_IDLE = 'idle'; // This is needed to ensure that multiple components using this hook
18
+ // do not import the same classic menu twice.
19
+
20
+ let classicMenuBeingConvertedId = null;
18
21
 
19
22
  function useConvertClassicToBlockMenu(clientId) {
20
23
  /*
@@ -32,6 +35,7 @@ function useConvertClassicToBlockMenu(clientId) {
32
35
  const [error, setError] = useState(null);
33
36
 
34
37
  async function convertClassicMenuToBlockMenu(menuId, menuName) {
38
+ let postStatus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'publish';
35
39
  let navigationMenu;
36
40
  let classicMenuItems; // 1. Fetch the classic Menu items.
37
41
 
@@ -60,7 +64,7 @@ function useConvertClassicToBlockMenu(clientId) {
60
64
  } = menuItemsToBlocks(classicMenuItems); // 3. Create the `wp_navigation` Post with the blocks.
61
65
 
62
66
  try {
63
- navigationMenu = await createNavigationMenu(menuName, innerBlocks);
67
+ navigationMenu = await createNavigationMenu(menuName, innerBlocks, postStatus);
64
68
  /**
65
69
  * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.
66
70
  * This status change causes the menu to be displayed on the front of the site and sets the post state to be "dirty".
@@ -70,7 +74,7 @@ function useConvertClassicToBlockMenu(clientId) {
70
74
  */
71
75
 
72
76
  await editEntityRecord('postType', 'wp_navigation', navigationMenu.id, {
73
- status: 'publish'
77
+ status: postStatus
74
78
  }, {
75
79
  throwOnError: true
76
80
  });
@@ -84,7 +88,15 @@ function useConvertClassicToBlockMenu(clientId) {
84
88
  return navigationMenu;
85
89
  }
86
90
 
87
- const convert = useCallback(async (menuId, menuName) => {
91
+ const convert = useCallback(async (menuId, menuName, postStatus) => {
92
+ // Check whether this classic menu is being imported already.
93
+ if (classicMenuBeingConvertedId === menuId) {
94
+ return;
95
+ } // Set the ID for the currently importing classic menu.
96
+
97
+
98
+ classicMenuBeingConvertedId = menuId;
99
+
88
100
  if (!menuId || !menuName) {
89
101
  setError('Unable to convert menu. Missing menu details.');
90
102
  setStatus(CLASSIC_MENU_CONVERSION_ERROR);
@@ -93,12 +105,17 @@ function useConvertClassicToBlockMenu(clientId) {
93
105
 
94
106
  setStatus(CLASSIC_MENU_CONVERSION_PENDING);
95
107
  setError(null);
96
- return await convertClassicMenuToBlockMenu(menuId, menuName).then(navigationMenu => {
97
- setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
108
+ return await convertClassicMenuToBlockMenu(menuId, menuName, postStatus).then(navigationMenu => {
109
+ setStatus(CLASSIC_MENU_CONVERSION_SUCCESS); // Reset the ID for the currently importing classic menu.
110
+
111
+ classicMenuBeingConvertedId = null;
98
112
  return navigationMenu;
99
113
  }).catch(err => {
100
- setError(err === null || err === void 0 ? void 0 : err.message);
101
- setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Rethrow error for debugging.
114
+ setError(err === null || err === void 0 ? void 0 : err.message); // Reset the ID for the currently importing classic menu.
115
+
116
+ setStatus(CLASSIC_MENU_CONVERSION_ERROR); // Reset the ID for the currently importing classic menu.
117
+
118
+ classicMenuBeingConvertedId = null; // Rethrow error for debugging.
102
119
 
103
120
  throw new Error(sprintf( // translators: %s: the name of a menu (e.g. Header navigation).
104
121
  __(`Unable to create Navigation Menu "%s".`), menuName), {