@wordpress/block-library 7.7.0 → 7.10.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 (847) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/audio/edit.js +1 -0
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/index.js +6 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/audio/save.js +2 -1
  7. package/build/audio/save.js.map +1 -1
  8. package/build/avatar/hooks.js +2 -2
  9. package/build/avatar/hooks.js.map +1 -1
  10. package/build/block/edit.js.map +1 -1
  11. package/build/block/edit.native.js.map +1 -1
  12. package/build/button/deprecated.js.map +1 -1
  13. package/build/button/edit.js +1 -1
  14. package/build/button/edit.js.map +1 -1
  15. package/build/button/edit.native.js.map +1 -1
  16. package/build/button/save.js +1 -1
  17. package/build/button/save.js.map +1 -1
  18. package/build/buttons/deprecated.js.map +1 -1
  19. package/build/buttons/edit.js.map +1 -1
  20. package/build/buttons/edit.native.js.map +1 -1
  21. package/build/column/deprecated.js.map +1 -1
  22. package/build/column/edit.js.map +1 -1
  23. package/build/column/edit.native.js.map +1 -1
  24. package/build/columns/deprecated.js.map +1 -1
  25. package/build/columns/edit.js +1 -1
  26. package/build/columns/edit.js.map +1 -1
  27. package/build/columns/edit.native.js +1 -1
  28. package/build/columns/edit.native.js.map +1 -1
  29. package/build/columns/index.js.map +1 -1
  30. package/build/columns/utils.js +1 -1
  31. package/build/columns/utils.js.map +1 -1
  32. package/build/columns/variations.js +2 -2
  33. package/build/columns/variations.js.map +1 -1
  34. package/build/comment-author-name/edit.js +3 -3
  35. package/build/comment-author-name/edit.js.map +1 -1
  36. package/build/comment-author-name/index.js +0 -4
  37. package/build/comment-author-name/index.js.map +1 -1
  38. package/build/comment-date/edit.js +4 -4
  39. package/build/comment-date/edit.js.map +1 -1
  40. package/build/comment-date/index.js +0 -4
  41. package/build/comment-date/index.js.map +1 -1
  42. package/build/comment-edit-link/index.js +0 -4
  43. package/build/comment-edit-link/index.js.map +1 -1
  44. package/build/comment-reply-link/index.js +0 -4
  45. package/build/comment-reply-link/index.js.map +1 -1
  46. package/build/comment-template/index.js +1 -1
  47. package/build/comments/deprecated.js +65 -0
  48. package/build/comments/deprecated.js.map +1 -0
  49. package/build/comments/edit.js +10 -2
  50. package/build/comments/edit.js.map +1 -1
  51. package/build/comments/index.js +5 -2
  52. package/build/comments/index.js.map +1 -1
  53. package/build/comments-pagination/index.js +1 -1
  54. package/build/comments-title/deprecated.js +1 -4
  55. package/build/comments-title/deprecated.js.map +1 -1
  56. package/build/comments-title/edit.js +1 -1
  57. package/build/comments-title/edit.js.map +1 -1
  58. package/build/comments-title/index.js +1 -1
  59. package/build/cover/controls.native.js.map +1 -1
  60. package/build/cover/deprecated.js.map +1 -1
  61. package/build/cover/edit/block-controls.js +5 -22
  62. package/build/cover/edit/block-controls.js.map +1 -1
  63. package/build/cover/edit/cover-placeholder.js +3 -1
  64. package/build/cover/edit/cover-placeholder.js.map +1 -1
  65. package/build/cover/edit/index.js +38 -30
  66. package/build/cover/edit/index.js.map +1 -1
  67. package/build/cover/edit/inspector-controls.js +34 -6
  68. package/build/cover/edit/inspector-controls.js.map +1 -1
  69. package/build/cover/edit.native.js.map +1 -1
  70. package/build/cover/index.js +1 -0
  71. package/build/cover/index.js.map +1 -1
  72. package/build/cover/save.js.map +1 -1
  73. package/build/cover/transforms.js.map +1 -1
  74. package/build/embed/deprecated.js +6 -1
  75. package/build/embed/deprecated.js.map +1 -1
  76. package/build/embed/edit.js.map +1 -1
  77. package/build/embed/edit.native.js.map +1 -1
  78. package/build/embed/embed-controls.native.js.map +1 -1
  79. package/build/embed/embed-preview.js +1 -0
  80. package/build/embed/embed-preview.js.map +1 -1
  81. package/build/embed/icons.js +21 -1
  82. package/build/embed/icons.js.map +1 -1
  83. package/build/embed/index.js +6 -1
  84. package/build/embed/index.js.map +1 -1
  85. package/build/embed/save.js +1 -0
  86. package/build/embed/save.js.map +1 -1
  87. package/build/embed/transforms.js +6 -1
  88. package/build/embed/transforms.js.map +1 -1
  89. package/build/embed/util.js +6 -1
  90. package/build/embed/util.js.map +1 -1
  91. package/build/embed/variations.js +11 -0
  92. package/build/embed/variations.js.map +1 -1
  93. package/build/file/edit.js +1 -1
  94. package/build/file/edit.js.map +1 -1
  95. package/build/file/edit.native.js.map +1 -1
  96. package/build/file/index.js.map +1 -1
  97. package/build/file/save.js +1 -1
  98. package/build/file/save.js.map +1 -1
  99. package/build/gallery/edit.js +10 -18
  100. package/build/gallery/edit.js.map +1 -1
  101. package/build/gallery/gallery.js +1 -1
  102. package/build/gallery/gallery.js.map +1 -1
  103. package/build/gallery/gallery.native.js.map +1 -1
  104. package/build/gallery/index.js.map +1 -1
  105. package/build/gallery/save.js +1 -1
  106. package/build/gallery/save.js.map +1 -1
  107. package/build/gallery/shared.js +27 -10
  108. package/build/gallery/shared.js.map +1 -1
  109. package/build/gallery/transforms.js +32 -22
  110. package/build/gallery/transforms.js.map +1 -1
  111. package/build/gallery/use-get-media.js +7 -18
  112. package/build/gallery/use-get-media.js.map +1 -1
  113. package/build/gallery/v1/edit.js +3 -3
  114. package/build/gallery/v1/edit.js.map +1 -1
  115. package/build/gallery/v1/gallery-image.js +1 -0
  116. package/build/gallery/v1/gallery-image.js.map +1 -1
  117. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  118. package/build/gallery/v1/gallery.js +1 -1
  119. package/build/gallery/v1/gallery.js.map +1 -1
  120. package/build/gallery/v1/save.js +10 -2
  121. package/build/gallery/v1/save.js.map +1 -1
  122. package/build/group/edit.js +1 -3
  123. package/build/group/edit.js.map +1 -1
  124. package/build/group/index.js +1 -0
  125. package/build/group/index.js.map +1 -1
  126. package/build/heading/autogenerate-anchors.js +7 -2
  127. package/build/heading/autogenerate-anchors.js.map +1 -1
  128. package/build/heading/deprecated.js.map +1 -1
  129. package/build/heading/edit.js.map +1 -1
  130. package/build/heading/heading-level-dropdown.js +2 -1
  131. package/build/heading/heading-level-dropdown.js.map +1 -1
  132. package/build/heading/index.js +9 -4
  133. package/build/heading/index.js.map +1 -1
  134. package/build/html/edit.js +11 -20
  135. package/build/html/edit.js.map +1 -1
  136. package/build/html/preview.js +48 -0
  137. package/build/html/preview.js.map +1 -0
  138. package/build/image/deprecated.js.map +1 -1
  139. package/build/image/edit.native.js +2 -1
  140. package/build/image/edit.native.js.map +1 -1
  141. package/build/image/image.js +1 -0
  142. package/build/image/image.js.map +1 -1
  143. package/build/image/index.js +5 -0
  144. package/build/image/index.js.map +1 -1
  145. package/build/image/save.js +1 -0
  146. package/build/image/save.js.map +1 -1
  147. package/build/image/transforms.js.map +1 -1
  148. package/build/image/utils.js +2 -1
  149. package/build/image/utils.js.map +1 -1
  150. package/build/index.js +1 -1
  151. package/build/index.js.map +1 -1
  152. package/build/latest-comments/edit.js.map +1 -1
  153. package/build/latest-posts/edit.js +2 -2
  154. package/build/latest-posts/edit.js.map +1 -1
  155. package/build/latest-posts/edit.native.js.map +1 -1
  156. package/build/list/index.js.map +1 -1
  157. package/build/list/v2/edit.js.map +1 -1
  158. package/build/list/v2/transforms.js +33 -17
  159. package/build/list/v2/transforms.js.map +1 -1
  160. package/build/list-item/hooks/use-backspace.js.map +1 -1
  161. package/build/list-item/hooks/use-enter.js +7 -4
  162. package/build/list-item/hooks/use-enter.js.map +1 -1
  163. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  164. package/build/list-item/hooks/use-outdent-list-item.js +36 -15
  165. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  166. package/build/list-item/hooks/use-space.js.map +1 -1
  167. package/build/media-text/deprecated.js +5 -3
  168. package/build/media-text/deprecated.js.map +1 -1
  169. package/build/media-text/edit.native.js.map +1 -1
  170. package/build/media-text/media-container.js +3 -3
  171. package/build/media-text/media-container.js.map +1 -1
  172. package/build/media-text/media-container.native.js.map +1 -1
  173. package/build/media-text/save.js +3 -1
  174. package/build/media-text/save.js.map +1 -1
  175. package/build/missing/edit.native.js.map +1 -1
  176. package/build/more/edit.js +2 -4
  177. package/build/more/edit.js.map +1 -1
  178. package/build/navigation/deprecated.js.map +1 -1
  179. package/build/navigation/edit/index.js +1 -1
  180. package/build/navigation/edit/index.js.map +1 -1
  181. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  182. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  183. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  184. package/build/navigation/index.js +9 -0
  185. package/build/navigation/index.js.map +1 -1
  186. package/build/navigation/use-navigation-entities.js.map +1 -1
  187. package/build/navigation/use-navigation-menu.js +72 -38
  188. package/build/navigation/use-navigation-menu.js.map +1 -1
  189. package/build/navigation/use-template-part-area-label.js +4 -1
  190. package/build/navigation/use-template-part-area-label.js.map +1 -1
  191. package/build/navigation/view.js +6 -1
  192. package/build/navigation/view.js.map +1 -1
  193. package/build/navigation-link/edit.js +14 -8
  194. package/build/navigation-link/edit.js.map +1 -1
  195. package/build/navigation-link/hooks.js +0 -16
  196. package/build/navigation-link/hooks.js.map +1 -1
  197. package/build/navigation-link/index.js +1 -1
  198. package/build/navigation-link/index.js.map +1 -1
  199. package/build/navigation-submenu/edit.js.map +1 -1
  200. package/build/navigation-submenu/view.js +6 -1
  201. package/build/navigation-submenu/view.js.map +1 -1
  202. package/build/nextpage/edit.js +1 -3
  203. package/build/nextpage/edit.js.map +1 -1
  204. package/build/page-list/convert-to-links-modal.js.map +1 -1
  205. package/build/page-list/edit.js +2 -2
  206. package/build/page-list/edit.js.map +1 -1
  207. package/build/paragraph/deprecated.js +1 -1
  208. package/build/paragraph/deprecated.js.map +1 -1
  209. package/build/pattern/edit.js.map +1 -1
  210. package/build/post-author/edit.js.map +1 -1
  211. package/build/post-comments-form/edit.js +14 -6
  212. package/build/post-comments-form/edit.js.map +1 -1
  213. package/build/post-comments-form/form.js +1 -1
  214. package/build/post-comments-form/form.js.map +1 -1
  215. package/build/post-content/edit.js.map +1 -1
  216. package/build/post-featured-image/edit.js +10 -24
  217. package/build/post-featured-image/edit.js.map +1 -1
  218. package/build/post-navigation-link/index.js +4 -0
  219. package/build/post-navigation-link/index.js.map +1 -1
  220. package/build/post-terms/index.js +1 -1
  221. package/build/post-terms/index.js.map +1 -1
  222. package/build/post-title/index.js +1 -0
  223. package/build/post-title/index.js.map +1 -1
  224. package/build/pullquote/deprecated.js.map +1 -1
  225. package/build/query/edit/index.js +5 -1
  226. package/build/query/edit/index.js.map +1 -1
  227. package/build/query/edit/inspector-controls/index.js +1 -1
  228. package/build/query/edit/inspector-controls/index.js.map +1 -1
  229. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  230. package/build/query/edit/query-toolbar.js +16 -2
  231. package/build/query/edit/query-toolbar.js.map +1 -1
  232. package/build/query/index.js +1 -1
  233. package/build/query/index.js.map +1 -1
  234. package/build/quote/v2/edit.js.map +1 -1
  235. package/build/search/edit.js +1 -1
  236. package/build/search/edit.js.map +1 -1
  237. package/build/search/edit.native.js.map +1 -1
  238. package/build/separator/use-deprecated-opacity.js.map +1 -1
  239. package/build/shortcode/edit.native.js.map +1 -1
  240. package/build/site-logo/edit.js +8 -25
  241. package/build/site-logo/edit.js.map +1 -1
  242. package/build/site-title/edit/level-toolbar.js +2 -1
  243. package/build/site-title/edit/level-toolbar.js.map +1 -1
  244. package/build/social-links/deprecated.js.map +1 -1
  245. package/build/social-links/edit.native.js.map +1 -1
  246. package/build/spacer/controls.js.map +1 -1
  247. package/build/table/deprecated.js.map +1 -1
  248. package/build/table/edit.js +1 -0
  249. package/build/table/edit.js.map +1 -1
  250. package/build/table/index.js +6 -1
  251. package/build/table/index.js.map +1 -1
  252. package/build/table/save.js +2 -1
  253. package/build/table/save.js.map +1 -1
  254. package/build/table/state.js.map +1 -1
  255. package/build/table-of-contents/edit.js.map +1 -1
  256. package/build/tag-cloud/edit.js.map +1 -1
  257. package/build/template-part/edit/advanced-controls.js +4 -1
  258. package/build/template-part/edit/advanced-controls.js.map +1 -1
  259. package/build/template-part/edit/index.js.map +1 -1
  260. package/build/template-part/edit/utils/hooks.js +4 -1
  261. package/build/template-part/edit/utils/hooks.js.map +1 -1
  262. package/build/template-part/index.js +1 -1
  263. package/build/template-part/index.js.map +1 -1
  264. package/build/template-part/variations.js +0 -16
  265. package/build/template-part/variations.js.map +1 -1
  266. package/build/transformationCategories.native.js.map +1 -1
  267. package/build/utils/clean-empty-object.js +5 -3
  268. package/build/utils/clean-empty-object.js.map +1 -1
  269. package/build/video/edit-common-settings.js.map +1 -1
  270. package/build/video/edit.js +1 -0
  271. package/build/video/edit.js.map +1 -1
  272. package/build/video/edit.native.js +43 -0
  273. package/build/video/edit.native.js.map +1 -1
  274. package/build/video/index.js +6 -1
  275. package/build/video/index.js.map +1 -1
  276. package/build/video/save.js +1 -0
  277. package/build/video/save.js.map +1 -1
  278. package/build/video/tracks-editor.js +9 -11
  279. package/build/video/tracks-editor.js.map +1 -1
  280. package/build-module/audio/edit.js +2 -1
  281. package/build-module/audio/edit.js.map +1 -1
  282. package/build-module/audio/index.js +6 -1
  283. package/build-module/audio/index.js.map +1 -1
  284. package/build-module/audio/save.js +3 -2
  285. package/build-module/audio/save.js.map +1 -1
  286. package/build-module/avatar/hooks.js +2 -2
  287. package/build-module/avatar/hooks.js.map +1 -1
  288. package/build-module/block/edit.js.map +1 -1
  289. package/build-module/block/edit.native.js.map +1 -1
  290. package/build-module/button/deprecated.js.map +1 -1
  291. package/build-module/button/edit.js +2 -2
  292. package/build-module/button/edit.js.map +1 -1
  293. package/build-module/button/edit.native.js.map +1 -1
  294. package/build-module/button/save.js +2 -2
  295. package/build-module/button/save.js.map +1 -1
  296. package/build-module/buttons/deprecated.js.map +1 -1
  297. package/build-module/buttons/edit.js.map +1 -1
  298. package/build-module/buttons/edit.native.js.map +1 -1
  299. package/build-module/column/deprecated.js.map +1 -1
  300. package/build-module/column/edit.js.map +1 -1
  301. package/build-module/column/edit.native.js.map +1 -1
  302. package/build-module/columns/deprecated.js.map +1 -1
  303. package/build-module/columns/edit.js +2 -2
  304. package/build-module/columns/edit.js.map +1 -1
  305. package/build-module/columns/edit.native.js +2 -2
  306. package/build-module/columns/edit.native.js.map +1 -1
  307. package/build-module/columns/index.js.map +1 -1
  308. package/build-module/columns/utils.js +2 -2
  309. package/build-module/columns/utils.js.map +1 -1
  310. package/build-module/columns/variations.js +2 -2
  311. package/build-module/columns/variations.js.map +1 -1
  312. package/build-module/comment-author-name/edit.js +3 -3
  313. package/build-module/comment-author-name/edit.js.map +1 -1
  314. package/build-module/comment-author-name/index.js +0 -4
  315. package/build-module/comment-author-name/index.js.map +1 -1
  316. package/build-module/comment-date/edit.js +4 -4
  317. package/build-module/comment-date/edit.js.map +1 -1
  318. package/build-module/comment-date/index.js +0 -4
  319. package/build-module/comment-date/index.js.map +1 -1
  320. package/build-module/comment-edit-link/index.js +0 -4
  321. package/build-module/comment-edit-link/index.js.map +1 -1
  322. package/build-module/comment-reply-link/index.js +0 -4
  323. package/build-module/comment-reply-link/index.js.map +1 -1
  324. package/build-module/comment-template/index.js +1 -1
  325. package/build-module/comments/deprecated.js +54 -0
  326. package/build-module/comments/deprecated.js.map +1 -0
  327. package/build-module/comments/edit.js +10 -2
  328. package/build-module/comments/edit.js.map +1 -1
  329. package/build-module/comments/index.js +4 -2
  330. package/build-module/comments/index.js.map +1 -1
  331. package/build-module/comments-pagination/index.js +1 -1
  332. package/build-module/comments-title/deprecated.js +1 -4
  333. package/build-module/comments-title/deprecated.js.map +1 -1
  334. package/build-module/comments-title/edit.js +1 -1
  335. package/build-module/comments-title/edit.js.map +1 -1
  336. package/build-module/comments-title/index.js +1 -1
  337. package/build-module/cover/controls.native.js.map +1 -1
  338. package/build-module/cover/deprecated.js.map +1 -1
  339. package/build-module/cover/edit/block-controls.js +6 -21
  340. package/build-module/cover/edit/block-controls.js.map +1 -1
  341. package/build-module/cover/edit/cover-placeholder.js +3 -1
  342. package/build-module/cover/edit/cover-placeholder.js.map +1 -1
  343. package/build-module/cover/edit/index.js +39 -31
  344. package/build-module/cover/edit/index.js.map +1 -1
  345. package/build-module/cover/edit/inspector-controls.js +32 -7
  346. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  347. package/build-module/cover/edit.native.js.map +1 -1
  348. package/build-module/cover/index.js +1 -0
  349. package/build-module/cover/index.js.map +1 -1
  350. package/build-module/cover/save.js.map +1 -1
  351. package/build-module/cover/transforms.js.map +1 -1
  352. package/build-module/embed/deprecated.js +6 -1
  353. package/build-module/embed/deprecated.js.map +1 -1
  354. package/build-module/embed/edit.js.map +1 -1
  355. package/build-module/embed/edit.native.js.map +1 -1
  356. package/build-module/embed/embed-controls.native.js.map +1 -1
  357. package/build-module/embed/embed-preview.js +2 -1
  358. package/build-module/embed/embed-preview.js.map +1 -1
  359. package/build-module/embed/icons.js +19 -0
  360. package/build-module/embed/icons.js.map +1 -1
  361. package/build-module/embed/index.js +6 -1
  362. package/build-module/embed/index.js.map +1 -1
  363. package/build-module/embed/save.js +2 -1
  364. package/build-module/embed/save.js.map +1 -1
  365. package/build-module/embed/transforms.js +6 -1
  366. package/build-module/embed/transforms.js.map +1 -1
  367. package/build-module/embed/util.js +6 -1
  368. package/build-module/embed/util.js.map +1 -1
  369. package/build-module/embed/variations.js +12 -1
  370. package/build-module/embed/variations.js.map +1 -1
  371. package/build-module/file/edit.js +2 -2
  372. package/build-module/file/edit.js.map +1 -1
  373. package/build-module/file/edit.native.js.map +1 -1
  374. package/build-module/file/index.js.map +1 -1
  375. package/build-module/file/save.js +2 -2
  376. package/build-module/file/save.js.map +1 -1
  377. package/build-module/gallery/edit.js +11 -18
  378. package/build-module/gallery/edit.js.map +1 -1
  379. package/build-module/gallery/gallery.js +2 -2
  380. package/build-module/gallery/gallery.js.map +1 -1
  381. package/build-module/gallery/gallery.native.js.map +1 -1
  382. package/build-module/gallery/index.js.map +1 -1
  383. package/build-module/gallery/save.js +2 -2
  384. package/build-module/gallery/save.js.map +1 -1
  385. package/build-module/gallery/shared.js +25 -8
  386. package/build-module/gallery/shared.js.map +1 -1
  387. package/build-module/gallery/transforms.js +33 -23
  388. package/build-module/gallery/transforms.js.map +1 -1
  389. package/build-module/gallery/use-get-media.js +6 -16
  390. package/build-module/gallery/use-get-media.js.map +1 -1
  391. package/build-module/gallery/v1/edit.js +4 -4
  392. package/build-module/gallery/v1/edit.js.map +1 -1
  393. package/build-module/gallery/v1/gallery-image.js +2 -1
  394. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  395. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  396. package/build-module/gallery/v1/gallery.js +2 -2
  397. package/build-module/gallery/v1/gallery.js.map +1 -1
  398. package/build-module/gallery/v1/save.js +8 -3
  399. package/build-module/gallery/v1/save.js.map +1 -1
  400. package/build-module/group/edit.js +1 -3
  401. package/build-module/group/edit.js.map +1 -1
  402. package/build-module/group/index.js +1 -0
  403. package/build-module/group/index.js.map +1 -1
  404. package/build-module/heading/autogenerate-anchors.js +5 -2
  405. package/build-module/heading/autogenerate-anchors.js.map +1 -1
  406. package/build-module/heading/deprecated.js.map +1 -1
  407. package/build-module/heading/edit.js.map +1 -1
  408. package/build-module/heading/heading-level-dropdown.js +2 -1
  409. package/build-module/heading/heading-level-dropdown.js.map +1 -1
  410. package/build-module/heading/index.js +9 -4
  411. package/build-module/heading/index.js.map +1 -1
  412. package/build-module/html/edit.js +12 -23
  413. package/build-module/html/edit.js.map +1 -1
  414. package/build-module/html/preview.js +38 -0
  415. package/build-module/html/preview.js.map +1 -0
  416. package/build-module/image/deprecated.js.map +1 -1
  417. package/build-module/image/edit.native.js +2 -1
  418. package/build-module/image/edit.native.js.map +1 -1
  419. package/build-module/image/image.js +2 -1
  420. package/build-module/image/image.js.map +1 -1
  421. package/build-module/image/index.js +5 -0
  422. package/build-module/image/index.js.map +1 -1
  423. package/build-module/image/save.js +2 -1
  424. package/build-module/image/save.js.map +1 -1
  425. package/build-module/image/transforms.js.map +1 -1
  426. package/build-module/image/utils.js +2 -2
  427. package/build-module/image/utils.js.map +1 -1
  428. package/build-module/index.js +1 -1
  429. package/build-module/index.js.map +1 -1
  430. package/build-module/latest-comments/edit.js.map +1 -1
  431. package/build-module/latest-posts/edit.js +3 -3
  432. package/build-module/latest-posts/edit.js.map +1 -1
  433. package/build-module/latest-posts/edit.native.js.map +1 -1
  434. package/build-module/list/index.js.map +1 -1
  435. package/build-module/list/v2/edit.js.map +1 -1
  436. package/build-module/list/v2/transforms.js +32 -17
  437. package/build-module/list/v2/transforms.js.map +1 -1
  438. package/build-module/list-item/hooks/use-backspace.js.map +1 -1
  439. package/build-module/list-item/hooks/use-enter.js +7 -4
  440. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  441. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  442. package/build-module/list-item/hooks/use-outdent-list-item.js +34 -15
  443. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  444. package/build-module/list-item/hooks/use-space.js.map +1 -1
  445. package/build-module/media-text/deprecated.js +3 -1
  446. package/build-module/media-text/deprecated.js.map +1 -1
  447. package/build-module/media-text/edit.native.js.map +1 -1
  448. package/build-module/media-text/media-container.js +3 -1
  449. package/build-module/media-text/media-container.js.map +1 -1
  450. package/build-module/media-text/media-container.native.js.map +1 -1
  451. package/build-module/media-text/save.js +4 -1
  452. package/build-module/media-text/save.js.map +1 -1
  453. package/build-module/missing/edit.native.js.map +1 -1
  454. package/build-module/more/edit.js +2 -4
  455. package/build-module/more/edit.js.map +1 -1
  456. package/build-module/navigation/deprecated.js.map +1 -1
  457. package/build-module/navigation/edit/index.js +1 -1
  458. package/build-module/navigation/edit/index.js.map +1 -1
  459. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  460. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  461. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  462. package/build-module/navigation/index.js +9 -0
  463. package/build-module/navigation/index.js.map +1 -1
  464. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  465. package/build-module/navigation/use-navigation-menu.js +73 -39
  466. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  467. package/build-module/navigation/use-template-part-area-label.js +4 -1
  468. package/build-module/navigation/use-template-part-area-label.js.map +1 -1
  469. package/build-module/navigation/view.js +6 -1
  470. package/build-module/navigation/view.js.map +1 -1
  471. package/build-module/navigation-link/edit.js +14 -8
  472. package/build-module/navigation-link/edit.js.map +1 -1
  473. package/build-module/navigation-link/hooks.js +0 -13
  474. package/build-module/navigation-link/hooks.js.map +1 -1
  475. package/build-module/navigation-link/index.js +1 -1
  476. package/build-module/navigation-link/index.js.map +1 -1
  477. package/build-module/navigation-submenu/edit.js.map +1 -1
  478. package/build-module/navigation-submenu/view.js +6 -1
  479. package/build-module/navigation-submenu/view.js.map +1 -1
  480. package/build-module/nextpage/edit.js +1 -3
  481. package/build-module/nextpage/edit.js.map +1 -1
  482. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  483. package/build-module/page-list/edit.js +2 -2
  484. package/build-module/page-list/edit.js.map +1 -1
  485. package/build-module/paragraph/deprecated.js +2 -2
  486. package/build-module/paragraph/deprecated.js.map +1 -1
  487. package/build-module/pattern/edit.js.map +1 -1
  488. package/build-module/post-author/edit.js.map +1 -1
  489. package/build-module/post-comments-form/edit.js +14 -7
  490. package/build-module/post-comments-form/edit.js.map +1 -1
  491. package/build-module/post-comments-form/form.js +2 -2
  492. package/build-module/post-comments-form/form.js.map +1 -1
  493. package/build-module/post-content/edit.js.map +1 -1
  494. package/build-module/post-featured-image/edit.js +10 -23
  495. package/build-module/post-featured-image/edit.js.map +1 -1
  496. package/build-module/post-navigation-link/index.js +4 -0
  497. package/build-module/post-navigation-link/index.js.map +1 -1
  498. package/build-module/post-terms/index.js +1 -1
  499. package/build-module/post-terms/index.js.map +1 -1
  500. package/build-module/post-title/index.js +1 -0
  501. package/build-module/post-title/index.js.map +1 -1
  502. package/build-module/pullquote/deprecated.js.map +1 -1
  503. package/build-module/query/edit/index.js +5 -1
  504. package/build-module/query/edit/index.js.map +1 -1
  505. package/build-module/query/edit/inspector-controls/index.js +1 -1
  506. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  507. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  508. package/build-module/query/edit/query-toolbar.js +14 -2
  509. package/build-module/query/edit/query-toolbar.js.map +1 -1
  510. package/build-module/query/index.js +1 -1
  511. package/build-module/query/index.js.map +1 -1
  512. package/build-module/quote/v2/edit.js.map +1 -1
  513. package/build-module/search/edit.js +2 -2
  514. package/build-module/search/edit.js.map +1 -1
  515. package/build-module/search/edit.native.js.map +1 -1
  516. package/build-module/separator/use-deprecated-opacity.js.map +1 -1
  517. package/build-module/shortcode/edit.native.js.map +1 -1
  518. package/build-module/site-logo/edit.js +8 -24
  519. package/build-module/site-logo/edit.js.map +1 -1
  520. package/build-module/site-title/edit/level-toolbar.js +2 -1
  521. package/build-module/site-title/edit/level-toolbar.js.map +1 -1
  522. package/build-module/social-links/deprecated.js.map +1 -1
  523. package/build-module/social-links/edit.native.js.map +1 -1
  524. package/build-module/spacer/controls.js.map +1 -1
  525. package/build-module/table/deprecated.js.map +1 -1
  526. package/build-module/table/edit.js +2 -1
  527. package/build-module/table/edit.js.map +1 -1
  528. package/build-module/table/index.js +6 -1
  529. package/build-module/table/index.js.map +1 -1
  530. package/build-module/table/save.js +3 -2
  531. package/build-module/table/save.js.map +1 -1
  532. package/build-module/table/state.js.map +1 -1
  533. package/build-module/table-of-contents/edit.js.map +1 -1
  534. package/build-module/tag-cloud/edit.js.map +1 -1
  535. package/build-module/template-part/edit/advanced-controls.js +4 -1
  536. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  537. package/build-module/template-part/edit/index.js.map +1 -1
  538. package/build-module/template-part/edit/utils/hooks.js +4 -1
  539. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  540. package/build-module/template-part/index.js +1 -1
  541. package/build-module/template-part/index.js.map +1 -1
  542. package/build-module/template-part/variations.js +0 -13
  543. package/build-module/template-part/variations.js.map +1 -1
  544. package/build-module/transformationCategories.native.js.map +1 -1
  545. package/build-module/utils/clean-empty-object.js +5 -2
  546. package/build-module/utils/clean-empty-object.js.map +1 -1
  547. package/build-module/video/edit-common-settings.js.map +1 -1
  548. package/build-module/video/edit.js +2 -1
  549. package/build-module/video/edit.js.map +1 -1
  550. package/build-module/video/edit.native.js +42 -1
  551. package/build-module/video/edit.native.js.map +1 -1
  552. package/build-module/video/index.js +6 -1
  553. package/build-module/video/index.js.map +1 -1
  554. package/build-module/video/save.js +2 -1
  555. package/build-module/video/save.js.map +1 -1
  556. package/build-module/video/tracks-editor.js +9 -11
  557. package/build-module/video/tracks-editor.js.map +1 -1
  558. package/build-style/audio/style-rtl.css +0 -3
  559. package/build-style/audio/style.css +0 -3
  560. package/build-style/button/style-rtl.css +5 -5
  561. package/build-style/button/style.css +5 -5
  562. package/build-style/comment-template/style-rtl.css +12 -0
  563. package/build-style/comment-template/style.css +12 -0
  564. package/build-style/common-rtl.css +1 -3
  565. package/build-style/common.css +1 -3
  566. package/build-style/cover/editor-rtl.css +11 -0
  567. package/build-style/cover/editor.css +11 -0
  568. package/build-style/cover/style-rtl.css +1 -2
  569. package/build-style/cover/style.css +1 -2
  570. package/build-style/editor-rtl.css +15 -40
  571. package/build-style/editor.css +15 -40
  572. package/build-style/elements-rtl.css +82 -0
  573. package/build-style/elements.css +82 -0
  574. package/build-style/embed/style-rtl.css +0 -1
  575. package/build-style/embed/style.css +0 -1
  576. package/build-style/file/style-rtl.css +11 -12
  577. package/build-style/file/style.css +11 -12
  578. package/build-style/gallery/style-rtl.css +2 -4
  579. package/build-style/gallery/style.css +2 -4
  580. package/build-style/image/style-rtl.css +0 -3
  581. package/build-style/image/style.css +0 -3
  582. package/build-style/navigation/style-rtl.css +9 -1
  583. package/build-style/navigation/style.css +9 -1
  584. package/build-style/post-comments/style-rtl.css +2 -1
  585. package/build-style/post-comments/style.css +2 -1
  586. package/build-style/post-comments-form/editor-rtl.css +3 -0
  587. package/build-style/post-comments-form/editor.css +3 -0
  588. package/build-style/post-featured-image/editor-rtl.css +0 -27
  589. package/build-style/post-featured-image/editor.css +0 -27
  590. package/build-style/post-template/style-rtl.css +9 -18
  591. package/build-style/post-template/style.css +9 -18
  592. package/build-style/query/editor-rtl.css +1 -1
  593. package/build-style/query/editor.css +1 -1
  594. package/build-style/search/style-rtl.css +9 -11
  595. package/build-style/search/style.css +9 -11
  596. package/build-style/search/theme-rtl.css +5 -0
  597. package/build-style/search/theme.css +5 -0
  598. package/build-style/site-logo/editor-rtl.css +0 -12
  599. package/build-style/site-logo/editor.css +0 -12
  600. package/build-style/style-rtl.css +69 -70
  601. package/build-style/style.css +69 -70
  602. package/build-style/table/style-rtl.css +0 -1
  603. package/build-style/table/style.css +0 -1
  604. package/build-style/theme-rtl.css +5 -0
  605. package/build-style/theme.css +5 -0
  606. package/build-style/video/style-rtl.css +1 -5
  607. package/build-style/video/style.css +1 -5
  608. package/package.json +30 -29
  609. package/src/audio/block.json +6 -1
  610. package/src/audio/edit.js +4 -0
  611. package/src/audio/index.js +1 -2
  612. package/src/audio/save.js +12 -2
  613. package/src/audio/style.scss +0 -2
  614. package/src/avatar/hooks.js +2 -2
  615. package/src/block/edit.js +4 -6
  616. package/src/block/edit.native.js +12 -16
  617. package/src/block/test/edit.native.js +5 -8
  618. package/src/button/deprecated.js +10 -46
  619. package/src/button/edit.js +6 -12
  620. package/src/button/edit.native.js +2 -3
  621. package/src/button/save.js +4 -12
  622. package/src/button/style.scss +10 -5
  623. package/src/buttons/deprecated.js +4 -6
  624. package/src/buttons/edit.js +3 -3
  625. package/src/buttons/edit.native.js +7 -11
  626. package/src/column/deprecated.js +2 -1
  627. package/src/column/edit.js +2 -3
  628. package/src/column/edit.native.js +2 -2
  629. package/src/columns/deprecated.js +4 -2
  630. package/src/columns/edit.js +6 -7
  631. package/src/columns/edit.native.js +12 -16
  632. package/src/columns/index.js +1 -2
  633. package/src/columns/utils.js +5 -3
  634. package/src/columns/variations.js +2 -2
  635. package/src/comment-author-name/block.json +0 -4
  636. package/src/comment-author-name/edit.js +3 -12
  637. package/src/comment-date/block.json +0 -4
  638. package/src/comment-date/edit.js +10 -14
  639. package/src/comment-date/index.php +0 -3
  640. package/src/comment-edit-link/block.json +0 -4
  641. package/src/comment-reply-link/block.json +0 -4
  642. package/src/comment-template/block.json +1 -1
  643. package/src/comment-template/style.scss +14 -0
  644. package/src/comments/block.json +1 -1
  645. package/src/comments/deprecated.js +53 -0
  646. package/src/comments/edit.js +24 -4
  647. package/src/comments/index.js +2 -0
  648. package/src/comments-pagination/block.json +1 -1
  649. package/src/comments-title/block.json +1 -1
  650. package/src/comments-title/deprecated.js +0 -2
  651. package/src/comments-title/edit.js +1 -1
  652. package/src/comments-title/index.php +1 -1
  653. package/src/cover/block.json +1 -0
  654. package/src/cover/controls.native.js +2 -4
  655. package/src/cover/deprecated.js +10 -15
  656. package/src/cover/edit/block-controls.js +15 -40
  657. package/src/cover/edit/cover-placeholder.js +2 -0
  658. package/src/cover/edit/index.js +74 -55
  659. package/src/cover/edit/inspector-controls.js +38 -7
  660. package/src/cover/edit.native.js +8 -13
  661. package/src/cover/editor.scss +13 -0
  662. package/src/cover/index.php +21 -8
  663. package/src/cover/save.js +2 -3
  664. package/src/cover/test/edit.native.js +4 -7
  665. package/src/cover/transforms.js +2 -7
  666. package/src/elements.scss +6 -0
  667. package/src/embed/block.json +6 -1
  668. package/src/embed/edit.js +38 -40
  669. package/src/embed/edit.native.js +46 -49
  670. package/src/embed/embed-controls.native.js +2 -3
  671. package/src/embed/embed-preview.js +8 -1
  672. package/src/embed/icons.js +25 -0
  673. package/src/embed/save.js +10 -2
  674. package/src/embed/style.scss +0 -1
  675. package/src/embed/test/__snapshots__/index.native.js.snap +1 -1
  676. package/src/embed/test/index.native.js +24 -50
  677. package/src/embed/variations.js +10 -0
  678. package/src/file/edit.js +6 -6
  679. package/src/file/edit.native.js +14 -25
  680. package/src/file/index.js +1 -2
  681. package/src/file/save.js +2 -2
  682. package/src/file/style.scss +16 -15
  683. package/src/freeform/editor.scss +0 -2
  684. package/src/gallery/edit.js +16 -27
  685. package/src/gallery/gallery.js +9 -2
  686. package/src/gallery/gallery.native.js +2 -4
  687. package/src/gallery/index.js +2 -4
  688. package/src/gallery/index.php +5 -1
  689. package/src/gallery/save.js +5 -1
  690. package/src/gallery/shared.js +22 -9
  691. package/src/gallery/test/__snapshots__/index.native.js.snap +2 -2
  692. package/src/gallery/test/helpers.native.js +11 -198
  693. package/src/gallery/test/index.native.js +37 -63
  694. package/src/gallery/transforms.js +28 -13
  695. package/src/gallery/use-get-media.js +11 -28
  696. package/src/gallery/v1/edit.js +18 -24
  697. package/src/gallery/v1/gallery-image.js +10 -11
  698. package/src/gallery/v1/gallery-image.native.js +8 -17
  699. package/src/gallery/v1/gallery.js +8 -2
  700. package/src/gallery/v1/save.js +20 -3
  701. package/src/group/block.json +1 -0
  702. package/src/group/edit.js +1 -3
  703. package/src/heading/autogenerate-anchors.js +8 -5
  704. package/src/heading/deprecated.js +6 -21
  705. package/src/heading/edit.js +2 -3
  706. package/src/heading/heading-level-dropdown.js +1 -0
  707. package/src/heading/index.js +8 -2
  708. package/src/html/edit.js +10 -40
  709. package/src/html/preview.js +46 -0
  710. package/src/image/block.json +5 -0
  711. package/src/image/deprecated.js +6 -29
  712. package/src/image/edit.native.js +15 -26
  713. package/src/image/image.js +33 -38
  714. package/src/image/save.js +10 -2
  715. package/src/image/style.scss +0 -2
  716. package/src/image/test/edit.native.js +51 -19
  717. package/src/image/transforms.js +4 -3
  718. package/src/image/utils.js +2 -2
  719. package/src/index.js +1 -1
  720. package/src/latest-comments/edit.js +2 -6
  721. package/src/latest-posts/edit.js +7 -12
  722. package/src/latest-posts/edit.native.js +10 -15
  723. package/src/list/index.js +1 -2
  724. package/src/list/test/migrate.js +1 -2
  725. package/src/list/v2/edit.js +6 -9
  726. package/src/list/v2/transforms.js +22 -7
  727. package/src/list-item/hooks/use-backspace.js +2 -3
  728. package/src/list-item/hooks/use-enter.js +11 -9
  729. package/src/list-item/hooks/use-indent-list-item.js +2 -3
  730. package/src/list-item/hooks/use-outdent-list-item.js +50 -24
  731. package/src/list-item/hooks/use-space.js +2 -3
  732. package/src/media-text/deprecated.js +6 -3
  733. package/src/media-text/edit.native.js +2 -5
  734. package/src/media-text/media-container.js +1 -1
  735. package/src/media-text/media-container.native.js +6 -9
  736. package/src/media-text/save.js +2 -1
  737. package/src/missing/edit.native.js +2 -3
  738. package/src/missing/test/edit-integration.native.js +2 -3
  739. package/src/missing/test/edit.native.js +6 -9
  740. package/src/more/edit.js +9 -11
  741. package/src/navigation/block.json +9 -0
  742. package/src/navigation/deprecated.js +2 -5
  743. package/src/navigation/edit/index.js +25 -36
  744. package/src/navigation/edit/navigation-menu-delete-control.js +2 -3
  745. package/src/navigation/edit/unsaved-inner-blocks.js +31 -30
  746. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -3
  747. package/src/navigation/style.scss +11 -2
  748. package/src/navigation/test/use-navigation-menu.js +241 -0
  749. package/src/navigation/use-navigation-entities.js +11 -13
  750. package/src/navigation/use-navigation-menu.js +95 -82
  751. package/src/navigation/use-template-part-area-label.js +8 -7
  752. package/src/navigation/view.js +6 -1
  753. package/src/navigation-link/edit.js +24 -20
  754. package/src/navigation-link/hooks.js +0 -14
  755. package/src/navigation-link/index.js +1 -1
  756. package/src/navigation-link/test/__snapshots__/hooks.js.snap +0 -93
  757. package/src/navigation-link/test/edit.js +2 -4
  758. package/src/navigation-link/test/hooks.js +0 -12
  759. package/src/navigation-submenu/edit.js +10 -20
  760. package/src/navigation-submenu/view.js +6 -1
  761. package/src/nextpage/edit.js +1 -3
  762. package/src/page-list/convert-to-links-modal.js +51 -54
  763. package/src/page-list/edit.js +9 -11
  764. package/src/page-list/test/convert-to-links-modal.js +6 -12
  765. package/src/paragraph/deprecated.js +2 -2
  766. package/src/pattern/edit.js +2 -4
  767. package/src/post-author/edit.js +2 -3
  768. package/src/post-comments/index.php +1 -1
  769. package/src/post-comments/style.scss +7 -3
  770. package/src/post-comments-form/edit.js +24 -10
  771. package/src/post-comments-form/editor.scss +4 -0
  772. package/src/post-comments-form/form.js +2 -2
  773. package/src/post-comments-form/index.php +1 -1
  774. package/src/post-content/edit.js +2 -3
  775. package/src/post-featured-image/edit.js +14 -30
  776. package/src/post-featured-image/editor.scss +0 -29
  777. package/src/post-featured-image/index.php +4 -2
  778. package/src/post-navigation-link/block.json +4 -0
  779. package/src/post-template/index.php +23 -17
  780. package/src/post-template/style.scss +1 -7
  781. package/src/post-terms/index.js +1 -1
  782. package/src/post-title/block.json +1 -0
  783. package/src/pullquote/deprecated.js +2 -1
  784. package/src/query/edit/index.js +10 -10
  785. package/src/query/edit/inspector-controls/index.js +1 -1
  786. package/src/query/edit/inspector-controls/parent-control.js +2 -3
  787. package/src/query/edit/query-toolbar.js +25 -5
  788. package/src/query/editor.scss +1 -1
  789. package/src/query/index.js +1 -1
  790. package/src/query-no-results/index.php +10 -8
  791. package/src/quote/v2/edit.js +4 -6
  792. package/src/quote/v2/test/migrate.js +1 -2
  793. package/src/search/edit.js +8 -14
  794. package/src/search/edit.native.js +4 -6
  795. package/src/search/index.php +12 -10
  796. package/src/search/style.scss +11 -9
  797. package/src/search/theme.scss +5 -0
  798. package/src/separator/use-deprecated-opacity.js +2 -4
  799. package/src/shortcode/edit.native.js +4 -3
  800. package/src/shortcode/test/edit.native.js +2 -5
  801. package/src/site-logo/edit.js +5 -28
  802. package/src/site-logo/editor.scss +0 -14
  803. package/src/site-title/edit/level-toolbar.js +1 -0
  804. package/src/social-link/index.php +16 -0
  805. package/src/social-links/deprecated.js +4 -2
  806. package/src/social-links/edit.native.js +3 -5
  807. package/src/spacer/controls.js +2 -3
  808. package/src/spacer/test/index.native.js +10 -21
  809. package/src/style.scss +1 -0
  810. package/src/table/block.json +6 -1
  811. package/src/table/deprecated.js +4 -8
  812. package/src/table/edit.js +2 -0
  813. package/src/table/save.js +6 -1
  814. package/src/table/state.js +2 -4
  815. package/src/table/style.scss +0 -1
  816. package/src/table-of-contents/edit.js +6 -10
  817. package/src/tag-cloud/edit.js +4 -7
  818. package/src/template-part/edit/advanced-controls.js +4 -4
  819. package/src/template-part/edit/index.js +6 -10
  820. package/src/template-part/edit/utils/hooks.js +8 -7
  821. package/src/template-part/index.js +1 -1
  822. package/src/template-part/variations.js +0 -11
  823. package/src/transformationCategories.native.js +3 -3
  824. package/src/utils/clean-empty-object.js +8 -2
  825. package/src/video/block.json +6 -1
  826. package/src/video/edit-common-settings.js +2 -8
  827. package/src/video/edit.js +4 -0
  828. package/src/video/edit.native.js +38 -16
  829. package/src/video/index.js +1 -2
  830. package/src/video/save.js +10 -2
  831. package/src/video/style.scss +0 -2
  832. package/src/video/tracks-editor.js +1 -1
  833. package/build/gallery/use-short-code-transform.js +0 -64
  834. package/build/gallery/use-short-code-transform.js.map +0 -1
  835. package/build/navigation-link/fallback-variations.js +0 -75
  836. package/build/navigation-link/fallback-variations.js.map +0 -1
  837. package/build/template-part/fallback-variations.js +0 -59
  838. package/build/template-part/fallback-variations.js.map +0 -1
  839. package/build-module/gallery/use-short-code-transform.js +0 -54
  840. package/build-module/gallery/use-short-code-transform.js.map +0 -1
  841. package/build-module/navigation-link/fallback-variations.js +0 -65
  842. package/build-module/navigation-link/fallback-variations.js.map +0 -1
  843. package/build-module/template-part/fallback-variations.js +0 -47
  844. package/build-module/template-part/fallback-variations.js.map +0 -1
  845. package/src/gallery/use-short-code-transform.js +0 -55
  846. package/src/navigation-link/fallback-variations.js +0 -65
  847. package/src/template-part/fallback-variations.js +0 -51
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","id","selectBlock","CREATE_NAVIGATION_MENU_ERROR","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","blockEditorStore","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","class","slug","__unstableIsDisabled","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","focus","resetToEmptyBlock","batch","undefined","isResponsive","overlayMenuPreviewClasses","open","stylingInspectorControls","onChange","label","hasUnsavedBlocks","post","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\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 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, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [\n\t\tshowNavigationMenuCreateNotice,\n\t\thideNavigationMenuCreateNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/create',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\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\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks = !! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\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\t// Attempt to retrieve and prioritize any existing navigation menu unless\n\t// a specific ref is allocated or the user is explicitly creating a new menu. The aim is\n\t// for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length ||\n\t\t\tnavigationMenus?.length > 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t\tvalue: classicMenuConversionResult,\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\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\t{\n\t\t\tref: navRef,\n\t\t\tclassName: classnames( className, {\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'color',\n\t\t\t\t\ttextColor?.slug\n\t\t\t\t) ]: !! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\t! backgroundColor?.slug && backgroundColor?.color,\n\t\t\t},\n\t\t},\n\t\t{ __unstableIsDisabled: hasBlockOverlay }\n\t);\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif (\n\t\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&\n\t\t\tclassicMenuConversionResult\n\t\t) {\n\t\t\thandleUpdateMenu( classicMenuConversionResult?.id );\n\t\t\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionResult,\n\t\tclassicMenuConversionError,\n\t] );\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\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantCreateNotice();\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst navigationSelectorRef = useRef();\n\tconst [\n\t\tshouldFocusNavigationSelector,\n\t\tsetShouldFocusNavigationSelector,\n\t] = useState( false );\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu = navPostOrClassicMenu.hasOwnProperty(\n\t\t\t\t'auto_add'\n\t\t\t);\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\n\n\t// Focus support after menu selection.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisDraftNavigationMenu ||\n\t\t\t! isEntityAvailable ||\n\t\t\t! shouldFocusNavigationSelector\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnavigationSelectorRef?.current?.focus();\n\t\tsetShouldFocusNavigationSelector( false );\n\t}, [\n\t\tisDraftNavigationMenu,\n\t\tisEntityAvailable,\n\t\tshouldFocusNavigationSelector,\n\t] );\n\n\tconst resetToEmptyBlock = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\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<Button\n\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOverlayMenuPreview( ! overlayMenuPreview );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t{ ! hasIcon && <span>{ __( 'Menu' ) }</span> }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ hasIcon }\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{ 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\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuCreateNotice(\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<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ resetToEmptyBlock } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\tif ( isPlaceholder ) {\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\tonFinish={ handleSelectNavigation }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\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>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelectNavigation }\n\t\t\t\t\t\t\t\tonCreateNew={ resetToEmptyBlock }\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\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\tresetToEmptyBlock();\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuDeleteNotice(\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\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\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":["EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","id","selectBlock","CREATE_NAVIGATION_MENU_ERROR","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","blockEditorStore","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","hasBlockOverlay","blockProps","class","slug","__unstableIsDisabled","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","focus","resetToEmptyBlock","batch","undefined","isResponsive","overlayMenuPreviewClasses","open","stylingInspectorControls","onChange","label","hasUnsavedBlocks","post","PlaceholderComponent","Placeholder","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalUseBlockOverlayActive as useBlockOverlayActive,\n} from '@wordpress/block-editor';\nimport { EntityProvider } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\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 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, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor =\n\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor =\n\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = ( postId ) => {\n\t\tsetAttributes( { ref: postId } );\n\t};\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [ showNavigationMenuCreateNotice, hideNavigationMenuCreateNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/create',\n\t\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\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\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks =\n\t\t\t\t!! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ 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\t// Attempt to retrieve and prioritize any existing navigation menu unless\n\t// a specific ref is allocated or the user is explicitly creating a new menu. The aim is\n\t// for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length ||\n\t\t\tnavigationMenus?.length > 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t\tvalue: classicMenuConversionResult,\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\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\t{\n\t\t\tref: navRef,\n\t\t\tclassName: classnames( className, {\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\t! backgroundColor?.slug && backgroundColor?.color,\n\t\t\t},\n\t\t},\n\t\t{ __unstableIsDisabled: hasBlockOverlay }\n\t);\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t!! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif (\n\t\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&\n\t\t\tclassicMenuConversionResult\n\t\t) {\n\t\t\thandleUpdateMenu( classicMenuConversionResult?.id );\n\t\t\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionResult,\n\t\tclassicMenuConversionError,\n\t] );\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\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantCreateNotice();\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst navigationSelectorRef = useRef();\n\tconst [ shouldFocusNavigationSelector, setShouldFocusNavigationSelector ] =\n\t\tuseState( false );\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu =\n\t\t\t\tnavPostOrClassicMenu.hasOwnProperty( 'auto_add' );\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\n\n\t// Focus support after menu selection.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisDraftNavigationMenu ||\n\t\t\t! isEntityAvailable ||\n\t\t\t! shouldFocusNavigationSelector\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnavigationSelectorRef?.current?.focus();\n\t\tsetShouldFocusNavigationSelector( false );\n\t}, [\n\t\tisDraftNavigationMenu,\n\t\tisEntityAvailable,\n\t\tshouldFocusNavigationSelector,\n\t] );\n\n\tconst resetToEmptyBlock = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\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<Button\n\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOverlayMenuPreview( ! overlayMenuPreview );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t{ ! hasIcon && <span>{ __( 'Menu' ) }</span> }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ hasIcon }\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{ 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\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuCreateNotice(\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<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ resetToEmptyBlock } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\tif ( isPlaceholder ) {\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\tonFinish={ handleSelectNavigation }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\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>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelectNavigation }\n\t\t\t\t\t\t\t\tonCreateNew={ resetToEmptyBlock }\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\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\tresetToEmptyBlock();\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuDeleteNotice(\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\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\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 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-delete-control.js"],"names":["NavigationMenuDeleteControl","onDelete","isConfirmModalVisible","setIsConfirmModalVisible","id","title","deleteEntityRecord","coreStore","force"],"mappings":";;;;;;;AAUA;;AAPA;;AACA;;AAKA;;AAEA;;AAXA;AACA;AACA;AAWe,SAASA,2BAAT,OAAqD;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnE,QAAM,CAAEC,qBAAF,EAAyBC,wBAAzB,IAAsD,uBAC3D,KAD2D,CAA5D;AAGA,QAAMC,EAAE,GAAG,2BAAa,UAAb,EAAyB,eAAzB,CAAX;AACA,QAAM,CAAEC,KAAF,IAAY,6BAAe,UAAf,EAA2B,eAA3B,EAA4C,OAA5C,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaC,eAAb,CAA/B;AAEA,SACC,qDACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,wCADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,aAAa,MAHd;AAIC,IAAA,OAAO,EAAG,MAAM;AACfJ,MAAAA,wBAAwB,CAAE,IAAF,CAAxB;AACA;AANF,KAQG,cAAI,aAAJ,CARH,CADD,EAWGD,qBAAqB,IACtB,4BAAC,iBAAD;AACC,IAAA,KAAK,EAAG;AACP;AACA,kBAAI,WAAJ,CAFO,EAGPG,KAHO,CADT;AAMC,IAAA,UAAU,EAAG,cAAI,QAAJ,CANd;AAOC,IAAA,cAAc,EAAG,MAAMF,wBAAwB,CAAE,KAAF;AAPhD,KASC,uCACG,cACD,uDADC,CADH,CATD,EAcC,4BAAC,gBAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KACC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,WADT;AAEC,IAAA,OAAO,EAAG,MAAM;AACfA,MAAAA,wBAAwB,CAAE,KAAF,CAAxB;AACA;AAJF,KAMG,cAAI,QAAJ,CANH,CADD,CADD,EAWC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,OAAO,EAAG,MAAM;AACfG,MAAAA,kBAAkB,CACjB,UADiB,EAEjB,eAFiB,EAGjBF,EAHiB,EAIjB;AAAEI,QAAAA,KAAK,EAAE;AAAT,OAJiB,CAAlB;AAMAP,MAAAA,QAAQ,CAAEI,KAAF,CAAR;AACA;AAVF,KAYG,cAAI,SAAJ,CAZH,CADD,CAXD,CAdD,CAZF,CADD;AA2DA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem, Modal } from '@wordpress/components';\nimport {\n\tstore as coreStore,\n\tuseEntityId,\n\tuseEntityProp,\n} from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmModalVisible, setIsConfirmModalVisible ] = useState(\n\t\tfalse\n\t);\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst [ title ] = useEntityProp( 'postType', 'wp_navigation', 'title' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmModalVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: the name of a menu to delete */\n\t\t\t\t\t\t__( 'Delete %s' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\t\t\tonRequestClose={ () => setIsConfirmModalVisible( false ) }\n\t\t\t\t>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Are you sure you want to delete this navigation menu?'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsConfirmModalVisible( false );\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{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\t'wp_navigation',\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t{ force: true }\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonDelete( title );\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{ __( 'Confirm' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-delete-control.js"],"names":["NavigationMenuDeleteControl","onDelete","isConfirmModalVisible","setIsConfirmModalVisible","id","title","deleteEntityRecord","coreStore","force"],"mappings":";;;;;;;AAUA;;AAPA;;AACA;;AAKA;;AAEA;;AAXA;AACA;AACA;AAWe,SAASA,2BAAT,OAAqD;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnE,QAAM,CAAEC,qBAAF,EAAyBC,wBAAzB,IACL,uBAAU,KAAV,CADD;AAEA,QAAMC,EAAE,GAAG,2BAAa,UAAb,EAAyB,eAAzB,CAAX;AACA,QAAM,CAAEC,KAAF,IAAY,6BAAe,UAAf,EAA2B,eAA3B,EAA4C,OAA5C,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaC,eAAb,CAA/B;AAEA,SACC,qDACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,wCADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,aAAa,MAHd;AAIC,IAAA,OAAO,EAAG,MAAM;AACfJ,MAAAA,wBAAwB,CAAE,IAAF,CAAxB;AACA;AANF,KAQG,cAAI,aAAJ,CARH,CADD,EAWGD,qBAAqB,IACtB,4BAAC,iBAAD;AACC,IAAA,KAAK,EAAG;AACP;AACA,kBAAI,WAAJ,CAFO,EAGPG,KAHO,CADT;AAMC,IAAA,UAAU,EAAG,cAAI,QAAJ,CANd;AAOC,IAAA,cAAc,EAAG,MAAMF,wBAAwB,CAAE,KAAF;AAPhD,KASC,uCACG,cACD,uDADC,CADH,CATD,EAcC,4BAAC,gBAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KACC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,WADT;AAEC,IAAA,OAAO,EAAG,MAAM;AACfA,MAAAA,wBAAwB,CAAE,KAAF,CAAxB;AACA;AAJF,KAMG,cAAI,QAAJ,CANH,CADD,CADD,EAWC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,OAAO,EAAG,MAAM;AACfG,MAAAA,kBAAkB,CACjB,UADiB,EAEjB,eAFiB,EAGjBF,EAHiB,EAIjB;AAAEI,QAAAA,KAAK,EAAE;AAAT,OAJiB,CAAlB;AAMAP,MAAAA,QAAQ,CAAEI,KAAF,CAAR;AACA;AAVF,KAYG,cAAI,SAAJ,CAZH,CADD,CAXD,CAdD,CAZF,CADD;AA2DA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem, Modal } from '@wordpress/components';\nimport {\n\tstore as coreStore,\n\tuseEntityId,\n\tuseEntityProp,\n} from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmModalVisible, setIsConfirmModalVisible ] =\n\t\tuseState( false );\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst [ title ] = useEntityProp( 'postType', 'wp_navigation', 'title' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmModalVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: the name of a menu to delete */\n\t\t\t\t\t\t__( 'Delete %s' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\t\t\tonRequestClose={ () => setIsConfirmModalVisible( false ) }\n\t\t\t\t>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Are you sure you want to delete this navigation menu?'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsConfirmModalVisible( false );\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{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\t'wp_navigation',\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t{ force: true }\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonDelete( title );\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{ __( 'Confirm' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["EMPTY_OBJECT","DRAFT_MENU_PARAMS","status","per_page","DEFAULT_BLOCK","name","ALLOWED_BLOCKS","UnsavedInnerBlocks","blockProps","blocks","clientId","hasSavedUnsavedInnerBlocks","onSave","hasSelection","originalBlocks","current","innerBlocksAreDirty","shouldDirectInsert","every","isDisabled","Disabled","Context","savingLock","innerBlocksProps","renderAppender","undefined","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","isSaving","draftNavigationMenus","hasResolvedDraftNavigationMenus","select","getEntityRecords","hasFinishedResolution","isSavingEntityRecord","coreStore","hasResolvedNavigationMenus","navigationMenus","create","createNavigationMenu","then","menu","Wrapper"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nconst EMPTY_OBJECT = {};\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\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\nexport default function UnsavedInnerBlocks( {\n\tblockProps,\n\tblocks,\n\tclientId,\n\thasSavedUnsavedInnerBlocks,\n\tonSave,\n\thasSelection,\n} ) {\n\tconst originalBlocks = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocks?.current ) {\n\t\t\toriginalBlocks.current = blocks;\n\t\t}\n\t}, [ blocks ] );\n\n\t// If the current inner blocks object is different in any way\n\t// from the original inner blocks from the post content then the\n\t// user has made changes to the inner blocks. At this point the inner\n\t// blocks can be considered \"dirty\".\n\tconst innerBlocksAreDirty = blocks !== originalBlocks.current;\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// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\tconst savingLock = useRef( false );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: hasSelection ? undefined : false,\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t} );\n\n\tconst {\n\t\tisSaving,\n\t\tdraftNavigationMenus,\n\t\thasResolvedDraftNavigationMenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isDisabled ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tisSavingEntityRecord,\n\t\t\t} = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tisSaving: isSavingEntityRecord( 'postType', 'wp_navigation' ),\n\t\t\t\tdraftNavigationMenus: getEntityRecords( ...DRAFT_MENU_PARAMS ),\n\t\t\t\thasResolvedDraftNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tDRAFT_MENU_PARAMS\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ isDisabled ]\n\t);\n\n\tconst { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();\n\n\tconst { create: createNavigationMenu } = useCreateNavigationMenu(\n\t\tclientId\n\t);\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\thasSavedUnsavedInnerBlocks ||\n\t\t\tisSaving ||\n\t\t\tsavingLock.current ||\n\t\t\t! hasResolvedDraftNavigationMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\t! hasSelection ||\n\t\t\t! innerBlocksAreDirty\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsavingLock.current = true;\n\t\tcreateNavigationMenu( null, blocks ).then( ( menu ) => {\n\t\t\tonSave( menu );\n\t\t\tsavingLock.current = false;\n\t\t} );\n\t}, [\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedDraftNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tdraftNavigationMenus,\n\t\tnavigationMenus,\n\t\thasSelection,\n\t\tcreateNavigationMenu,\n\t\tblocks,\n\t] );\n\n\tconst Wrapper = isSaving ? Disabled : 'div';\n\n\treturn (\n\t\t<Wrapper className=\"wp-block-navigation__unsaved-changes\">\n\t\t\t<div\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-navigation__unsaved-changes-overlay',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t\t{ isSaving && <Spinner /> }\n\t\t</Wrapper>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["EMPTY_OBJECT","DRAFT_MENU_PARAMS","status","per_page","DEFAULT_BLOCK","name","ALLOWED_BLOCKS","UnsavedInnerBlocks","blockProps","blocks","clientId","hasSavedUnsavedInnerBlocks","onSave","hasSelection","originalBlocks","current","innerBlocksAreDirty","shouldDirectInsert","every","isDisabled","Disabled","Context","savingLock","innerBlocksProps","renderAppender","undefined","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","isSaving","draftNavigationMenus","hasResolvedDraftNavigationMenus","select","getEntityRecords","hasFinishedResolution","isSavingEntityRecord","coreStore","hasResolvedNavigationMenus","navigationMenus","create","createNavigationMenu","then","menu","Wrapper"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nconst EMPTY_OBJECT = {};\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\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\nexport default function UnsavedInnerBlocks( {\n\tblockProps,\n\tblocks,\n\tclientId,\n\thasSavedUnsavedInnerBlocks,\n\tonSave,\n\thasSelection,\n} ) {\n\tconst originalBlocks = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocks?.current ) {\n\t\t\toriginalBlocks.current = blocks;\n\t\t}\n\t}, [ blocks ] );\n\n\t// If the current inner blocks object is different in any way\n\t// from the original inner blocks from the post content then the\n\t// user has made changes to the inner blocks. At this point the inner\n\t// blocks can be considered \"dirty\".\n\tconst innerBlocksAreDirty = blocks !== originalBlocks.current;\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// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\tconst savingLock = useRef( false );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: hasSelection ? undefined : false,\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t} );\n\n\tconst { isSaving, draftNavigationMenus, hasResolvedDraftNavigationMenus } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tif ( isDisabled ) {\n\t\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t\t}\n\n\t\t\t\tconst {\n\t\t\t\t\tgetEntityRecords,\n\t\t\t\t\thasFinishedResolution,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\n\t\t\t\treturn {\n\t\t\t\t\tisSaving: isSavingEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_navigation'\n\t\t\t\t\t),\n\t\t\t\t\tdraftNavigationMenus: getEntityRecords(\n\t\t\t\t\t\t...DRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t\thasResolvedDraftNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t\tDRAFT_MENU_PARAMS\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ isDisabled ]\n\t\t);\n\n\tconst { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();\n\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\thasSavedUnsavedInnerBlocks ||\n\t\t\tisSaving ||\n\t\t\tsavingLock.current ||\n\t\t\t! hasResolvedDraftNavigationMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\t! hasSelection ||\n\t\t\t! innerBlocksAreDirty\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsavingLock.current = true;\n\t\tcreateNavigationMenu( null, blocks ).then( ( menu ) => {\n\t\t\tonSave( menu );\n\t\t\tsavingLock.current = false;\n\t\t} );\n\t}, [\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedDraftNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tdraftNavigationMenus,\n\t\tnavigationMenus,\n\t\thasSelection,\n\t\tcreateNavigationMenu,\n\t\tblocks,\n\t] );\n\n\tconst Wrapper = isSaving ? Disabled : 'div';\n\n\treturn (\n\t\t<Wrapper className=\"wp-block-navigation__unsaved-changes\">\n\t\t\t<div\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-navigation__unsaved-changes-overlay',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t\t{ isSaving && <Spinner /> }\n\t\t</Wrapper>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","useConvertClassicToBlockMenu","clientId","create","createNavigationMenu","registry","status","setStatus","value","setValue","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","navigationMenu","classicMenuItems","resolveSelect","coreStore","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","convert","then","navMenu","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\nfunction useConvertClassicToBlockMenu( clientId ) {\n\tconst { create: createNavigationMenu } = useCreateNavigationMenu(\n\t\tclientId\n\t);\n\tconst registry = useRegistry();\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ value, setValue ] = useState( null );\n\tconst [ error, setError ] = useState( null );\n\n\tasync function convertClassicMenuToBlockMenu( menuId, menuName ) {\n\t\tlet navigationMenu;\n\t\tlet classicMenuItems;\n\n\t\t// 1. Fetch the classic Menu items.\n\t\ttry {\n\t\t\tclassicMenuItems = await registry\n\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t.getMenuItems( {\n\t\t\t\t\tmenus: menuId,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t} );\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Handle offline response which resolves to `null`.\n\t\tif ( classicMenuItems === null ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// 2. Convert the classic items into blocks.\n\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\ttry {\n\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\tmenuName,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn navigationMenu;\n\t}\n\n\tconst convert = useCallback(\n\t\t( menuId, menuName ) => {\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetValue( null );\n\t\t\tsetError( null );\n\n\t\t\tconvertClassicMenuToBlockMenu( menuId, menuName )\n\t\t\t\t.then( ( navMenu ) => {\n\t\t\t\t\tsetValue( navMenu );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\tvalue,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js"],"names":["CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","CLASSIC_MENU_CONVERSION_IDLE","useConvertClassicToBlockMenu","clientId","create","createNavigationMenu","registry","status","setStatus","value","setValue","error","setError","convertClassicMenuToBlockMenu","menuId","menuName","navigationMenu","classicMenuItems","resolveSelect","coreStore","getMenuItems","menus","per_page","context","err","Error","cause","innerBlocks","convert","then","navMenu","catch","message"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\nfunction useConvertClassicToBlockMenu( clientId ) {\n\tconst { create: createNavigationMenu } =\n\t\tuseCreateNavigationMenu( clientId );\n\tconst registry = useRegistry();\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ value, setValue ] = useState( null );\n\tconst [ error, setError ] = useState( null );\n\n\tasync function convertClassicMenuToBlockMenu( menuId, menuName ) {\n\t\tlet navigationMenu;\n\t\tlet classicMenuItems;\n\n\t\t// 1. Fetch the classic Menu items.\n\t\ttry {\n\t\t\tclassicMenuItems = await registry\n\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t.getMenuItems( {\n\t\t\t\t\tmenus: menuId,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t} );\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// Handle offline response which resolves to `null`.\n\t\tif ( classicMenuItems === null ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\tmenuName\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// 2. Convert the classic items into blocks.\n\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\ttry {\n\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\tmenuName,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\t\t} catch ( err ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\tmenuName\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn navigationMenu;\n\t}\n\n\tconst convert = useCallback(\n\t\t( menuId, menuName ) => {\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetValue( null );\n\t\t\tsetError( null );\n\n\t\t\tconvertClassicMenuToBlockMenu( menuId, menuName )\n\t\t\t\t.then( ( navMenu ) => {\n\t\t\t\t\tsetValue( navMenu );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\tvalue,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n"]}
@@ -140,6 +140,15 @@ const metadata = {
140
140
  "default": {
141
141
  type: "flex"
142
142
  }
143
+ },
144
+ __experimentalStyle: {
145
+ elements: {
146
+ link: {
147
+ color: {
148
+ text: "inherit"
149
+ }
150
+ }
151
+ }
143
152
  }
144
153
  },
145
154
  viewScript: ["file:./view.min.js", "file:./view-modal.min.js"],
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,iBADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,MAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,OAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,SAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBC,EAAAA,IAAI,EAAJA,aA9BuB;AA+BvBC,EAAAA,IAAI,EAAJA,aA/BuB;AAgCvBC,EAAAA,UAAU,EAAVA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,iBADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,MAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,OAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,SAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBC,EAAAA,IAAI,EAAJA,aA9BuB;AA+BvBC,EAAAA,IAAI,EAAJA,aA/BuB;AAgCvBC,EAAAA,UAAU,EAAVA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-entities.js"],"names":["useNavigationEntities","menuId","records","menus","isResolving","isResolvingMenus","hasResolved","hasResolvedMenus","per_page","context","pages","isResolvingPages","hasResolvedPages","parent","order","orderby","menuItems","hasResolvedMenuItems","enabled","hasPages","length","hasMenus"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,qBAAT,CAAgCC,MAAhC,EAAyC;AACvD,QAAM;AACLC,IAAAA,OAAO,EAAEC,KADJ;AAELC,IAAAA,WAAW,EAAEC,gBAFR;AAGLC,IAAAA,WAAW,EAAEC;AAHR,MAIF,gCAAkB,MAAlB,EAA0B,MAA1B,EAAkC;AAAEC,IAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBC,IAAAA,OAAO,EAAE;AAAzB,GAAlC,CAJJ;AAMA,QAAM;AACLP,IAAAA,OAAO,EAAEQ,KADJ;AAELN,IAAAA,WAAW,EAAEO,gBAFR;AAGLL,IAAAA,WAAW,EAAEM;AAHR,MAIF,gCAAkB,UAAlB,EAA8B,MAA9B,EAAsC;AACzCC,IAAAA,MAAM,EAAE,CADiC;AAEzCC,IAAAA,KAAK,EAAE,KAFkC;AAGzCC,IAAAA,OAAO,EAAE,IAHgC;AAIzCP,IAAAA,QAAQ,EAAE,CAAC,CAJ8B;AAKzCC,IAAAA,OAAO,EAAE;AALgC,GAAtC,CAJJ;AAYA,QAAM;AACLP,IAAAA,OAAO,EAAEc,SADJ;AAELV,IAAAA,WAAW,EAAEW;AAFR,MAGF,gCACH,MADG,EAEH,UAFG,EAGH;AACCd,IAAAA,KAAK,EAAEF,MADR;AAECO,IAAAA,QAAQ,EAAE,CAAC,CAFZ;AAGCC,IAAAA,OAAO,EAAE;AAHV,GAHG,EAQH;AAAES,IAAAA,OAAO,EAAE,CAAC,CAAEjB;AAAd,GARG,CAHJ;AAcA,SAAO;AACNS,IAAAA,KADM;AAENC,IAAAA,gBAFM;AAGNC,IAAAA,gBAHM;AAINO,IAAAA,QAAQ,EAAE,CAAC,EAAIP,gBAAgB,IAAIF,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEU,MAA/B,CAJL;AAMNjB,IAAAA,KANM;AAONE,IAAAA,gBAPM;AAQNE,IAAAA,gBARM;AASNc,IAAAA,QAAQ,EAAE,CAAC,EAAId,gBAAgB,IAAIJ,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEiB,MAA/B,CATL;AAWNJ,IAAAA,SAXM;AAYNC,IAAAA;AAZM,GAAP;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * @typedef {Object} NavigationEntitiesData\n * @property {Array|undefined} pages - a collection of WP Post entity objects of post type \"Page\".\n * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving.\n * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving.\n * @property {Array|undefined} menus - a collection of Menu entity objects.\n * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving.\n * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving.\n * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId.\n * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.\n * @property {boolean} hasPages - indicates whether there is currently any data for pages.\n * @property {boolean} hasMenus - indicates whether there is currently any data for menus.\n */\n\n/**\n * Manages fetching and resolution state for all entities required\n * for the Navigation block.\n *\n * @param {number} menuId the menu for which to retrieve menuItem data.\n * @return { NavigationEntitiesData } the entity data.\n */\nexport default function useNavigationEntities( menuId ) {\n\tconst {\n\t\trecords: menus,\n\t\tisResolving: isResolvingMenus,\n\t\thasResolved: hasResolvedMenus,\n\t} = useEntityRecords( 'root', 'menu', { per_page: -1, context: 'view' } );\n\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isResolvingPages,\n\t\thasResolved: hasResolvedPages,\n\t} = useEntityRecords( 'postType', 'page', {\n\t\tparent: 0,\n\t\torder: 'asc',\n\t\torderby: 'id',\n\t\tper_page: -1,\n\t\tcontext: 'view',\n\t} );\n\n\tconst {\n\t\trecords: menuItems,\n\t\thasResolved: hasResolvedMenuItems,\n\t} = useEntityRecords(\n\t\t'root',\n\t\t'menuItem',\n\t\t{\n\t\t\tmenus: menuId,\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t},\n\t\t{ enabled: !! menuId }\n\t);\n\n\treturn {\n\t\tpages,\n\t\tisResolvingPages,\n\t\thasResolvedPages,\n\t\thasPages: !! ( hasResolvedPages && pages?.length ),\n\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasResolvedMenus,\n\t\thasMenus: !! ( hasResolvedMenus && menus?.length ),\n\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-entities.js"],"names":["useNavigationEntities","menuId","records","menus","isResolving","isResolvingMenus","hasResolved","hasResolvedMenus","per_page","context","pages","isResolvingPages","hasResolvedPages","parent","order","orderby","menuItems","hasResolvedMenuItems","enabled","hasPages","length","hasMenus"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,qBAAT,CAAgCC,MAAhC,EAAyC;AACvD,QAAM;AACLC,IAAAA,OAAO,EAAEC,KADJ;AAELC,IAAAA,WAAW,EAAEC,gBAFR;AAGLC,IAAAA,WAAW,EAAEC;AAHR,MAIF,gCAAkB,MAAlB,EAA0B,MAA1B,EAAkC;AAAEC,IAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBC,IAAAA,OAAO,EAAE;AAAzB,GAAlC,CAJJ;AAMA,QAAM;AACLP,IAAAA,OAAO,EAAEQ,KADJ;AAELN,IAAAA,WAAW,EAAEO,gBAFR;AAGLL,IAAAA,WAAW,EAAEM;AAHR,MAIF,gCAAkB,UAAlB,EAA8B,MAA9B,EAAsC;AACzCC,IAAAA,MAAM,EAAE,CADiC;AAEzCC,IAAAA,KAAK,EAAE,KAFkC;AAGzCC,IAAAA,OAAO,EAAE,IAHgC;AAIzCP,IAAAA,QAAQ,EAAE,CAAC,CAJ8B;AAKzCC,IAAAA,OAAO,EAAE;AALgC,GAAtC,CAJJ;AAYA,QAAM;AAAEP,IAAAA,OAAO,EAAEc,SAAX;AAAsBV,IAAAA,WAAW,EAAEW;AAAnC,MACL,gCACC,MADD,EAEC,UAFD,EAGC;AACCd,IAAAA,KAAK,EAAEF,MADR;AAECO,IAAAA,QAAQ,EAAE,CAAC,CAFZ;AAGCC,IAAAA,OAAO,EAAE;AAHV,GAHD,EAQC;AAAES,IAAAA,OAAO,EAAE,CAAC,CAAEjB;AAAd,GARD,CADD;AAYA,SAAO;AACNS,IAAAA,KADM;AAENC,IAAAA,gBAFM;AAGNC,IAAAA,gBAHM;AAINO,IAAAA,QAAQ,EAAE,CAAC,EAAIP,gBAAgB,IAAIF,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEU,MAA/B,CAJL;AAMNjB,IAAAA,KANM;AAONE,IAAAA,gBAPM;AAQNE,IAAAA,gBARM;AASNc,IAAAA,QAAQ,EAAE,CAAC,EAAId,gBAAgB,IAAIJ,KAAJ,aAAIA,KAAJ,eAAIA,KAAK,CAAEiB,MAA/B,CATL;AAWNJ,IAAAA,SAXM;AAYNC,IAAAA;AAZM,GAAP;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * @typedef {Object} NavigationEntitiesData\n * @property {Array|undefined} pages - a collection of WP Post entity objects of post type \"Page\".\n * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving.\n * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving.\n * @property {Array|undefined} menus - a collection of Menu entity objects.\n * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving.\n * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving.\n * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId.\n * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.\n * @property {boolean} hasPages - indicates whether there is currently any data for pages.\n * @property {boolean} hasMenus - indicates whether there is currently any data for menus.\n */\n\n/**\n * Manages fetching and resolution state for all entities required\n * for the Navigation block.\n *\n * @param {number} menuId the menu for which to retrieve menuItem data.\n * @return { NavigationEntitiesData } the entity data.\n */\nexport default function useNavigationEntities( menuId ) {\n\tconst {\n\t\trecords: menus,\n\t\tisResolving: isResolvingMenus,\n\t\thasResolved: hasResolvedMenus,\n\t} = useEntityRecords( 'root', 'menu', { per_page: -1, context: 'view' } );\n\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isResolvingPages,\n\t\thasResolved: hasResolvedPages,\n\t} = useEntityRecords( 'postType', 'page', {\n\t\tparent: 0,\n\t\torder: 'asc',\n\t\torderby: 'id',\n\t\tper_page: -1,\n\t\tcontext: 'view',\n\t} );\n\n\tconst { records: menuItems, hasResolved: hasResolvedMenuItems } =\n\t\tuseEntityRecords(\n\t\t\t'root',\n\t\t\t'menuItem',\n\t\t\t{\n\t\t\t\tmenus: menuId,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t},\n\t\t\t{ enabled: !! menuId }\n\t\t);\n\n\treturn {\n\t\tpages,\n\t\tisResolvingPages,\n\t\thasResolvedPages,\n\t\thasPages: !! ( hasResolvedPages && pages?.length ),\n\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasResolvedMenus,\n\t\thasMenus: !! ( hasResolvedMenus && menus?.length ),\n\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t};\n}\n"]}
@@ -13,49 +13,83 @@ var _data = require("@wordpress/data");
13
13
  * WordPress dependencies
14
14
  */
15
15
  function useNavigationMenu(ref) {
16
+ const permissions = (0, _coreData.__experimentalUseResourcePermissions)('navigation', ref);
16
17
  return (0, _data.useSelect)(select => {
17
- var _navigationMenu;
18
-
18
+ const [hasResolvedPermissions, {
19
+ canCreate,
20
+ canUpdate,
21
+ canDelete,
22
+ isResolving
23
+ }] = permissions;
19
24
  const {
20
- getEntityRecord,
21
- getEditedEntityRecord,
22
- getEntityRecords,
23
- hasFinishedResolution,
24
- isResolving,
25
- canUser
26
- } = select(_coreData.store);
27
- const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref];
28
- const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null;
29
- let navigationMenu = ref ? getEditedEntityRecord(...navigationMenuSingleArgs) : null; // getEditedEntityRecord will return the post regardless of status.
30
- // Therefore if the found post is not published then we should ignore it.
25
+ navigationMenus,
26
+ isResolvingNavigationMenus,
27
+ hasResolvedNavigationMenus
28
+ } = selectNavigationMenus(select, ref);
29
+ const {
30
+ navigationMenu,
31
+ isNavigationMenuResolved,
32
+ isNavigationMenuMissing
33
+ } = selectExistingMenu(select, ref);
34
+ return {
35
+ navigationMenus,
36
+ isResolvingNavigationMenus,
37
+ hasResolvedNavigationMenus,
38
+ navigationMenu,
39
+ isNavigationMenuResolved,
40
+ isNavigationMenuMissing,
41
+ canSwitchNavigationMenu: ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0,
42
+ canUserCreateNavigationMenu: canCreate,
43
+ isResolvingCanUserCreateNavigationMenu: isResolving,
44
+ hasResolvedCanUserCreateNavigationMenu: hasResolvedPermissions,
45
+ canUserUpdateNavigationMenu: canUpdate,
46
+ hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
47
+ canUserDeleteNavigationMenu: canDelete,
48
+ hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
49
+ };
50
+ }, [ref, permissions]);
51
+ }
31
52
 
32
- if (((_navigationMenu = navigationMenu) === null || _navigationMenu === void 0 ? void 0 : _navigationMenu.status) !== 'publish') {
33
- navigationMenu = null;
34
- }
53
+ function selectNavigationMenus(select) {
54
+ const {
55
+ getEntityRecords,
56
+ hasFinishedResolution,
57
+ isResolving
58
+ } = select(_coreData.store);
59
+ const args = ['postType', 'wp_navigation', {
60
+ per_page: -1,
61
+ status: 'publish'
62
+ }];
63
+ return {
64
+ navigationMenus: getEntityRecords(...args),
65
+ isResolvingNavigationMenus: isResolving('getEntityRecords', args),
66
+ hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', args)
67
+ };
68
+ }
35
69
 
36
- const hasResolvedNavigationMenu = ref ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false;
37
- const navigationMenuMultipleArgs = ['postType', 'wp_navigation', {
38
- per_page: -1,
39
- status: 'publish'
40
- }];
41
- const navigationMenus = getEntityRecords(...navigationMenuMultipleArgs);
42
- const canSwitchNavigationMenu = ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0;
70
+ function selectExistingMenu(select, ref) {
71
+ if (!ref) {
43
72
  return {
44
- isNavigationMenuResolved: hasResolvedNavigationMenu,
45
- isNavigationMenuMissing: !ref || hasResolvedNavigationMenu && !rawNavigationMenu,
46
- canSwitchNavigationMenu,
47
- isResolvingNavigationMenus: isResolving('getEntityRecords', navigationMenuMultipleArgs),
48
- hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
49
- navigationMenu,
50
- navigationMenus,
51
- canUserUpdateNavigationMenu: ref ? canUser('update', 'navigation', ref) : undefined,
52
- hasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution('canUser', ['update', 'navigation', ref]),
53
- canUserDeleteNavigationMenu: ref ? canUser('delete', 'navigation', ref) : undefined,
54
- hasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution('canUser', ['delete', 'navigation', ref]),
55
- canUserCreateNavigationMenu: canUser('create', 'navigation'),
56
- isResolvingCanUserCreateNavigationMenu: isResolving('canUser', ['create', 'navigation']),
57
- hasResolvedCanUserCreateNavigationMenu: hasFinishedResolution('canUser', ['create', 'navigation'])
73
+ isNavigationMenuResolved: false,
74
+ isNavigationMenuMissing: true
58
75
  };
59
- }, [ref]);
76
+ }
77
+
78
+ const {
79
+ getEntityRecord,
80
+ getEditedEntityRecord,
81
+ hasFinishedResolution
82
+ } = select(_coreData.store);
83
+ const args = ['postType', 'wp_navigation', ref];
84
+ const navigationMenu = getEntityRecord(...args);
85
+ const editedNavigationMenu = getEditedEntityRecord(...args);
86
+ const hasResolvedNavigationMenu = hasFinishedResolution('getEditedEntityRecord', args);
87
+ return {
88
+ isNavigationMenuResolved: hasResolvedNavigationMenu,
89
+ isNavigationMenuMissing: hasResolvedNavigationMenu && !navigationMenu,
90
+ // getEditedEntityRecord will return the post regardless of status.
91
+ // Therefore if the found post is not published then we should ignore it.
92
+ navigationMenu: editedNavigationMenu.status === 'publish' ? editedNavigationMenu : null
93
+ };
60
94
  }
61
95
  //# sourceMappingURL=use-navigation-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","isResolving","canUser","coreStore","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","isResolvingNavigationMenus","hasResolvedNavigationMenus","canUserUpdateNavigationMenu","undefined","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,SAAO,qBACJC,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA,qBAJK;AAKLC,MAAAA,WALK;AAMLC,MAAAA;AANK,QAOFN,MAAM,CAAEO,eAAF,CAPV;AASA,UAAMC,wBAAwB,GAAG,CAChC,UADgC,EAEhC,eAFgC,EAGhCT,GAHgC,CAAjC;AAKA,UAAMU,iBAAiB,GAAGV,GAAG,GAC1BE,eAAe,CAAE,GAAGO,wBAAL,CADW,GAE1B,IAFH;AAGA,QAAIE,cAAc,GAAGX,GAAG,GACrBG,qBAAqB,CAAE,GAAGM,wBAAL,CADA,GAErB,IAFH,CAlBa,CAsBb;AACA;;AACA,QAAK,oBAAAE,cAAc,UAAd,0DAAgBC,MAAhB,MAA2B,SAAhC,EAA4C;AAC3CD,MAAAA,cAAc,GAAG,IAAjB;AACA;;AAED,UAAME,yBAAyB,GAAGb,GAAG,GAClCK,qBAAqB,CACrB,uBADqB,EAErBI,wBAFqB,CADa,GAKlC,KALH;AAOA,UAAMK,0BAA0B,GAAG,CAClC,UADkC,EAElC,eAFkC,EAGlC;AAAEC,MAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBH,MAAAA,MAAM,EAAE;AAAxB,KAHkC,CAAnC;AAKA,UAAMI,eAAe,GAAGZ,gBAAgB,CACvC,GAAGU,0BADoC,CAAxC;AAIA,UAAMG,uBAAuB,GAAGjB,GAAG,GAChC,CAAAgB,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CADM,GAEhC,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CAF7B;AAIA,WAAO;AACNC,MAAAA,wBAAwB,EAAEN,yBADpB;AAENO,MAAAA,uBAAuB,EACtB,CAAEpB,GAAF,IACEa,yBAAyB,IAAI,CAAEH,iBAJ5B;AAKNO,MAAAA,uBALM;AAMNI,MAAAA,0BAA0B,EAAEf,WAAW,CACtC,kBADsC,EAEtCQ,0BAFsC,CANjC;AAUNQ,MAAAA,0BAA0B,EAAEjB,qBAAqB,CAChD,kBADgD,EAEhDS,0BAFgD,CAV3C;AAcNH,MAAAA,cAdM;AAeNK,MAAAA,eAfM;AAgBNO,MAAAA,2BAA2B,EAAEvB,GAAG,GAC7BO,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BP,GAA1B,CADsB,GAE7BwB,SAlBG;AAmBNC,MAAAA,sCAAsC,EAAEpB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF4D,CAnBvD;AAuBN0B,MAAAA,2BAA2B,EAAE1B,GAAG,GAC7BO,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BP,GAA1B,CADsB,GAE7BwB,SAzBG;AA0BNG,MAAAA,sCAAsC,EAAEtB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF4D,CA1BvD;AA8BN4B,MAAAA,2BAA2B,EAAErB,OAAO,CAAE,QAAF,EAAY,YAAZ,CA9B9B;AA+BNsB,MAAAA,sCAAsC,EAAEvB,WAAW,CAClD,SADkD,EAElD,CAAE,QAAF,EAAY,YAAZ,CAFkD,CA/B7C;AAmCNwB,MAAAA,sCAAsC,EAAEzB,qBAAqB,CAC5D,SAD4D,EAE5D,CAAE,QAAF,EAAY,YAAZ,CAF4D;AAnCvD,KAAP;AAwCA,GAzFK,EA0FN,CAAEL,GAAF,CA1FM,CAAP;AA4FA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tisResolving,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst navigationMenuSingleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tref,\n\t\t\t];\n\t\t\tconst rawNavigationMenu = ref\n\t\t\t\t? getEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\t\t\tlet navigationMenu = ref\n\t\t\t\t? getEditedEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\n\t\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t\t// Therefore if the found post is not published then we should ignore it.\n\t\t\tif ( navigationMenu?.status !== 'publish' ) {\n\t\t\t\tnavigationMenu = null;\n\t\t\t}\n\n\t\t\tconst hasResolvedNavigationMenu = ref\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tnavigationMenuSingleArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst navigationMenuMultipleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\t{ per_page: -1, status: 'publish' },\n\t\t\t];\n\t\t\tconst navigationMenus = getEntityRecords(\n\t\t\t\t...navigationMenuMultipleArgs\n\t\t\t);\n\n\t\t\tconst canSwitchNavigationMenu = ref\n\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t: navigationMenus?.length > 0;\n\n\t\t\treturn {\n\t\t\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\t\t\tisNavigationMenuMissing:\n\t\t\t\t\t! ref ||\n\t\t\t\t\t( hasResolvedNavigationMenu && ! rawNavigationMenu ),\n\t\t\t\tcanSwitchNavigationMenu,\n\t\t\t\tisResolvingNavigationMenus: isResolving(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\tnavigationMenu,\n\t\t\t\tnavigationMenus,\n\t\t\t\tcanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? canUser( 'update', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'update', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? canUser( 'delete', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'delete', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserCreateNavigationMenu: canUser( 'create', 'navigation' ),\n\t\t\t\tisResolvingCanUserCreateNavigationMenu: isResolving(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'create', 'navigation' ]\n\t\t\t\t),\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'create', 'navigation' ]\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ ref ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","ref","permissions","select","hasResolvedPermissions","canCreate","canUpdate","canDelete","isResolving","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","selectNavigationMenus","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","selectExistingMenu","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecords","hasFinishedResolution","coreStore","args","per_page","status","getEntityRecord","getEditedEntityRecord","editedNavigationMenu","hasResolvedNavigationMenu"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\t__experimentalUseResourcePermissions as useResourcePermissions,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst [\n\t\t\t\thasResolvedPermissions,\n\t\t\t\t{ canCreate, canUpdate, canDelete, isResolving },\n\t\t\t] = permissions;\n\n\t\t\tconst {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\t\t\t} = selectNavigationMenus( select, ref );\n\n\t\t\tconst {\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\t\t\t} = selectExistingMenu( select, ref );\n\n\t\t\treturn {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\n\t\t\t\tcanSwitchNavigationMenu: ref\n\t\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t\t: navigationMenus?.length > 0,\n\n\t\t\t\tcanUserCreateNavigationMenu: canCreate,\n\t\t\t\tisResolvingCanUserCreateNavigationMenu: isResolving,\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasResolvedPermissions,\n\n\t\t\t\tcanUserUpdateNavigationMenu: canUpdate,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? hasResolvedPermissions\n\t\t\t\t\t: undefined,\n\n\t\t\t\tcanUserDeleteNavigationMenu: canDelete,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? hasResolvedPermissions\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ ref, permissions ]\n\t);\n}\n\nfunction selectNavigationMenus( select ) {\n\tconst { getEntityRecords, hasFinishedResolution, isResolving } =\n\t\tselect( coreStore );\n\n\tconst args = [\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t{ per_page: -1, status: 'publish' },\n\t];\n\treturn {\n\t\tnavigationMenus: getEntityRecords( ...args ),\n\t\tisResolvingNavigationMenus: isResolving( 'getEntityRecords', args ),\n\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t'getEntityRecords',\n\t\t\targs\n\t\t),\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing: hasResolvedNavigationMenu && ! navigationMenu,\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu:\n\t\t\teditedNavigationMenu.status === 'publish'\n\t\t\t\t? editedNavigationMenu\n\t\t\t\t: null,\n\t};\n}\n"]}