@wordpress/block-library 7.19.0 → 8.0.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 (761) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/audio/edit.native.js +1 -3
  3. package/build/audio/edit.native.js.map +1 -1
  4. package/build/audio/index.js +2 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/edit.js +1 -0
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/avatar/user-control.js +1 -0
  9. package/build/avatar/user-control.js.map +1 -1
  10. package/build/block/edit.js +14 -2
  11. package/build/block/edit.js.map +1 -1
  12. package/build/block/edit.native.js +14 -6
  13. package/build/block/edit.native.js.map +1 -1
  14. package/build/block/index.js +1 -2
  15. package/build/block/index.js.map +1 -1
  16. package/build/button/edit.native.js.map +1 -1
  17. package/build/code/transforms.js +1 -1
  18. package/build/code/transforms.js.map +1 -1
  19. package/build/columns/edit.js +1 -0
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/columns/edit.native.js +13 -30
  22. package/build/columns/edit.native.js.map +1 -1
  23. package/build/comment-author-avatar/edit.js +1 -0
  24. package/build/comment-author-avatar/edit.js.map +1 -1
  25. package/build/cover/edit/inspector-controls.js +2 -0
  26. package/build/cover/edit/inspector-controls.js.map +1 -1
  27. package/build/cover/edit.native.js +24 -16
  28. package/build/cover/edit.native.js.map +1 -1
  29. package/build/embed/embed-controls.native.js +1 -0
  30. package/build/embed/embed-controls.native.js.map +1 -1
  31. package/build/embed/embed-preview.native.js +1 -3
  32. package/build/embed/embed-preview.native.js.map +1 -1
  33. package/build/file/inspector.js +1 -0
  34. package/build/file/inspector.js.map +1 -1
  35. package/build/gallery/edit.js +25 -13
  36. package/build/gallery/edit.js.map +1 -1
  37. package/build/gallery/gallery.native.js +1 -3
  38. package/build/gallery/gallery.native.js.map +1 -1
  39. package/build/gallery/shared.js +4 -10
  40. package/build/gallery/shared.js.map +1 -1
  41. package/build/gallery/transforms.js +1 -7
  42. package/build/gallery/transforms.js.map +1 -1
  43. package/build/gallery/use-get-media.js +1 -1
  44. package/build/gallery/use-get-media.js.map +1 -1
  45. package/build/gallery/use-get-media.native.js +3 -1
  46. package/build/gallery/use-get-media.native.js.map +1 -1
  47. package/build/gallery/v1/edit.js +22 -15
  48. package/build/gallery/v1/edit.js.map +1 -1
  49. package/build/gallery/v1/gallery.native.js +1 -3
  50. package/build/gallery/v1/gallery.native.js.map +1 -1
  51. package/build/gallery/v1/shared.js +4 -1
  52. package/build/gallery/v1/shared.js.map +1 -1
  53. package/build/group/edit.js +1 -2
  54. package/build/group/edit.js.map +1 -1
  55. package/build/group/index.js +3 -1
  56. package/build/group/index.js.map +1 -1
  57. package/build/group/placeholder.js +5 -26
  58. package/build/group/placeholder.js.map +1 -1
  59. package/build/heading/deprecated.js +152 -69
  60. package/build/heading/deprecated.js.map +1 -1
  61. package/build/heading/index.js +1 -2
  62. package/build/heading/index.js.map +1 -1
  63. package/build/heading/transforms.js +1 -2
  64. package/build/heading/transforms.js.map +1 -1
  65. package/build/html/index.js +1 -1
  66. package/build/image/edit.js +8 -5
  67. package/build/image/edit.js.map +1 -1
  68. package/build/image/edit.native.js +3 -2
  69. package/build/image/edit.native.js.map +1 -1
  70. package/build/image/image.js +12 -8
  71. package/build/image/image.js.map +1 -1
  72. package/build/index.js +3 -1
  73. package/build/index.js.map +1 -1
  74. package/build/latest-comments/edit.js +1 -0
  75. package/build/latest-comments/edit.js.map +1 -1
  76. package/build/latest-posts/edit.js +2 -0
  77. package/build/latest-posts/edit.js.map +1 -1
  78. package/build/list/transforms.js +1 -9
  79. package/build/list/transforms.js.map +1 -1
  80. package/build/list/utils.js +5 -2
  81. package/build/list/utils.js.map +1 -1
  82. package/build/list-item/index.js +4 -1
  83. package/build/list-item/index.js.map +1 -1
  84. package/build/list-item/transforms.js +22 -0
  85. package/build/list-item/transforms.js.map +1 -0
  86. package/build/list-item/utils.js +77 -1
  87. package/build/list-item/utils.js.map +1 -1
  88. package/build/media-text/edit.js +4 -2
  89. package/build/media-text/edit.js.map +1 -1
  90. package/build/navigation/edit/are-blocks-dirty.js +52 -0
  91. package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
  92. package/build/navigation/edit/index.js +95 -116
  93. package/build/navigation/edit/index.js.map +1 -1
  94. package/build/navigation/edit/menu-inspector-controls.js +72 -0
  95. package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
  96. package/build/navigation/edit/navigation-menu-selector.js +5 -10
  97. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  98. package/build/navigation/edit/unsaved-inner-blocks.js +11 -7
  99. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  100. package/build/navigation/view-modal.js +6 -2
  101. package/build/navigation/view-modal.js.map +1 -1
  102. package/build/navigation-link/edit.js +42 -298
  103. package/build/navigation-link/edit.js.map +1 -1
  104. package/build/navigation-link/link-ui.js +222 -0
  105. package/build/navigation-link/link-ui.js.map +1 -0
  106. package/build/navigation-link/transforms.js +12 -0
  107. package/build/navigation-link/transforms.js.map +1 -1
  108. package/build/navigation-link/update-attributes.js +108 -0
  109. package/build/navigation-link/update-attributes.js.map +1 -0
  110. package/build/navigation-submenu/edit.js +42 -173
  111. package/build/navigation-submenu/edit.js.map +1 -1
  112. package/build/page-list/constants.js +15 -0
  113. package/build/page-list/constants.js.map +1 -0
  114. package/build/page-list/convert-to-links-modal.js +22 -86
  115. package/build/page-list/convert-to-links-modal.js.map +1 -1
  116. package/build/page-list/convert-to-navigation-links.js +76 -0
  117. package/build/page-list/convert-to-navigation-links.js.map +1 -0
  118. package/build/page-list/edit.js +142 -78
  119. package/build/page-list/edit.js.map +1 -1
  120. package/build/page-list/index.js +6 -1
  121. package/build/page-list/index.js.map +1 -1
  122. package/build/page-list-item/edit.js +87 -0
  123. package/build/page-list-item/edit.js.map +1 -0
  124. package/build/page-list-item/index.js +85 -0
  125. package/build/page-list-item/index.js.map +1 -0
  126. package/build/page-list-item/init.js +16 -0
  127. package/build/page-list-item/init.js.map +1 -0
  128. package/build/paragraph/index.js +1 -7
  129. package/build/paragraph/index.js.map +1 -1
  130. package/build/post-author/edit.js +3 -2
  131. package/build/post-author/edit.js.map +1 -1
  132. package/build/post-featured-image/overlay.js +1 -0
  133. package/build/post-featured-image/overlay.js.map +1 -1
  134. package/build/post-template/index.js +8 -0
  135. package/build/post-template/index.js.map +1 -1
  136. package/build/preformatted/transforms.js +3 -1
  137. package/build/preformatted/transforms.js.map +1 -1
  138. package/build/query/deprecated.js +192 -21
  139. package/build/query/deprecated.js.map +1 -1
  140. package/build/query/edit/inspector-controls/index.js +1 -0
  141. package/build/query/edit/inspector-controls/index.js.map +1 -1
  142. package/build/query/edit/query-placeholder.js +3 -19
  143. package/build/query/edit/query-placeholder.js.map +1 -1
  144. package/build/query/index.js +0 -8
  145. package/build/query/index.js.map +1 -1
  146. package/build/query/utils.js +0 -8
  147. package/build/query/utils.js.map +1 -1
  148. package/build/rss/edit.js +3 -0
  149. package/build/rss/edit.js.map +1 -1
  150. package/build/search/edit.native.js +22 -22
  151. package/build/search/edit.native.js.map +1 -1
  152. package/build/search/index.js +9 -1
  153. package/build/search/index.js.map +1 -1
  154. package/build/site-logo/edit.js +17 -9
  155. package/build/site-logo/edit.js.map +1 -1
  156. package/build/site-logo/index.js +1 -0
  157. package/build/site-logo/index.js.map +1 -1
  158. package/build/site-title/index.js +1 -0
  159. package/build/site-title/index.js.map +1 -1
  160. package/build/social-link/social-list.js +4 -12
  161. package/build/social-link/social-list.js.map +1 -1
  162. package/build/table/edit.js +3 -1
  163. package/build/table/edit.js.map +1 -1
  164. package/build/table/index.js +17 -1
  165. package/build/table/index.js.map +1 -1
  166. package/build/table/save.js +4 -2
  167. package/build/table/save.js.map +1 -1
  168. package/build/table/state.js +24 -12
  169. package/build/table/state.js.map +1 -1
  170. package/build/table/transforms.js +3 -2
  171. package/build/table/transforms.js.map +1 -1
  172. package/build/table-of-contents/edit.js +2 -2
  173. package/build/table-of-contents/edit.js.map +1 -1
  174. package/build/tag-cloud/edit.js +2 -1
  175. package/build/tag-cloud/edit.js.map +1 -1
  176. package/build/template-part/edit/selection-modal.js +5 -2
  177. package/build/template-part/edit/selection-modal.js.map +1 -1
  178. package/build/template-part/edit/utils/hooks.js +2 -6
  179. package/build/template-part/edit/utils/hooks.js.map +1 -1
  180. package/build/text-columns/edit.js +1 -0
  181. package/build/text-columns/edit.js.map +1 -1
  182. package/build/utils/transformation-categories.native.js +1 -1
  183. package/build/utils/transformation-categories.native.js.map +1 -1
  184. package/build/video/edit.js +1 -1
  185. package/build/video/edit.js.map +1 -1
  186. package/build/video/edit.native.js +1 -3
  187. package/build/video/edit.native.js.map +1 -1
  188. package/build-module/audio/edit.native.js +1 -2
  189. package/build-module/audio/edit.native.js.map +1 -1
  190. package/build-module/audio/index.js +2 -1
  191. package/build-module/audio/index.js.map +1 -1
  192. package/build-module/avatar/edit.js +1 -0
  193. package/build-module/avatar/edit.js.map +1 -1
  194. package/build-module/avatar/user-control.js +1 -0
  195. package/build-module/avatar/user-control.js.map +1 -1
  196. package/build-module/block/edit.js +14 -2
  197. package/build-module/block/edit.js.map +1 -1
  198. package/build-module/block/edit.native.js +14 -6
  199. package/build-module/block/edit.native.js.map +1 -1
  200. package/build-module/block/index.js +1 -2
  201. package/build-module/block/index.js.map +1 -1
  202. package/build-module/button/edit.native.js +2 -1
  203. package/build-module/button/edit.native.js.map +1 -1
  204. package/build-module/code/transforms.js +1 -1
  205. package/build-module/code/transforms.js.map +1 -1
  206. package/build-module/columns/edit.js +1 -0
  207. package/build-module/columns/edit.js.map +1 -1
  208. package/build-module/columns/edit.native.js +13 -29
  209. package/build-module/columns/edit.native.js.map +1 -1
  210. package/build-module/comment-author-avatar/edit.js +1 -0
  211. package/build-module/comment-author-avatar/edit.js.map +1 -1
  212. package/build-module/cover/edit/inspector-controls.js +2 -0
  213. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  214. package/build-module/cover/edit.native.js +22 -14
  215. package/build-module/cover/edit.native.js.map +1 -1
  216. package/build-module/embed/embed-controls.native.js +2 -1
  217. package/build-module/embed/embed-controls.native.js.map +1 -1
  218. package/build-module/embed/embed-preview.native.js +1 -2
  219. package/build-module/embed/embed-preview.native.js.map +1 -1
  220. package/build-module/file/inspector.js +1 -0
  221. package/build-module/file/inspector.js.map +1 -1
  222. package/build-module/gallery/edit.js +25 -12
  223. package/build-module/gallery/edit.js.map +1 -1
  224. package/build-module/gallery/gallery.native.js +1 -2
  225. package/build-module/gallery/gallery.native.js.map +1 -1
  226. package/build-module/gallery/shared.js +5 -11
  227. package/build-module/gallery/shared.js.map +1 -1
  228. package/build-module/gallery/transforms.js +1 -6
  229. package/build-module/gallery/transforms.js.map +1 -1
  230. package/build-module/gallery/use-get-media.js +1 -1
  231. package/build-module/gallery/use-get-media.js.map +1 -1
  232. package/build-module/gallery/use-get-media.native.js +3 -1
  233. package/build-module/gallery/use-get-media.native.js.map +1 -1
  234. package/build-module/gallery/v1/edit.js +23 -16
  235. package/build-module/gallery/v1/edit.js.map +1 -1
  236. package/build-module/gallery/v1/gallery.native.js +1 -2
  237. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  238. package/build-module/gallery/v1/shared.js +5 -2
  239. package/build-module/gallery/v1/shared.js.map +1 -1
  240. package/build-module/group/edit.js +1 -3
  241. package/build-module/group/edit.js.map +1 -1
  242. package/build-module/group/index.js +3 -1
  243. package/build-module/group/index.js.map +1 -1
  244. package/build-module/group/placeholder.js +5 -26
  245. package/build-module/group/placeholder.js.map +1 -1
  246. package/build-module/heading/deprecated.js +152 -69
  247. package/build-module/heading/deprecated.js.map +1 -1
  248. package/build-module/heading/index.js +1 -2
  249. package/build-module/heading/index.js.map +1 -1
  250. package/build-module/heading/transforms.js +1 -2
  251. package/build-module/heading/transforms.js.map +1 -1
  252. package/build-module/html/index.js +1 -1
  253. package/build-module/image/edit.js +9 -6
  254. package/build-module/image/edit.js.map +1 -1
  255. package/build-module/image/edit.native.js +2 -1
  256. package/build-module/image/edit.native.js.map +1 -1
  257. package/build-module/image/image.js +13 -9
  258. package/build-module/image/image.js.map +1 -1
  259. package/build-module/index.js +2 -1
  260. package/build-module/index.js.map +1 -1
  261. package/build-module/latest-comments/edit.js +1 -0
  262. package/build-module/latest-comments/edit.js.map +1 -1
  263. package/build-module/latest-posts/edit.js +2 -0
  264. package/build-module/latest-posts/edit.js.map +1 -1
  265. package/build-module/list/transforms.js +1 -9
  266. package/build-module/list/transforms.js.map +1 -1
  267. package/build-module/list/utils.js +5 -2
  268. package/build-module/list/utils.js.map +1 -1
  269. package/build-module/list-item/index.js +3 -1
  270. package/build-module/list-item/index.js.map +1 -1
  271. package/build-module/list-item/transforms.js +13 -0
  272. package/build-module/list-item/transforms.js.map +1 -0
  273. package/build-module/list-item/utils.js +78 -1
  274. package/build-module/list-item/utils.js.map +1 -1
  275. package/build-module/media-text/edit.js +5 -3
  276. package/build-module/media-text/edit.js.map +1 -1
  277. package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
  278. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
  279. package/build-module/navigation/edit/index.js +95 -117
  280. package/build-module/navigation/edit/index.js.map +1 -1
  281. package/build-module/navigation/edit/menu-inspector-controls.js +59 -0
  282. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
  283. package/build-module/navigation/edit/navigation-menu-selector.js +6 -11
  284. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  285. package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -6
  286. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  287. package/build-module/navigation/view-modal.js +6 -2
  288. package/build-module/navigation/view-modal.js.map +1 -1
  289. package/build-module/navigation-link/edit.js +46 -299
  290. package/build-module/navigation-link/edit.js.map +1 -1
  291. package/build-module/navigation-link/link-ui.js +206 -0
  292. package/build-module/navigation-link/link-ui.js.map +1 -0
  293. package/build-module/navigation-link/transforms.js +12 -0
  294. package/build-module/navigation-link/transforms.js.map +1 -1
  295. package/build-module/navigation-link/update-attributes.js +97 -0
  296. package/build-module/navigation-link/update-attributes.js.map +1 -0
  297. package/build-module/navigation-submenu/edit.js +47 -175
  298. package/build-module/navigation-submenu/edit.js.map +1 -1
  299. package/build-module/page-list/constants.js +6 -0
  300. package/build-module/page-list/constants.js.map +1 -0
  301. package/build-module/page-list/convert-to-links-modal.js +20 -81
  302. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  303. package/build-module/page-list/convert-to-navigation-links.js +66 -0
  304. package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
  305. package/build-module/page-list/edit.js +144 -82
  306. package/build-module/page-list/edit.js.map +1 -1
  307. package/build-module/page-list/index.js +6 -1
  308. package/build-module/page-list/index.js.map +1 -1
  309. package/build-module/page-list-item/edit.js +74 -0
  310. package/build-module/page-list-item/edit.js.map +1 -0
  311. package/build-module/page-list-item/index.js +68 -0
  312. package/build-module/page-list-item/index.js.map +1 -0
  313. package/build-module/page-list-item/init.js +6 -0
  314. package/build-module/page-list-item/init.js.map +1 -0
  315. package/build-module/paragraph/index.js +1 -7
  316. package/build-module/paragraph/index.js.map +1 -1
  317. package/build-module/post-author/edit.js +3 -2
  318. package/build-module/post-author/edit.js.map +1 -1
  319. package/build-module/post-featured-image/overlay.js +1 -0
  320. package/build-module/post-featured-image/overlay.js.map +1 -1
  321. package/build-module/post-template/index.js +8 -0
  322. package/build-module/post-template/index.js.map +1 -1
  323. package/build-module/preformatted/transforms.js +3 -1
  324. package/build-module/preformatted/transforms.js.map +1 -1
  325. package/build-module/query/deprecated.js +185 -21
  326. package/build-module/query/deprecated.js.map +1 -1
  327. package/build-module/query/edit/inspector-controls/index.js +1 -0
  328. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  329. package/build-module/query/edit/query-placeholder.js +3 -19
  330. package/build-module/query/edit/query-placeholder.js.map +1 -1
  331. package/build-module/query/index.js +0 -8
  332. package/build-module/query/index.js.map +1 -1
  333. package/build-module/query/utils.js +0 -8
  334. package/build-module/query/utils.js.map +1 -1
  335. package/build-module/rss/edit.js +3 -0
  336. package/build-module/rss/edit.js.map +1 -1
  337. package/build-module/search/edit.native.js +20 -20
  338. package/build-module/search/edit.native.js.map +1 -1
  339. package/build-module/search/index.js +8 -1
  340. package/build-module/search/index.js.map +1 -1
  341. package/build-module/site-logo/edit.js +17 -8
  342. package/build-module/site-logo/edit.js.map +1 -1
  343. package/build-module/site-logo/index.js +1 -0
  344. package/build-module/site-logo/index.js.map +1 -1
  345. package/build-module/site-title/index.js +1 -0
  346. package/build-module/site-title/index.js.map +1 -1
  347. package/build-module/social-link/social-list.js +2 -11
  348. package/build-module/social-link/social-list.js.map +1 -1
  349. package/build-module/table/edit.js +3 -1
  350. package/build-module/table/edit.js.map +1 -1
  351. package/build-module/table/index.js +17 -1
  352. package/build-module/table/index.js.map +1 -1
  353. package/build-module/table/save.js +4 -2
  354. package/build-module/table/save.js.map +1 -1
  355. package/build-module/table/state.js +25 -13
  356. package/build-module/table/state.js.map +1 -1
  357. package/build-module/table/transforms.js +3 -2
  358. package/build-module/table/transforms.js.map +1 -1
  359. package/build-module/table-of-contents/edit.js +2 -2
  360. package/build-module/table-of-contents/edit.js.map +1 -1
  361. package/build-module/tag-cloud/edit.js +3 -2
  362. package/build-module/tag-cloud/edit.js.map +1 -1
  363. package/build-module/template-part/edit/selection-modal.js +6 -3
  364. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  365. package/build-module/template-part/edit/utils/hooks.js +3 -7
  366. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  367. package/build-module/text-columns/edit.js +1 -0
  368. package/build-module/text-columns/edit.js.map +1 -1
  369. package/build-module/utils/transformation-categories.native.js +1 -1
  370. package/build-module/utils/transformation-categories.native.js.map +1 -1
  371. package/build-module/video/edit.js +1 -1
  372. package/build-module/video/edit.js.map +1 -1
  373. package/build-module/video/edit.native.js +1 -2
  374. package/build-module/video/edit.native.js.map +1 -1
  375. package/build-style/archives/editor-rtl.css +12 -0
  376. package/build-style/archives/editor.css +12 -0
  377. package/build-style/archives/style-rtl.css +12 -0
  378. package/build-style/archives/style.css +12 -0
  379. package/build-style/audio/editor-rtl.css +12 -0
  380. package/build-style/audio/editor.css +12 -0
  381. package/build-style/audio/style-rtl.css +12 -0
  382. package/build-style/audio/style.css +12 -0
  383. package/build-style/audio/theme-rtl.css +12 -0
  384. package/build-style/audio/theme.css +12 -0
  385. package/build-style/avatar/editor-rtl.css +12 -0
  386. package/build-style/avatar/editor.css +12 -0
  387. package/build-style/avatar/style-rtl.css +12 -0
  388. package/build-style/avatar/style.css +12 -0
  389. package/build-style/block/editor-rtl.css +22 -0
  390. package/build-style/block/editor.css +22 -0
  391. package/build-style/button/editor-rtl.css +12 -0
  392. package/build-style/button/editor.css +12 -0
  393. package/build-style/button/style-rtl.css +12 -0
  394. package/build-style/button/style.css +12 -0
  395. package/build-style/buttons/editor-rtl.css +12 -0
  396. package/build-style/buttons/editor.css +12 -0
  397. package/build-style/buttons/style-rtl.css +12 -0
  398. package/build-style/buttons/style.css +12 -0
  399. package/build-style/calendar/style-rtl.css +12 -0
  400. package/build-style/calendar/style.css +12 -0
  401. package/build-style/categories/editor-rtl.css +12 -0
  402. package/build-style/categories/editor.css +12 -0
  403. package/build-style/categories/style-rtl.css +12 -0
  404. package/build-style/categories/style.css +12 -0
  405. package/build-style/classic-rtl.css +12 -0
  406. package/build-style/classic.css +12 -0
  407. package/build-style/code/editor-rtl.css +12 -0
  408. package/build-style/code/editor.css +12 -0
  409. package/build-style/code/style-rtl.css +12 -0
  410. package/build-style/code/style.css +12 -0
  411. package/build-style/code/theme-rtl.css +12 -0
  412. package/build-style/code/theme.css +12 -0
  413. package/build-style/columns/editor-rtl.css +12 -0
  414. package/build-style/columns/editor.css +12 -0
  415. package/build-style/columns/style-rtl.css +12 -0
  416. package/build-style/columns/style.css +12 -0
  417. package/build-style/comment-author-avatar/editor-rtl.css +12 -0
  418. package/build-style/comment-author-avatar/editor.css +12 -0
  419. package/build-style/comment-content/style-rtl.css +12 -0
  420. package/build-style/comment-content/style.css +12 -0
  421. package/build-style/comment-template/style-rtl.css +12 -0
  422. package/build-style/comment-template/style.css +12 -0
  423. package/build-style/comments/editor-rtl.css +12 -0
  424. package/build-style/comments/editor.css +12 -0
  425. package/build-style/comments/style-rtl.css +12 -0
  426. package/build-style/comments/style.css +12 -0
  427. package/build-style/comments-pagination/editor-rtl.css +12 -0
  428. package/build-style/comments-pagination/editor.css +12 -0
  429. package/build-style/comments-pagination/style-rtl.css +12 -0
  430. package/build-style/comments-pagination/style.css +12 -0
  431. package/build-style/comments-pagination-numbers/editor-rtl.css +12 -0
  432. package/build-style/comments-pagination-numbers/editor.css +12 -0
  433. package/build-style/comments-title/editor-rtl.css +12 -0
  434. package/build-style/comments-title/editor.css +12 -0
  435. package/build-style/common-rtl.css +17 -1
  436. package/build-style/common.css +17 -1
  437. package/build-style/cover/editor-rtl.css +12 -0
  438. package/build-style/cover/editor.css +12 -0
  439. package/build-style/cover/style-rtl.css +14 -1
  440. package/build-style/cover/style.css +14 -1
  441. package/build-style/editor-elements-rtl.css +12 -0
  442. package/build-style/editor-elements.css +12 -0
  443. package/build-style/editor-rtl.css +39 -20
  444. package/build-style/editor.css +39 -20
  445. package/build-style/elements-rtl.css +12 -0
  446. package/build-style/elements.css +12 -0
  447. package/build-style/embed/editor-rtl.css +12 -0
  448. package/build-style/embed/editor.css +12 -0
  449. package/build-style/embed/style-rtl.css +12 -0
  450. package/build-style/embed/style.css +12 -0
  451. package/build-style/embed/theme-rtl.css +12 -0
  452. package/build-style/embed/theme.css +12 -0
  453. package/build-style/file/editor-rtl.css +12 -0
  454. package/build-style/file/editor.css +12 -0
  455. package/build-style/file/style-rtl.css +12 -0
  456. package/build-style/file/style.css +12 -0
  457. package/build-style/freeform/editor-rtl.css +12 -0
  458. package/build-style/freeform/editor.css +12 -0
  459. package/build-style/gallery/editor-rtl.css +13 -1
  460. package/build-style/gallery/editor.css +13 -1
  461. package/build-style/gallery/style-rtl.css +16 -2
  462. package/build-style/gallery/style.css +16 -2
  463. package/build-style/gallery/theme-rtl.css +12 -0
  464. package/build-style/gallery/theme.css +12 -0
  465. package/build-style/group/editor-rtl.css +12 -0
  466. package/build-style/group/editor.css +12 -0
  467. package/build-style/group/style-rtl.css +12 -0
  468. package/build-style/group/style.css +12 -0
  469. package/build-style/group/theme-rtl.css +12 -0
  470. package/build-style/group/theme.css +12 -0
  471. package/build-style/heading/style-rtl.css +12 -0
  472. package/build-style/heading/style.css +12 -0
  473. package/build-style/html/editor-rtl.css +12 -0
  474. package/build-style/html/editor.css +12 -0
  475. package/build-style/image/editor-rtl.css +12 -9
  476. package/build-style/image/editor.css +12 -9
  477. package/build-style/image/style-rtl.css +12 -0
  478. package/build-style/image/style.css +12 -0
  479. package/build-style/image/theme-rtl.css +12 -0
  480. package/build-style/image/theme.css +12 -0
  481. package/build-style/latest-comments/style-rtl.css +12 -0
  482. package/build-style/latest-comments/style.css +12 -0
  483. package/build-style/latest-posts/editor-rtl.css +12 -0
  484. package/build-style/latest-posts/editor.css +12 -0
  485. package/build-style/latest-posts/style-rtl.css +12 -0
  486. package/build-style/latest-posts/style.css +12 -0
  487. package/build-style/list/style-rtl.css +12 -0
  488. package/build-style/list/style.css +12 -0
  489. package/build-style/media-text/editor-rtl.css +12 -0
  490. package/build-style/media-text/editor.css +12 -0
  491. package/build-style/media-text/style-rtl.css +12 -0
  492. package/build-style/media-text/style.css +12 -0
  493. package/build-style/more/editor-rtl.css +12 -0
  494. package/build-style/more/editor.css +12 -0
  495. package/build-style/navigation/editor-rtl.css +12 -0
  496. package/build-style/navigation/editor.css +12 -0
  497. package/build-style/navigation/style-rtl.css +12 -0
  498. package/build-style/navigation/style.css +12 -0
  499. package/build-style/navigation-link/editor-rtl.css +12 -0
  500. package/build-style/navigation-link/editor.css +12 -0
  501. package/build-style/navigation-link/style-rtl.css +12 -0
  502. package/build-style/navigation-link/style.css +12 -0
  503. package/build-style/navigation-submenu/editor-rtl.css +12 -0
  504. package/build-style/navigation-submenu/editor.css +12 -0
  505. package/build-style/nextpage/editor-rtl.css +12 -0
  506. package/build-style/nextpage/editor.css +12 -0
  507. package/build-style/page-list/editor-rtl.css +12 -0
  508. package/build-style/page-list/editor.css +12 -0
  509. package/build-style/page-list/style-rtl.css +12 -0
  510. package/build-style/page-list/style.css +12 -0
  511. package/build-style/paragraph/editor-rtl.css +12 -0
  512. package/build-style/paragraph/editor.css +12 -0
  513. package/build-style/paragraph/style-rtl.css +12 -0
  514. package/build-style/paragraph/style.css +12 -0
  515. package/build-style/post-author/style-rtl.css +12 -0
  516. package/build-style/post-author/style.css +12 -0
  517. package/build-style/post-comments-form/editor-rtl.css +12 -0
  518. package/build-style/post-comments-form/editor.css +12 -0
  519. package/build-style/post-comments-form/style-rtl.css +12 -0
  520. package/build-style/post-comments-form/style.css +12 -0
  521. package/build-style/post-date/style-rtl.css +12 -0
  522. package/build-style/post-date/style.css +12 -0
  523. package/build-style/post-excerpt/editor-rtl.css +12 -0
  524. package/build-style/post-excerpt/editor.css +12 -0
  525. package/build-style/post-excerpt/style-rtl.css +12 -0
  526. package/build-style/post-excerpt/style.css +12 -0
  527. package/build-style/post-featured-image/editor-rtl.css +12 -0
  528. package/build-style/post-featured-image/editor.css +12 -0
  529. package/build-style/post-featured-image/style-rtl.css +12 -0
  530. package/build-style/post-featured-image/style.css +12 -0
  531. package/build-style/post-navigation-link/style-rtl.css +12 -0
  532. package/build-style/post-navigation-link/style.css +12 -0
  533. package/build-style/post-template/editor-rtl.css +12 -0
  534. package/build-style/post-template/editor.css +12 -0
  535. package/build-style/post-template/style-rtl.css +12 -0
  536. package/build-style/post-template/style.css +12 -0
  537. package/build-style/post-terms/style-rtl.css +12 -0
  538. package/build-style/post-terms/style.css +12 -0
  539. package/build-style/post-title/style-rtl.css +12 -0
  540. package/build-style/post-title/style.css +12 -0
  541. package/build-style/preformatted/style-rtl.css +12 -0
  542. package/build-style/preformatted/style.css +12 -0
  543. package/build-style/pullquote/editor-rtl.css +12 -0
  544. package/build-style/pullquote/editor.css +12 -0
  545. package/build-style/pullquote/style-rtl.css +12 -0
  546. package/build-style/pullquote/style.css +12 -0
  547. package/build-style/pullquote/theme-rtl.css +12 -0
  548. package/build-style/pullquote/theme.css +12 -0
  549. package/build-style/query/editor-rtl.css +12 -0
  550. package/build-style/query/editor.css +12 -0
  551. package/build-style/query-pagination/editor-rtl.css +12 -0
  552. package/build-style/query-pagination/editor.css +12 -0
  553. package/build-style/query-pagination/style-rtl.css +12 -0
  554. package/build-style/query-pagination/style.css +12 -0
  555. package/build-style/query-pagination-numbers/editor-rtl.css +12 -0
  556. package/build-style/query-pagination-numbers/editor.css +12 -0
  557. package/build-style/query-title/style-rtl.css +12 -0
  558. package/build-style/query-title/style.css +12 -0
  559. package/build-style/quote/style-rtl.css +12 -0
  560. package/build-style/quote/style.css +12 -0
  561. package/build-style/quote/theme-rtl.css +12 -0
  562. package/build-style/quote/theme.css +12 -0
  563. package/build-style/read-more/style-rtl.css +12 -0
  564. package/build-style/read-more/style.css +12 -0
  565. package/build-style/reset-rtl.css +12 -0
  566. package/build-style/reset.css +12 -0
  567. package/build-style/rss/editor-rtl.css +12 -0
  568. package/build-style/rss/editor.css +12 -0
  569. package/build-style/rss/style-rtl.css +12 -0
  570. package/build-style/rss/style.css +12 -0
  571. package/build-style/search/editor-rtl.css +12 -0
  572. package/build-style/search/editor.css +12 -0
  573. package/build-style/search/style-rtl.css +12 -0
  574. package/build-style/search/style.css +12 -0
  575. package/build-style/search/theme-rtl.css +12 -0
  576. package/build-style/search/theme.css +12 -0
  577. package/build-style/separator/editor-rtl.css +12 -0
  578. package/build-style/separator/editor.css +12 -0
  579. package/build-style/separator/style-rtl.css +12 -0
  580. package/build-style/separator/style.css +12 -0
  581. package/build-style/separator/theme-rtl.css +12 -0
  582. package/build-style/separator/theme.css +12 -0
  583. package/build-style/shortcode/editor-rtl.css +13 -1
  584. package/build-style/shortcode/editor.css +13 -1
  585. package/build-style/site-logo/editor-rtl.css +12 -0
  586. package/build-style/site-logo/editor.css +12 -0
  587. package/build-style/site-logo/style-rtl.css +12 -0
  588. package/build-style/site-logo/style.css +12 -0
  589. package/build-style/site-tagline/editor-rtl.css +12 -0
  590. package/build-style/site-tagline/editor.css +12 -0
  591. package/build-style/site-title/editor-rtl.css +12 -0
  592. package/build-style/site-title/editor.css +12 -0
  593. package/build-style/site-title/style-rtl.css +12 -0
  594. package/build-style/site-title/style.css +12 -0
  595. package/build-style/social-link/editor-rtl.css +12 -0
  596. package/build-style/social-link/editor.css +12 -0
  597. package/build-style/social-links/editor-rtl.css +12 -0
  598. package/build-style/social-links/editor.css +12 -0
  599. package/build-style/social-links/style-rtl.css +12 -0
  600. package/build-style/social-links/style.css +12 -0
  601. package/build-style/spacer/editor-rtl.css +12 -0
  602. package/build-style/spacer/editor.css +12 -0
  603. package/build-style/spacer/style-rtl.css +12 -0
  604. package/build-style/spacer/style.css +12 -0
  605. package/build-style/style-rtl.css +23 -5
  606. package/build-style/style.css +23 -5
  607. package/build-style/table/editor-rtl.css +12 -8
  608. package/build-style/table/editor.css +12 -8
  609. package/build-style/table/style-rtl.css +12 -0
  610. package/build-style/table/style.css +12 -0
  611. package/build-style/table/theme-rtl.css +12 -0
  612. package/build-style/table/theme.css +12 -0
  613. package/build-style/tag-cloud/style-rtl.css +12 -0
  614. package/build-style/tag-cloud/style.css +12 -0
  615. package/build-style/template-part/editor-rtl.css +27 -1
  616. package/build-style/template-part/editor.css +27 -1
  617. package/build-style/template-part/theme-rtl.css +12 -0
  618. package/build-style/template-part/theme.css +12 -0
  619. package/build-style/text-columns/editor-rtl.css +12 -0
  620. package/build-style/text-columns/editor.css +12 -0
  621. package/build-style/text-columns/style-rtl.css +12 -0
  622. package/build-style/text-columns/style.css +12 -0
  623. package/build-style/theme-rtl.css +12 -0
  624. package/build-style/theme.css +12 -0
  625. package/build-style/verse/style-rtl.css +12 -0
  626. package/build-style/verse/style.css +12 -0
  627. package/build-style/video/editor-rtl.css +12 -0
  628. package/build-style/video/editor.css +12 -0
  629. package/build-style/video/style-rtl.css +14 -1
  630. package/build-style/video/style.css +14 -1
  631. package/build-style/video/theme-rtl.css +12 -0
  632. package/build-style/video/theme.css +12 -0
  633. package/package.json +32 -30
  634. package/src/audio/edit.native.js +1 -2
  635. package/src/audio/index.js +1 -0
  636. package/src/avatar/edit.js +1 -0
  637. package/src/avatar/user-control.js +1 -0
  638. package/src/block/block.json +1 -2
  639. package/src/block/edit.js +14 -3
  640. package/src/block/edit.native.js +24 -12
  641. package/src/block/editor.scss +17 -0
  642. package/src/block/index.php +1 -2
  643. package/src/block/test/edit.native.js +28 -32
  644. package/src/button/edit.native.js +1 -0
  645. package/src/buttons/test/edit.native.js +40 -51
  646. package/src/code/transforms.js +3 -1
  647. package/src/columns/edit.js +1 -0
  648. package/src/columns/edit.native.js +18 -26
  649. package/src/comment-author-avatar/edit.js +1 -0
  650. package/src/cover/edit/inspector-controls.js +2 -0
  651. package/src/cover/edit.native.js +32 -19
  652. package/src/cover/test/edit.native.js +73 -126
  653. package/src/embed/embed-controls.native.js +1 -0
  654. package/src/embed/embed-preview.native.js +1 -2
  655. package/src/embed/test/index.native.js +237 -231
  656. package/src/file/inspector.js +1 -0
  657. package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
  658. package/src/gallery/edit.js +15 -5
  659. package/src/gallery/gallery.native.js +1 -2
  660. package/src/gallery/shared.js +7 -11
  661. package/src/gallery/transforms.js +1 -6
  662. package/src/gallery/use-get-media.js +1 -1
  663. package/src/gallery/use-get-media.native.js +2 -1
  664. package/src/gallery/v1/edit.js +8 -7
  665. package/src/gallery/v1/gallery.native.js +1 -2
  666. package/src/gallery/v1/shared.js +7 -2
  667. package/src/group/block.json +3 -1
  668. package/src/group/edit.js +2 -6
  669. package/src/group/placeholder.js +6 -25
  670. package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
  671. package/src/heading/block.json +1 -2
  672. package/src/heading/deprecated.js +209 -136
  673. package/src/heading/index.php +52 -0
  674. package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
  675. package/src/heading/test/index.native.js +44 -0
  676. package/src/home-link/index.php +1 -1
  677. package/src/html/block.json +1 -1
  678. package/src/image/edit.js +7 -2
  679. package/src/image/edit.native.js +2 -1
  680. package/src/image/editor.scss +0 -11
  681. package/src/image/image.js +13 -8
  682. package/src/image/test/edit.native.js +14 -10
  683. package/src/index.js +2 -0
  684. package/src/latest-comments/edit.js +1 -0
  685. package/src/latest-posts/edit.js +2 -0
  686. package/src/list/test/edit.native.js +53 -45
  687. package/src/list/transforms.js +0 -11
  688. package/src/list/utils.js +6 -2
  689. package/src/list-item/index.js +2 -0
  690. package/src/list-item/transforms.js +17 -0
  691. package/src/list-item/utils.js +10 -1
  692. package/src/media-text/edit.js +5 -3
  693. package/src/missing/test/edit-integration.native.js +10 -12
  694. package/src/navigation/edit/are-blocks-dirty.js +51 -0
  695. package/src/navigation/edit/index.js +230 -298
  696. package/src/navigation/edit/menu-inspector-controls.js +78 -0
  697. package/src/navigation/edit/navigation-menu-selector.js +5 -16
  698. package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
  699. package/src/navigation/edit/unsaved-inner-blocks.js +12 -7
  700. package/src/navigation/index.php +57 -10
  701. package/src/navigation/view-modal.js +11 -1
  702. package/src/navigation-link/edit.js +58 -329
  703. package/src/navigation-link/index.php +32 -0
  704. package/src/navigation-link/link-ui.js +213 -0
  705. package/src/navigation-link/test/edit.js +23 -82
  706. package/src/navigation-link/transforms.js +14 -0
  707. package/src/navigation-link/update-attributes.js +99 -0
  708. package/src/navigation-submenu/edit.js +57 -177
  709. package/src/navigation-submenu/index.php +40 -0
  710. package/src/page-list/block.json +6 -1
  711. package/src/page-list/constants.js +8 -0
  712. package/src/page-list/convert-to-links-modal.js +19 -76
  713. package/src/page-list/convert-to-navigation-links.js +60 -0
  714. package/src/page-list/edit.js +179 -118
  715. package/src/page-list/index.php +9 -0
  716. package/src/page-list/test/convert-to-links-modal.js +28 -34
  717. package/src/page-list-item/block.json +51 -0
  718. package/src/page-list-item/edit.js +94 -0
  719. package/src/page-list-item/index.js +24 -0
  720. package/src/page-list-item/init.js +6 -0
  721. package/src/paragraph/index.js +0 -6
  722. package/src/post-author/edit.js +3 -2
  723. package/src/post-content/index.php +1 -2
  724. package/src/post-featured-image/index.php +7 -2
  725. package/src/post-featured-image/overlay.js +1 -0
  726. package/src/post-template/block.json +8 -0
  727. package/src/preformatted/transforms.js +4 -1
  728. package/src/query/block.json +0 -8
  729. package/src/query/deprecated.js +257 -86
  730. package/src/query/edit/inspector-controls/index.js +1 -0
  731. package/src/query/edit/query-placeholder.js +4 -16
  732. package/src/rss/edit.js +3 -0
  733. package/src/search/edit.native.js +31 -27
  734. package/src/search/index.js +5 -1
  735. package/src/shortcode/test/edit.native.js +15 -18
  736. package/src/site-logo/edit.js +13 -5
  737. package/src/site-logo/index.js +1 -0
  738. package/src/site-title/index.js +1 -0
  739. package/src/social-link/social-list.js +2 -7
  740. package/src/social-link/test/index.native.js +10 -16
  741. package/src/social-links/test/edit.native.js +4 -3
  742. package/src/spacer/test/index.native.js +39 -36
  743. package/src/table/block.json +15 -0
  744. package/src/table/edit.js +2 -1
  745. package/src/table/editor.scss +0 -4
  746. package/src/table/index.js +1 -0
  747. package/src/table/save.js +5 -1
  748. package/src/table/state.js +22 -7
  749. package/src/table/transforms.js +2 -1
  750. package/src/table-of-contents/edit.js +2 -2
  751. package/src/tag-cloud/edit.js +3 -2
  752. package/src/template-part/edit/selection-modal.js +4 -3
  753. package/src/template-part/edit/utils/hooks.js +7 -3
  754. package/src/template-part/editor.scss +20 -2
  755. package/src/template-part/index.php +1 -2
  756. package/src/text-columns/edit.js +1 -0
  757. package/src/utils/transformation-categories.native.js +1 -0
  758. package/src/video/edit.js +1 -1
  759. package/src/video/edit.native.js +1 -2
  760. package/test/babel-plugin.js +35 -35
  761. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-links-modal.js"],"names":["Button","Modal","__","useDispatch","useEntityRecords","createBlock","create","store","blockEditorStore","PAGE_FIELDS","MAX_PAGE_COUNT","convertSelectedBlockToNavigationLinks","pages","clientId","replaceBlock","linkMap","navigationLinks","forEach","id","title","link","url","type","parent","innerBlocks","label","rendered","kind","push","parentLinkInnerBlocks","transformSubmenus","listOfLinks","block","index","listOfLinksArray","attributes","length","transformedBlock","ConvertToLinksModal","onClose","records","hasResolved","pagesFinished","per_page","_fields","orderby","order","describedby"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { createBlock as create } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst PAGE_FIELDS = [ 'id', 'title', 'link', 'type', 'parent' ];\nconst MAX_PAGE_COUNT = 100;\n\nexport const convertSelectedBlockToNavigationLinks =\n\t( { pages, clientId, replaceBlock, createBlock } ) =>\n\t() => {\n\t\tif ( ! pages ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst linkMap = {};\n\t\tconst navigationLinks = [];\n\t\tpages.forEach( ( { id, title, link: url, type, parent } ) => {\n\t\t\t// See if a placeholder exists. This is created if children appear before parents in list.\n\t\t\tconst innerBlocks = linkMap[ id ]?.innerBlocks ?? [];\n\t\t\tlinkMap[ id ] = createBlock(\n\t\t\t\t'core/navigation-link',\n\t\t\t\t{\n\t\t\t\t\tid,\n\t\t\t\t\tlabel: title.rendered,\n\t\t\t\t\turl,\n\t\t\t\t\ttype,\n\t\t\t\t\tkind: 'post-type',\n\t\t\t\t},\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\tif ( ! parent ) {\n\t\t\t\tnavigationLinks.push( linkMap[ id ] );\n\t\t\t} else {\n\t\t\t\tif ( ! linkMap[ parent ] ) {\n\t\t\t\t\t// Use a placeholder if the child appears before parent in list.\n\t\t\t\t\tlinkMap[ parent ] = { innerBlocks: [] };\n\t\t\t\t}\n\t\t\t\tconst parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;\n\t\t\t\tparentLinkInnerBlocks.push( linkMap[ id ] );\n\t\t\t}\n\t\t} );\n\n\t\t// Transform all links with innerBlocks into Submenus. This can't be done\n\t\t// sooner because page objects have no information on their children.\n\n\t\tconst transformSubmenus = ( listOfLinks ) => {\n\t\t\tlistOfLinks.forEach( ( block, index, listOfLinksArray ) => {\n\t\t\t\tconst { attributes, innerBlocks } = block;\n\t\t\t\tif ( innerBlocks.length !== 0 ) {\n\t\t\t\t\ttransformSubmenus( innerBlocks );\n\t\t\t\t\tconst transformedBlock = createBlock(\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t\tlistOfLinksArray[ index ] = transformedBlock;\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\ttransformSubmenus( navigationLinks );\n\n\t\treplaceBlock( clientId, navigationLinks );\n\t};\n\nexport default function ConvertToLinksModal( { onClose, clientId } ) {\n\tconst { records: pages, hasResolved: pagesFinished } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: PAGE_FIELDS,\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Modal\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Convert to links' ) }\n\t\t\tclassName={ 'wp-block-page-list-modal' }\n\t\t\taria={ { describedby: 'wp-block-page-list-modal__description' } }\n\t\t>\n\t\t\t<p id={ 'wp-block-page-list-modal__description' }>\n\t\t\t\t{ __(\n\t\t\t\t\t'To edit this navigation menu, convert it to single page links. This allows you to add, re-order, remove items, or edit their labels.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t\"Note: if you add new pages to your site, you'll need to add them to your navigation menu.\"\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div className=\"wp-block-page-list-modal-buttons\">\n\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! pagesFinished }\n\t\t\t\t\tonClick={ convertSelectedBlockToNavigationLinks( {\n\t\t\t\t\t\tpages,\n\t\t\t\t\t\treplaceBlock,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tcreateBlock: create,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-links-modal.js"],"names":["Button","Modal","__","useDispatch","useEntityRecords","store","blockEditorStore","convertToNavigationLinks","convertDescription","PAGE_FIELDS","MAX_PAGE_COUNT","ConvertToLinksModal","onClose","clientId","records","pages","hasResolved","pagesFinished","per_page","_fields","orderby","order","replaceBlock","describedby","navigationLinks"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,EAAiBC,KAAjB,QAA8B,uBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AACA;AACA;AACA;;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AAEA;AACA;AACA;;AACA,SAASC,kBAAT,QAAmC,aAAnC;AAEA,MAAMC,WAAW,GAAG,CAAE,IAAF,EAAQ,OAAR,EAAiB,MAAjB,EAAyB,MAAzB,EAAiC,QAAjC,CAApB;AACA,MAAMC,cAAc,GAAG,GAAvB;AAEA,eAAe,SAASC,mBAAT,OAAsD;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAwB;AACpE,QAAM;AAAEC,IAAAA,OAAO,EAAEC,KAAX;AAAkBC,IAAAA,WAAW,EAAEC;AAA/B,MAAiDb,gBAAgB,CACtE,UADsE,EAEtE,MAFsE,EAGtE;AACCc,IAAAA,QAAQ,EAAER,cADX;AAECS,IAAAA,OAAO,EAAEV,WAFV;AAGC;AACA;AACA;AACAW,IAAAA,OAAO,EAAE,YANV;AAOCC,IAAAA,KAAK,EAAE;AAPR,GAHsE,CAAvE;AAcA,QAAM;AAAEC,IAAAA;AAAF,MAAmBnB,WAAW,CAAEG,gBAAF,CAApC;AAEA,SACC,cAAC,KAAD;AACC,IAAA,UAAU,EAAGJ,EAAE,CAAE,OAAF,CADhB;AAEC,IAAA,cAAc,EAAGU,OAFlB;AAGC,IAAA,KAAK,EAAGV,EAAE,CAAE,qBAAF,CAHX;AAIC,IAAA,SAAS,EAAG,0BAJb;AAKC,IAAA,IAAI,EAAG;AAAEqB,MAAAA,WAAW,EAAE;AAAf;AALR,KAOC;AAAG,IAAA,EAAE,EAAG;AAAR,KACGf,kBADH,CAPD,EAUC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,UAAhB;AAA2B,IAAA,OAAO,EAAGI;AAArC,KACGV,EAAE,CAAE,QAAF,CADL,CADD,EAIC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,QAAQ,EAAG,CAAEe,aAFd;AAGC,IAAA,OAAO,EAAG,MAAM;AACf,YAAMO,eAAe,GACpBjB,wBAAwB,CAAEQ,KAAF,CADzB,CADe,CAIf;;AACAO,MAAAA,YAAY,CAAET,QAAF,EAAYW,eAAZ,CAAZ;AACA;AATF,KAWGtB,EAAE,CAAE,WAAF,CAXL,CAJD,CAVD,CADD;AA+BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n/**\n * Internal dependencies\n */\nimport { convertToNavigationLinks } from './convert-to-navigation-links';\n\n/**\n * Internal dependencies\n */\nimport { convertDescription } from './constants';\n\nconst PAGE_FIELDS = [ 'id', 'title', 'link', 'type', 'parent' ];\nconst MAX_PAGE_COUNT = 100;\n\nexport default function ConvertToLinksModal( { onClose, clientId } ) {\n\tconst { records: pages, hasResolved: pagesFinished } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: PAGE_FIELDS,\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Modal\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Customize this menu' ) }\n\t\t\tclassName={ 'wp-block-page-list-modal' }\n\t\t\taria={ { describedby: 'wp-block-page-list-modal__description' } }\n\t\t>\n\t\t\t<p id={ 'wp-block-page-list-modal__description' }>\n\t\t\t\t{ convertDescription }\n\t\t\t</p>\n\t\t\t<div className=\"wp-block-page-list-modal-buttons\">\n\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! pagesFinished }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tconst navigationLinks =\n\t\t\t\t\t\t\tconvertToNavigationLinks( pages );\n\n\t\t\t\t\t\t// Replace the Page List block with the Navigation Links.\n\t\t\t\t\t\treplaceBlock( clientId, navigationLinks );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Customize' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createBlock } from '@wordpress/blocks';
5
+ export const convertToNavigationLinks = pages => {
6
+ if (!pages) {
7
+ return;
8
+ }
9
+
10
+ const linkMap = {};
11
+ const navigationLinks = [];
12
+ pages.forEach(_ref => {
13
+ var _linkMap$id$innerBloc, _linkMap$id;
14
+
15
+ let {
16
+ id,
17
+ title,
18
+ link: url,
19
+ type,
20
+ parent
21
+ } = _ref;
22
+ // See if a placeholder exists. This is created if children appear before parents in list.
23
+ const innerBlocks = (_linkMap$id$innerBloc = (_linkMap$id = linkMap[id]) === null || _linkMap$id === void 0 ? void 0 : _linkMap$id.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
24
+ linkMap[id] = createBlock('core/navigation-link', {
25
+ id,
26
+ label: title.rendered,
27
+ url,
28
+ type,
29
+ kind: 'post-type'
30
+ }, innerBlocks);
31
+
32
+ if (!parent) {
33
+ navigationLinks.push(linkMap[id]);
34
+ } else {
35
+ if (!linkMap[parent]) {
36
+ // Use a placeholder if the child appears before parent in list.
37
+ linkMap[parent] = {
38
+ innerBlocks: []
39
+ };
40
+ }
41
+
42
+ const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
43
+ parentLinkInnerBlocks.push(linkMap[id]);
44
+ }
45
+ }); // Transform all links with innerBlocks into Submenus. This can't be done
46
+ // sooner because page objects have no information on their children.
47
+
48
+ const transformSubmenus = listOfLinks => {
49
+ listOfLinks.forEach((block, index, listOfLinksArray) => {
50
+ const {
51
+ attributes,
52
+ innerBlocks
53
+ } = block;
54
+
55
+ if (innerBlocks.length !== 0) {
56
+ transformSubmenus(innerBlocks);
57
+ const transformedBlock = createBlock('core/navigation-submenu', attributes, innerBlocks);
58
+ listOfLinksArray[index] = transformedBlock;
59
+ }
60
+ });
61
+ };
62
+
63
+ transformSubmenus(navigationLinks);
64
+ return navigationLinks;
65
+ };
66
+ //# sourceMappingURL=convert-to-navigation-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/convert-to-navigation-links.js"],"names":["createBlock","convertToNavigationLinks","pages","linkMap","navigationLinks","forEach","id","title","link","url","type","parent","innerBlocks","label","rendered","kind","push","parentLinkInnerBlocks","transformSubmenus","listOfLinks","block","index","listOfLinksArray","attributes","length","transformedBlock"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,mBAA5B;AAEA,OAAO,MAAMC,wBAAwB,GAAKC,KAAF,IAAa;AACpD,MAAK,CAAEA,KAAP,EAAe;AACd;AACA;;AAED,QAAMC,OAAO,GAAG,EAAhB;AACA,QAAMC,eAAe,GAAG,EAAxB;AACAF,EAAAA,KAAK,CAACG,OAAN,CAAe,QAA8C;AAAA;;AAAA,QAA5C;AAAEC,MAAAA,EAAF;AAAMC,MAAAA,KAAN;AAAaC,MAAAA,IAAI,EAAEC,GAAnB;AAAwBC,MAAAA,IAAxB;AAA8BC,MAAAA;AAA9B,KAA4C;AAC5D;AACA,UAAMC,WAAW,2CAAGT,OAAO,CAAEG,EAAF,CAAV,gDAAG,YAAeM,WAAlB,yEAAiC,EAAlD;AACAT,IAAAA,OAAO,CAAEG,EAAF,CAAP,GAAgBN,WAAW,CAC1B,sBAD0B,EAE1B;AACCM,MAAAA,EADD;AAECO,MAAAA,KAAK,EAAEN,KAAK,CAACO,QAFd;AAGCL,MAAAA,GAHD;AAICC,MAAAA,IAJD;AAKCK,MAAAA,IAAI,EAAE;AALP,KAF0B,EAS1BH,WAT0B,CAA3B;;AAYA,QAAK,CAAED,MAAP,EAAgB;AACfP,MAAAA,eAAe,CAACY,IAAhB,CAAsBb,OAAO,CAAEG,EAAF,CAA7B;AACA,KAFD,MAEO;AACN,UAAK,CAAEH,OAAO,CAAEQ,MAAF,CAAd,EAA2B;AAC1B;AACAR,QAAAA,OAAO,CAAEQ,MAAF,CAAP,GAAoB;AAAEC,UAAAA,WAAW,EAAE;AAAf,SAApB;AACA;;AACD,YAAMK,qBAAqB,GAAGd,OAAO,CAAEQ,MAAF,CAAP,CAAkBC,WAAhD;AACAK,MAAAA,qBAAqB,CAACD,IAAtB,CAA4Bb,OAAO,CAAEG,EAAF,CAAnC;AACA;AACD,GAzBD,EAPoD,CAkCpD;AACA;;AACA,QAAMY,iBAAiB,GAAKC,WAAF,IAAmB;AAC5CA,IAAAA,WAAW,CAACd,OAAZ,CAAqB,CAAEe,KAAF,EAASC,KAAT,EAAgBC,gBAAhB,KAAsC;AAC1D,YAAM;AAAEC,QAAAA,UAAF;AAAcX,QAAAA;AAAd,UAA8BQ,KAApC;;AACA,UAAKR,WAAW,CAACY,MAAZ,KAAuB,CAA5B,EAAgC;AAC/BN,QAAAA,iBAAiB,CAAEN,WAAF,CAAjB;AACA,cAAMa,gBAAgB,GAAGzB,WAAW,CACnC,yBADmC,EAEnCuB,UAFmC,EAGnCX,WAHmC,CAApC;AAKAU,QAAAA,gBAAgB,CAAED,KAAF,CAAhB,GAA4BI,gBAA5B;AACA;AACD,KAXD;AAYA,GAbD;;AAeAP,EAAAA,iBAAiB,CAAEd,eAAF,CAAjB;AAEA,SAAOA,eAAP;AACA,CAtDM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nexport const convertToNavigationLinks = ( pages ) => {\n\tif ( ! pages ) {\n\t\treturn;\n\t}\n\n\tconst linkMap = {};\n\tconst navigationLinks = [];\n\tpages.forEach( ( { id, title, link: url, type, parent } ) => {\n\t\t// See if a placeholder exists. This is created if children appear before parents in list.\n\t\tconst innerBlocks = linkMap[ id ]?.innerBlocks ?? [];\n\t\tlinkMap[ id ] = createBlock(\n\t\t\t'core/navigation-link',\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\tlabel: title.rendered,\n\t\t\t\turl,\n\t\t\t\ttype,\n\t\t\t\tkind: 'post-type',\n\t\t\t},\n\t\t\tinnerBlocks\n\t\t);\n\n\t\tif ( ! parent ) {\n\t\t\tnavigationLinks.push( linkMap[ id ] );\n\t\t} else {\n\t\t\tif ( ! linkMap[ parent ] ) {\n\t\t\t\t// Use a placeholder if the child appears before parent in list.\n\t\t\t\tlinkMap[ parent ] = { innerBlocks: [] };\n\t\t\t}\n\t\t\tconst parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;\n\t\t\tparentLinkInnerBlocks.push( linkMap[ id ] );\n\t\t}\n\t} );\n\n\t// Transform all links with innerBlocks into Submenus. This can't be done\n\t// sooner because page objects have no information on their children.\n\tconst transformSubmenus = ( listOfLinks ) => {\n\t\tlistOfLinks.forEach( ( block, index, listOfLinksArray ) => {\n\t\t\tconst { attributes, innerBlocks } = block;\n\t\t\tif ( innerBlocks.length !== 0 ) {\n\t\t\t\ttransformSubmenus( innerBlocks );\n\t\t\t\tconst transformedBlock = createBlock(\n\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\tattributes,\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t\tlistOfLinksArray[ index ] = transformedBlock;\n\t\t\t}\n\t\t} );\n\t};\n\n\ttransformSubmenus( navigationLinks );\n\n\treturn navigationLinks;\n};\n"]}
@@ -8,18 +8,20 @@ import classnames from 'classnames';
8
8
  * WordPress dependencies
9
9
  */
10
10
 
11
- import { BlockControls, useBlockProps, getColorClassName } from '@wordpress/block-editor';
12
- import { ToolbarButton, Spinner, Notice } from '@wordpress/components';
13
- import { __ } from '@wordpress/i18n';
14
- import { useMemo, useState, memo } from '@wordpress/element';
15
- import { useSelect } from '@wordpress/data';
16
- import { store as coreStore, useEntityRecords } from '@wordpress/core-data';
11
+ import { createBlock } from '@wordpress/blocks';
12
+ import { InspectorControls, BlockControls, useBlockProps, useInnerBlocksProps, getColorClassName, store as blockEditorStore, Warning } from '@wordpress/block-editor';
13
+ import { PanelBody, ToolbarButton, Spinner, Notice, ComboboxControl, Button } from '@wordpress/components';
14
+ import { __, sprintf } from '@wordpress/i18n';
15
+ import { useMemo, useState, useEffect } from '@wordpress/element';
16
+ import { useEntityRecords } from '@wordpress/core-data';
17
+ import { useSelect, useDispatch } from '@wordpress/data';
17
18
  /**
18
19
  * Internal dependencies
19
20
  */
20
21
 
21
22
  import ConvertToLinksModal from './convert-to-links-modal';
22
- import { ItemSubmenuIcon } from '../navigation-link/icons'; // We only show the edit option when page count is <= MAX_PAGE_COUNT
23
+ import { convertToNavigationLinks } from './convert-to-navigation-links';
24
+ import { convertDescription } from './constants'; // We only show the edit option when page count is <= MAX_PAGE_COUNT
23
25
  // Performance of Navigation Links is not good past this value.
24
26
 
25
27
  const MAX_PAGE_COUNT = 100;
@@ -28,13 +30,23 @@ export default function PageListEdit(_ref) {
28
30
 
29
31
  let {
30
32
  context,
31
- clientId
33
+ clientId,
34
+ attributes,
35
+ setAttributes
32
36
  } = _ref;
37
+ const {
38
+ parentPageID
39
+ } = attributes;
40
+ const [pages] = useGetPages();
33
41
  const {
34
42
  pagesByParentId,
35
43
  totalPages,
36
44
  hasResolvedPages
37
45
  } = usePageData();
46
+ const {
47
+ replaceInnerBlocks,
48
+ __unstableMarkNextChangeAsNotPersistent
49
+ } = useDispatch(blockEditorStore);
38
50
  const isNavigationChild = ('showSubmenuIcon' in context);
39
51
  const allowConvertToLinks = isNavigationChild && totalPages <= MAX_PAGE_COUNT;
40
52
  const [isOpen, setOpen] = useState(false);
@@ -54,6 +66,68 @@ export default function PageListEdit(_ref) {
54
66
  }
55
67
  });
56
68
 
69
+ const getBlockList = function () {
70
+ let parentId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : parentPageID;
71
+ const childPages = pagesByParentId.get(parentId);
72
+
73
+ if (!(childPages !== null && childPages !== void 0 && childPages.length)) {
74
+ return [];
75
+ }
76
+
77
+ return childPages.reduce((template, page) => {
78
+ var _page$title, _page$title2;
79
+
80
+ const hasChildren = pagesByParentId.has(page.id);
81
+ const pageProps = {
82
+ id: page.id,
83
+ label: (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered,
84
+ title: (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered,
85
+ link: page.url,
86
+ hasChildren
87
+ };
88
+ let item = null;
89
+ const children = getBlockList(page.id);
90
+ item = createBlock('core/page-list-item', pageProps, children);
91
+ template.push(item);
92
+ return template;
93
+ }, []);
94
+ };
95
+
96
+ const makePagesTree = function () {
97
+ let parentId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
98
+ let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
99
+ const childPages = pagesByParentId.get(parentId);
100
+
101
+ if (!(childPages !== null && childPages !== void 0 && childPages.length)) {
102
+ return [];
103
+ }
104
+
105
+ return childPages.reduce((tree, page) => {
106
+ const hasChildren = pagesByParentId.has(page.id);
107
+ const item = {
108
+ value: page.id,
109
+ label: '— '.repeat(level) + page.title.rendered,
110
+ rawName: page.title.rendered
111
+ };
112
+ tree.push(item);
113
+
114
+ if (hasChildren) {
115
+ tree.push(...makePagesTree(page.id, level + 1));
116
+ }
117
+
118
+ return tree;
119
+ }, []);
120
+ };
121
+
122
+ const pagesTree = useMemo(makePagesTree, [pagesByParentId]);
123
+ const blockList = useMemo(getBlockList, [pagesByParentId, parentPageID]);
124
+ const innerBlocksProps = useInnerBlocksProps(blockProps, {
125
+ allowedBlocks: ['core/page-list-item'],
126
+ renderAppender: false,
127
+ __unstableDisableDropZone: true,
128
+ templateLock: 'all'
129
+ });
130
+
57
131
  const getBlockContent = () => {
58
132
  if (!hasResolvedPages) {
59
133
  return createElement("div", blockProps, createElement(Spinner, null));
@@ -73,15 +147,64 @@ export default function PageListEdit(_ref) {
73
147
  }, __('Page List: Cannot retrieve Pages.')));
74
148
  }
75
149
 
150
+ if (blockList.length === 0) {
151
+ const parentPageDetails = pages && pages.find(page => page.id === parentPageID);
152
+ return createElement("div", blockProps, createElement(Warning, null, sprintf( // translators: %s: Page title.
153
+ __('"%s" page has no children.'), parentPageDetails.title.rendered)));
154
+ }
155
+
76
156
  if (totalPages > 0) {
77
- return createElement("ul", blockProps, createElement(PageItems, {
78
- context: context,
79
- pagesByParentId: pagesByParentId
80
- }));
157
+ return createElement("ul", innerBlocksProps);
81
158
  }
82
159
  };
83
160
 
84
- return createElement(Fragment, null, allowConvertToLinks && createElement(BlockControls, {
161
+ useEffect(() => {
162
+ __unstableMarkNextChangeAsNotPersistent();
163
+
164
+ if (blockList) {
165
+ replaceInnerBlocks(clientId, blockList);
166
+ }
167
+ }, [clientId, blockList]);
168
+ const {
169
+ replaceBlock,
170
+ selectBlock
171
+ } = useDispatch(blockEditorStore);
172
+ const {
173
+ parentNavBlockClientId
174
+ } = useSelect(select => {
175
+ const {
176
+ getSelectedBlockClientId,
177
+ getBlockParentsByBlockName
178
+ } = select(blockEditorStore);
179
+
180
+ const _selectedBlockClientId = getSelectedBlockClientId();
181
+
182
+ return {
183
+ parentNavBlockClientId: getBlockParentsByBlockName(_selectedBlockClientId, 'core/navigation', true)[0]
184
+ };
185
+ }, []);
186
+ return createElement(Fragment, null, createElement(InspectorControls, null, isNavigationChild && (pages === null || pages === void 0 ? void 0 : pages.length) > 0 && createElement(PanelBody, {
187
+ title: __('Customize this menu')
188
+ }, createElement("p", null, convertDescription), createElement(Button, {
189
+ variant: "primary",
190
+ disabled: !hasResolvedPages,
191
+ onClick: () => {
192
+ const navigationLinks = convertToNavigationLinks(pages); // Replace the Page List block with the Navigation Links.
193
+
194
+ replaceBlock(clientId, navigationLinks); // Select the Navigation block to reveal the changes.
195
+
196
+ selectBlock(parentNavBlockClientId);
197
+ }
198
+ }, __('Customize'))), pagesTree.length > 0 && createElement(PanelBody, null, createElement(ComboboxControl, {
199
+ className: "editor-page-attributes__parent",
200
+ label: __('Parent page'),
201
+ value: parentPageID,
202
+ options: pagesTree,
203
+ onChange: value => setAttributes({
204
+ parentPageID: value !== null && value !== void 0 ? value : 0
205
+ }),
206
+ help: __('Choose a page to show only its subpages.')
207
+ }))), allowConvertToLinks && totalPages > 0 && createElement(BlockControls, {
85
208
  group: "other"
86
209
  }, createElement(ToolbarButton, {
87
210
  title: __('Edit'),
@@ -92,20 +215,7 @@ export default function PageListEdit(_ref) {
92
215
  }), getBlockContent());
93
216
  }
94
217
 
95
- function useFrontPageId() {
96
- return useSelect(select => {
97
- const canReadSettings = select(coreStore).canUser('read', 'settings');
98
-
99
- if (!canReadSettings) {
100
- return undefined;
101
- }
102
-
103
- const site = select(coreStore).getEntityRecord('root', 'site');
104
- return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
105
- }, []);
106
- }
107
-
108
- function usePageData() {
218
+ function useGetPages() {
109
219
  const {
110
220
  records: pages,
111
221
  hasResolved: hasResolvedPages
@@ -116,6 +226,12 @@ function usePageData() {
116
226
  per_page: -1,
117
227
  context: 'view'
118
228
  });
229
+ return [pages, hasResolvedPages];
230
+ }
231
+
232
+ function usePageData() {
233
+ let pageId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
234
+ const [pages, hasResolvedPages] = useGetPages();
119
235
  return useMemo(() => {
120
236
  var _pages$length;
121
237
 
@@ -147,60 +263,6 @@ function usePageData() {
147
263
  hasResolvedPages,
148
264
  totalPages: (_pages$length = pages === null || pages === void 0 ? void 0 : pages.length) !== null && _pages$length !== void 0 ? _pages$length : null
149
265
  };
150
- }, [pages, hasResolvedPages]);
266
+ }, [pageId, pages, hasResolvedPages]);
151
267
  }
152
-
153
- const PageItems = memo(function PageItems(_ref2) {
154
- let {
155
- context,
156
- pagesByParentId,
157
- parentId = 0,
158
- depth = 0
159
- } = _ref2;
160
- const pages = pagesByParentId.get(parentId);
161
- const frontPageId = useFrontPageId();
162
-
163
- if (!(pages !== null && pages !== void 0 && pages.length)) {
164
- return [];
165
- }
166
-
167
- return pages.map(page => {
168
- var _page$title, _page$title2;
169
-
170
- const hasChildren = pagesByParentId.has(page.id);
171
- const isNavigationChild = ('showSubmenuIcon' in context);
172
- return createElement("li", {
173
- key: page.id,
174
- className: classnames('wp-block-pages-list__item', {
175
- 'has-child': hasChildren,
176
- 'wp-block-navigation-item': isNavigationChild,
177
- 'open-on-click': context.openSubmenusOnClick,
178
- 'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
179
- 'menu-item-home': page.id === frontPageId
180
- })
181
- }, hasChildren && context.openSubmenusOnClick ? createElement(Fragment, null, createElement("button", {
182
- className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
183
- "aria-expanded": "false"
184
- }, (_page$title = page.title) === null || _page$title === void 0 ? void 0 : _page$title.rendered), createElement("span", {
185
- className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
186
- }, createElement(ItemSubmenuIcon, null))) : createElement("a", {
187
- className: classnames('wp-block-pages-list__item__link', {
188
- 'wp-block-navigation-item__content': isNavigationChild
189
- }),
190
- href: page.link
191
- }, (_page$title2 = page.title) === null || _page$title2 === void 0 ? void 0 : _page$title2.rendered), hasChildren && createElement(Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && createElement("button", {
192
- className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
193
- "aria-expanded": "false"
194
- }, createElement(ItemSubmenuIcon, null)), createElement("ul", {
195
- className: classnames('submenu-container', {
196
- 'wp-block-navigation__submenu-container': isNavigationChild
197
- })
198
- }, createElement(PageItems, {
199
- context: context,
200
- pagesByParentId: pagesByParentId,
201
- parentId: page.id,
202
- depth: depth + 1
203
- }))));
204
- });
205
- });
206
268
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","BlockControls","useBlockProps","getColorClassName","ToolbarButton","Spinner","Notice","__","useMemo","useState","memo","useSelect","store","coreStore","useEntityRecords","ConvertToLinksModal","ItemSubmenuIcon","MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","hasResolvedPages","usePageData","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","getBlockContent","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","records","pages","hasResolved","orderby","order","_fields","per_page","sortedPages","sort","a","b","menu_order","title","rendered","localeCompare","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","frontPageId","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","link"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Spinner, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockContent = () => {\n\t\tif ( ! hasResolvedPages ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === null ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === 0 ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages > 0 ) {\n\t\t\treturn (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ getBlockContent() }\n\t\t</>\n\t);\n}\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nfunction usePageData() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pages, hasResolvedPages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\tconst frontPageId = useFrontPageId();\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t\t'menu-item-home': page.id === frontPageId,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","createBlock","InspectorControls","BlockControls","useBlockProps","useInnerBlocksProps","getColorClassName","store","blockEditorStore","Warning","PanelBody","ToolbarButton","Spinner","Notice","ComboboxControl","Button","__","sprintf","useMemo","useState","useEffect","useEntityRecords","useSelect","useDispatch","ConvertToLinksModal","convertToNavigationLinks","convertDescription","MAX_PAGE_COUNT","PageListEdit","context","clientId","attributes","setAttributes","parentPageID","pages","useGetPages","pagesByParentId","totalPages","hasResolvedPages","usePageData","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","getBlockList","parentId","childPages","get","length","reduce","template","page","hasChildren","has","id","pageProps","label","title","rendered","link","url","item","children","push","makePagesTree","level","tree","value","repeat","rawName","pagesTree","blockList","innerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","templateLock","getBlockContent","parentPageDetails","find","replaceBlock","selectBlock","parentNavBlockClientId","select","getSelectedBlockClientId","getBlockParentsByBlockName","_selectedBlockClientId","navigationLinks","records","hasResolved","orderby","order","_fields","per_page","pageId","sortedPages","sort","a","b","menu_order","localeCompare","accumulator","parent","set","Map"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SACCC,iBADD,EAECC,aAFD,EAGCC,aAHD,EAICC,mBAJD,EAKCC,iBALD,EAMCC,KAAK,IAAIC,gBANV,EAOCC,OAPD,QAQO,yBARP;AASA,SACCC,SADD,EAECC,aAFD,EAGCC,OAHD,EAICC,MAJD,EAKCC,eALD,EAMCC,MAND,QAOO,uBAPP;AAQA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,SAA5B,QAA6C,oBAA7C;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AACA,SAASC,kBAAT,QAAmC,aAAnC,C,CAEA;AACA;;AACA,MAAMC,cAAc,GAAG,GAAvB;AAEA,eAAe,SAASC,YAAT,OAKX;AAAA;;AAAA,MALkC;AACrCC,IAAAA,OADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA;AAJqC,GAKlC;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAmBF,UAAzB;AACA,QAAM,CAAEG,KAAF,IAAYC,WAAW,EAA7B;AACA,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA,UAAnB;AAA+BC,IAAAA;AAA/B,MAAoDC,WAAW,EAArE;AACA,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACLlB,WAAW,CAAEf,gBAAF,CADZ;AAGA,QAAMkC,iBAAiB,IAAG,qBAAqBb,OAAxB,CAAvB;AACA,QAAMc,mBAAmB,GACxBD,iBAAiB,IAAIL,UAAU,IAAIV,cADpC;AAGA,QAAM,CAAEiB,MAAF,EAAUC,OAAV,IAAsB1B,QAAQ,CAAE,KAAF,CAApC;;AACA,QAAM2B,SAAS,GAAG,MAAMD,OAAO,CAAE,IAAF,CAA/B;;AACA,QAAME,UAAU,GAAG,MAAMF,OAAO,CAAE,KAAF,CAAhC;;AAEA,QAAMG,UAAU,GAAG5C,aAAa,CAAE;AACjC6C,IAAAA,SAAS,EAAEjD,UAAU,CAAE,oBAAF,EAAwB;AAC5C,wBAAkB,CAAC,CAAE6B,OAAO,CAACqB,SADe;AAE5C,OAAE5C,iBAAiB,CAAE,OAAF,EAAWuB,OAAO,CAACqB,SAAnB,CAAnB,GACC,CAAC,CAAErB,OAAO,CAACqB,SAHgC;AAI5C,wBAAkB,CAAC,CAAErB,OAAO,CAACsB,eAJe;AAK5C,OAAE7C,iBAAiB,CAClB,kBADkB,EAElBuB,OAAO,CAACsB,eAFU,CAAnB,GAGK,CAAC,CAAEtB,OAAO,CAACsB;AAR4B,KAAxB,CADY;AAWjCC,IAAAA,KAAK,EAAE,EAAE,sBAAGvB,OAAO,CAACuB,KAAX,mDAAG,eAAeC,KAAlB;AAAF;AAX0B,GAAF,CAAhC;;AAcA,QAAMC,YAAY,GAAG,YAA+B;AAAA,QAA7BC,QAA6B,uEAAlBtB,YAAkB;AACnD,UAAMuB,UAAU,GAAGpB,eAAe,CAACqB,GAAhB,CAAqBF,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEE,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOF,UAAU,CAACG,MAAX,CAAmB,CAAEC,QAAF,EAAYC,IAAZ,KAAsB;AAAA;;AAC/C,YAAMC,WAAW,GAAG1B,eAAe,CAAC2B,GAAhB,CAAqBF,IAAI,CAACG,EAA1B,CAApB;AACA,YAAMC,SAAS,GAAG;AACjBD,QAAAA,EAAE,EAAEH,IAAI,CAACG,EADQ;AAEjBE,QAAAA,KAAK,iBAAEL,IAAI,CAACM,KAAP,gDAAE,YAAYC,QAFF;AAGjBD,QAAAA,KAAK,kBAAEN,IAAI,CAACM,KAAP,iDAAE,aAAYC,QAHF;AAIjBC,QAAAA,IAAI,EAAER,IAAI,CAACS,GAJM;AAKjBR,QAAAA;AALiB,OAAlB;AAOA,UAAIS,IAAI,GAAG,IAAX;AACA,YAAMC,QAAQ,GAAGlB,YAAY,CAAEO,IAAI,CAACG,EAAP,CAA7B;AACAO,MAAAA,IAAI,GAAGtE,WAAW,CAAE,qBAAF,EAAyBgE,SAAzB,EAAoCO,QAApC,CAAlB;AACAZ,MAAAA,QAAQ,CAACa,IAAT,CAAeF,IAAf;AAEA,aAAOX,QAAP;AACA,KAfM,EAeJ,EAfI,CAAP;AAgBA,GAvBD;;AAyBA,QAAMc,aAAa,GAAG,YAA+B;AAAA,QAA7BnB,QAA6B,uEAAlB,CAAkB;AAAA,QAAfoB,KAAe,uEAAP,CAAO;AACpD,UAAMnB,UAAU,GAAGpB,eAAe,CAACqB,GAAhB,CAAqBF,QAArB,CAAnB;;AAEA,QAAK,EAAEC,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEE,MAAd,CAAL,EAA4B;AAC3B,aAAO,EAAP;AACA;;AAED,WAAOF,UAAU,CAACG,MAAX,CAAmB,CAAEiB,IAAF,EAAQf,IAAR,KAAkB;AAC3C,YAAMC,WAAW,GAAG1B,eAAe,CAAC2B,GAAhB,CAAqBF,IAAI,CAACG,EAA1B,CAApB;AACA,YAAMO,IAAI,GAAG;AACZM,QAAAA,KAAK,EAAEhB,IAAI,CAACG,EADA;AAEZE,QAAAA,KAAK,EAAE,KAAKY,MAAL,CAAaH,KAAb,IAAuBd,IAAI,CAACM,KAAL,CAAWC,QAF7B;AAGZW,QAAAA,OAAO,EAAElB,IAAI,CAACM,KAAL,CAAWC;AAHR,OAAb;AAKAQ,MAAAA,IAAI,CAACH,IAAL,CAAWF,IAAX;;AACA,UAAKT,WAAL,EAAmB;AAClBc,QAAAA,IAAI,CAACH,IAAL,CAAW,GAAGC,aAAa,CAAEb,IAAI,CAACG,EAAP,EAAWW,KAAK,GAAG,CAAnB,CAA3B;AACA;;AACD,aAAOC,IAAP;AACA,KAZM,EAYJ,EAZI,CAAP;AAaA,GApBD;;AAsBA,QAAMI,SAAS,GAAG9D,OAAO,CAAEwD,aAAF,EAAiB,CAAEtC,eAAF,CAAjB,CAAzB;AAEA,QAAM6C,SAAS,GAAG/D,OAAO,CAAEoC,YAAF,EAAgB,CACxClB,eADwC,EAExCH,YAFwC,CAAhB,CAAzB;AAKA,QAAMiD,gBAAgB,GAAG7E,mBAAmB,CAAE2C,UAAF,EAAc;AACzDmC,IAAAA,aAAa,EAAE,CAAE,qBAAF,CAD0C;AAEzDC,IAAAA,cAAc,EAAE,KAFyC;AAGzDC,IAAAA,yBAAyB,EAAE,IAH8B;AAIzDC,IAAAA,YAAY,EAAE;AAJ2C,GAAd,CAA5C;;AAOA,QAAMC,eAAe,GAAG,MAAM;AAC7B,QAAK,CAAEjD,gBAAP,EAA0B;AACzB,aACC,qBAAUU,UAAV,EACC,cAAC,OAAD,OADD,CADD;AAKA;;AAED,QAAKX,UAAU,KAAK,IAApB,EAA2B;AAC1B,aACC,qBAAUW,UAAV,EACC,cAAC,MAAD;AAAQ,QAAA,MAAM,EAAG,SAAjB;AAA6B,QAAA,aAAa,EAAG;AAA7C,SACGhC,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAKqB,UAAU,KAAK,CAApB,EAAwB;AACvB,aACC,qBAAUW,UAAV,EACC,cAAC,MAAD;AAAQ,QAAA,MAAM,EAAG,MAAjB;AAA0B,QAAA,aAAa,EAAG;AAA1C,SACGhC,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAKiE,SAAS,CAACvB,MAAV,KAAqB,CAA1B,EAA8B;AAC7B,YAAM8B,iBAAiB,GACtBtD,KAAK,IAAIA,KAAK,CAACuD,IAAN,CAAc5B,IAAF,IAAYA,IAAI,CAACG,EAAL,KAAY/B,YAApC,CADV;AAEA,aACC,qBAAUe,UAAV,EACC,cAAC,OAAD,QACG/B,OAAO,EACR;AACAD,MAAAA,EAAE,CAAE,4BAAF,CAFM,EAGRwE,iBAAiB,CAACrB,KAAlB,CAAwBC,QAHhB,CADV,CADD,CADD;AAWA;;AAED,QAAK/B,UAAU,GAAG,CAAlB,EAAsB;AACrB,aAAO,oBAAS6C,gBAAT,CAAP;AACA;AACD,GAhDD;;AAkDA9D,EAAAA,SAAS,CAAE,MAAM;AAChBqB,IAAAA,uCAAuC;;AACvC,QAAKwC,SAAL,EAAiB;AAChBzC,MAAAA,kBAAkB,CAAEV,QAAF,EAAYmD,SAAZ,CAAlB;AACA;AACD,GALQ,EAKN,CAAEnD,QAAF,EAAYmD,SAAZ,CALM,CAAT;AAOA,QAAM;AAAES,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAgCpE,WAAW,CAAEf,gBAAF,CAAjD;AAEA,QAAM;AAAEoF,IAAAA;AAAF,MAA6BtE,SAAS,CAAIuE,MAAF,IAAc;AAC3D,UAAM;AAAEC,MAAAA,wBAAF;AAA4BC,MAAAA;AAA5B,QACLF,MAAM,CAAErF,gBAAF,CADP;;AAGA,UAAMwF,sBAAsB,GAAGF,wBAAwB,EAAvD;;AAEA,WAAO;AACNF,MAAAA,sBAAsB,EAAEG,0BAA0B,CACjDC,sBADiD,EAEjD,iBAFiD,EAGjD,IAHiD,CAA1B,CAIrB,CAJqB;AADlB,KAAP;AAOA,GAb2C,EAazC,EAbyC,CAA5C;AAeA,SACC,8BACC,cAAC,iBAAD,QACGtD,iBAAiB,IAAI,CAAAR,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEwB,MAAP,IAAgB,CAArC,IACD,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG1C,EAAE,CAAE,qBAAF;AAArB,KACC,yBAAKU,kBAAL,CADD,EAEC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,QAAQ,EAAG,CAAEY,gBAFd;AAGC,IAAA,OAAO,EAAG,MAAM;AACf,YAAM2D,eAAe,GACpBxE,wBAAwB,CAAES,KAAF,CADzB,CADe,CAIf;;AACAwD,MAAAA,YAAY,CAAE5D,QAAF,EAAYmE,eAAZ,CAAZ,CALe,CAOf;;AACAN,MAAAA,WAAW,CAAEC,sBAAF,CAAX;AACA;AAZF,KAcG5E,EAAE,CAAE,WAAF,CAdL,CAFD,CAFF,EAsBGgE,SAAS,CAACtB,MAAV,GAAmB,CAAnB,IACD,cAAC,SAAD,QACC,cAAC,eAAD;AACC,IAAA,SAAS,EAAC,gCADX;AAEC,IAAA,KAAK,EAAG1C,EAAE,CAAE,aAAF,CAFX;AAGC,IAAA,KAAK,EAAGiB,YAHT;AAIC,IAAA,OAAO,EAAG+C,SAJX;AAKC,IAAA,QAAQ,EAAKH,KAAF,IACV7C,aAAa,CAAE;AAAEC,MAAAA,YAAY,EAAE4C,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAW;AAAzB,KAAF,CANf;AAQC,IAAA,IAAI,EAAG7D,EAAE,CACR,0CADQ;AARV,IADD,CAvBF,CADD,EAwCG2B,mBAAmB,IAAIN,UAAU,GAAG,CAApC,IACD,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGrB,EAAE,CAAE,MAAF,CAAzB;AAAsC,IAAA,OAAO,EAAG8B;AAAhD,KACG9B,EAAE,CAAE,MAAF,CADL,CADD,CAzCF,EA+CG2B,mBAAmB,IAAIC,MAAvB,IACD,cAAC,mBAAD;AACC,IAAA,OAAO,EAAGG,UADX;AAEC,IAAA,QAAQ,EAAGjB;AAFZ,IAhDF,EAsDGyD,eAAe,EAtDlB,CADD;AA0DA;;AAED,SAASpD,WAAT,GAAuB;AACtB,QAAM;AAAE+D,IAAAA,OAAO,EAAEhE,KAAX;AAAkBiE,IAAAA,WAAW,EAAE7D;AAA/B,MAAoDjB,gBAAgB,CACzE,UADyE,EAEzE,MAFyE,EAGzE;AACC+E,IAAAA,OAAO,EAAE,YADV;AAECC,IAAAA,KAAK,EAAE,KAFR;AAGCC,IAAAA,OAAO,EAAE,CAAE,IAAF,EAAQ,MAAR,EAAgB,QAAhB,EAA0B,OAA1B,EAAmC,YAAnC,CAHV;AAICC,IAAAA,QAAQ,EAAE,CAAC,CAJZ;AAKC1E,IAAAA,OAAO,EAAE;AALV,GAHyE,CAA1E;AAYA,SAAO,CAAEK,KAAF,EAASI,gBAAT,CAAP;AACA;;AAED,SAASC,WAAT,GAAmC;AAAA,MAAbiE,MAAa,uEAAJ,CAAI;AAClC,QAAM,CAAEtE,KAAF,EAASI,gBAAT,IAA8BH,WAAW,EAA/C;AAEA,SAAOjB,OAAO,CAAE,MAAM;AAAA;;AACrB;AACA;AACA;AAEA,UAAMuF,WAAW,GAAG,CAAE,IAAKvE,KAAL,aAAKA,KAAL,cAAKA,KAAL,GAAc,EAAd,CAAF,EAAuBwE,IAAvB,CAA6B,CAAEC,CAAF,EAAKC,CAAL,KAAY;AAC5D,UAAKD,CAAC,CAACE,UAAF,KAAiBD,CAAC,CAACC,UAAxB,EAAqC;AACpC,eAAOF,CAAC,CAACxC,KAAF,CAAQC,QAAR,CAAiB0C,aAAjB,CAAgCF,CAAC,CAACzC,KAAF,CAAQC,QAAxC,CAAP;AACA;;AACD,aAAOuC,CAAC,CAACE,UAAF,GAAeD,CAAC,CAACC,UAAxB;AACA,KALmB,CAApB;AAMA,UAAMzE,eAAe,GAAGqE,WAAW,CAAC9C,MAAZ,CAAoB,CAAEoD,WAAF,EAAelD,IAAf,KAAyB;AACpE,YAAM;AAAEmD,QAAAA;AAAF,UAAanD,IAAnB;;AACA,UAAKkD,WAAW,CAAChD,GAAZ,CAAiBiD,MAAjB,CAAL,EAAiC;AAChCD,QAAAA,WAAW,CAACtD,GAAZ,CAAiBuD,MAAjB,EAA0BvC,IAA1B,CAAgCZ,IAAhC;AACA,OAFD,MAEO;AACNkD,QAAAA,WAAW,CAACE,GAAZ,CAAiBD,MAAjB,EAAyB,CAAEnD,IAAF,CAAzB;AACA;;AACD,aAAOkD,WAAP;AACA,KARuB,EAQrB,IAAIG,GAAJ,EARqB,CAAxB;AAUA,WAAO;AACN9E,MAAAA,eADM;AAENE,MAAAA,gBAFM;AAGND,MAAAA,UAAU,mBAAEH,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEwB,MAAT,yDAAmB;AAHvB,KAAP;AAKA,GA1Ba,EA0BX,CAAE8C,MAAF,EAAUtE,KAAV,EAAiBI,gBAAjB,CA1BW,CAAd;AA2BA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { convertToNavigationLinks } from './convert-to-navigation-links';\nimport { convertDescription } from './constants';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( {\n\tcontext,\n\tclientId,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { parentPageID } = attributes;\n\tconst [ pages ] = useGetPages();\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\tconst { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockList = ( parentId = parentPageID ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( template, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst pageProps = {\n\t\t\t\tid: page.id,\n\t\t\t\tlabel: page.title?.rendered,\n\t\t\t\ttitle: page.title?.rendered,\n\t\t\t\tlink: page.url,\n\t\t\t\thasChildren,\n\t\t\t};\n\t\t\tlet item = null;\n\t\t\tconst children = getBlockList( page.id );\n\t\t\titem = createBlock( 'core/page-list-item', pageProps, children );\n\t\t\ttemplate.push( item );\n\n\t\t\treturn template;\n\t\t}, [] );\n\t};\n\n\tconst makePagesTree = ( parentId = 0, level = 0 ) => {\n\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\tif ( ! childPages?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn childPages.reduce( ( tree, page ) => {\n\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\tconst item = {\n\t\t\t\tvalue: page.id,\n\t\t\t\tlabel: '— '.repeat( level ) + page.title.rendered,\n\t\t\t\trawName: page.title.rendered,\n\t\t\t};\n\t\t\ttree.push( item );\n\t\t\tif ( hasChildren ) {\n\t\t\t\ttree.push( ...makePagesTree( page.id, level + 1 ) );\n\t\t\t}\n\t\t\treturn tree;\n\t\t}, [] );\n\t};\n\n\tconst pagesTree = useMemo( makePagesTree, [ pagesByParentId ] );\n\n\tconst blockList = useMemo( getBlockList, [\n\t\tpagesByParentId,\n\t\tparentPageID,\n\t] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/page-list-item' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t\ttemplateLock: 'all',\n\t} );\n\n\tconst getBlockContent = () => {\n\t\tif ( ! hasResolvedPages ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === null ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === 0 ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( blockList.length === 0 ) {\n\t\t\tconst parentPageDetails =\n\t\t\t\tpages && pages.find( ( page ) => page.id === parentPageID );\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Page title.\n\t\t\t\t\t\t\t__( '\"%s\" page has no children.' ),\n\t\t\t\t\t\t\tparentPageDetails.title.rendered\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages > 0 ) {\n\t\t\treturn <ul { ...innerBlocksProps }></ul>;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tif ( blockList ) {\n\t\t\treplaceInnerBlocks( clientId, blockList );\n\t\t}\n\t}, [ clientId, blockList ] );\n\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\n\tconst { parentNavBlockClientId } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientId, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tparentNavBlockClientId: getBlockParentsByBlockName(\n\t\t\t\t_selectedBlockClientId,\n\t\t\t\t'core/navigation',\n\t\t\t\ttrue\n\t\t\t)[ 0 ],\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ isNavigationChild && pages?.length > 0 && (\n\t\t\t\t\t<PanelBody title={ __( 'Customize this menu' ) }>\n\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst navigationLinks =\n\t\t\t\t\t\t\t\t\tconvertToNavigationLinks( pages );\n\n\t\t\t\t\t\t\t\t// Replace the Page List block with the Navigation Links.\n\t\t\t\t\t\t\t\treplaceBlock( clientId, navigationLinks );\n\n\t\t\t\t\t\t\t\t// Select the Navigation block to reveal the changes.\n\t\t\t\t\t\t\t\tselectBlock( parentNavBlockClientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Customize' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\tlabel={ __( 'Parent page' ) }\n\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: value ?? 0 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Choose a page to show only its subpages.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ allowConvertToLinks && totalPages > 0 && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ getBlockContent() }\n\t\t</>\n\t);\n}\n\nfunction useGetPages() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn [ pages, hasResolvedPages ];\n}\n\nfunction usePageData( pageId = 0 ) {\n\tconst [ pages, hasResolvedPages ] = useGetPages();\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pageId, pages, hasResolvedPages ] );\n}\n"]}
@@ -16,7 +16,12 @@ const metadata = {
16
16
  description: "Display a list of all pages.",
17
17
  keywords: ["menu", "navigation"],
18
18
  textdomain: "default",
19
- attributes: {},
19
+ attributes: {
20
+ parentPageID: {
21
+ type: "integer",
22
+ "default": 0
23
+ }
24
+ },
20
25
  usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
21
26
  supports: {
22
27
  reusable: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/index.js"],"names":["pages","icon","initBlock","edit","name","metadata","settings","example","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,WAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBM,EAAAA,OAAO,EAAE,EAFc;AAGvBJ,EAAAA;AAHuB,CAAjB;AAMP,OAAO,MAAMK,IAAI,GAAG,MAAMN,SAAS,CAAE;AAAEE,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { pages as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit.js';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/index.js"],"names":["pages","icon","initBlock","edit","name","metadata","settings","example","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,WAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBM,EAAAA,OAAO,EAAE,EAFc;AAGvBJ,EAAAA;AAHuB,CAAjB;AAMP,OAAO,MAAMK,IAAI,GAAG,MAAMN,SAAS,CAAE;AAAEE,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { pages as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit.js';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -0,0 +1,74 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import classnames from 'classnames';
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+
11
+ import { InnerBlocks } from '@wordpress/block-editor';
12
+ import { useSelect } from '@wordpress/data';
13
+ import { store as coreStore } from '@wordpress/core-data';
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ import { ItemSubmenuIcon } from '../navigation-link/icons';
19
+
20
+ function useFrontPageId() {
21
+ return useSelect(select => {
22
+ const canReadSettings = select(coreStore).canUser('read', 'settings');
23
+
24
+ if (!canReadSettings) {
25
+ return undefined;
26
+ }
27
+
28
+ const site = select(coreStore).getEntityRecord('root', 'site');
29
+ return (site === null || site === void 0 ? void 0 : site.show_on_front) === 'page' && (site === null || site === void 0 ? void 0 : site.page_on_front);
30
+ }, []);
31
+ }
32
+
33
+ export default function PageListItemEdit(_ref) {
34
+ let {
35
+ context,
36
+ attributes
37
+ } = _ref;
38
+ const {
39
+ id,
40
+ label,
41
+ link,
42
+ hasChildren
43
+ } = attributes;
44
+ const isNavigationChild = ('showSubmenuIcon' in context);
45
+ const frontPageId = useFrontPageId();
46
+ return createElement("li", {
47
+ key: id,
48
+ className: classnames('wp-block-pages-list__item', {
49
+ 'has-child': hasChildren,
50
+ 'wp-block-navigation-item': isNavigationChild,
51
+ 'open-on-click': context.openSubmenusOnClick,
52
+ 'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
53
+ 'menu-item-home': id === frontPageId
54
+ })
55
+ }, hasChildren && context.openSubmenusOnClick ? createElement(Fragment, null, createElement("button", {
56
+ className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
57
+ "aria-expanded": "false"
58
+ }, label), createElement("span", {
59
+ className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"
60
+ }, createElement(ItemSubmenuIcon, null))) : createElement("a", {
61
+ className: classnames('wp-block-pages-list__item__link', {
62
+ 'wp-block-navigation-item__content': isNavigationChild
63
+ }),
64
+ href: link
65
+ }, label), hasChildren && createElement(Fragment, null, !context.openSubmenusOnClick && context.showSubmenuIcon && createElement("button", {
66
+ className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
67
+ "aria-expanded": "false"
68
+ }, createElement(ItemSubmenuIcon, null)), createElement("ul", {
69
+ className: classnames('submenu-container', {
70
+ 'wp-block-navigation__submenu-container': isNavigationChild
71
+ })
72
+ }, createElement(InnerBlocks, null))));
73
+ }
74
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list-item/edit.js"],"names":["classnames","InnerBlocks","useSelect","store","coreStore","ItemSubmenuIcon","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","PageListItemEdit","context","attributes","id","label","link","hasChildren","isNavigationChild","frontPageId","openSubmenusOnClick","showSubmenuIcon"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,yBAA5B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,0BAAhC;;AAEA,SAASC,cAAT,GAA0B;AACzB,SAAOJ,SAAS,CAAIK,MAAF,IAAc;AAC/B,UAAMC,eAAe,GAAGD,MAAM,CAAEH,SAAF,CAAN,CAAoBK,OAApB,CACvB,MADuB,EAEvB,UAFuB,CAAxB;;AAIA,QAAK,CAAED,eAAP,EAAyB;AACxB,aAAOE,SAAP;AACA;;AAED,UAAMC,IAAI,GAAGJ,MAAM,CAAEH,SAAF,CAAN,CAAoBQ,eAApB,CAAqC,MAArC,EAA6C,MAA7C,CAAb;AACA,WAAO,CAAAD,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEE,aAAN,MAAwB,MAAxB,KAAkCF,IAAlC,aAAkCA,IAAlC,uBAAkCA,IAAI,CAAEG,aAAxC,CAAP;AACA,GAXe,EAWb,EAXa,CAAhB;AAYA;;AAED,eAAe,SAASC,gBAAT,OAAqD;AAAA,MAA1B;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAA0B;AACnE,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA,KAAN;AAAaC,IAAAA,IAAb;AAAmBC,IAAAA;AAAnB,MAAmCJ,UAAzC;AACA,QAAMK,iBAAiB,IAAG,qBAAqBN,OAAxB,CAAvB;AACA,QAAMO,WAAW,GAAGjB,cAAc,EAAlC;AACA,SACC;AACC,IAAA,GAAG,EAAGY,EADP;AAEC,IAAA,SAAS,EAAGlB,UAAU,CAAE,2BAAF,EAA+B;AACpD,mBAAaqB,WADuC;AAEpD,kCAA4BC,iBAFwB;AAGpD,uBAAiBN,OAAO,CAACQ,mBAH2B;AAIpD,6BACC,CAAER,OAAO,CAACQ,mBAAV,IAAiCR,OAAO,CAACS,eALU;AAMpD,wBAAkBP,EAAE,KAAKK;AAN2B,KAA/B;AAFvB,KAWGF,WAAW,IAAIL,OAAO,CAACQ,mBAAvB,GACD,8BACC;AACC,IAAA,SAAS,EAAC,uEADX;AAEC,qBAAc;AAFf,KAIGL,KAJH,CADD,EAOC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,cAAC,eAAD,OADD,CAPD,CADC,GAaD;AACC,IAAA,SAAS,EAAGnB,UAAU,CAAE,iCAAF,EAAqC;AAC1D,2CAAqCsB;AADqB,KAArC,CADvB;AAIC,IAAA,IAAI,EAAGF;AAJR,KAMGD,KANH,CAxBF,EAiCGE,WAAW,IACZ,8BACG,CAAEL,OAAO,CAACQ,mBAAV,IACDR,OAAO,CAACS,eADP,IAEA;AACC,IAAA,SAAS,EAAC,0IADX;AAEC,qBAAc;AAFf,KAIC,cAAC,eAAD,OAJD,CAHH,EAUC;AACC,IAAA,SAAS,EAAGzB,UAAU,CAAE,mBAAF,EAAuB;AAC5C,gDACCsB;AAF2C,KAAvB;AADvB,KAMC,cAAC,WAAD,OAND,CAVD,CAlCF,CADD;AAyDA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nexport default function PageListItemEdit( { context, attributes } ) {\n\tconst { id, label, link, hasChildren } = attributes;\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst frontPageId = useFrontPageId();\n\treturn (\n\t\t<li\n\t\t\tkey={ id }\n\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t'has-child': hasChildren,\n\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t! context.openSubmenusOnClick && context.showSubmenuIcon,\n\t\t\t\t'menu-item-home': id === frontPageId,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t<>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</button>\n\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item__link', {\n\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t} ) }\n\t\t\t\t\thref={ link }\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</a>\n\t\t\t) }\n\t\t\t{ hasChildren && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<ul\n\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t'wp-block-navigation__submenu-container':\n\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InnerBlocks />\n\t\t\t\t\t</ul>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n"]}