@wordpress/block-library 7.3.5 → 7.5.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 (400) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/edit.js +1 -1
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +4 -16
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/audio/edit.native.js +1 -1
  7. package/build/audio/edit.native.js.map +1 -1
  8. package/build/button/edit.native.js +7 -3
  9. package/build/button/edit.native.js.map +1 -1
  10. package/build/categories/edit.js +8 -3
  11. package/build/categories/edit.js.map +1 -1
  12. package/build/categories/index.js +4 -0
  13. package/build/categories/index.js.map +1 -1
  14. package/build/column/index.js +10 -0
  15. package/build/column/index.js.map +1 -1
  16. package/build/comment-template/edit.js +1 -3
  17. package/build/comment-template/edit.js.map +1 -1
  18. package/build/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  19. package/{build-module/comments-query-loop → build/comments}/edit/comments-inspector-controls.js.map +1 -1
  20. package/build/{comments-query-loop → comments}/edit.js +2 -2
  21. package/build/comments/edit.js.map +1 -0
  22. package/build/{comments-query-loop → comments}/index.js +1 -1
  23. package/build/comments/index.js.map +1 -0
  24. package/build/{comments-query-loop → comments}/save.js +2 -2
  25. package/build/comments/save.js.map +1 -0
  26. package/build/cover/edit.js +4 -71
  27. package/build/cover/edit.js.map +1 -1
  28. package/build/cover/edit.native.js +36 -15
  29. package/build/cover/edit.native.js.map +1 -1
  30. package/build/cover/transforms.js +77 -6
  31. package/build/cover/transforms.js.map +1 -1
  32. package/build/cover/use-cover-is-dark.js +81 -0
  33. package/build/cover/use-cover-is-dark.js.map +1 -0
  34. package/build/cover/use-cover-is-dark.native.js +60 -0
  35. package/build/cover/use-cover-is-dark.native.js.map +1 -0
  36. package/build/embed/edit.js +12 -18
  37. package/build/embed/edit.js.map +1 -1
  38. package/build/embed/edit.native.js +1 -7
  39. package/build/embed/edit.native.js.map +1 -1
  40. package/build/embed/util.js +29 -4
  41. package/build/embed/util.js.map +1 -1
  42. package/build/file/inspector.js +2 -4
  43. package/build/file/inspector.js.map +1 -1
  44. package/build/gallery/edit.js +1 -1
  45. package/build/gallery/edit.js.map +1 -1
  46. package/build/gallery/v1/edit.js +1 -1
  47. package/build/gallery/v1/edit.js.map +1 -1
  48. package/build/group/index.js +1 -0
  49. package/build/group/index.js.map +1 -1
  50. package/build/heading/transforms.js +8 -4
  51. package/build/heading/transforms.js.map +1 -1
  52. package/build/html/edit.js +2 -2
  53. package/build/html/edit.js.map +1 -1
  54. package/build/image/edit.js +4 -6
  55. package/build/image/edit.js.map +1 -1
  56. package/build/image/edit.native.js +1 -1
  57. package/build/image/edit.native.js.map +1 -1
  58. package/build/image/image.js +1 -1
  59. package/build/image/image.js.map +1 -1
  60. package/build/index.js +4 -6
  61. package/build/index.js.map +1 -1
  62. package/build/index.native.js +14 -3
  63. package/build/index.native.js.map +1 -1
  64. package/build/latest-comments/edit.js +1 -1
  65. package/build/latest-comments/edit.js.map +1 -1
  66. package/build/latest-posts/edit.native.js +49 -0
  67. package/build/latest-posts/edit.native.js.map +1 -1
  68. package/build/loginout/edit.js +1 -1
  69. package/build/loginout/edit.js.map +1 -1
  70. package/build/media-text/edit.js +1 -2
  71. package/build/media-text/edit.js.map +1 -1
  72. package/build/media-text/edit.native.js +1 -1
  73. package/build/media-text/edit.native.js.map +1 -1
  74. package/build/navigation/edit/index.js +5 -28
  75. package/build/navigation/edit/index.js.map +1 -1
  76. package/build/navigation/edit/unsaved-inner-blocks.js +5 -4
  77. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  78. package/build/navigation/index.js +1 -2
  79. package/build/navigation/index.js.map +1 -1
  80. package/build/navigation/view-modal.js +62 -0
  81. package/build/navigation/view-modal.js.map +1 -0
  82. package/build/navigation/view.js +1 -34
  83. package/build/navigation/view.js.map +1 -1
  84. package/build/navigation-link/edit.js +1 -1
  85. package/build/navigation-link/edit.js.map +1 -1
  86. package/build/paragraph/edit.js +10 -0
  87. package/build/paragraph/edit.js.map +1 -1
  88. package/build/paragraph/edit.native.js +6 -2
  89. package/build/paragraph/edit.native.js.map +1 -1
  90. package/build/paragraph/use-enter.js +94 -0
  91. package/build/paragraph/use-enter.js.map +1 -0
  92. package/build/post-author/edit.js +1 -1
  93. package/build/post-author/edit.js.map +1 -1
  94. package/build/post-comment/index.js +1 -1
  95. package/build/post-comments/edit.js +13 -34
  96. package/build/post-comments/edit.js.map +1 -1
  97. package/build/post-comments/index.js +1 -1
  98. package/build/post-comments-form/edit.js +37 -24
  99. package/build/post-comments-form/edit.js.map +1 -1
  100. package/build/post-comments-form/form.js +48 -0
  101. package/build/post-comments-form/form.js.map +1 -0
  102. package/build/post-excerpt/edit.js +1 -1
  103. package/build/post-excerpt/edit.js.map +1 -1
  104. package/build/post-terms/edit.js +25 -3
  105. package/build/post-terms/edit.js.map +1 -1
  106. package/build/post-terms/index.js +8 -0
  107. package/build/post-terms/index.js.map +1 -1
  108. package/build/quote/index.js +7 -0
  109. package/build/quote/index.js.map +1 -1
  110. package/build/quote/v2/edit.js +11 -3
  111. package/build/quote/v2/edit.js.map +1 -1
  112. package/build/rss/edit.js +1 -1
  113. package/build/rss/edit.js.map +1 -1
  114. package/build/search/edit.js +11 -9
  115. package/build/search/edit.js.map +1 -1
  116. package/build/separator/index.js +3 -0
  117. package/build/separator/index.js.map +1 -1
  118. package/build/spacer/constants.js +9 -0
  119. package/build/spacer/constants.js.map +1 -0
  120. package/build/spacer/controls.js +3 -3
  121. package/build/spacer/controls.js.map +1 -1
  122. package/build/spacer/controls.native.js +2 -2
  123. package/build/spacer/controls.native.js.map +1 -1
  124. package/build/spacer/edit.js +5 -6
  125. package/build/spacer/edit.js.map +1 -1
  126. package/build/table/edit.js +8 -2
  127. package/build/table/edit.js.map +1 -1
  128. package/build/tag-cloud/edit.js +1 -1
  129. package/build/tag-cloud/edit.js.map +1 -1
  130. package/build/video/edit.js +4 -8
  131. package/build/video/edit.js.map +1 -1
  132. package/build/video/edit.native.js +1 -1
  133. package/build/video/edit.native.js.map +1 -1
  134. package/build-module/archives/edit.js +1 -1
  135. package/build-module/archives/edit.js.map +1 -1
  136. package/build-module/audio/edit.js +4 -16
  137. package/build-module/audio/edit.js.map +1 -1
  138. package/build-module/audio/edit.native.js +1 -1
  139. package/build-module/audio/edit.native.js.map +1 -1
  140. package/build-module/button/edit.native.js +7 -3
  141. package/build-module/button/edit.native.js.map +1 -1
  142. package/build-module/categories/edit.js +8 -3
  143. package/build-module/categories/edit.js.map +1 -1
  144. package/build-module/categories/index.js +4 -0
  145. package/build-module/categories/index.js.map +1 -1
  146. package/build-module/column/index.js +10 -0
  147. package/build-module/column/index.js.map +1 -1
  148. package/build-module/comment-template/edit.js +1 -3
  149. package/build-module/comment-template/edit.js.map +1 -1
  150. package/build-module/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  151. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -0
  152. package/build-module/{comments-query-loop → comments}/edit.js +1 -1
  153. package/build-module/comments/edit.js.map +1 -0
  154. package/build-module/{comments-query-loop → comments}/index.js +1 -1
  155. package/build-module/comments/index.js.map +1 -0
  156. package/build-module/{comments-query-loop → comments}/save.js +1 -1
  157. package/build-module/comments/save.js.map +1 -0
  158. package/build-module/cover/edit.js +4 -71
  159. package/build-module/cover/edit.js.map +1 -1
  160. package/build-module/cover/edit.native.js +35 -16
  161. package/build-module/cover/edit.native.js.map +1 -1
  162. package/build-module/cover/transforms.js +74 -6
  163. package/build-module/cover/transforms.js.map +1 -1
  164. package/build-module/cover/use-cover-is-dark.js +70 -0
  165. package/build-module/cover/use-cover-is-dark.js.map +1 -0
  166. package/build-module/cover/use-cover-is-dark.native.js +51 -0
  167. package/build-module/cover/use-cover-is-dark.native.js.map +1 -0
  168. package/build-module/embed/edit.js +13 -19
  169. package/build-module/embed/edit.js.map +1 -1
  170. package/build-module/embed/edit.native.js +2 -8
  171. package/build-module/embed/edit.native.js.map +1 -1
  172. package/build-module/embed/util.js +25 -3
  173. package/build-module/embed/util.js.map +1 -1
  174. package/build-module/file/inspector.js +2 -4
  175. package/build-module/file/inspector.js.map +1 -1
  176. package/build-module/gallery/edit.js +1 -1
  177. package/build-module/gallery/edit.js.map +1 -1
  178. package/build-module/gallery/v1/edit.js +1 -1
  179. package/build-module/gallery/v1/edit.js.map +1 -1
  180. package/build-module/group/index.js +1 -0
  181. package/build-module/group/index.js.map +1 -1
  182. package/build-module/heading/transforms.js +8 -4
  183. package/build-module/heading/transforms.js.map +1 -1
  184. package/build-module/html/edit.js +2 -2
  185. package/build-module/html/edit.js.map +1 -1
  186. package/build-module/image/edit.js +4 -6
  187. package/build-module/image/edit.js.map +1 -1
  188. package/build-module/image/edit.native.js +1 -1
  189. package/build-module/image/edit.native.js.map +1 -1
  190. package/build-module/image/image.js +1 -1
  191. package/build-module/image/image.js.map +1 -1
  192. package/build-module/index.js +3 -4
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/index.native.js +14 -3
  195. package/build-module/index.native.js.map +1 -1
  196. package/build-module/latest-comments/edit.js +1 -1
  197. package/build-module/latest-comments/edit.js.map +1 -1
  198. package/build-module/latest-posts/edit.native.js +51 -2
  199. package/build-module/latest-posts/edit.native.js.map +1 -1
  200. package/build-module/loginout/edit.js +1 -1
  201. package/build-module/loginout/edit.js.map +1 -1
  202. package/build-module/media-text/edit.js +1 -2
  203. package/build-module/media-text/edit.js.map +1 -1
  204. package/build-module/media-text/edit.native.js +1 -1
  205. package/build-module/media-text/edit.native.js.map +1 -1
  206. package/build-module/navigation/edit/index.js +6 -28
  207. package/build-module/navigation/edit/index.js.map +1 -1
  208. package/build-module/navigation/edit/unsaved-inner-blocks.js +5 -4
  209. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  210. package/build-module/navigation/index.js +1 -2
  211. package/build-module/navigation/index.js.map +1 -1
  212. package/build-module/navigation/view-modal.js +56 -0
  213. package/build-module/navigation/view-modal.js.map +1 -0
  214. package/build-module/navigation/view.js +1 -30
  215. package/build-module/navigation/view.js.map +1 -1
  216. package/build-module/navigation-link/edit.js +1 -1
  217. package/build-module/navigation-link/edit.js.map +1 -1
  218. package/build-module/paragraph/edit.js +9 -0
  219. package/build-module/paragraph/edit.js.map +1 -1
  220. package/build-module/paragraph/edit.native.js +6 -2
  221. package/build-module/paragraph/edit.native.js.map +1 -1
  222. package/build-module/paragraph/use-enter.js +81 -0
  223. package/build-module/paragraph/use-enter.js.map +1 -0
  224. package/build-module/post-author/edit.js +1 -1
  225. package/build-module/post-author/edit.js.map +1 -1
  226. package/build-module/post-comment/index.js +1 -1
  227. package/build-module/post-comments/edit.js +13 -35
  228. package/build-module/post-comments/edit.js.map +1 -1
  229. package/build-module/post-comments/index.js +1 -1
  230. package/build-module/post-comments-form/edit.js +38 -26
  231. package/build-module/post-comments-form/edit.js.map +1 -1
  232. package/build-module/post-comments-form/form.js +39 -0
  233. package/build-module/post-comments-form/form.js.map +1 -0
  234. package/build-module/post-excerpt/edit.js +1 -1
  235. package/build-module/post-excerpt/edit.js.map +1 -1
  236. package/build-module/post-terms/edit.js +26 -4
  237. package/build-module/post-terms/edit.js.map +1 -1
  238. package/build-module/post-terms/index.js +8 -0
  239. package/build-module/post-terms/index.js.map +1 -1
  240. package/build-module/quote/index.js +2 -1
  241. package/build-module/quote/index.js.map +1 -1
  242. package/build-module/quote/v2/edit.js +10 -3
  243. package/build-module/quote/v2/edit.js.map +1 -1
  244. package/build-module/rss/edit.js +1 -1
  245. package/build-module/rss/edit.js.map +1 -1
  246. package/build-module/search/edit.js +11 -9
  247. package/build-module/search/edit.js.map +1 -1
  248. package/build-module/separator/index.js +3 -0
  249. package/build-module/separator/index.js.map +1 -1
  250. package/build-module/spacer/constants.js +2 -0
  251. package/build-module/spacer/constants.js.map +1 -0
  252. package/build-module/spacer/controls.js +2 -2
  253. package/build-module/spacer/controls.js.map +1 -1
  254. package/build-module/spacer/controls.native.js +1 -1
  255. package/build-module/spacer/controls.native.js.map +1 -1
  256. package/build-module/spacer/edit.js +1 -1
  257. package/build-module/spacer/edit.js.map +1 -1
  258. package/build-module/table/edit.js +9 -3
  259. package/build-module/table/edit.js.map +1 -1
  260. package/build-module/tag-cloud/edit.js +1 -1
  261. package/build-module/tag-cloud/edit.js.map +1 -1
  262. package/build-module/video/edit.js +4 -8
  263. package/build-module/video/edit.js.map +1 -1
  264. package/build-module/video/edit.native.js +1 -1
  265. package/build-module/video/edit.native.js.map +1 -1
  266. package/build-style/{comments-query-loop → comments}/editor-rtl.css +0 -0
  267. package/build-style/{comments-query-loop → comments}/editor.css +0 -0
  268. package/build-style/common-rtl.css +32 -0
  269. package/build-style/common.css +32 -0
  270. package/build-style/cover/style-rtl.css +0 -4
  271. package/build-style/cover/style.css +0 -4
  272. package/build-style/editor-rtl.css +12 -4
  273. package/build-style/editor.css +12 -4
  274. package/build-style/navigation/style-rtl.css +3 -0
  275. package/build-style/navigation/style.css +3 -0
  276. package/build-style/style-rtl.css +73 -4
  277. package/build-style/style.css +73 -4
  278. package/build-style/table/editor-rtl.css +8 -0
  279. package/build-style/table/editor.css +8 -0
  280. package/build-style/table/style-rtl.css +38 -0
  281. package/build-style/table/style.css +38 -0
  282. package/package.json +28 -28
  283. package/src/archives/edit.js +1 -1
  284. package/src/audio/edit.js +3 -8
  285. package/src/audio/edit.native.js +1 -1
  286. package/src/button/edit.native.js +6 -3
  287. package/src/categories/block.json +4 -0
  288. package/src/categories/edit.js +8 -2
  289. package/src/categories/index.php +1 -0
  290. package/src/column/block.json +10 -0
  291. package/src/comment-template/edit.js +1 -5
  292. package/src/comment-template/index.php +4 -0
  293. package/src/{comments-query-loop → comments}/block.json +1 -1
  294. package/src/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  295. package/src/{comments-query-loop → comments}/edit.js +1 -1
  296. package/src/{comments-query-loop → comments}/editor.scss +0 -0
  297. package/src/{comments-query-loop → comments}/index.js +0 -0
  298. package/src/{comments-query-loop → comments}/save.js +1 -3
  299. package/src/comments-pagination/index.php +4 -0
  300. package/src/comments-title/index.php +4 -0
  301. package/src/common.scss +24 -1
  302. package/src/cover/edit.js +2 -67
  303. package/src/cover/edit.native.js +40 -13
  304. package/src/cover/style.native.scss +4 -0
  305. package/src/cover/style.scss +0 -4
  306. package/src/cover/test/__snapshots__/edit.native.js.snap +6 -6
  307. package/src/cover/test/transforms.js +301 -0
  308. package/src/cover/transforms.js +112 -7
  309. package/src/cover/use-cover-is-dark.js +71 -0
  310. package/src/cover/use-cover-is-dark.native.js +51 -0
  311. package/src/editor.scss +1 -1
  312. package/src/embed/edit.js +19 -24
  313. package/src/embed/edit.native.js +9 -14
  314. package/src/embed/util.js +34 -2
  315. package/src/file/inspector.js +1 -3
  316. package/src/gallery/edit.js +1 -1
  317. package/src/gallery/v1/edit.js +1 -1
  318. package/src/group/block.json +1 -0
  319. package/src/heading/transforms.js +4 -3
  320. package/src/html/edit.js +2 -2
  321. package/src/image/edit.js +2 -4
  322. package/src/image/edit.native.js +1 -1
  323. package/src/image/image.js +1 -1
  324. package/src/index.js +2 -5
  325. package/src/index.native.js +12 -2
  326. package/src/latest-comments/edit.js +1 -1
  327. package/src/latest-posts/edit.native.js +56 -1
  328. package/src/loginout/edit.js +1 -1
  329. package/src/media-text/edit.js +1 -2
  330. package/src/media-text/edit.native.js +1 -1
  331. package/src/navigation/block.json +1 -2
  332. package/src/navigation/edit/index.js +6 -36
  333. package/src/navigation/edit/unsaved-inner-blocks.js +5 -4
  334. package/src/navigation/index.php +5 -0
  335. package/src/navigation/style.scss +3 -0
  336. package/src/navigation/view-modal.js +68 -0
  337. package/src/navigation/view.js +0 -35
  338. package/src/navigation-link/edit.js +1 -1
  339. package/src/paragraph/edit.js +6 -0
  340. package/src/paragraph/edit.native.js +13 -1
  341. package/src/paragraph/use-enter.js +103 -0
  342. package/src/post-author/edit.js +1 -1
  343. package/src/post-author/index.php +1 -1
  344. package/src/post-comment/block.json +1 -1
  345. package/src/post-comments/block.json +1 -1
  346. package/src/post-comments/edit.js +13 -43
  347. package/src/post-comments/index.php +2 -0
  348. package/src/post-comments-form/edit.js +50 -58
  349. package/src/post-comments-form/form.js +43 -0
  350. package/src/post-comments-form/index.php +5 -1
  351. package/src/post-excerpt/edit.js +1 -1
  352. package/src/post-terms/block.json +8 -0
  353. package/src/post-terms/edit.js +28 -1
  354. package/src/post-terms/index.php +12 -2
  355. package/src/quote/block.json +1 -0
  356. package/src/quote/index.js +1 -1
  357. package/src/quote/v2/edit.js +3 -0
  358. package/src/rss/edit.js +1 -1
  359. package/src/search/edit.js +13 -7
  360. package/src/search/index.php +84 -33
  361. package/src/separator/block.json +3 -0
  362. package/src/spacer/constants.js +1 -0
  363. package/src/spacer/controls.js +2 -2
  364. package/src/spacer/controls.native.js +1 -1
  365. package/src/spacer/edit.js +1 -2
  366. package/src/table/edit.js +11 -2
  367. package/src/table/editor.scss +13 -0
  368. package/src/table/style.scss +52 -0
  369. package/src/tag-cloud/edit.js +1 -1
  370. package/src/video/edit.js +4 -5
  371. package/src/video/edit.native.js +1 -1
  372. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +0 -1
  373. package/build/comments-query-loop/edit.js.map +0 -1
  374. package/build/comments-query-loop/index.js.map +0 -1
  375. package/build/comments-query-loop/save.js.map +0 -1
  376. package/build/navigation-area/edit.js +0 -110
  377. package/build/navigation-area/edit.js.map +0 -1
  378. package/build/navigation-area/index.js +0 -62
  379. package/build/navigation-area/index.js.map +0 -1
  380. package/build/navigation-area/inner-blocks.js +0 -34
  381. package/build/navigation-area/inner-blocks.js.map +0 -1
  382. package/build/navigation-area/save.js +0 -18
  383. package/build/navigation-area/save.js.map +0 -1
  384. package/build-module/comments-query-loop/edit.js.map +0 -1
  385. package/build-module/comments-query-loop/index.js.map +0 -1
  386. package/build-module/comments-query-loop/save.js.map +0 -1
  387. package/build-module/navigation-area/edit.js +0 -94
  388. package/build-module/navigation-area/edit.js.map +0 -1
  389. package/build-module/navigation-area/index.js +0 -48
  390. package/build-module/navigation-area/index.js.map +0 -1
  391. package/build-module/navigation-area/inner-blocks.js +0 -26
  392. package/build-module/navigation-area/inner-blocks.js.map +0 -1
  393. package/build-module/navigation-area/save.js +0 -10
  394. package/build-module/navigation-area/save.js.map +0 -1
  395. package/src/navigation-area/block.json +0 -23
  396. package/src/navigation-area/edit.js +0 -111
  397. package/src/navigation-area/index.js +0 -26
  398. package/src/navigation-area/index.php +0 -22
  399. package/src/navigation-area/inner-blocks.js +0 -24
  400. package/src/navigation-area/save.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["classnames","escape","createBlock","switchToBlockType","useSelect","useDispatch","Button","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","Tooltip","ToolbarGroup","KeyboardShortcuts","displayShortcut","isKeyboardEvent","ENTER","__","sprintf","BlockControls","BlockIcon","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","addSubmenu","coreStore","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","useIsInvalidLink","isPostType","hasId","postStatus","select","getEntityRecord","status","isInvalid","isDraft","useMissingText","missingText","navStripHTML","html","doc","document","implementation","createHTMLDocument","body","innerHTML","textContent","LinkControlTransforms","clientId","getBlock","blockTransforms","_getBlock","getBlockRootClientId","getBlockTransformItems","featuredBlocks","transforms","filter","item","includes","name","length","map","index","icon","NavigationLinkEdit","attributes","isSelected","insertBlocksAfter","mergeBlocks","onReplace","description","rel","maxNestingLevel","saveEntityRecord","replaceBlock","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","userCanCreatePages","userCanCreatePosts","getBlocks","getBlockCount","getBlockName","hasSelectedInnerBlock","getBlockParentsByBlockName","canUser","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","userCanCreate","handleCreate","pageTitle","postType","page","rendered","onKeyDown","primary","keyCode","blockProps","className","onClick","classes","placeholderText","tooltipText","descriptionValue","titleValue","relValue","labelValue","enter","trim","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle = '', // the title of any provided Post.\n\t\turl = '',\n\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nconst useMissingText = ( type ) => {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n};\n\n/**\n * Removes HTML from a given string.\n * Note the does not provide XSS protection or otherwise attempt\n * to filter strings with malicious intent.\n *\n * See also: https://github.com/WordPress/gutenberg/pull/35539\n *\n * @param {string} html the string from which HTML should be removed.\n * @return {string} the \"cleaned\" string.\n */\nfunction navStripHTML( html ) {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\tdoc.body.innerHTML = html;\n\treturn doc.body.textContent || '';\n}\n\n/**\n * Add transforms to Link Control\n */\n\nfunction LinkControlTransforms( { clientId, replace } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t[ _getBlock( clientId ) ],\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst featuredBlocks = [\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ index }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplace(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && navStripHTML( label ), // don't allow HTML to display inside the <LinkControl>\n\t};\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst {\n\t\treplaceBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add link…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t\tuserCanCreatePages,\n\t\tuserCanCreatePosts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tuserCanCreatePages: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'pages'\n\t\t\t\t),\n\t\t\t\tuserCanCreatePosts: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'posts'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\tlabel: '',\n\t\t\tid: '',\n\t\t\tkind: '',\n\t\t\ttype: '',\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = userCanCreatePages;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = userCanCreatePosts;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t) ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = useMissingText( type, isInvalid, isDraft );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* Trim to avoid trailing white space when the placeholder text is not present */\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ label } ${ placeholderText }`.trim()\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\t\trenderControlBottom={\n\t\t\t\t\t\t\t\t\t! url\n\t\t\t\t\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\t\treplace={ replaceBlock }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation-link/edit.js"],"names":["classnames","escape","createBlock","switchToBlockType","useSelect","useDispatch","Button","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","Tooltip","ToolbarGroup","KeyboardShortcuts","displayShortcut","isKeyboardEvent","ENTER","__","sprintf","BlockControls","BlockIcon","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","addSubmenu","coreStore","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","useIsInvalidLink","isPostType","hasId","postStatus","select","getEntityRecord","status","isInvalid","isDraft","useMissingText","missingText","navStripHTML","html","doc","document","implementation","createHTMLDocument","body","innerHTML","textContent","LinkControlTransforms","clientId","getBlock","blockTransforms","_getBlock","getBlockRootClientId","getBlockTransformItems","featuredBlocks","transforms","filter","item","includes","name","length","map","index","icon","NavigationLinkEdit","attributes","isSelected","insertBlocksAfter","mergeBlocks","onReplace","description","rel","maxNestingLevel","saveEntityRecord","replaceBlock","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","innerBlocks","isAtMaxNesting","isTopLevelLink","isParentOfSelectedBlock","hasChildren","userCanCreatePages","userCanCreatePosts","getBlocks","getBlockCount","getBlockName","hasSelectedInnerBlock","getBlockParentsByBlockName","canUser","transformToSubmenu","newSubmenu","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","removeLink","userCanCreate","handleCreate","pageTitle","postType","page","rendered","onKeyDown","primary","keyCode","blockProps","className","onClick","classes","placeholderText","tooltipText","descriptionValue","titleValue","relValue","labelValue","enter","trim","searchTerm","format","mark"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,MAAT,QAAuB,QAAvB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,EAAsBC,iBAAtB,QAA+C,mBAA/C;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,MADD,EAECC,SAFD,EAGCC,OAHD,EAICC,WAJD,EAKCC,eALD,EAMCC,aAND,EAOCC,OAPD,EAQCC,YARD,EASCC,iBATD,QAUO,uBAVP;AAWA,SAASC,eAAT,EAA0BC,eAA1B,EAA2CC,KAA3C,QAAwD,qBAAxD;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SACCC,aADD,EAECC,SAFD,EAGCC,iBAHD,EAICC,QAJD,EAKCC,yBAAyB,IAAIC,WAL9B,EAMCC,aAND,EAOCC,KAAK,IAAIC,gBAPV,EAQCC,iBARD,QASO,yBATP;AAUA,SAASC,KAAT,EAAgBC,WAAhB,EAA6BC,aAA7B,QAAkD,gBAAlD;AACA,SACCC,QADD,EAECC,QAFD,EAGCC,SAHD,EAICC,MAJD,EAKCC,wBALD,QAMO,oBANP;AAOA,SAASC,0BAAT,QAA2C,gBAA3C;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,UAA3B,QAA6C,kBAA7C;AACA,SAASd,KAAK,IAAIe,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAmB,GAAKC,UAAF,IAAkB;AAC7C,QAAM,CAAEC,gBAAF,EAAoBC,mBAApB,IAA4CZ,QAAQ,CAAE,KAAF,CAA1D;AAEAC,EAAAA,SAAS,CAAE,MAAM;AAChB,UAAM;AAAEY,MAAAA;AAAF,QAAoBH,UAAU,CAACI,OAArC;;AAEA,aAASC,eAAT,CAA0BC,KAA1B,EAAkC;AACjC;AACAC,MAAAA,eAAe,CAAED,KAAF,CAAf;AACA,KANe,CAQhB;;;AACA,aAASE,aAAT,GAAyB;AACxBN,MAAAA,mBAAmB,CAAE,KAAF,CAAnB;AACA;;AAED,aAASK,eAAT,CAA0BD,KAA1B,EAAkC;AACjC;AACA,UAAKN,UAAU,CAACI,OAAX,CAAmBK,QAAnB,CAA6BH,KAAK,CAACI,MAAnC,CAAL,EAAmD;AAClDR,QAAAA,mBAAmB,CAAE,IAAF,CAAnB;AACA,OAFD,MAEO;AACNA,QAAAA,mBAAmB,CAAE,KAAF,CAAnB;AACA;AACD,KApBe,CAsBhB;AACA;AACA;;;AACAC,IAAAA,aAAa,CAACQ,gBAAd,CAAgC,WAAhC,EAA6CN,eAA7C;AACAF,IAAAA,aAAa,CAACQ,gBAAd,CAAgC,SAAhC,EAA2CH,aAA3C;AACAL,IAAAA,aAAa,CAACQ,gBAAd,CAAgC,WAAhC,EAA6CJ,eAA7C;AAEA,WAAO,MAAM;AACZJ,MAAAA,aAAa,CAACS,mBAAd,CAAmC,WAAnC,EAAgDP,eAAhD;AACAF,MAAAA,aAAa,CAACS,mBAAd,CAAmC,SAAnC,EAA8CJ,aAA9C;AACAL,MAAAA,aAAa,CAACS,mBAAd,CAAmC,WAAnC,EAAgDL,eAAhD;AACA,KAJD;AAKA,GAlCQ,EAkCN,EAlCM,CAAT;AAoCA,SAAON,gBAAP;AACA,CAxCD;AA0CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASY,mBAAT,CAA8BC,IAA9B,EAAoCC,IAApC,EAA2C;AAC1C,UAASD,IAAT;AACC,SAAK,MAAL;AACA,SAAK,MAAL;AACC,aAAO;AAAEA,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAEF;AAAzB,OAAP;;AACD,SAAK,UAAL;AACC,aAAO;AAAEA,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAE;AAAzB,OAAP;;AACD,SAAK,KAAL;AACC,aAAO;AAAEF,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAE;AAAzB,OAAP;;AACD,SAAK,aAAL;AACC,aAAO;AAAEF,QAAAA,IAAI,EAAE;AAAR,OAAP;;AACD;AACC,UAAKC,IAAI,KAAK,UAAd,EAA2B;AAC1B,eAAO;AAAED,UAAAA,IAAI,EAAE,MAAR;AAAgBE,UAAAA,OAAO,EAAEF;AAAzB,SAAP;AACA;;AACD,UAAKC,IAAI,KAAK,WAAd,EAA4B;AAC3B,eAAO;AAAED,UAAAA,IAAI,EAAE,MAAR;AAAgBE,UAAAA,OAAO,EAAEF;AAAzB,SAAP;AACA;;AACD,aAAO,EAAP;AAjBF;AAmBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,SAAT,CAAoBC,OAApB,EAA6BC,SAA7B,EAAyC;AAAA;;AACxC,QAAM;AACLC,IAAAA,SADK;AAELC,IAAAA,eAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA,qBAJK;AAKLC,IAAAA,gBALK;AAMLC,IAAAA,sBANK;AAOLC,IAAAA,sBAPK;AAQLC,IAAAA,4BARK;AASLC,IAAAA;AATK,MAUFV,OAVJ;AAYA,QAAMW,MAAM,GAAG,EAAf;;AAEA,MAAKV,SAAS,IAAI,CAAC,CAAEM,sBAArB,EAA8C;AAC7CI,IAAAA,MAAM,CAACR,eAAP,GAAyBI,sBAAzB;AACA,GAFD,MAEO,IAAKN,SAAS,IAAI,CAAC,CAAEK,gBAArB,EAAwC;AAC9CK,IAAAA,MAAM,CAACT,SAAP,GAAmBI,gBAAnB;AACA,GAFM,MAEA,IAAK,CAAC,CAAEH,eAAR,EAA0B;AAChCQ,IAAAA,MAAM,CAACR,eAAP,GAAyBA,eAAzB;AACA,GAFM,MAEA,IAAK,CAAC,CAAED,SAAR,EAAoB;AAC1BS,IAAAA,MAAM,CAACT,SAAP,GAAmBA,SAAnB;AACA,GAFM,MAEA,IAAK,CAAC,EAAEQ,KAAF,aAAEA,KAAF,+BAAEA,KAAK,CAAEE,KAAT,yCAAE,aAAcC,IAAhB,CAAN,EAA6B;AACnCF,IAAAA,MAAM,CAACR,eAAP,GAAyBO,KAAK,CAACE,KAAN,CAAYC,IAArC;AACA;;AAED,MAAKZ,SAAS,IAAI,CAAC,CAAEQ,4BAArB,EAAoD;AACnDE,IAAAA,MAAM,CAACN,qBAAP,GAA+BI,4BAA/B;AACA,GAFD,MAEO,IAAKR,SAAS,IAAI,CAAC,CAAEO,sBAArB,EAA8C;AACpDG,IAAAA,MAAM,CAACP,eAAP,GAAyBI,sBAAzB;AACA,GAFM,MAEA,IAAK,CAAC,CAAEH,qBAAR,EAAgC;AACtCM,IAAAA,MAAM,CAACN,qBAAP,GAA+BA,qBAA/B;AACA,GAFM,MAEA,IAAK,CAAC,CAAED,eAAR,EAA0B;AAChCO,IAAAA,MAAM,CAACP,eAAP,GAAyBA,eAAzB;AACA,GAFM,MAEA,IAAK,CAAC,EAAEM,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAEE,KAAT,0CAAE,cAAcE,UAAhB,CAAN,EAAmC;AACzCH,IAAAA,MAAM,CAACR,eAAP,GAAyBO,KAAK,CAACE,KAAN,CAAYE,UAArC;AACA;;AAED,SAAOH,MAAP;AACA;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,MAAMI,mCAAmC,GAAG,YAI9C;AAAA,MAHJC,YAGI,uEAHW,EAGX;AAAA,MAFJC,aAEI;AAAA,MADJC,eACI,uEADc,EACd;AACJ,QAAM;AACLC,IAAAA,KAAK,EAAEC,aAAa,GAAG,EADlB;AAELvB,IAAAA,IAAI,EAAEwB,YAAY,GAAG,EAFhB;AAGLzB,IAAAA,IAAI,EAAE0B,YAAY,GAAG;AAHhB,MAIFJ,eAJJ;AAMA,QAAM;AACLK,IAAAA,KAAK,GAAG,EADH;AACO;AACZC,IAAAA,GAAG,GAAG,EAFD;AAILC,IAAAA,aAJK;AAKLC,IAAAA,EALK;AAML7B,IAAAA,IAAI,EAAE8B,OAAO,GAAGN,YANX;AAOLzB,IAAAA,IAAI,EAAEgC,OAAO,GAAGN;AAPX,MAQFN,YARJ;AASA,QAAMa,eAAe,GAAGN,KAAK,CAACO,OAAN,CAAe,iBAAf,EAAkC,EAAlC,CAAxB;AACA,QAAMC,aAAa,GAAGP,GAAG,CAACM,OAAJ,CAAa,iBAAb,EAAgC,EAAhC,CAAtB;AACA,QAAME,WAAW,GAChBT,KAAK,KAAK,EAAV,IACAM,eAAe,KAAKE,aADpB,IAEAX,aAAa,KAAKG,KAHnB;AAKA,QAAMJ,KAAK,GAAGa,WAAW,GACtB7F,MAAM,CAAEoF,KAAF,CADgB,GAEtBH,aAAa,IAAIjF,MAAM,CAAE4F,aAAF,CAF1B,CAvBI,CA2BJ;;AACA,QAAMnC,IAAI,GAAGgC,OAAO,KAAK,UAAZ,GAAyB,KAAzB,GAAiCA,OAAO,CAACE,OAAR,CAAiB,GAAjB,EAAsB,GAAtB,CAA9C;AAEA,QAAMG,aAAa,GAClB,CAAE,MAAF,EAAU,MAAV,EAAkB,KAAlB,EAAyB,UAAzB,EAAsCC,OAAtC,CAA+CtC,IAA/C,IAAwD,CAAC,CAD1D;AAGA,QAAMuC,YAAY,GACf,CAAER,OAAF,IAAa,CAAEM,aAAjB,IAAoCN,OAAO,KAAK,QADjD;AAEA,QAAM9B,IAAI,GAAGsC,YAAY,GAAG,QAAH,GAAcR,OAAvC;AAEAV,EAAAA,aAAa,CAAE,EACd;AACA,QAAKO,GAAG,IAAI;AAAEA,MAAAA,GAAG,EAAEY,SAAS,CAAElE,aAAa,CAAEsD,GAAF,CAAf;AAAhB,KAAZ,CAFc;AAGd,QAAKL,KAAK,IAAI;AAAEA,MAAAA;AAAF,KAAd,CAHc;AAId,QAAKkB,SAAS,KAAKZ,aAAd,IAA+B;AAAEA,MAAAA;AAAF,KAApC,CAJc;AAKd,QAAKC,EAAE,IAAIY,MAAM,CAACC,SAAP,CAAkBb,EAAlB,CAAN,IAAgC;AAAEA,MAAAA;AAAF,KAArC,CALc;AAMd,QAAK7B,IAAI,IAAI;AAAEA,MAAAA;AAAF,KAAb,CANc;AAOd,QAAKD,IAAI,IAAIA,IAAI,KAAK,KAAjB,IAA0B;AAAEA,MAAAA;AAAF,KAA/B;AAPc,GAAF,CAAb;AASA,CAlDM;;AAoDP,MAAM4C,gBAAgB,GAAG,CAAE3C,IAAF,EAAQD,IAAR,EAAc8B,EAAd,KAAsB;AAC9C,QAAMe,UAAU,GACf5C,IAAI,KAAK,WAAT,IAAwBD,IAAI,KAAK,MAAjC,IAA2CA,IAAI,KAAK,MADrD;AAEA,QAAM8C,KAAK,GAAGJ,MAAM,CAACC,SAAP,CAAkBb,EAAlB,CAAd;AACA,QAAMiB,UAAU,GAAGrG,SAAS,CACzBsG,MAAF,IAAc;AAAA;;AACb,QAAK,CAAEH,UAAP,EAAoB;AACnB,aAAO,IAAP;AACA;;AACD,UAAM;AAAEI,MAAAA;AAAF,QAAsBD,MAAM,CAAEhE,SAAF,CAAlC;AACA,+BAAOiE,eAAe,CAAE,UAAF,EAAcjD,IAAd,EAAoB8B,EAApB,CAAtB,qDAAO,iBAAyCoB,MAAhD;AACA,GAP0B,EAQ3B,CAAEL,UAAF,EAAc7C,IAAd,EAAoB8B,EAApB,CAR2B,CAA5B,CAJ8C,CAe9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMqB,SAAS,GACdN,UAAU,IAAIC,KAAd,IAAuBC,UAAvB,IAAqC,YAAYA,UADlD;AAEA,QAAMK,OAAO,GAAG,YAAYL,UAA5B;AAEA,SAAO,CAAEI,SAAF,EAAaC,OAAb,CAAP;AACA,CA5BD;;AA8BA,MAAMC,cAAc,GAAKrD,IAAF,IAAY;AAClC,MAAIsD,WAAW,GAAG,EAAlB;;AAEA,UAAStD,IAAT;AACC,SAAK,MAAL;AACC;AACAsD,MAAAA,WAAW,GAAG9F,EAAE,CAAE,aAAF,CAAhB;AACA;;AACD,SAAK,MAAL;AACC;AACA8F,MAAAA,WAAW,GAAG9F,EAAE,CAAE,aAAF,CAAhB;AACA;;AACD,SAAK,UAAL;AACC;AACA8F,MAAAA,WAAW,GAAG9F,EAAE,CAAE,iBAAF,CAAhB;AACA;;AACD,SAAK,KAAL;AACC;AACA8F,MAAAA,WAAW,GAAG9F,EAAE,CAAE,YAAF,CAAhB;AACA;;AACD;AACC;AACA8F,MAAAA,WAAW,GAAG9F,EAAE,CAAE,UAAF,CAAhB;AAnBF;;AAsBA,SAAO8F,WAAP;AACA,CA1BD;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAuBC,IAAvB,EAA8B;AAC7B,QAAMC,GAAG,GAAGC,QAAQ,CAACC,cAAT,CAAwBC,kBAAxB,CAA4C,EAA5C,CAAZ;AACAH,EAAAA,GAAG,CAACI,IAAJ,CAASC,SAAT,GAAqBN,IAArB;AACA,SAAOC,GAAG,CAACI,IAAJ,CAASE,WAAT,IAAwB,EAA/B;AACA;AAED;AACA;AACA;;;AAEA,SAASC,qBAAT,OAAwD;AAAA,MAAxB;AAAEC,IAAAA,QAAF;AAAY/B,IAAAA;AAAZ,GAAwB;AACvD,QAAM;AAAEgC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAgCzH,SAAS,CAC5CsG,MAAF,IAAc;AACb,UAAM;AACLkB,MAAAA,QAAQ,EAAEE,SADL;AAELC,MAAAA,oBAFK;AAGLC,MAAAA;AAHK,QAIFtB,MAAM,CAAE9E,gBAAF,CAJV;AAMA,WAAO;AACNgG,MAAAA,QAAQ,EAAEE,SADJ;AAEND,MAAAA,eAAe,EAAEG,sBAAsB,CACtCF,SAAS,CAAEH,QAAF,CAD6B,EAEtCI,oBAAoB,CAAEJ,QAAF,CAFkB;AAFjC,KAAP;AAOA,GAf6C,EAgB9C,CAAEA,QAAF,CAhB8C,CAA/C;AAmBA,QAAMM,cAAc,GAAG,CACtB,gBADsB,EAEtB,mBAFsB,EAGtB,aAHsB,CAAvB;AAKA,QAAMC,UAAU,GAAGL,eAAe,CAACM,MAAhB,CAA0BC,IAAF,IAAY;AACtD,WAAOH,cAAc,CAACI,QAAf,CAAyBD,IAAI,CAACE,IAA9B,CAAP;AACA,GAFkB,CAAnB;;AAIA,MAAK,EAAEJ,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEK,MAAd,CAAL,EAA4B;AAC3B,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGrH,EAAE,CAAE,WAAF,CADL,CADD,EAIC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGgH,UAAU,CAACM,GAAX,CAAgB,CAAEJ,IAAF,EAAQK,KAAR,KAAmB;AACpC,WACC,cAAC,MAAD;AACC,MAAA,GAAG,EAAI,aAAaA,KAAO,EAD5B;AAEC,MAAA,OAAO,EAAG,MACT7C,OAAO,CACN+B,QADM,EAENxH,iBAAiB,CAChByH,QAAQ,CAAED,QAAF,CADQ,EAEhBS,IAAI,CAACE,IAFW,CAFX,CAHT;AAWC,MAAA,SAAS,EAAC;AAXX,OAaC,cAAC,SAAD;AAAW,MAAA,IAAI,EAAGF,IAAI,CAACM;AAAvB,MAbD,EAcGN,IAAI,CAAC/C,KAdR,CADD;AAkBA,GAnBC,CADH,CAJD,CADD;AA6BA;;AAED,eAAe,SAASsD,kBAAT,QASX;AAAA,MATwC;AAC3CC,IAAAA,UAD2C;AAE3CC,IAAAA,UAF2C;AAG3C9D,IAAAA,aAH2C;AAI3C+D,IAAAA,iBAJ2C;AAK3CC,IAAAA,WAL2C;AAM3CC,IAAAA,SAN2C;AAO3ClF,IAAAA,OAP2C;AAQ3C6D,IAAAA;AAR2C,GASxC;AACH,QAAM;AACLnC,IAAAA,EADK;AAELP,IAAAA,KAFK;AAGLvB,IAAAA,IAHK;AAIL6B,IAAAA,aAJK;AAKLD,IAAAA,GALK;AAML2D,IAAAA,WANK;AAOLC,IAAAA,GAPK;AAQL7D,IAAAA,KARK;AASL1B,IAAAA;AATK,MAUFiF,UAVJ;AAYA,QAAM,CAAE/B,SAAF,EAAaC,OAAb,IAAyBR,gBAAgB,CAAE3C,IAAF,EAAQD,IAAR,EAAc8B,EAAd,CAA/C;AACA,QAAM;AAAE2D,IAAAA;AAAF,MAAsBrF,OAA5B;AAEA,QAAMvB,IAAI,GAAG;AACZ+C,IAAAA,GADY;AAEZC,IAAAA,aAFY;AAGZF,IAAAA,KAAK,EAAEJ,KAAK,IAAIgC,YAAY,CAAEhC,KAAF,CAHhB,CAG2B;;AAH3B,GAAb;AAKA,QAAM;AAAEmE,IAAAA;AAAF,MAAuB/I,WAAW,CAAEqC,SAAF,CAAxC;AACA,QAAM;AACL2G,IAAAA,YADK;AAELC,IAAAA;AAFK,MAGFjJ,WAAW,CAAEuB,gBAAF,CAHf;AAIA,QAAM,CAAE2H,UAAF,EAAcC,aAAd,IAAgCtH,QAAQ,CAAE,KAAF,CAA9C;AACA,QAAMuH,WAAW,GAAGrH,MAAM,CAAE,IAAF,CAA1B;AACA,QAAMS,gBAAgB,GAAGF,mBAAmB,CAAE8G,WAAF,CAA5C;;AACA,QAAMC,oBAAoB,GAAGxI,EAAE,CAAE,WAAF,CAA/B;;AACA,QAAMyI,GAAG,GAAGvH,MAAM,EAAlB;AAEA,QAAM;AACLwH,IAAAA,WADK;AAELC,IAAAA,cAFK;AAGLC,IAAAA,cAHK;AAILC,IAAAA,uBAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA;AAPK,MAQF9J,SAAS,CACVsG,MAAF,IAAc;AACb,UAAM;AACLyD,MAAAA,SADK;AAELC,MAAAA,aAFK;AAGLC,MAAAA,YAHK;AAILtC,MAAAA,oBAJK;AAKLuC,MAAAA,qBALK;AAMLC,MAAAA;AANK,QAOF7D,MAAM,CAAE9E,gBAAF,CAPV;AASA,WAAO;AACNgI,MAAAA,WAAW,EAAEO,SAAS,CAAExC,QAAF,CADhB;AAENkC,MAAAA,cAAc,EACbU,0BAA0B,CAAE5C,QAAF,EAAY,CACrCW,IADqC,EAErC,yBAFqC,CAAZ,CAA1B,CAGIC,MAHJ,IAGcY,eANT;AAONW,MAAAA,cAAc,EACbO,YAAY,CAAEtC,oBAAoB,CAAEJ,QAAF,CAAtB,CAAZ,KACA,iBATK;AAUNoC,MAAAA,uBAAuB,EAAEO,qBAAqB,CAC7C3C,QAD6C,EAE7C,IAF6C,CAVxC;AAcNqC,MAAAA,WAAW,EAAE,CAAC,CAAEI,aAAa,CAAEzC,QAAF,CAdvB;AAeNsC,MAAAA,kBAAkB,EAAEvD,MAAM,CAAEhE,SAAF,CAAN,CAAoB8H,OAApB,CACnB,QADmB,EAEnB,OAFmB,CAfd;AAmBNN,MAAAA,kBAAkB,EAAExD,MAAM,CAAEhE,SAAF,CAAN,CAAoB8H,OAApB,CACnB,QADmB,EAEnB,OAFmB;AAnBd,KAAP;AAwBA,GAnCW,EAoCZ,CAAE7C,QAAF,CApCY,CARb;AA+CAxF,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA;AACA;AACA;AACAmH,IAAAA,uCAAuC;;AACvCvE,IAAAA,aAAa,CAAE;AAAE+E,MAAAA;AAAF,KAAF,CAAb;AACA,GAPQ,EAON,CAAEA,cAAF,CAPM,CAAT;AASA;AACD;AACA;;AACC,WAASW,kBAAT,GAA8B;AAC7B,UAAMC,UAAU,GAAGxK,WAAW,CAC7B,yBAD6B,EAE7B0I,UAF6B,EAG7BgB,WAH6B,CAA9B;AAKAP,IAAAA,YAAY,CAAE1B,QAAF,EAAY+C,UAAZ,CAAZ;AACA;;AAEDvI,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA;AACA;AACA;AACA,QAAK,CAAEmD,GAAP,EAAa;AACZkE,MAAAA,aAAa,CAAE,IAAF,CAAb;AACA,KAPe,CAQhB;;;AACA,QAAKQ,WAAL,EAAmB;AAClBS,MAAAA,kBAAkB;AAClB;AACD,GAZQ,EAYN,EAZM,CAAT;AAcA;AACD;AACA;AACA;;AACCtI,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE0G,UAAP,EAAoB;AACnBW,MAAAA,aAAa,CAAE,KAAF,CAAb;AACA;AACD,GAJQ,EAIN,CAAEX,UAAF,CAJM,CAAT,CAtHG,CA4HH;;AACA1G,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKoH,UAAU,IAAIjE,GAAnB,EAAyB;AACxB;AACA,UACCxD,KAAK,CAAEC,WAAW,CAAEkD,KAAF,CAAb,CAAL,IACA,cAAc0F,IAAd,CAAoB1F,KAApB,CAFD,EAGE;AACD;AACA2F,QAAAA,eAAe;AACf,OAND,MAMO;AACN;AACAtI,QAAAA,0BAA0B,CAAEqH,GAAG,CAAC3G,OAAN,EAAe,IAAf,CAA1B;AACA;AACD;AACD,GAdQ,EAcN,CAAEsC,GAAF,CAdM,CAAT;AAgBA;AACD;AACA;;AACC,WAASsF,eAAT,GAA2B;AAC1BjB,IAAAA,GAAG,CAAC3G,OAAJ,CAAY6H,KAAZ;AACA,UAAM;AAAE9H,MAAAA;AAAF,QAAoB4G,GAAG,CAAC3G,OAA9B;AACA,UAAM;AAAE8H,MAAAA;AAAF,QAAkB/H,aAAxB;AACA,UAAMgI,SAAS,GAAGD,WAAW,CAACE,YAAZ,EAAlB;AACA,UAAMC,KAAK,GAAGlI,aAAa,CAACmI,WAAd,EAAd,CAL0B,CAM1B;;AACAD,IAAAA,KAAK,CAACE,kBAAN,CAA0BxB,GAAG,CAAC3G,OAA9B;AACA+H,IAAAA,SAAS,CAACK,eAAV;AACAL,IAAAA,SAAS,CAACM,QAAV,CAAoBJ,KAApB;AACA;AAED;AACD;AACA;;;AACC,WAASK,UAAT,GAAsB;AACrB;AACAvG,IAAAA,aAAa,CAAE;AACdO,MAAAA,GAAG,EAAE,EADS;AAEdL,MAAAA,KAAK,EAAE,EAFO;AAGdO,MAAAA,EAAE,EAAE,EAHU;AAId7B,MAAAA,IAAI,EAAE,EAJQ;AAKdD,MAAAA,IAAI,EAAE;AALQ,KAAF,CAAb,CAFqB,CAUrB;;AACA8F,IAAAA,aAAa,CAAE,KAAF,CAAb;AACA;;AAED,MAAI+B,aAAa,GAAG,KAApB;;AACA,MAAK,CAAE7H,IAAF,IAAUA,IAAI,KAAK,MAAxB,EAAiC;AAChC6H,IAAAA,aAAa,GAAGtB,kBAAhB;AACA,GAFD,MAEO,IAAKvG,IAAI,KAAK,MAAd,EAAuB;AAC7B6H,IAAAA,aAAa,GAAGrB,kBAAhB;AACA;;AAED,iBAAesB,YAAf,CAA6BC,SAA7B,EAAyC;AACxC,UAAMC,QAAQ,GAAGhI,IAAI,IAAI,MAAzB;AAEA,UAAMiI,IAAI,GAAG,MAAMvC,gBAAgB,CAAE,UAAF,EAAcsC,QAAd,EAAwB;AAC1DrG,MAAAA,KAAK,EAAEoG,SADmD;AAE1D7E,MAAAA,MAAM,EAAE;AAFkD,KAAxB,CAAnC;AAKA,WAAO;AACNpB,MAAAA,EAAE,EAAEmG,IAAI,CAACnG,EADH;AAEN9B,MAAAA,IAAI,EAAEgI,QAFA;AAGNrG,MAAAA,KAAK,EAAEsG,IAAI,CAACtG,KAAL,CAAWuG,QAHZ;AAINtG,MAAAA,GAAG,EAAEqG,IAAI,CAACpJ,IAJJ;AAKNoB,MAAAA,IAAI,EAAE;AALA,KAAP;AAOA;;AAED,QAAM;AACLK,IAAAA,SADK;AAELC,IAAAA,eAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA;AAJK,MAKFN,SAAS,CAAEC,OAAF,EAAW,CAAEgG,cAAb,CALb;;AAOA,WAAS+B,SAAT,CAAoB3I,KAApB,EAA4B;AAC3B,QACClC,eAAe,CAAC8K,OAAhB,CAAyB5I,KAAzB,EAAgC,GAAhC,KACE,CAAEoC,GAAF,IAASpC,KAAK,CAAC6I,OAAN,KAAkB9K,KAF9B,EAGE;AACDuI,MAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD;;AAED,QAAMwC,UAAU,GAAGtK,aAAa,CAAE;AACjCiI,IAAAA,GAAG,EAAEF,WAD4B;AAEjCwC,IAAAA,SAAS,EAAEjM,UAAU,CAAE,0BAAF,EAA8B;AAClD,oBAAc6I,UAAU,IAAIkB,uBADsB;AAElD,4BAAsBlH,gBAF4B;AAGlD,kBAAY,CAAC,CAAEyC,GAHmC;AAIlD,mBAAa0E,WAJqC;AAKlD,wBAAkB,CAAC,CAAEhG,SAAH,IAAgB,CAAC,CAAEC,eALa;AAMlD,OAAEpC,iBAAiB,CAAE,OAAF,EAAWmC,SAAX,CAAnB,GAA6C,CAAC,CAAEA,SANE;AAOlD,wBAAkB,CAAC,CAAEE,eAAH,IAAsBC,qBAPU;AAQlD,OAAEtC,iBAAiB,CAClB,kBADkB,EAElBqC,eAFkB,CAAnB,GAGK,CAAC,CAAEA;AAX0C,KAA9B,CAFY;AAejCM,IAAAA,KAAK,EAAE;AACNE,MAAAA,KAAK,EAAE,CAAEV,SAAF,IAAeC,eADhB;AAENC,MAAAA,eAAe,EAAE,CAAEA,eAAF,IAAqBC;AAFhC,KAf0B;AAmBjC0H,IAAAA;AAnBiC,GAAF,CAAhC;;AAsBA,MAAK,CAAEvG,GAAF,IAASuB,SAAT,IAAsBC,OAA3B,EAAqC;AACpCkF,IAAAA,UAAU,CAACE,OAAX,GAAqB,MAAM1C,aAAa,CAAE,IAAF,CAAxC;AACA;;AAED,QAAM2C,OAAO,GAAGnM,UAAU,CAAE,mCAAF,EAAuC;AAChE,6CAAyC,CAAEsF,GAAF,IAASuB,SAAT,IAAsBC;AADC,GAAvC,CAA1B;AAIA,QAAME,WAAW,GAAGD,cAAc,CAAErD,IAAF,EAAQmD,SAAR,EAAmBC,OAAnB,CAAlC;AACA;;AACA,QAAMsF,eAAe,GAAI,IACxBvF,SAAS,GAAG3F,EAAE,CAAE,SAAF,CAAL,GAAqBA,EAAE,CAAE,OAAF,CAChC,GAFD;AAGA,QAAMmL,WAAW,GAChBxF,SAAS,IAAIC,OAAb,GACG5F,EAAE,CAAE,2CAAF,CADL,GAEGA,EAAE,CAAE,6BAAF,CAHN;AAKA,SACC,cAAC,QAAD,QACC,cAAC,aAAD,QACC,cAAC,YAAD,QACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAC,MADN;AAEC,IAAA,IAAI,EAAGsB,QAFR;AAGC,IAAA,KAAK,EAAGtB,EAAE,CAAE,MAAF,CAHX;AAIC,IAAA,QAAQ,EAAGH,eAAe,CAAC+K,OAAhB,CAAyB,GAAzB,CAJZ;AAKC,IAAA,OAAO,EAAG,MAAMtC,aAAa,CAAE,IAAF;AAL9B,IADD,EAQG,CAAEK,cAAF,IACD,cAAC,aAAD;AACC,IAAA,IAAI,EAAC,SADN;AAEC,IAAA,IAAI,EAAGpH,UAFR;AAGC,IAAA,KAAK,EAAGvB,EAAE,CAAE,aAAF,CAHX;AAIC,IAAA,OAAO,EAAGuJ;AAJX,IATF,CADD,CADD,EAoBC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGvJ,EAAE,CAAE,eAAF;AAArB,KACC,cAAC,eAAD;AACC,IAAA,KAAK,EAAG+H,WAAW,IAAI,EADxB;AAEC,IAAA,QAAQ,EAAKqD,gBAAF,IAAwB;AAClCvH,MAAAA,aAAa,CAAE;AAAEkE,QAAAA,WAAW,EAAEqD;AAAf,OAAF,CAAb;AACA,KAJF;AAKC,IAAA,KAAK,EAAGpL,EAAE,CAAE,aAAF,CALX;AAMC,IAAA,IAAI,EAAGA,EAAE,CACR,iFADQ;AANV,IADD,EAWC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGmE,KAAK,IAAI,EADlB;AAEC,IAAA,QAAQ,EAAKkH,UAAF,IAAkB;AAC5BxH,MAAAA,aAAa,CAAE;AAAEM,QAAAA,KAAK,EAAEkH;AAAT,OAAF,CAAb;AACA,KAJF;AAKC,IAAA,KAAK,EAAGrL,EAAE,CAAE,YAAF,CALX;AAMC,IAAA,YAAY,EAAC;AANd,IAXD,EAmBC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGgI,GAAG,IAAI,EADhB;AAEC,IAAA,QAAQ,EAAKsD,QAAF,IAAgB;AAC1BzH,MAAAA,aAAa,CAAE;AAAEmE,QAAAA,GAAG,EAAEsD;AAAP,OAAF,CAAb;AACA,KAJF;AAKC,IAAA,KAAK,EAAGtL,EAAE,CAAE,UAAF,CALX;AAMC,IAAA,YAAY,EAAC;AANd,IAnBD,CADD,CApBD,EAkDC,qBAAU8K,UAAV,EAEC;AAAG,IAAA,SAAS,EAAGG;AAAf,KAEG,CAAE7G,GAAF,GACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,OAAD;AAAS,IAAA,QAAQ,EAAC,YAAlB;AAA+B,IAAA,IAAI,EAAG+G;AAAtC,KACC,8BACC,4BAAQrF,WAAR,CADD,EAEC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGqF,WADH,CAFD,CADD,CADD,CADC,GAYD,8BACG,CAAExF,SAAF,IAAe,CAAEC,OAAjB,IACD,8BACC,cAAC,QAAD;AACC,IAAA,GAAG,EAAG6C,GADP;AAEC,IAAA,UAAU,EAAC,OAFZ;AAGC,IAAA,SAAS,EAAC,iCAHX;AAIC,IAAA,KAAK,EAAG1E,KAJT;AAKC,IAAA,QAAQ,EAAKwH,UAAF,IACV1H,aAAa,CAAE;AACdE,MAAAA,KAAK,EAAEwH;AADO,KAAF,CANf;AAUC,IAAA,OAAO,EAAG1D,WAVX;AAWC,IAAA,SAAS,EAAGC,SAXb;AAYC,IAAA,sBAAsB,EAAG,MACxBF,iBAAiB,CAChB5I,WAAW,CACV,sBADU,CADK,CAbnB;AAmBC,kBAAagB,EAAE,CACd,sBADc,CAnBhB;AAsBC,IAAA,WAAW,EAAGwI,oBAtBf;AAuBC,IAAA,4BAA4B,MAvB7B;AAwBC,IAAA,cAAc,EAAG,CAChB,WADgB,EAEhB,aAFgB,EAGhB,YAHgB,EAIhB,oBAJgB,CAxBlB;AA8BC,IAAA,OAAO,EAAG,MAAM;AACf,UAAK,CAAEpE,GAAP,EAAa;AACZkE,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD;AAlCF,IADD,EAqCGP,WAAW,IACZ;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGA,WADH,CAtCF,CAFF,EA8CG,CAAEpC,SAAS,IAAIC,OAAf,KACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,iBAAD;AACC,IAAA,SAAS,EAAG;AACX4F,MAAAA,KAAK,EAAE,MACN7D,UAAU,IACVW,aAAa,CAAE,IAAF;AAHH;AADb,IADD,EAQC,cAAC,OAAD;AACC,IAAA,QAAQ,EAAC,YADV;AAEC,IAAA,IAAI,EAAG6C;AAFR,KAIC,8BACC;AAEE;AACC,KAAGpH,KAAO,IAAImH,eAAiB,EAAhC,CAAkCO,IAAlC,EAHF,CADD,EAOC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGN,WADH,CAPD,CAJD,CARD,CA/CF,CAdF,EAyFG9C,UAAU,IACX,cAAC,OAAD;AACC,IAAA,QAAQ,EAAC,eADV;AAEC,IAAA,OAAO,EAAG,MAAMC,aAAa,CAAE,KAAF,CAF9B;AAGC,IAAA,SAAS,EAAGC,WAAW,CAACzG;AAHzB,KAKC,cAAC,WAAD;AACC,IAAA,cAAc,MADf;AAEC,IAAA,eAAe,MAFhB;AAGC,IAAA,SAAS,EAAC,6CAHX;AAIC,IAAA,KAAK,EAAGT,IAJT;AAKC,IAAA,sBAAsB,EAAG,IAL1B;AAMC,IAAA,oBAAoB,EAAGgJ,aANxB;AAOC,IAAA,gBAAgB,EAAGC,YAPpB;AAQC,IAAA,0BAA0B,EAAKoB,UAAF,IAAkB;AAC9C,UAAIC,MAAJ;;AACA,UAAKnJ,IAAI,KAAK,MAAd,EAAuB;AACtB;AACAmJ,QAAAA,MAAM,GAAG3L,EAAE,CACV,oCADU,CAAX;AAGA,OALD,MAKO;AACN;AACA2L,QAAAA,MAAM,GAAG3L,EAAE,CACV,oCADU,CAAX;AAGA;;AACD,aAAOmB,wBAAwB,CAC9BlB,OAAO,CAAE0L,MAAF,EAAUD,UAAV,CADuB,EAE9B;AAAEE,QAAAA,IAAI,EAAE;AAAR,OAF8B,CAA/B;AAIA,KAzBF;AA0BC,IAAA,aAAa,EAAG,CAAC,CAAEpJ,IA1BpB;AA2BC,IAAA,eAAe,EAAG,CAAC,CAAEA,IA3BtB;AA4BC,IAAA,gBAAgB,EAAGD,mBAAmB,CACrCC,IADqC,EAErCC,IAFqC,CA5BvC;AAgCC,IAAA,QAAQ,EAAKmB,YAAF,IACVD,mCAAmC,CAClCC,YADkC,EAElCC,aAFkC,EAGlC6D,UAHkC,CAjCrC;AAuCC,IAAA,QAAQ,EAAG0C,UAvCZ;AAwCC,IAAA,mBAAmB,EAClB,CAAEhG,GAAF,GACG,MACA,cAAC,qBAAD;AACC,MAAA,QAAQ,EAAGqC,QADZ;AAEC,MAAA,OAAO,EAAG0B;AAFX,MAFH,GAOG;AAhDL,IALD,CA1FF,CAFD,CAlDD,CADD;AA6MA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n\tKeyboardShortcuts,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle = '', // the title of any provided Post.\n\t\turl = '',\n\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n\nconst useMissingText = ( type ) => {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n};\n\n/**\n * Removes HTML from a given string.\n * Note the does not provide XSS protection or otherwise attempt\n * to filter strings with malicious intent.\n *\n * See also: https://github.com/WordPress/gutenberg/pull/35539\n *\n * @param {string} html the string from which HTML should be removed.\n * @return {string} the \"cleaned\" string.\n */\nfunction navStripHTML( html ) {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\tdoc.body.innerHTML = html;\n\treturn doc.body.textContent || '';\n}\n\n/**\n * Add transforms to Link Control\n */\n\nfunction LinkControlTransforms( { clientId, replace } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t_getBlock( clientId ),\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst featuredBlocks = [\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ index }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplace(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && navStripHTML( label ), // don't allow HTML to display inside the <LinkControl>\n\t};\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst {\n\t\treplaceBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add link…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tinnerBlocks,\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t\tuserCanCreatePages,\n\t\tuserCanCreatePosts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tuserCanCreatePages: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'pages'\n\t\t\t\t),\n\t\t\t\tuserCanCreatePosts: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'posts'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelLink } );\n\t}, [ isTopLevelLink ] );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tfunction transformToSubmenu() {\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}\n\n\tuseEffect( () => {\n\t\t// Show the LinkControl on mount if the URL is empty\n\t\t// ( When adding a new menu item)\n\t\t// This can't be done in the useState call because it conflicts\n\t\t// with the autofocus behavior of the BlockListBlock component.\n\t\tif ( ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\tlabel: '',\n\t\t\tid: '',\n\t\t\tkind: '',\n\t\t\ttype: '',\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = userCanCreatePages;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = userCanCreatePosts;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif (\n\t\t\tisKeyboardEvent.primary( event, 'k' ) ||\n\t\t\t( ! url && event.keyCode === ENTER )\n\t\t) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t) ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => setIsLinkOpen( true );\n\t}\n\n\tconst classes = classnames( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = useMissingText( type, isInvalid, isDraft );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip position=\"top center\" text={ tooltipText }>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\t\t\t\t\t\tshortcuts={ {\n\t\t\t\t\t\t\t\t\t\t\tenter: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true ),\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\t\ttext={ tooltipText }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* Trim to avoid trailing white space when the placeholder text is not present */\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ label } ${ placeholderText }`.trim()\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-link__missing_text-tooltip\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ tooltipText }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\t\trenderControlBottom={\n\t\t\t\t\t\t\t\t\t! url\n\t\t\t\t\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\t\treplace={ replaceBlock }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
@@ -14,6 +14,11 @@ import { ToolbarDropdownMenu, ToggleControl, __experimentalToolsPanelItem as Too
14
14
  import { AlignmentControl, BlockControls, InspectorControls, RichText, useBlockProps, useSetting } from '@wordpress/block-editor';
15
15
  import { createBlock } from '@wordpress/blocks';
16
16
  import { formatLtr } from '@wordpress/icons';
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ import { useOnEnter } from './use-enter';
17
22
  const name = 'core/paragraph';
18
23
 
19
24
  function ParagraphRTLControl(_ref) {
@@ -53,6 +58,10 @@ function ParagraphBlock(_ref2) {
53
58
  } = attributes;
54
59
  const isDropCapFeatureEnabled = useSetting('typography.dropCap');
55
60
  const blockProps = useBlockProps({
61
+ ref: useOnEnter({
62
+ clientId,
63
+ content
64
+ }),
56
65
  className: classnames({
57
66
  'has-drop-cap': dropCap,
58
67
  [`has-text-align-${align}`]: align
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["classnames","__","_x","isRTL","ToolbarDropdownMenu","ToggleControl","__experimentalToolsPanelItem","ToolsPanelItem","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","useSetting","createBlock","formatLtr","name","ParagraphRTLControl","direction","setDirection","icon","title","isActive","onClick","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","blockProps","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarDropdownMenu\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: formatLtr,\n\t\t\t\t\t\ttitle: _x( 'Left to right', 'editor button' ),\n\t\t\t\t\t\tisActive: direction === 'ltr',\n\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\tsetDirection(\n\t\t\t\t\t\t\t\tdirection === 'ltr' ? undefined : 'ltr'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["classnames","__","_x","isRTL","ToolbarDropdownMenu","ToggleControl","__experimentalToolsPanelItem","ToolsPanelItem","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","useSetting","createBlock","formatLtr","useOnEnter","name","ParagraphRTLControl","direction","setDirection","icon","title","isActive","onClick","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","blockProps","ref","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarDropdownMenu\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: formatLtr,\n\t\t\t\t\t\ttitle: _x( 'Left to right', 'editor button' ),\n\t\t\t\t\t\tisActive: direction === 'ltr',\n\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\tsetDirection(\n\t\t\t\t\t\t\t\tdirection === 'ltr' ? undefined : 'ltr'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
@@ -9,6 +9,7 @@ import { AlignmentControl, BlockControls, RichText, store as blockEditorStore }
9
9
  import { useCallback } from '@wordpress/element';
10
10
  import { useSelect } from '@wordpress/data';
11
11
  const name = 'core/paragraph';
12
+ const allowedParentBlockAlignments = ['left', 'center', 'right'];
12
13
 
13
14
  function ParagraphBlock(_ref) {
14
15
  var _style$baseColors, _style$baseColors$col, _style$baseColors2, _style$baseColors2$co, _style$baseColors3, _style$baseColors3$el, _style$baseColors3$el2, _style$baseColors3$el3;
@@ -19,7 +20,8 @@ function ParagraphBlock(_ref) {
19
20
  onReplace,
20
21
  setAttributes,
21
22
  style,
22
- clientId
23
+ clientId,
24
+ parentBlockAlignment
23
25
  } = _ref;
24
26
  const isRTL = useSelect(select => {
25
27
  return !!select(blockEditorStore).getSettings().isRTL;
@@ -41,6 +43,8 @@ function ParagraphBlock(_ref) {
41
43
  align: nextAlign
42
44
  });
43
45
  }, []);
46
+ const parentTextAlignment = allowedParentBlockAlignments.includes(parentBlockAlignment) ? parentBlockAlignment : undefined;
47
+ const textAlignment = align || parentTextAlignment;
44
48
  return createElement(Fragment, null, createElement(BlockControls, {
45
49
  group: "block"
46
50
  }, createElement(AlignmentControl, {
@@ -79,7 +83,7 @@ function ParagraphBlock(_ref) {
79
83
  onReplace: onReplace,
80
84
  onRemove: onReplace ? () => onReplace([]) : undefined,
81
85
  placeholder: placeholder || __('Start writing…'),
82
- textAlign: align,
86
+ textAlign: textAlignment,
83
87
  __unstableEmbedURLOnPaste: true
84
88
  }));
85
89
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"names":["__","createBlock","AlignmentControl","BlockControls","RichText","store","blockEditorStore","useCallback","useSelect","name","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","isRTL","select","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","nextAlign","nextContent","value","isOriginal","newAttributes","block","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter={ true }\n\t\t\t\tstyle={ styles }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onReplace ? () => onReplace( [] ) : undefined }\n\t\t\t\tplaceholder={ placeholder || __( 'Start writing…' ) }\n\t\t\t\ttextAlign={ align }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"names":["__","createBlock","AlignmentControl","BlockControls","RichText","store","blockEditorStore","useCallback","useSelect","name","allowedParentBlockAlignments","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","parentBlockAlignment","isRTL","select","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","nextAlign","parentTextAlignment","includes","undefined","textAlignment","nextContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nconst allowedParentBlockAlignments = [ 'left', 'center', 'right' ];\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n\tparentBlockAlignment,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\n\tconst parentTextAlignment = allowedParentBlockAlignments.includes(\n\t\tparentBlockAlignment\n\t)\n\t\t? parentBlockAlignment\n\t\t: undefined;\n\n\tconst textAlignment = align || parentTextAlignment;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter={ true }\n\t\t\t\tstyle={ styles }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onReplace ? () => onReplace( [] ) : undefined }\n\t\t\t\tplaceholder={ placeholder || __( 'Start writing…' ) }\n\t\t\t\ttextAlign={ textAlignment }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useRef } from '@wordpress/element';
5
+ import { useRefEffect } from '@wordpress/compose';
6
+ import { ENTER } from '@wordpress/keycodes';
7
+ import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
8
+ import { store as blockEditorStore } from '@wordpress/block-editor';
9
+ import { hasBlockSupport, createBlock } from '@wordpress/blocks';
10
+ export function useOnEnter(props) {
11
+ const {
12
+ batch
13
+ } = useRegistry();
14
+ const {
15
+ moveBlocksToPosition,
16
+ replaceInnerBlocks,
17
+ duplicateBlocks,
18
+ insertBlock
19
+ } = useDispatch(blockEditorStore);
20
+ const {
21
+ getBlockRootClientId,
22
+ getBlockIndex,
23
+ getBlockOrder,
24
+ getBlockName,
25
+ getBlock,
26
+ getNextBlockClientId
27
+ } = useSelect(blockEditorStore);
28
+ const propsRef = useRef(props);
29
+ propsRef.current = props;
30
+ return useRefEffect(element => {
31
+ function onKeyDown(event) {
32
+ if (event.defaultPrevented) {
33
+ return;
34
+ }
35
+
36
+ if (event.keyCode !== ENTER) {
37
+ return;
38
+ }
39
+
40
+ const {
41
+ content,
42
+ clientId
43
+ } = propsRef.current; // The paragraph should be empty.
44
+
45
+ if (content.length) {
46
+ return;
47
+ }
48
+
49
+ const wrapperClientId = getBlockRootClientId(clientId);
50
+
51
+ if (!hasBlockSupport(getBlockName(wrapperClientId), '__experimentalOnEnter', false)) {
52
+ return;
53
+ }
54
+
55
+ const order = getBlockOrder(wrapperClientId);
56
+ event.preventDefault();
57
+ const position = order.indexOf(clientId); // If it is the last block, exit.
58
+
59
+ if (position === order.length - 1) {
60
+ moveBlocksToPosition([clientId], wrapperClientId, getBlockRootClientId(wrapperClientId), getBlockIndex(wrapperClientId) + 1);
61
+ return;
62
+ } // If it is in the middle, split the block in two.
63
+
64
+
65
+ const wrapperBlock = getBlock(wrapperClientId);
66
+ batch(() => {
67
+ duplicateBlocks([wrapperClientId]);
68
+ const blockIndex = getBlockIndex(wrapperClientId);
69
+ replaceInnerBlocks(wrapperClientId, wrapperBlock.innerBlocks.slice(0, position));
70
+ replaceInnerBlocks(getNextBlockClientId(wrapperClientId), wrapperBlock.innerBlocks.slice(position + 1));
71
+ insertBlock(createBlock('core/paragraph'), blockIndex + 1, getBlockRootClientId(wrapperClientId), true);
72
+ });
73
+ }
74
+
75
+ element.addEventListener('keydown', onKeyDown);
76
+ return () => {
77
+ element.removeEventListener('keydown', onKeyDown);
78
+ };
79
+ }, []);
80
+ }
81
+ //# sourceMappingURL=use-enter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/use-enter.js"],"names":["useRef","useRefEffect","ENTER","useSelect","useDispatch","useRegistry","store","blockEditorStore","hasBlockSupport","createBlock","useOnEnter","props","batch","moveBlocksToPosition","replaceInnerBlocks","duplicateBlocks","insertBlock","getBlockRootClientId","getBlockIndex","getBlockOrder","getBlockName","getBlock","getNextBlockClientId","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","content","clientId","length","wrapperClientId","order","preventDefault","position","indexOf","wrapperBlock","blockIndex","innerBlocks","slice","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { hasBlockSupport, createBlock } from '@wordpress/blocks';\n\nexport function useOnEnter( props ) {\n\tconst { batch } = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\treplaceInnerBlocks,\n\t\tduplicateBlocks,\n\t\tinsertBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockOrder,\n\t\tgetBlockName,\n\t\tgetBlock,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { content, clientId } = propsRef.current;\n\n\t\t\t// The paragraph should be empty.\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapperClientId = getBlockRootClientId( clientId );\n\n\t\t\tif (\n\t\t\t\t! hasBlockSupport(\n\t\t\t\t\tgetBlockName( wrapperClientId ),\n\t\t\t\t\t'__experimentalOnEnter',\n\t\t\t\t\tfalse\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst order = getBlockOrder( wrapperClientId );\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst position = order.indexOf( clientId );\n\n\t\t\t// If it is the last block, exit.\n\t\t\tif ( position === order.length - 1 ) {\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t[ clientId ],\n\t\t\t\t\twrapperClientId,\n\t\t\t\t\tgetBlockRootClientId( wrapperClientId ),\n\t\t\t\t\tgetBlockIndex( wrapperClientId ) + 1\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If it is in the middle, split the block in two.\n\t\t\tconst wrapperBlock = getBlock( wrapperClientId );\n\t\t\tbatch( () => {\n\t\t\t\tduplicateBlocks( [ wrapperClientId ] );\n\t\t\t\tconst blockIndex = getBlockIndex( wrapperClientId );\n\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\twrapperClientId,\n\t\t\t\t\twrapperBlock.innerBlocks.slice( 0, position )\n\t\t\t\t);\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tgetNextBlockClientId( wrapperClientId ),\n\t\t\t\t\twrapperBlock.innerBlocks.slice( position + 1 )\n\t\t\t\t);\n\t\t\t\tinsertBlock(\n\t\t\t\t\tcreateBlock( 'core/paragraph' ),\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\tgetBlockRootClientId( wrapperClientId ),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"]}
@@ -76,7 +76,7 @@ function PostAuthorEdit(_ref) {
76
76
  })
77
77
  });
78
78
  return createElement(Fragment, null, createElement(InspectorControls, null, createElement(PanelBody, {
79
- title: __('Author Settings')
79
+ title: __('Settings')
80
80
  }, !isDescendentOfQueryLoop && !!(authors !== null && authors !== void 0 && authors.length) && createElement(SelectControl, {
81
81
  label: __('Author'),
82
82
  value: authorId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-author/edit.js"],"names":["forEach","classnames","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","PanelBody","SelectControl","ToggleControl","useSelect","useDispatch","__","store","coreStore","PostAuthorEdit","isSelected","context","postType","postId","queryId","attributes","setAttributes","isDescendentOfQueryLoop","Number","isFinite","authorId","authorDetails","authors","select","getEditedEntityRecord","getUser","getUsers","_authorId","author","who","editEntityRecord","textAlign","showAvatar","showBio","byline","avatarSizes","avatar_urls","url","size","push","value","label","blockProps","className","length","map","id","name","nextAuthorId","avatarSize","nextAlign","isEmpty","description"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { forEach } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, SelectControl, ToggleControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { authorId, authorDetails, authors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getUsers } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorId: _authorId,\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tauthors: getUsers( { who: 'authors' } ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst { textAlign, showAvatar, showBio, byline } = attributes;\n\n\tconst avatarSizes = [];\n\tif ( authorDetails ) {\n\t\tforEach( authorDetails.avatar_urls, ( url, size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Author Settings' ) }>\n\t\t\t\t\t{ ! isDescendentOfQueryLoop && !! authors?.length && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\toptions={ authors.map( ( { id, name } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tonChange={ ( nextAuthorId ) => {\n\t\t\t\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\t\tpostId,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tauthor: nextAuthorId,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: ! showAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tvalue={ attributes.avatarSize }\n\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tchecked={ showBio }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && authorDetails && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ attributes.avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails.avatar_urls[\n\t\t\t\t\t\t\t\t\tattributes.avatarSize\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={ authorDetails.name }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\tmultiline={ false }\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ authorDetails?.name || __( 'Post Author' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p className=\"wp-block-post-author__bio\">\n\t\t\t\t\t\t\t{ authorDetails?.description }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-author/edit.js"],"names":["forEach","classnames","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","PanelBody","SelectControl","ToggleControl","useSelect","useDispatch","__","store","coreStore","PostAuthorEdit","isSelected","context","postType","postId","queryId","attributes","setAttributes","isDescendentOfQueryLoop","Number","isFinite","authorId","authorDetails","authors","select","getEditedEntityRecord","getUser","getUsers","_authorId","author","who","editEntityRecord","textAlign","showAvatar","showBio","byline","avatarSizes","avatar_urls","url","size","push","value","label","blockProps","className","length","map","id","name","nextAuthorId","avatarSize","nextAlign","isEmpty","description"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { forEach } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, SelectControl, ToggleControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { authorId, authorDetails, authors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getUsers } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorId: _authorId,\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tauthors: getUsers( { who: 'authors' } ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst { textAlign, showAvatar, showBio, byline } = attributes;\n\n\tconst avatarSizes = [];\n\tif ( authorDetails ) {\n\t\tforEach( authorDetails.avatar_urls, ( url, size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ ! isDescendentOfQueryLoop && !! authors?.length && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\toptions={ authors.map( ( { id, name } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tonChange={ ( nextAuthorId ) => {\n\t\t\t\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\t\tpostId,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tauthor: nextAuthorId,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: ! showAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tvalue={ attributes.avatarSize }\n\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tchecked={ showBio }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && authorDetails && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ attributes.avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails.avatar_urls[\n\t\t\t\t\t\t\t\t\tattributes.avatarSize\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={ authorDetails.name }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\tmultiline={ false }\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ authorDetails?.name || __( 'Post Author' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p className=\"wp-block-post-author__bio\">\n\t\t\t\t\t\t\t{ authorDetails?.description }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"]}
@@ -12,7 +12,7 @@ const metadata = {
12
12
  name: "core/post-comment",
13
13
  title: "Post Comment (deprecated)",
14
14
  category: "theme",
15
- description: "This block is deprecated. Please use the Comments Query Loop block instead.",
15
+ description: "This block is deprecated. Please use the Comments block instead.",
16
16
  textdomain: "default",
17
17
  attributes: {
18
18
  commentId: {