@wordpress/block-library 8.20.1 → 8.21.1-next.f8d8eceb.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 (412) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +12 -0
  3. package/build/avatar/index.js +5 -1
  4. package/build/avatar/index.js.map +1 -1
  5. package/build/block/edit-title.native.js +11 -3
  6. package/build/block/edit-title.native.js.map +1 -1
  7. package/build/block/index.js +2 -1
  8. package/build/block/index.js.map +1 -1
  9. package/build/code/edit.native.js +8 -2
  10. package/build/code/edit.native.js.map +1 -1
  11. package/build/column/edit.js +2 -1
  12. package/build/column/edit.js.map +1 -1
  13. package/build/column/edit.native.js +2 -1
  14. package/build/column/edit.native.js.map +1 -1
  15. package/build/columns/edit.native.js +2 -1
  16. package/build/columns/edit.native.js.map +1 -1
  17. package/build/cover/controls.native.js +2 -1
  18. package/build/cover/controls.native.js.map +1 -1
  19. package/build/cover/deprecated.js +110 -1
  20. package/build/cover/deprecated.js.map +1 -1
  21. package/build/cover/edit/index.js +11 -4
  22. package/build/cover/edit/index.js.map +1 -1
  23. package/build/cover/edit/inspector-controls.js +3 -3
  24. package/build/cover/edit/inspector-controls.js.map +1 -1
  25. package/build/cover/index.js +0 -3
  26. package/build/cover/index.js.map +1 -1
  27. package/build/cover/save.js +2 -1
  28. package/build/cover/save.js.map +1 -1
  29. package/build/cover/shared.js +1 -1
  30. package/build/cover/shared.js.map +1 -1
  31. package/build/file/view.js +1 -1
  32. package/build/file/view.js.map +1 -1
  33. package/build/footnotes/index.js +1 -0
  34. package/build/footnotes/index.js.map +1 -1
  35. package/build/form/edit.js +138 -0
  36. package/build/form/edit.js.map +1 -0
  37. package/build/form/index.js +92 -0
  38. package/build/form/index.js.map +1 -0
  39. package/build/form/init.js +13 -0
  40. package/build/form/init.js.map +1 -0
  41. package/build/form/save.js +28 -0
  42. package/build/form/save.js.map +1 -0
  43. package/build/form/utils.js +24 -0
  44. package/build/form/utils.js.map +1 -0
  45. package/build/form/variations.js +95 -0
  46. package/build/form/variations.js.map +1 -0
  47. package/build/form/view.js +42 -0
  48. package/build/form/view.js.map +1 -0
  49. package/build/form-input/edit.js +124 -0
  50. package/build/form-input/edit.js.map +1 -0
  51. package/build/form-input/index.js +105 -0
  52. package/build/form-input/index.js.map +1 -0
  53. package/build/form-input/init.js +13 -0
  54. package/build/form-input/init.js.map +1 -0
  55. package/build/form-input/save.js +87 -0
  56. package/build/form-input/save.js.map +1 -0
  57. package/build/form-input/variations.js +93 -0
  58. package/build/form-input/variations.js.map +1 -0
  59. package/build/form-submission-notification/edit.js +59 -0
  60. package/build/form-submission-notification/edit.js.map +1 -0
  61. package/build/form-submission-notification/index.js +56 -0
  62. package/build/form-submission-notification/index.js.map +1 -0
  63. package/build/form-submission-notification/init.js +13 -0
  64. package/build/form-submission-notification/init.js.map +1 -0
  65. package/build/form-submission-notification/save.js +33 -0
  66. package/build/form-submission-notification/save.js.map +1 -0
  67. package/build/form-submission-notification/variations.js +63 -0
  68. package/build/form-submission-notification/variations.js.map +1 -0
  69. package/build/form-submit-button/edit.js +32 -0
  70. package/build/form-submit-button/edit.js.map +1 -0
  71. package/build/form-submit-button/index.js +44 -0
  72. package/build/form-submit-button/index.js.map +1 -0
  73. package/build/form-submit-button/init.js +13 -0
  74. package/build/form-submit-button/init.js.map +1 -0
  75. package/build/form-submit-button/save.js +22 -0
  76. package/build/form-submit-button/save.js.map +1 -0
  77. package/build/group/edit.js +2 -11
  78. package/build/group/edit.js.map +1 -1
  79. package/build/group/index.js +0 -1
  80. package/build/group/index.js.map +1 -1
  81. package/build/heading/index.js +3 -2
  82. package/build/heading/index.js.map +1 -1
  83. package/build/html/preview.js +2 -4
  84. package/build/html/preview.js.map +1 -1
  85. package/build/image/image.js +15 -6
  86. package/build/image/image.js.map +1 -1
  87. package/build/image/view.js +71 -39
  88. package/build/image/view.js.map +1 -1
  89. package/build/index.js +10 -0
  90. package/build/index.js.map +1 -1
  91. package/build/latest-posts/edit.js +6 -2
  92. package/build/latest-posts/edit.js.map +1 -1
  93. package/build/list-item/hooks/use-merge.js +15 -15
  94. package/build/list-item/hooks/use-merge.js.map +1 -1
  95. package/build/lock-unlock.js +1 -1
  96. package/build/lock-unlock.js.map +1 -1
  97. package/build/missing/edit.native.js +54 -64
  98. package/build/missing/edit.native.js.map +1 -1
  99. package/build/navigation/edit/index.js +0 -1
  100. package/build/navigation/edit/index.js.map +1 -1
  101. package/build/navigation/index.js +2 -1
  102. package/build/navigation/index.js.map +1 -1
  103. package/build/navigation/view.js +27 -5
  104. package/build/navigation/view.js.map +1 -1
  105. package/build/page-list-item/edit.js +3 -1
  106. package/build/page-list-item/edit.js.map +1 -1
  107. package/build/paragraph/edit.js +1 -1
  108. package/build/paragraph/edit.js.map +1 -1
  109. package/build/paragraph/index.js +7 -0
  110. package/build/paragraph/index.js.map +1 -1
  111. package/build/pattern/index.js +2 -1
  112. package/build/pattern/index.js.map +1 -1
  113. package/build/post-featured-image/dimension-controls.js +2 -2
  114. package/build/post-featured-image/dimension-controls.js.map +1 -1
  115. package/build/query/edit/enhanced-pagination-modal.js +27 -13
  116. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  117. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +15 -12
  118. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  119. package/build/query/utils.js +29 -8
  120. package/build/query/utils.js.map +1 -1
  121. package/build/query/view.js +4 -2
  122. package/build/query/view.js.map +1 -1
  123. package/build/search/edit.js +1 -2
  124. package/build/search/edit.js.map +1 -1
  125. package/build/social-link/edit.native.js +7 -19
  126. package/build/social-link/edit.native.js.map +1 -1
  127. package/build/spacer/controls.js +3 -3
  128. package/build/spacer/controls.js.map +1 -1
  129. package/build/spacer/controls.native.js +2 -1
  130. package/build/spacer/controls.native.js.map +1 -1
  131. package/build/spacer/edit.js +1 -1
  132. package/build/spacer/edit.js.map +1 -1
  133. package/build/spacer/edit.native.js +5 -1
  134. package/build/spacer/edit.native.js.map +1 -1
  135. package/build/tag-cloud/edit.js +2 -1
  136. package/build/tag-cloud/edit.js.map +1 -1
  137. package/build/template-part/edit/inner-blocks.js +2 -2
  138. package/build/template-part/edit/inner-blocks.js.map +1 -1
  139. package/build/template-part/index.js +2 -1
  140. package/build/template-part/index.js.map +1 -1
  141. package/build/term-description/index.js +0 -1
  142. package/build/term-description/index.js.map +1 -1
  143. package/build-module/avatar/index.js +5 -1
  144. package/build-module/avatar/index.js.map +1 -1
  145. package/build-module/block/edit-title.native.js +12 -4
  146. package/build-module/block/edit-title.native.js.map +1 -1
  147. package/build-module/block/index.js +2 -1
  148. package/build-module/block/index.js.map +1 -1
  149. package/build-module/code/edit.native.js +8 -2
  150. package/build-module/code/edit.native.js.map +1 -1
  151. package/build-module/column/edit.js +3 -2
  152. package/build-module/column/edit.js.map +1 -1
  153. package/build-module/column/edit.native.js +3 -2
  154. package/build-module/column/edit.native.js.map +1 -1
  155. package/build-module/columns/edit.native.js +3 -2
  156. package/build-module/columns/edit.native.js.map +1 -1
  157. package/build-module/cover/controls.native.js +3 -2
  158. package/build-module/cover/controls.native.js.map +1 -1
  159. package/build-module/cover/deprecated.js +110 -1
  160. package/build-module/cover/deprecated.js.map +1 -1
  161. package/build-module/cover/edit/index.js +12 -5
  162. package/build-module/cover/edit/index.js.map +1 -1
  163. package/build-module/cover/edit/inspector-controls.js +4 -4
  164. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  165. package/build-module/cover/index.js +0 -3
  166. package/build-module/cover/index.js.map +1 -1
  167. package/build-module/cover/save.js +2 -1
  168. package/build-module/cover/save.js.map +1 -1
  169. package/build-module/cover/shared.js +1 -1
  170. package/build-module/cover/shared.js.map +1 -1
  171. package/build-module/file/view.js +2 -2
  172. package/build-module/file/view.js.map +1 -1
  173. package/build-module/footnotes/index.js +1 -0
  174. package/build-module/footnotes/index.js.map +1 -1
  175. package/build-module/form/edit.js +130 -0
  176. package/build-module/form/edit.js.map +1 -0
  177. package/build-module/form/index.js +82 -0
  178. package/build-module/form/index.js.map +1 -0
  179. package/build-module/form/init.js +6 -0
  180. package/build-module/form/init.js.map +1 -0
  181. package/build-module/form/save.js +20 -0
  182. package/build-module/form/save.js.map +1 -0
  183. package/build-module/form/utils.js +15 -0
  184. package/build-module/form/utils.js.map +1 -0
  185. package/build-module/form/variations.js +86 -0
  186. package/build-module/form/variations.js.map +1 -0
  187. package/build-module/form/view.js +40 -0
  188. package/build-module/form/view.js.map +1 -0
  189. package/build-module/form-input/edit.js +115 -0
  190. package/build-module/form-input/edit.js.map +1 -0
  191. package/build-module/form-input/index.js +95 -0
  192. package/build-module/form-input/index.js.map +1 -0
  193. package/build-module/form-input/init.js +6 -0
  194. package/build-module/form-input/init.js.map +1 -0
  195. package/build-module/form-input/save.js +80 -0
  196. package/build-module/form-input/save.js.map +1 -0
  197. package/build-module/form-input/variations.js +85 -0
  198. package/build-module/form-input/variations.js.map +1 -0
  199. package/build-module/form-submission-notification/edit.js +50 -0
  200. package/build-module/form-submission-notification/edit.js.map +1 -0
  201. package/build-module/form-submission-notification/index.js +47 -0
  202. package/build-module/form-submission-notification/index.js.map +1 -0
  203. package/build-module/form-submission-notification/init.js +6 -0
  204. package/build-module/form-submission-notification/init.js.map +1 -0
  205. package/build-module/form-submission-notification/save.js +25 -0
  206. package/build-module/form-submission-notification/save.js.map +1 -0
  207. package/build-module/form-submission-notification/variations.js +55 -0
  208. package/build-module/form-submission-notification/variations.js.map +1 -0
  209. package/build-module/form-submit-button/edit.js +24 -0
  210. package/build-module/form-submit-button/edit.js.map +1 -0
  211. package/build-module/form-submit-button/index.js +34 -0
  212. package/build-module/form-submit-button/index.js.map +1 -0
  213. package/build-module/form-submit-button/init.js +6 -0
  214. package/build-module/form-submit-button/init.js.map +1 -0
  215. package/build-module/form-submit-button/save.js +14 -0
  216. package/build-module/form-submit-button/save.js.map +1 -0
  217. package/build-module/group/edit.js +3 -12
  218. package/build-module/group/edit.js.map +1 -1
  219. package/build-module/group/index.js +0 -1
  220. package/build-module/group/index.js.map +1 -1
  221. package/build-module/heading/index.js +3 -2
  222. package/build-module/heading/index.js.map +1 -1
  223. package/build-module/html/preview.js +2 -4
  224. package/build-module/html/preview.js.map +1 -1
  225. package/build-module/image/image.js +16 -7
  226. package/build-module/image/image.js.map +1 -1
  227. package/build-module/image/view.js +71 -39
  228. package/build-module/image/view.js.map +1 -1
  229. package/build-module/index.js +10 -0
  230. package/build-module/index.js.map +1 -1
  231. package/build-module/latest-posts/edit.js +6 -2
  232. package/build-module/latest-posts/edit.js.map +1 -1
  233. package/build-module/list-item/hooks/use-merge.js +15 -15
  234. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  235. package/build-module/lock-unlock.js +1 -1
  236. package/build-module/lock-unlock.js.map +1 -1
  237. package/build-module/missing/edit.native.js +58 -68
  238. package/build-module/missing/edit.native.js.map +1 -1
  239. package/build-module/navigation/edit/index.js +0 -1
  240. package/build-module/navigation/edit/index.js.map +1 -1
  241. package/build-module/navigation/index.js +2 -1
  242. package/build-module/navigation/index.js.map +1 -1
  243. package/build-module/navigation/view.js +27 -5
  244. package/build-module/navigation/view.js.map +1 -1
  245. package/build-module/page-list-item/edit.js +3 -1
  246. package/build-module/page-list-item/edit.js.map +1 -1
  247. package/build-module/paragraph/edit.js +2 -2
  248. package/build-module/paragraph/edit.js.map +1 -1
  249. package/build-module/paragraph/index.js +7 -0
  250. package/build-module/paragraph/index.js.map +1 -1
  251. package/build-module/pattern/index.js +2 -1
  252. package/build-module/pattern/index.js.map +1 -1
  253. package/build-module/post-featured-image/dimension-controls.js +3 -3
  254. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  255. package/build-module/query/edit/enhanced-pagination-modal.js +28 -14
  256. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  257. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +17 -14
  258. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  259. package/build-module/query/utils.js +27 -5
  260. package/build-module/query/utils.js.map +1 -1
  261. package/build-module/query/view.js +4 -2
  262. package/build-module/query/view.js.map +1 -1
  263. package/build-module/search/edit.js +2 -3
  264. package/build-module/search/edit.js.map +1 -1
  265. package/build-module/social-link/edit.native.js +8 -20
  266. package/build-module/social-link/edit.native.js.map +1 -1
  267. package/build-module/spacer/controls.js +4 -4
  268. package/build-module/spacer/controls.js.map +1 -1
  269. package/build-module/spacer/controls.native.js +3 -2
  270. package/build-module/spacer/controls.native.js.map +1 -1
  271. package/build-module/spacer/edit.js +2 -2
  272. package/build-module/spacer/edit.js.map +1 -1
  273. package/build-module/spacer/edit.native.js +6 -2
  274. package/build-module/spacer/edit.native.js.map +1 -1
  275. package/build-module/tag-cloud/edit.js +3 -2
  276. package/build-module/tag-cloud/edit.js.map +1 -1
  277. package/build-module/template-part/edit/inner-blocks.js +3 -3
  278. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  279. package/build-module/template-part/index.js +2 -1
  280. package/build-module/template-part/index.js.map +1 -1
  281. package/build-module/term-description/index.js +0 -1
  282. package/build-module/term-description/index.js.map +1 -1
  283. package/build-style/editor-rtl.css +50 -0
  284. package/build-style/editor.css +50 -0
  285. package/build-style/file/style-rtl.css +0 -5
  286. package/build-style/file/style.css +0 -5
  287. package/build-style/form-input/editor-rtl.css +106 -0
  288. package/build-style/form-input/editor.css +106 -0
  289. package/build-style/form-input/style-rtl.css +135 -0
  290. package/build-style/form-input/style.css +135 -0
  291. package/build-style/form-submission-notification/editor-rtl.css +118 -0
  292. package/build-style/form-submission-notification/editor.css +118 -0
  293. package/build-style/form-submit-button/style-rtl.css +91 -0
  294. package/build-style/form-submit-button/style.css +91 -0
  295. package/build-style/image/style-rtl.css +39 -5
  296. package/build-style/image/style.css +39 -5
  297. package/build-style/navigation/style-rtl.css +5 -0
  298. package/build-style/navigation/style.css +5 -0
  299. package/build-style/query/style-rtl.css +0 -10
  300. package/build-style/query/style.css +0 -10
  301. package/build-style/style-rtl.css +92 -10
  302. package/build-style/style.css +92 -10
  303. package/package.json +32 -32
  304. package/src/avatar/block.json +5 -1
  305. package/src/block/block.json +2 -1
  306. package/src/block/edit-title.native.js +16 -13
  307. package/src/calendar/index.php +2 -6
  308. package/src/code/edit.native.js +15 -1
  309. package/src/column/edit.js +3 -8
  310. package/src/column/edit.native.js +3 -8
  311. package/src/columns/edit.native.js +3 -8
  312. package/src/comment-author-avatar/index.php +1 -1
  313. package/src/cover/block.json +0 -3
  314. package/src/cover/controls.native.js +3 -8
  315. package/src/cover/deprecated.js +151 -1
  316. package/src/cover/edit/index.js +15 -5
  317. package/src/cover/edit/inspector-controls.js +22 -33
  318. package/src/cover/save.js +2 -1
  319. package/src/cover/shared.js +1 -1
  320. package/src/editor.scss +2 -0
  321. package/src/file/index.php +2 -1
  322. package/src/file/style.scss +0 -6
  323. package/src/file/view.js +2 -2
  324. package/src/footnotes/block.json +1 -0
  325. package/src/form/block.json +60 -0
  326. package/src/form/edit.js +179 -0
  327. package/src/form/index.js +20 -0
  328. package/src/form/index.php +214 -0
  329. package/src/form/init.js +6 -0
  330. package/src/form/save.js +20 -0
  331. package/src/form/utils.js +39 -0
  332. package/src/form/variations.js +139 -0
  333. package/src/form/view.js +41 -0
  334. package/src/form-input/block.json +73 -0
  335. package/src/form-input/edit.js +151 -0
  336. package/src/form-input/editor.scss +24 -0
  337. package/src/form-input/index.js +20 -0
  338. package/src/form-input/index.php +45 -0
  339. package/src/form-input/init.js +6 -0
  340. package/src/form-input/save.js +83 -0
  341. package/src/form-input/style.scss +61 -0
  342. package/src/form-input/variations.js +82 -0
  343. package/src/form-submission-notification/block.json +19 -0
  344. package/src/form-submission-notification/edit.js +63 -0
  345. package/src/form-submission-notification/editor.scss +45 -0
  346. package/src/form-submission-notification/index.js +26 -0
  347. package/src/form-submission-notification/index.php +48 -0
  348. package/src/form-submission-notification/init.js +6 -0
  349. package/src/form-submission-notification/save.js +28 -0
  350. package/src/form-submission-notification/variations.js +59 -0
  351. package/src/form-submit-button/block.json +14 -0
  352. package/src/form-submit-button/edit.js +33 -0
  353. package/src/form-submit-button/index.js +18 -0
  354. package/src/form-submit-button/init.js +6 -0
  355. package/src/form-submit-button/save.js +14 -0
  356. package/src/form-submit-button/style.scss +3 -0
  357. package/src/freeform/test/__snapshots__/index.native.js.snap +7 -0
  358. package/src/freeform/test/index.native.js +57 -0
  359. package/src/group/block.json +0 -1
  360. package/src/group/edit.js +2 -7
  361. package/src/heading/index.js +4 -2
  362. package/src/html/preview.js +9 -4
  363. package/src/image/image.js +27 -6
  364. package/src/image/index.php +128 -83
  365. package/src/image/style.scss +49 -5
  366. package/src/image/view.js +93 -51
  367. package/src/index.js +10 -0
  368. package/src/latest-posts/edit.js +11 -2
  369. package/src/latest-posts/index.php +17 -8
  370. package/src/list-item/hooks/use-merge.js +20 -23
  371. package/src/lock-unlock.js +1 -1
  372. package/src/missing/edit.native.js +56 -117
  373. package/src/missing/style.native.scss +0 -67
  374. package/src/missing/test/edit-integration.native.js +135 -49
  375. package/src/missing/test/edit.native.js +0 -41
  376. package/src/navigation/block.json +2 -1
  377. package/src/navigation/edit/index.js +0 -1
  378. package/src/navigation/index.php +28 -8
  379. package/src/navigation/style.scss +6 -1
  380. package/src/navigation/view.js +25 -6
  381. package/src/page-list-item/edit.js +2 -0
  382. package/src/paragraph/edit.js +2 -2
  383. package/src/paragraph/index.js +10 -0
  384. package/src/pattern/block.json +2 -1
  385. package/src/pattern/index.php +0 -3
  386. package/src/post-featured-image/dimension-controls.js +3 -3
  387. package/src/post-navigation-link/index.php +2 -1
  388. package/src/preformatted/test/edit.native.js +38 -0
  389. package/src/query/edit/enhanced-pagination-modal.js +37 -21
  390. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +18 -22
  391. package/src/query/index.php +100 -10
  392. package/src/query/style.scss +0 -11
  393. package/src/query/utils.js +29 -8
  394. package/src/query/view.js +11 -2
  395. package/src/query-pagination-next/index.php +1 -1
  396. package/src/query-pagination-previous/index.php +1 -1
  397. package/src/search/edit.js +5 -3
  398. package/src/search/index.php +0 -4
  399. package/src/social-link/edit.native.js +12 -26
  400. package/src/social-link/editor.native.scss +0 -9
  401. package/src/social-link/index.php +2 -2
  402. package/src/spacer/controls.js +9 -12
  403. package/src/spacer/controls.native.js +3 -8
  404. package/src/spacer/edit.js +2 -2
  405. package/src/spacer/edit.native.js +6 -5
  406. package/src/style.scss +1 -0
  407. package/src/tag-cloud/edit.js +3 -7
  408. package/src/template-part/block.json +2 -1
  409. package/src/template-part/edit/inner-blocks.js +3 -3
  410. package/src/template-part/index.php +4 -7
  411. package/src/term-description/block.json +0 -1
  412. package/src/verse/test/edit.native.js +37 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_blockEditor","_blocks","_icons","_useEnter","name","ParagraphRTLControl","direction","setDirection","isRTL","_react","createElement","ToolbarButton","icon","formatLtr","title","_x","isActive","onClick","undefined","hasDropCapDisabled","align","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","content","dropCap","placeholder","isDropCapFeatureEnabled","useSetting","blockProps","useBlockProps","ref","useOnEnter","className","classnames","style","helpText","__","Fragment","BlockControls","group","AlignmentControl","value","onChange","newAlign","newDirection","InspectorControls","__experimentalToolsPanelItem","hasValue","label","onDeselect","resetAllFilter","panelId","ToggleControl","__nextHasNoMarginBottom","checked","help","disabled","RichText","identifier","tagName","newContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","__unstableEmbedURLOnPaste","__unstableAllowPrefixTransformations","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\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<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\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': hasDropCapDisabled( align ) ? false : dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( align ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Toggle to show a large initial letter.' );\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( {\n\t\t\t\t\t\t\talign: newAlign,\n\t\t\t\t\t\t\tdropCap: hasDropCapDisabled( newAlign )\n\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t: dropCap,\n\t\t\t\t\t\t} )\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 group=\"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\t__nextHasNoMarginBottom\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={ helpText }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\thasDropCapDisabled( align ) ? true : false\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? __( 'Block: Paragraph' )\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\tdata-custom-placeholder={ placeholder ? true : undefined }\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"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_blockEditor","_blocks","_icons","_useEnter","name","ParagraphRTLControl","direction","setDirection","isRTL","_react","createElement","ToolbarButton","icon","formatLtr","title","_x","isActive","onClick","undefined","hasDropCapDisabled","align","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","content","dropCap","placeholder","isDropCapFeatureEnabled","useSettings","blockProps","useBlockProps","ref","useOnEnter","className","classnames","style","helpText","__","Fragment","BlockControls","group","AlignmentControl","value","onChange","newAlign","newDirection","InspectorControls","__experimentalToolsPanelItem","hasValue","label","onDeselect","resetAllFilter","panelId","ToggleControl","__nextHasNoMarginBottom","checked","help","disabled","RichText","identifier","tagName","newContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","__unstableEmbedURLOnPaste","__unstableAllowPrefixTransformations","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSettings,\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<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\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 ] = useSettings( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( align ) ? false : dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( align ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Toggle to show a large initial letter.' );\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( {\n\t\t\t\t\t\t\talign: newAlign,\n\t\t\t\t\t\t\tdropCap: hasDropCapDisabled( newAlign )\n\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t: dropCap,\n\t\t\t\t\t\t} )\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 group=\"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\t__nextHasNoMarginBottom\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={ helpText }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\thasDropCapDisabled( align ) ? true : false\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? __( 'Block: Paragraph' )\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\tdata-custom-placeholder={ placeholder ? true : undefined }\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"],"mappings":"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"}
@@ -106,7 +106,14 @@ const settings = {
106
106
  __experimentalLabel(attributes, {
107
107
  context
108
108
  }) {
109
+ const customName = attributes?.metadata?.name;
110
+ if (context === 'list-view' && customName) {
111
+ return customName;
112
+ }
109
113
  if (context === 'accessibility') {
114
+ if (customName) {
115
+ return customName;
116
+ }
110
117
  const {
111
118
  content
112
119
  } = attributes;
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","usesContext","attributes","align","type","content","source","selector","__experimentalRole","dropCap","placeholder","direction","supports","anchor","className","color","gradients","link","__experimentalDefaultControls","background","text","__experimentalConnections","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","__experimentalTextTransform","__experimentalWritingMode","__experimentalSelector","__unstablePasteTextInline","editorStyle","style","exports","settings","icon","example","__","__experimentalLabel","context","length","transforms","deprecated","merge","attributesToMerge","edit","save","init","initBlock"],"sources":["@wordpress/block-library/src/paragraph/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { paragraph as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __(\n\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tif ( context === 'accessibility' ) {\n\t\t\tconst { content } = attributes;\n\t\t\treturn ! content || content.length === 0 ? __( 'Empty' ) : content;\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,KAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,WAAA,GAAAJ,sBAAA,CAAAH,OAAA;AAdA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAQ,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,KAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAD,IAAA;MAAAE,MAAA;MAAAC,QAAA;MAAA;MAAAC,kBAAA;IAAA;IAAAC,OAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,WAAA;MAAAN,IAAA;IAAA;IAAAO,SAAA;MAAAP,IAAA;MAAA;IAAA;EAAA;EAAAQ,QAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,yBAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAN,6BAAA;QAAAK,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,4BAAA;MAAAC,uBAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAC,2BAAA;MAAAC,yBAAA;MAAAhB,6BAAA;QAAAQ,QAAA;MAAA;IAAA;IAAAS,sBAAA;IAAAC,yBAAA;EAAA;EAAAC,WAAA;EAAAC,KAAA;AAAA;AAAAC,OAAA,CAAA/C,QAAA,GAAAA,QAAA;AAUA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAAC+C,OAAA,CAAA5C,IAAA,GAAAA,IAAA;AAInB,MAAM6C,QAAQ,GAAG;EACvBC,IAAI,EAAJA,gBAAI;EACJC,OAAO,EAAE;IACRxC,UAAU,EAAE;MACXG,OAAO,EAAE,IAAAsC,QAAE,EACV,kOACD;IACD;EACD,CAAC;EACDC,mBAAmBA,CAAE1C,UAAU,EAAE;IAAE2C;EAAQ,CAAC,EAAG;IAC9C,IAAKA,OAAO,KAAK,eAAe,EAAG;MAClC,MAAM;QAAExC;MAAQ,CAAC,GAAGH,UAAU;MAC9B,OAAO,CAAEG,OAAO,IAAIA,OAAO,CAACyC,MAAM,KAAK,CAAC,GAAG,IAAAH,QAAE,EAAE,OAAQ,CAAC,GAAGtC,OAAO;IACnE;EACD,CAAC;EACD0C,UAAU,EAAVA,mBAAU;EACVC,UAAU,EAAVA,mBAAU;EACVC,KAAKA,CAAE/C,UAAU,EAAEgD,iBAAiB,EAAG;IACtC,OAAO;MACN7C,OAAO,EACN,CAAEH,UAAU,CAACG,OAAO,IAAI,EAAE,KACxB6C,iBAAiB,CAAC7C,OAAO,IAAI,EAAE;IACnC,CAAC;EACF,CAAC;EACD8C,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA;AACD,CAAC;AAACb,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMa,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE3D,IAAI;EAAEH,QAAQ;EAAEgD;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAc,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","usesContext","attributes","align","type","content","source","selector","__experimentalRole","dropCap","placeholder","direction","supports","anchor","className","color","gradients","link","__experimentalDefaultControls","background","text","__experimentalConnections","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","__experimentalTextTransform","__experimentalWritingMode","__experimentalSelector","__unstablePasteTextInline","editorStyle","style","exports","settings","icon","example","__","__experimentalLabel","context","customName","length","transforms","deprecated","merge","attributesToMerge","edit","save","init","initBlock"],"sources":["@wordpress/block-library/src/paragraph/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { paragraph as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __(\n\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\tif ( customName ) {\n\t\t\t\treturn customName;\n\t\t\t}\n\n\t\t\tconst { content } = attributes;\n\t\t\treturn ! content || content.length === 0 ? __( 'Empty' ) : content;\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
@@ -19,7 +19,8 @@ const metadata = {
19
19
  description: "Show a block pattern.",
20
20
  supports: {
21
21
  html: false,
22
- inserter: false
22
+ inserter: false,
23
+ renaming: false
23
24
  },
24
25
  textdomain: "default",
25
26
  attributes: {
@@ -1 +1 @@
1
- {"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","$schema","apiVersion","name","title","category","description","supports","html","inserter","textdomain","attributes","slug","type","exports","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAAAC,OAAA,CAAAd,QAAA,GAAAA,QAAA;AAOA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAACc,OAAA,CAAAX,IAAA,GAAAA,IAAA;AAGnB,MAAMY,QAAQ,GAAG;EACvBC,IAAI,EAAEC;AACP,CAAC;AAACH,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMG,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEhB,IAAI;EAAEH,QAAQ;EAAEe;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAI,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","$schema","apiVersion","name","title","category","description","supports","html","inserter","renaming","textdomain","attributes","slug","type","exports","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAAAC,OAAA,CAAAf,QAAA,GAAAA,QAAA;AAOA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAACe,OAAA,CAAAZ,IAAA,GAAAA,IAAA;AAGnB,MAAMa,QAAQ,GAAG;EACvBC,IAAI,EAAEC;AACP,CAAC;AAACH,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMG,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEjB,IAAI;EAAEH,QAAQ;EAAEgB;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAI,IAAA,GAAAA,IAAA"}
@@ -41,9 +41,9 @@ const DimensionControls = ({
41
41
  setAttributes,
42
42
  imageSizeOptions = []
43
43
  }) => {
44
- const defaultUnits = ['px', '%', 'vw', 'em', 'rem'];
44
+ const [availableUnits] = (0, _blockEditor.useSettings)('spacing.units');
45
45
  const units = (0, _components.__experimentalUseCustomUnits)({
46
- availableUnits: (0, _blockEditor.useSetting)('spacing.units') || defaultUnits
46
+ availableUnits: availableUnits || ['px', '%', 'vw', 'em', 'rem']
47
47
  });
48
48
  const onDimensionChange = (dimension, nextValue) => {
49
49
  const parsedValue = parseFloat(nextValue);
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blockEditor","SCALE_OPTIONS","_react","createElement","Fragment","__experimentalToggleGroupControlOption","value","label","_x","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","__","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","defaultUnits","units","useCustomUnits","availableUnits","useSetting","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","showScaleControl","InspectorControls","group","__experimentalToolsPanelItem","hasValue","onDeselect","undefined","resetAllFilter","isShownByDefault","panelId","SelectControl","__nextHasNoMarginBottom","options","onChange","nextAspectRatio","className","__experimentalUnitControl","labelPosition","min","nextHeight","nextWidth","__experimentalToggleGroupControl","help","isBlock","length","nextSizeSlug","_default","exports","default"],"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls, useSetting } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\nconst DEFAULT_SIZE = 'full';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { aspectRatio, width, height, scale, sizeSlug },\n\tsetAttributes,\n\timageSizeOptions = [],\n} ) => {\n\tconst defaultUnits = [ 'px', '%', 'vw', 'em', 'rem' ];\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || defaultUnits,\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\n\tconst showScaleControl =\n\t\theight || ( aspectRatio && aspectRatio !== 'auto' );\n\n\treturn (\n\t\t<InspectorControls group=\"dimensions\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! aspectRatio }\n\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { aspectRatio: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t// These should use the same values as AspectRatioDropdown in @wordpress/block-editor\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Original' ),\n\t\t\t\t\t\t\tvalue: 'auto',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Square' ),\n\t\t\t\t\t\t\tvalue: '1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '16:9' ),\n\t\t\t\t\t\t\tvalue: '16/9',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '4:3' ),\n\t\t\t\t\t\t\tvalue: '4/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:2' ),\n\t\t\t\t\t\t\tvalue: '3/2',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '9:16' ),\n\t\t\t\t\t\t\tvalue: '9/16',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:4' ),\n\t\t\t\t\t\t\tvalue: '3/4',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '2:3' ),\n\t\t\t\t\t\t\tvalue: '2/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) =>\n\t\t\t\t\t\tsetAttributes( { aspectRatio: nextAspectRatio } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! sizeSlug }\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { sizeSlug: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tsizeSlug: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\tvalue={ sizeSlug || DEFAULT_SIZE }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Select the size of the source image.' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default DimensionControls;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_blockEditor","SCALE_OPTIONS","_react","createElement","Fragment","__experimentalToggleGroupControlOption","value","label","_x","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","__","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","availableUnits","useSettings","units","useCustomUnits","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","showScaleControl","InspectorControls","group","__experimentalToolsPanelItem","hasValue","onDeselect","undefined","resetAllFilter","isShownByDefault","panelId","SelectControl","__nextHasNoMarginBottom","options","onChange","nextAspectRatio","className","__experimentalUnitControl","labelPosition","min","nextHeight","nextWidth","__experimentalToggleGroupControl","help","isBlock","length","nextSizeSlug","_default","exports","default"],"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls, useSettings } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\nconst DEFAULT_SIZE = 'full';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { aspectRatio, width, height, scale, sizeSlug },\n\tsetAttributes,\n\timageSizeOptions = [],\n} ) => {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', '%', 'vw', 'em', 'rem' ],\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\n\tconst showScaleControl =\n\t\theight || ( aspectRatio && aspectRatio !== 'auto' );\n\n\treturn (\n\t\t<InspectorControls group=\"dimensions\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! aspectRatio }\n\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { aspectRatio: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t// These should use the same values as AspectRatioDropdown in @wordpress/block-editor\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Original' ),\n\t\t\t\t\t\t\tvalue: 'auto',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Square' ),\n\t\t\t\t\t\t\tvalue: '1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '16:9' ),\n\t\t\t\t\t\t\tvalue: '16/9',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '4:3' ),\n\t\t\t\t\t\t\tvalue: '4/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:2' ),\n\t\t\t\t\t\t\tvalue: '3/2',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '9:16' ),\n\t\t\t\t\t\t\tvalue: '9/16',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:4' ),\n\t\t\t\t\t\t\tvalue: '3/4',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '2:3' ),\n\t\t\t\t\t\t\tvalue: '2/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) =>\n\t\t\t\t\t\tsetAttributes( { aspectRatio: nextAspectRatio } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! sizeSlug }\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { sizeSlug: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tsizeSlug: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\tvalue={ sizeSlug || DEFAULT_SIZE }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Select the size of the source image.' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default DimensionControls;\n"],"mappings":"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"}
@@ -17,7 +17,6 @@ var _utils = require("../utils");
17
17
  * Internal dependencies
18
18
  */
19
19
 
20
- const disableEnhancedPaginationDescription = (0, _i18n.__)('Plugin blocks are not supported yet. For the enhanced pagination to work, remove the plugin block, then re-enable "Enhanced pagination" in the Query Block settings.');
21
20
  const modalDescriptionId = 'wp-block-query-enhanced-pagination-modal__description';
22
21
  function EnhancedPaginationModal({
23
22
  clientId,
@@ -27,31 +26,46 @@ function EnhancedPaginationModal({
27
26
  setAttributes
28
27
  }) {
29
28
  const [isOpen, setOpen] = (0, _element.useState)(false);
30
- const containsThirdPartyBlocks = (0, _utils.useContainsThirdPartyBlocks)(clientId);
29
+ const {
30
+ hasBlocksFromPlugins,
31
+ hasPostContentBlock,
32
+ hasUnsupportedBlocks
33
+ } = (0, _utils.useUnsupportedBlocks)(clientId);
31
34
  (0, _element.useEffect)(() => {
32
- setOpen(containsThirdPartyBlocks && enhancedPagination);
33
- }, [containsThirdPartyBlocks, enhancedPagination, setOpen]);
35
+ if (enhancedPagination && hasUnsupportedBlocks) {
36
+ setAttributes({
37
+ enhancedPagination: false
38
+ });
39
+ setOpen(true);
40
+ }
41
+ }, [enhancedPagination, hasUnsupportedBlocks, setAttributes]);
42
+ const closeModal = () => {
43
+ setOpen(false);
44
+ };
45
+ let notice = (0, _i18n.__)('If you still want to prevent full page reloads, remove that block, then disable "Force page reload" again in the Query Block settings.');
46
+ if (hasBlocksFromPlugins) {
47
+ notice = (0, _i18n.__)('Currently, avoiding full page reloads is not possible when blocks from plugins are present inside the Query block.') + ' ' + notice;
48
+ } else if (hasPostContentBlock) {
49
+ notice = (0, _i18n.__)('Currently, avoiding full page reloads is not possible when a Content block is present inside the Query block.') + ' ' + notice;
50
+ }
34
51
  return isOpen && (0, _react.createElement)(_components.Modal, {
35
- title: (0, _i18n.__)('Enhanced pagination will be disabled'),
52
+ title: (0, _i18n.__)('Query block: Force page reload enabled'),
36
53
  className: "wp-block-query__enhanced-pagination-modal",
37
54
  aria: {
38
55
  describedby: modalDescriptionId
39
56
  },
57
+ role: "alertdialog",
58
+ focusOnMount: "firstElement",
40
59
  isDismissible: false,
41
- shouldCloseOnEsc: false,
42
- shouldCloseOnClickOutside: false
60
+ onRequestClose: closeModal
43
61
  }, (0, _react.createElement)(_components.__experimentalVStack, {
44
62
  alignment: "right",
45
63
  spacing: 5
46
64
  }, (0, _react.createElement)("span", {
47
65
  id: modalDescriptionId
48
- }, disableEnhancedPaginationDescription), (0, _react.createElement)(_components.Button, {
66
+ }, notice), (0, _react.createElement)(_components.Button, {
49
67
  variant: "primary",
50
- onClick: () => {
51
- setAttributes({
52
- enhancedPagination: false
53
- });
54
- }
68
+ onClick: closeModal
55
69
  }, (0, _i18n.__)('OK'))));
56
70
  }
57
71
  //# sourceMappingURL=enhanced-pagination-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_utils","disableEnhancedPaginationDescription","__","modalDescriptionId","EnhancedPaginationModal","clientId","attributes","enhancedPagination","setAttributes","isOpen","setOpen","useState","containsThirdPartyBlocks","useContainsThirdPartyBlocks","useEffect","_react","createElement","Modal","title","className","aria","describedby","isDismissible","shouldCloseOnEsc","shouldCloseOnClickOutside","__experimentalVStack","alignment","spacing","id","Button","variant","onClick"],"sources":["@wordpress/block-library/src/query/edit/enhanced-pagination-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useContainsThirdPartyBlocks } from '../utils';\n\nconst disableEnhancedPaginationDescription = __(\n\t'Plugin blocks are not supported yet. For the enhanced pagination to work, remove the plugin block, then re-enable \"Enhanced pagination\" in the Query Block settings.'\n);\n\nconst modalDescriptionId =\n\t'wp-block-query-enhanced-pagination-modal__description';\n\nexport default function EnhancedPaginationModal( {\n\tclientId,\n\tattributes: { enhancedPagination },\n\tsetAttributes,\n} ) {\n\tconst [ isOpen, setOpen ] = useState( false );\n\n\tconst containsThirdPartyBlocks = useContainsThirdPartyBlocks( clientId );\n\n\tuseEffect( () => {\n\t\tsetOpen( containsThirdPartyBlocks && enhancedPagination );\n\t}, [ containsThirdPartyBlocks, enhancedPagination, setOpen ] );\n\n\treturn (\n\t\tisOpen && (\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Enhanced pagination will be disabled' ) }\n\t\t\t\tclassName=\"wp-block-query__enhanced-pagination-modal\"\n\t\t\t\taria={ {\n\t\t\t\t\tdescribedby: modalDescriptionId,\n\t\t\t\t} }\n\t\t\t\tisDismissible={ false }\n\t\t\t\tshouldCloseOnEsc={ false }\n\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t>\n\t\t\t\t<VStack alignment=\"right\" spacing={ 5 }>\n\t\t\t\t\t<span id={ modalDescriptionId }>\n\t\t\t\t\t\t{ disableEnhancedPaginationDescription }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( { enhancedPagination: false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'OK' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</VStack>\n\t\t\t</Modal>\n\t\t)\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAdA;AACA;AACA;;AASA;AACA;AACA;;AAGA,MAAMI,oCAAoC,GAAG,IAAAC,QAAE,EAC9C,sKACD,CAAC;AAED,MAAMC,kBAAkB,GACvB,uDAAuD;AAEzC,SAASC,uBAAuBA,CAAE;EAChDC,QAAQ;EACRC,UAAU,EAAE;IAAEC;EAAmB,CAAC;EAClCC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,OAAO,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAE7C,MAAMC,wBAAwB,GAAG,IAAAC,kCAA2B,EAAER,QAAS,CAAC;EAExE,IAAAS,kBAAS,EAAE,MAAM;IAChBJ,OAAO,CAAEE,wBAAwB,IAAIL,kBAAmB,CAAC;EAC1D,CAAC,EAAE,CAAEK,wBAAwB,EAAEL,kBAAkB,EAAEG,OAAO,CAAG,CAAC;EAE9D,OACCD,MAAM,IACL,IAAAM,MAAA,CAAAC,aAAA,EAACpB,WAAA,CAAAqB,KAAK;IACLC,KAAK,EAAG,IAAAhB,QAAE,EAAE,sCAAuC,CAAG;IACtDiB,SAAS,EAAC,2CAA2C;IACrDC,IAAI,EAAG;MACNC,WAAW,EAAElB;IACd,CAAG;IACHmB,aAAa,EAAG,KAAO;IACvBC,gBAAgB,EAAG,KAAO;IAC1BC,yBAAyB,EAAG;EAAO,GAEnC,IAAAT,MAAA,CAAAC,aAAA,EAACpB,WAAA,CAAA6B,oBAAM;IAACC,SAAS,EAAC,OAAO;IAACC,OAAO,EAAG;EAAG,GACtC,IAAAZ,MAAA,CAAAC,aAAA;IAAMY,EAAE,EAAGzB;EAAoB,GAC5BF,oCACG,CAAC,EACP,IAAAc,MAAA,CAAAC,aAAA,EAACpB,WAAA,CAAAiC,MAAM;IACNC,OAAO,EAAC,SAAS;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACfvB,aAAa,CAAE;QAAED,kBAAkB,EAAE;MAAM,CAAE,CAAC;IAC/C;EAAG,GAED,IAAAL,QAAE,EAAE,IAAK,CACJ,CACD,CACF,CACP;AAEH"}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_utils","modalDescriptionId","EnhancedPaginationModal","clientId","attributes","enhancedPagination","setAttributes","isOpen","setOpen","useState","hasBlocksFromPlugins","hasPostContentBlock","hasUnsupportedBlocks","useUnsupportedBlocks","useEffect","closeModal","notice","__","_react","createElement","Modal","title","className","aria","describedby","role","focusOnMount","isDismissible","onRequestClose","__experimentalVStack","alignment","spacing","id","Button","variant","onClick"],"sources":["@wordpress/block-library/src/query/edit/enhanced-pagination-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../utils';\n\nconst modalDescriptionId =\n\t'wp-block-query-enhanced-pagination-modal__description';\n\nexport default function EnhancedPaginationModal( {\n\tclientId,\n\tattributes: { enhancedPagination },\n\tsetAttributes,\n} ) {\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst { hasBlocksFromPlugins, hasPostContentBlock, hasUnsupportedBlocks } =\n\t\tuseUnsupportedBlocks( clientId );\n\n\tuseEffect( () => {\n\t\tif ( enhancedPagination && hasUnsupportedBlocks ) {\n\t\t\tsetAttributes( { enhancedPagination: false } );\n\t\t\tsetOpen( true );\n\t\t}\n\t}, [ enhancedPagination, hasUnsupportedBlocks, setAttributes ] );\n\n\tconst closeModal = () => {\n\t\tsetOpen( false );\n\t};\n\n\tlet notice = __(\n\t\t'If you still want to prevent full page reloads, remove that block, then disable \"Force page reload\" again in the Query Block settings.'\n\t);\n\tif ( hasBlocksFromPlugins ) {\n\t\tnotice =\n\t\t\t__(\n\t\t\t\t'Currently, avoiding full page reloads is not possible when blocks from plugins are present inside the Query block.'\n\t\t\t) +\n\t\t\t' ' +\n\t\t\tnotice;\n\t} else if ( hasPostContentBlock ) {\n\t\tnotice =\n\t\t\t__(\n\t\t\t\t'Currently, avoiding full page reloads is not possible when a Content block is present inside the Query block.'\n\t\t\t) +\n\t\t\t' ' +\n\t\t\tnotice;\n\t}\n\n\treturn (\n\t\tisOpen && (\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Query block: Force page reload enabled' ) }\n\t\t\t\tclassName=\"wp-block-query__enhanced-pagination-modal\"\n\t\t\t\taria={ {\n\t\t\t\t\tdescribedby: modalDescriptionId,\n\t\t\t\t} }\n\t\t\t\trole=\"alertdialog\"\n\t\t\t\tfocusOnMount=\"firstElement\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tonRequestClose={ closeModal }\n\t\t\t>\n\t\t\t\t<VStack alignment=\"right\" spacing={ 5 }>\n\t\t\t\t\t<span id={ modalDescriptionId }>{ notice }</span>\n\t\t\t\t\t<Button variant=\"primary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'OK' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</VStack>\n\t\t\t</Modal>\n\t\t)\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAdA;AACA;AACA;;AASA;AACA;AACA;;AAGA,MAAMI,kBAAkB,GACvB,uDAAuD;AAEzC,SAASC,uBAAuBA,CAAE;EAChDC,QAAQ;EACRC,UAAU,EAAE;IAAEC;EAAmB,CAAC;EAClCC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,OAAO,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAC7C,MAAM;IAAEC,oBAAoB;IAAEC,mBAAmB;IAAEC;EAAqB,CAAC,GACxE,IAAAC,2BAAoB,EAAEV,QAAS,CAAC;EAEjC,IAAAW,kBAAS,EAAE,MAAM;IAChB,IAAKT,kBAAkB,IAAIO,oBAAoB,EAAG;MACjDN,aAAa,CAAE;QAAED,kBAAkB,EAAE;MAAM,CAAE,CAAC;MAC9CG,OAAO,CAAE,IAAK,CAAC;IAChB;EACD,CAAC,EAAE,CAAEH,kBAAkB,EAAEO,oBAAoB,EAAEN,aAAa,CAAG,CAAC;EAEhE,MAAMS,UAAU,GAAGA,CAAA,KAAM;IACxBP,OAAO,CAAE,KAAM,CAAC;EACjB,CAAC;EAED,IAAIQ,MAAM,GAAG,IAAAC,QAAE,EACd,wIACD,CAAC;EACD,IAAKP,oBAAoB,EAAG;IAC3BM,MAAM,GACL,IAAAC,QAAE,EACD,oHACD,CAAC,GACD,GAAG,GACHD,MAAM;EACR,CAAC,MAAM,IAAKL,mBAAmB,EAAG;IACjCK,MAAM,GACL,IAAAC,QAAE,EACD,+GACD,CAAC,GACD,GAAG,GACHD,MAAM;EACR;EAEA,OACCT,MAAM,IACL,IAAAW,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAwB,KAAK;IACLC,KAAK,EAAG,IAAAJ,QAAE,EAAE,wCAAyC,CAAG;IACxDK,SAAS,EAAC,2CAA2C;IACrDC,IAAI,EAAG;MACNC,WAAW,EAAEvB;IACd,CAAG;IACHwB,IAAI,EAAC,aAAa;IAClBC,YAAY,EAAC,cAAc;IAC3BC,aAAa,EAAG,KAAO;IACvBC,cAAc,EAAGb;EAAY,GAE7B,IAAAG,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAiC,oBAAM;IAACC,SAAS,EAAC,OAAO;IAACC,OAAO,EAAG;EAAG,GACtC,IAAAb,MAAA,CAAAC,aAAA;IAAMa,EAAE,EAAG/B;EAAoB,GAAGe,MAAc,CAAC,EACjD,IAAAE,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAqC,MAAM;IAACC,OAAO,EAAC,SAAS;IAACC,OAAO,EAAGpB;EAAY,GAC7C,IAAAE,QAAE,EAAE,IAAK,CACJ,CACD,CACF,CACP;AAEH"}
@@ -21,22 +21,25 @@ function EnhancedPaginationControl({
21
21
  setAttributes,
22
22
  clientId
23
23
  }) {
24
- const enhancedPaginationNotice = (0, _i18n.__)("Enhanced pagination doesn't support plugin blocks yet. If you want to enable it, you have to remove all plugin blocks from the Query Loop.");
25
- const containsThirdPartyBlocks = (0, _utils.useContainsThirdPartyBlocks)(clientId);
24
+ const {
25
+ hasUnsupportedBlocks
26
+ } = (0, _utils.useUnsupportedBlocks)(clientId);
27
+ let help = (0, _i18n.__)('Browsing between pages requires a full page reload.');
28
+ if (enhancedPagination) {
29
+ help = (0, _i18n.__)("Browsing between pages won't require a full page reload, unless non-compatible blocks are detected.");
30
+ } else if (hasUnsupportedBlocks) {
31
+ help = (0, _i18n.__)("Force page reload can't be disabled because there are non-compatible blocks inside the Query block.");
32
+ }
26
33
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.ToggleControl, {
27
- label: (0, _i18n.__)('Enhanced pagination'),
28
- help: (0, _i18n.__)('Browsing between pages won’t require a full page reload.'),
29
- checked: !!enhancedPagination,
30
- disabled: containsThirdPartyBlocks,
34
+ label: (0, _i18n.__)('Force page reload'),
35
+ help: help,
36
+ checked: !enhancedPagination,
37
+ disabled: hasUnsupportedBlocks,
31
38
  onChange: value => {
32
39
  setAttributes({
33
- enhancedPagination: !!value
40
+ enhancedPagination: !value
34
41
  });
35
42
  }
36
- }), containsThirdPartyBlocks && (0, _react.createElement)(_components.Notice, {
37
- status: "warning",
38
- isDismissible: false,
39
- className: "wp-block-query__enhanced-pagination-notice"
40
- }, enhancedPaginationNotice));
43
+ }));
41
44
  }
42
45
  //# sourceMappingURL=enhanced-pagination-control.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_utils","EnhancedPaginationControl","enhancedPagination","setAttributes","clientId","enhancedPaginationNotice","__","containsThirdPartyBlocks","useContainsThirdPartyBlocks","_react","createElement","Fragment","ToggleControl","label","help","checked","disabled","onChange","value","Notice","status","isDismissible","className"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToggleControl, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useContainsThirdPartyBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst enhancedPaginationNotice = __(\n\t\t\"Enhanced pagination doesn't support plugin blocks yet. If you want to enable it, you have to remove all plugin blocks from the Query Loop.\"\n\t);\n\n\tconst containsThirdPartyBlocks = useContainsThirdPartyBlocks( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Enhanced pagination' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Browsing between pages won’t require a full page reload.'\n\t\t\t\t) }\n\t\t\t\tchecked={ !! enhancedPagination }\n\t\t\t\tdisabled={ containsThirdPartyBlocks }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: !! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ containsThirdPartyBlocks && (\n\t\t\t\t<Notice\n\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\tclassName=\"wp-block-query__enhanced-pagination-notice\"\n\t\t\t\t>\n\t\t\t\t\t{ enhancedPaginationNotice }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,yBAAyBA,CAAE;EAClDC,kBAAkB;EAClBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAMC,wBAAwB,GAAG,IAAAC,QAAE,EAClC,4IACD,CAAC;EAED,MAAMC,wBAAwB,GAAG,IAAAC,kCAA2B,EAAEJ,QAAS,CAAC;EAExE,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAe,aAAa;IACbC,KAAK,EAAG,IAAAP,QAAE,EAAE,qBAAsB,CAAG;IACrCQ,IAAI,EAAG,IAAAR,QAAE,EACR,0DACD,CAAG;IACHS,OAAO,EAAG,CAAC,CAAEb,kBAAoB;IACjCc,QAAQ,EAAGT,wBAA0B;IACrCU,QAAQ,EAAKC,KAAK,IAAM;MACvBf,aAAa,CAAE;QACdD,kBAAkB,EAAE,CAAC,CAAEgB;MACxB,CAAE,CAAC;IACJ;EAAG,CACH,CAAC,EACAX,wBAAwB,IACzB,IAAAE,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAsB,MAAM;IACNC,MAAM,EAAC,SAAS;IAChBC,aAAa,EAAG,KAAO;IACvBC,SAAS,EAAC;EAA4C,GAEpDjB,wBACK,CAER,CAAC;AAEL"}
1
+ {"version":3,"names":["_components","require","_i18n","_utils","EnhancedPaginationControl","enhancedPagination","setAttributes","clientId","hasUnsupportedBlocks","useUnsupportedBlocks","help","__","_react","createElement","Fragment","ToggleControl","label","checked","disabled","onChange","value"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { hasUnsupportedBlocks } = useUnsupportedBlocks( clientId );\n\n\tlet help = __( 'Browsing between pages requires a full page reload.' );\n\tif ( enhancedPagination ) {\n\t\thelp = __(\n\t\t\t\"Browsing between pages won't require a full page reload, unless non-compatible blocks are detected.\"\n\t\t);\n\t} else if ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t\"Force page reload can't be disabled because there are non-compatible blocks inside the Query block.\"\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Force page reload' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={ ! enhancedPagination }\n\t\t\t\tdisabled={ hasUnsupportedBlocks }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,yBAAyBA,CAAE;EAClDC,kBAAkB;EAClBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAqB,CAAC,GAAG,IAAAC,2BAAoB,EAAEF,QAAS,CAAC;EAEjE,IAAIG,IAAI,GAAG,IAAAC,QAAE,EAAE,qDAAsD,CAAC;EACtE,IAAKN,kBAAkB,EAAG;IACzBK,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF,CAAC,MAAM,IAAKH,oBAAoB,EAAG;IAClCE,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAe,aAAa;IACbC,KAAK,EAAG,IAAAL,QAAE,EAAE,mBAAoB,CAAG;IACnCD,IAAI,EAAGA,IAAM;IACbO,OAAO,EAAG,CAAEZ,kBAAoB;IAChCa,QAAQ,EAAGV,oBAAsB;IACjCW,QAAQ,EAAKC,KAAK,IAAM;MACvBd,aAAa,CAAE;QACdD,kBAAkB,EAAE,CAAEe;MACvB,CAAE,CAAC;IACJ;EAAG,CACH,CACA,CAAC;AAEL"}
@@ -8,11 +8,10 @@ exports.isControlAllowed = isControlAllowed;
8
8
  exports.mapToIHasNameAndId = void 0;
9
9
  exports.useAllowedControls = useAllowedControls;
10
10
  exports.useBlockNameForPatterns = useBlockNameForPatterns;
11
- exports.useContainsThirdPartyBlocks = void 0;
12
11
  exports.useIsPostTypeHierarchical = useIsPostTypeHierarchical;
13
12
  exports.usePostTypes = exports.usePatterns = void 0;
14
13
  exports.useScopedBlockVariations = useScopedBlockVariations;
15
- exports.useTaxonomies = void 0;
14
+ exports.useUnsupportedBlocks = exports.useTaxonomies = void 0;
16
15
  var _data = require("@wordpress/data");
17
16
  var _element = require("@wordpress/element");
18
17
  var _coreData = require("@wordpress/core-data");
@@ -353,21 +352,43 @@ const usePatterns = (clientId, name) => {
353
352
  };
354
353
 
355
354
  /**
356
- * Hook that returns whether the Query Loop with the given `clientId` contains
357
- * any third-party block.
355
+ * The object returned by useUnsupportedBlocks with info about the type of
356
+ * unsupported blocks present inside the Query block.
357
+ *
358
+ * @typedef {Object} UnsupportedBlocksInfo
359
+ * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.
360
+ * @property {boolean} hasPostContentBlock True if a 'core/post-content' block is present.
361
+ * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.
362
+ */
363
+
364
+ /**
365
+ * Hook that returns an object with information about the unsupported blocks
366
+ * present inside a Query Loop with the given `clientId`. The returned object
367
+ * contains props that are true when a certain type of unsupported block is
368
+ * present.
358
369
  *
359
370
  * @param {string} clientId The block's client ID.
360
- * @return {boolean} True if it contains third-party blocks.
371
+ * @return {UnsupportedBlocksInfo} The object containing the information.
361
372
  */
362
373
  exports.usePatterns = usePatterns;
363
- const useContainsThirdPartyBlocks = clientId => {
374
+ const useUnsupportedBlocks = clientId => {
364
375
  return (0, _data.useSelect)(select => {
365
376
  const {
366
377
  getClientIdsOfDescendants,
367
378
  getBlockName
368
379
  } = select(_blockEditor.store);
369
- return getClientIdsOfDescendants(clientId).some(descendantClientId => !getBlockName(descendantClientId).startsWith('core/'));
380
+ const blocks = {};
381
+ getClientIdsOfDescendants(clientId).forEach(descendantClientId => {
382
+ const blockName = getBlockName(descendantClientId);
383
+ if (!blockName.startsWith('core/')) {
384
+ blocks.hasBlocksFromPlugins = true;
385
+ } else if (blockName === 'core/post-content') {
386
+ blocks.hasPostContentBlock = true;
387
+ }
388
+ });
389
+ blocks.hasUnsupportedBlocks = blocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;
390
+ return blocks;
370
391
  }, [clientId]);
371
392
  };
372
- exports.useContainsThirdPartyBlocks = useContainsThirdPartyBlocks;
393
+ exports.useUnsupportedBlocks = useUnsupportedBlocks;
373
394
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_coreData","_blockEditor","_htmlEntities","_blocks","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","exports","getValueFromObjectPath","object","path","normalizedPath","split","value","forEach","fieldName","mapToIHasNameAndId","map","decodeEntities","usePostTypes","postTypes","useSelect","select","getPostTypes","coreStore","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","useMemo","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","useTaxonomies","postType","getTaxonomies","filteredTaxonomies","context","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","blocksStore","getActiveBlockVariation","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","cloneBlock","queryClientIds","blocksQueue","shift","clientId","innerBlocks","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","hasActiveVariationPatterns","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","activePatterns","useScopedBlockVariations","blockVariations","getBlockVariations","variations","isNotConnected","variation","namespace","connectedVariations","usePatterns","useContainsThirdPartyBlocks","getClientIdsOfDescendants","getBlockName","some","descendantClientId","startsWith"],"sources":["@wordpress/block-library/src/query/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { cloneBlock, store as blocksStore } from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) return;\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn taxonomies;\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.name,\n\t\t[ attributes ]\n\t);\n\tconst blockName = `core/query/${ activeVariationName }`;\n\tconst hasActiveVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\treturn activePatterns.length > 0;\n\t\t},\n\t\t[ clientId, activeVariationName, blockName ]\n\t);\n\treturn hasActiveVariationPatterns ? blockName : 'core/query';\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * Hook that returns whether the Query Loop with the given `clientId` contains\n * any third-party block.\n *\n * @param {string} clientId The block's client ID.\n * @return {boolean} True if it contains third-party blocks.\n */\nexport const useContainsThirdPartyBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn getClientIdsOfDescendants( clientId ).some(\n\t\t\t\t( descendantClientId ) =>\n\t\t\t\t\t! getBlockName( descendantClientId ).startsWith( 'core/' )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_element","_coreData","_blockEditor","_htmlEntities","_blocks","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","exports","getValueFromObjectPath","object","path","normalizedPath","split","value","forEach","fieldName","mapToIHasNameAndId","map","decodeEntities","usePostTypes","postTypes","useSelect","select","getPostTypes","coreStore","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","useMemo","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","useTaxonomies","postType","getTaxonomies","filteredTaxonomies","context","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","blocksStore","getActiveBlockVariation","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","cloneBlock","queryClientIds","blocksQueue","shift","clientId","innerBlocks","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","hasActiveVariationPatterns","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","activePatterns","useScopedBlockVariations","blockVariations","getBlockVariations","variations","isNotConnected","variation","namespace","connectedVariations","usePatterns","useUnsupportedBlocks","getClientIdsOfDescendants","getBlockName","descendantClientId","startsWith","hasBlocksFromPlugins","hasPostContentBlock","hasUnsupportedBlocks"],"sources":["@wordpress/block-library/src/query/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { cloneBlock, store as blocksStore } from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) return;\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn taxonomies;\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.name,\n\t\t[ attributes ]\n\t);\n\tconst blockName = `core/query/${ activeVariationName }`;\n\tconst hasActiveVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\treturn activePatterns.length > 0;\n\t\t},\n\t\t[ clientId, activeVariationName, blockName ]\n\t);\n\treturn hasActiveVariationPatterns ? blockName : 'core/query';\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * The object returned by useUnsupportedBlocks with info about the type of\n * unsupported blocks present inside the Query block.\n *\n * @typedef {Object} UnsupportedBlocksInfo\n * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.\n * @property {boolean} hasPostContentBlock True if a 'core/post-content' block is present.\n * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.\n */\n\n/**\n * Hook that returns an object with information about the unsupported blocks\n * present inside a Query Loop with the given `clientId`. The returned object\n * contains props that are true when a certain type of unsupported block is\n * present.\n *\n * @param {string} clientId The block's client ID.\n * @return {UnsupportedBlocksInfo} The object containing the information.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blocks = {};\n\t\t\tgetClientIdsOfDescendants( clientId ).forEach(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\tif ( ! blockName.startsWith( 'core/' ) ) {\n\t\t\t\t\t\tblocks.hasBlocksFromPlugins = true;\n\t\t\t\t\t} else if ( blockName === 'core/post-content' ) {\n\t\t\t\t\t\tblocks.hasPostContentBlock = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tblocks.hasUnsupportedBlocks =\n\t\t\t\tblocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;\n\t\t\treturn blocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n"],"mappings":";;;;;;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AARA;AACA;AACA;;AAQA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,eAAe,GAAKC,QAAQ,IAAM;EAC9C,MAAMC,OAAO,GAAGD,QAAQ,EAAEE,MAAM,CAC/B,CAAEC,WAAW,EAAEC,MAAM,KAAM;IAC1B,MAAM;MAAEC,OAAO;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAGJ,WAAW;IACjDE,OAAO,CAAED,MAAM,CAACI,EAAE,CAAE,GAAGJ,MAAM;IAC7BE,SAAS,CAAEF,MAAM,CAACK,IAAI,CAAE,GAAGL,MAAM;IACjCG,KAAK,CAACG,IAAI,CAAEN,MAAM,CAACK,IAAK,CAAC;IACzB,OAAON,WAAW;EACnB,CAAC,EACD;IAAEE,OAAO,EAAE,CAAC,CAAC;IAAEC,SAAS,EAAE,CAAC,CAAC;IAAEC,KAAK,EAAE;EAAG,CACzC,CAAC;EACD,OAAO;IACNP,QAAQ;IACR,GAAGC;EACJ,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAU,OAAA,CAAAZ,eAAA,GAAAA,eAAA;AASO,MAAMa,sBAAsB,GAAGA,CAAEC,MAAM,EAAEC,IAAI,KAAM;EACzD,MAAMC,cAAc,GAAGD,IAAI,CAACE,KAAK,CAAE,GAAI,CAAC;EACxC,IAAIC,KAAK,GAAGJ,MAAM;EAClBE,cAAc,CAACG,OAAO,CAAIC,SAAS,IAAM;IACxCF,KAAK,GAAGA,KAAK,GAAIE,SAAS,CAAE;EAC7B,CAAE,CAAC;EACH,OAAOF,KAAK;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAN,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AASO,MAAMQ,kBAAkB,GAAGA,CAAEpB,QAAQ,EAAEc,IAAI,KAAM;EACvD,OAAO,CAAEd,QAAQ,IAAI,EAAE,EAAGqB,GAAG,CAAIjB,MAAM,KAAQ;IAC9C,GAAGA,MAAM;IACTK,IAAI,EAAE,IAAAa,4BAAc,EAAEV,sBAAsB,CAAER,MAAM,EAAEU,IAAK,CAAE;EAC9D,CAAC,CAAG,CAAC;AACN,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAH,OAAA,CAAAS,kBAAA,GAAAA,kBAAA;AAOO,MAAMG,YAAY,GAAGA,CAAA,KAAM;EACjC,MAAMC,SAAS,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC1C,MAAM;MAAEC;IAAa,CAAC,GAAGD,MAAM,CAAEE,eAAU,CAAC;IAC5C,MAAMC,iBAAiB,GAAG,CAAE,YAAY,CAAE;IAC1C,MAAMC,iBAAiB,GAAGH,YAAY,CAAE;MAAEI,QAAQ,EAAE,CAAC;IAAE,CAAE,CAAC,EAAEC,MAAM,CACjE,CAAE;MAAEC,QAAQ;MAAEC;IAAK,CAAC,KACnBD,QAAQ,IAAI,CAAEJ,iBAAiB,CAACM,QAAQ,CAAED,IAAK,CACjD,CAAC;IACD,OAAOJ,iBAAiB;EACzB,CAAC,EAAE,EAAG,CAAC;EACP,MAAMM,sBAAsB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC7C,IAAK,CAAEb,SAAS,EAAEc,MAAM,EAAG;IAC3B,OAAOd,SAAS,CAACtB,MAAM,CAAE,CAAEC,WAAW,EAAEoC,IAAI,KAAM;MACjDpC,WAAW,CAAEoC,IAAI,CAACL,IAAI,CAAE,GAAGK,IAAI,CAACC,UAAU;MAC1C,OAAOrC,WAAW;IACnB,CAAC,EAAE,CAAC,CAAE,CAAC;EACR,CAAC,EAAE,CAAEqB,SAAS,CAAG,CAAC;EAClB,MAAMiB,sBAAsB,GAAG,IAAAJ,gBAAO,EACrC,MACC,CAAEb,SAAS,IAAI,EAAE,EAAGH,GAAG,CAAE,CAAE;IAAEqB,MAAM;IAAER;EAAK,CAAC,MAAQ;IAClDS,KAAK,EAAED,MAAM,CAACE,aAAa;IAC3B3B,KAAK,EAAEiB;EACR,CAAC,CAAG,CAAC,EACN,CAAEV,SAAS,CACZ,CAAC;EACD,OAAO;IAAEY,sBAAsB;IAAEK;EAAuB,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALA9B,OAAA,CAAAY,YAAA,GAAAA,YAAA;AAMO,MAAMsB,aAAa,GAAKC,QAAQ,IAAM;EAC5C,MAAMN,UAAU,GAAG,IAAAf,eAAS,EACzBC,MAAM,IAAM;IACb,MAAM;MAAEqB;IAAc,CAAC,GAAGrB,MAAM,CAAEE,eAAU,CAAC;IAC7C,MAAMoB,kBAAkB,GAAGD,aAAa,CAAE;MACzCR,IAAI,EAAEO,QAAQ;MACdf,QAAQ,EAAE,CAAC,CAAC;MACZkB,OAAO,EAAE;IACV,CAAE,CAAC;IACH,OAAOD,kBAAkB;EAC1B,CAAC,EACD,CAAEF,QAAQ,CACX,CAAC;EACD,OAAON,UAAU;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALA7B,OAAA,CAAAkC,aAAA,GAAAA,aAAA;AAMO,SAASK,yBAAyBA,CAAEJ,QAAQ,EAAG;EACrD,OAAO,IAAArB,eAAS,EACbC,MAAM,IAAM;IACb,MAAMa,IAAI,GAAGb,MAAM,CAAEE,eAAU,CAAC,CAACuB,WAAW,CAAEL,QAAS,CAAC;IACxD,OAAOP,IAAI,EAAEN,QAAQ,IAAIM,IAAI,EAAEa,YAAY;EAC5C,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,kBAAkBA,CAAEC,UAAU,EAAG;EAChD,OAAO,IAAA7B,eAAS,EACbC,MAAM,IACPA,MAAM,CAAE6B,aAAY,CAAC,CAACC,uBAAuB,CAC5C,YAAY,EACZF,UACD,CAAC,EAAEG,eAAe,EAEnB,CAAEH,UAAU,CACb,CAAC;AACF;AACO,SAASI,gBAAgBA,CAAED,eAAe,EAAEE,GAAG,EAAG;EACxD;EACA,IAAK,CAAEF,eAAe,EAAG;IACxB,OAAO,IAAI;EACZ;EACA,OAAOA,eAAe,CAACtB,QAAQ,CAAEwB,GAAI,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAGA,CAC9CC,MAAM,EACNC,oBAAoB,KAChB;EACJ,MAAM;IACLC,KAAK,EAAE;MAAEjB,QAAQ;MAAEkB;IAAQ;EAC5B,CAAC,GAAGF,oBAAoB;EACxB,MAAMG,YAAY,GAAGJ,MAAM,CAACxC,GAAG,CAAI6C,KAAK,IAAM,IAAAC,kBAAU,EAAED,KAAM,CAAE,CAAC;EACnE,MAAME,cAAc,GAAG,EAAE;EACzB,MAAMC,WAAW,GAAG,CAAE,GAAGJ,YAAY,CAAE;EACvC,OAAQI,WAAW,CAAC/B,MAAM,GAAG,CAAC,EAAG;IAChC,MAAM4B,KAAK,GAAGG,WAAW,CAACC,KAAK,CAAC,CAAC;IACjC,IAAKJ,KAAK,CAACzD,IAAI,KAAK,YAAY,EAAG;MAClCyD,KAAK,CAACZ,UAAU,CAACS,KAAK,GAAG;QACxB,GAAGG,KAAK,CAACZ,UAAU,CAACS,KAAK;QACzBjB,QAAQ;QACRkB;MACD,CAAC;MACDI,cAAc,CAAC1D,IAAI,CAAEwD,KAAK,CAACK,QAAS,CAAC;IACtC;IACAL,KAAK,CAACM,WAAW,EAAEtD,OAAO,CAAIuD,UAAU,IAAM;MAC7CJ,WAAW,CAAC3D,IAAI,CAAE+D,UAAW,CAAC;IAC/B,CAAE,CAAC;EACJ;EACA,OAAO;IAAEC,SAAS,EAAET,YAAY;IAAEG;EAAe,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbAzD,OAAA,CAAAiD,+BAAA,GAAAA,+BAAA;AAcO,SAASe,uBAAuBA,CAAEJ,QAAQ,EAAEjB,UAAU,EAAG;EAC/D,MAAMsB,mBAAmB,GAAG,IAAAnD,eAAS,EAClCC,MAAM,IACPA,MAAM,CAAE6B,aAAY,CAAC,CAACC,uBAAuB,CAC5C,YAAY,EACZF,UACD,CAAC,EAAE7C,IAAI,EACR,CAAE6C,UAAU,CACb,CAAC;EACD,MAAMuB,SAAS,GAAI,cAAcD,mBAAqB,EAAC;EACvD,MAAME,0BAA0B,GAAG,IAAArD,eAAS,EACzCC,MAAM,IAAM;IACb,IAAK,CAAEkD,mBAAmB,EAAG;MAC5B,OAAO,KAAK;IACb;IACA,MAAM;MAAEG,oBAAoB;MAAEC;IAAwB,CAAC,GACtDtD,MAAM,CAAEuD,kBAAiB,CAAC;IAC3B,MAAMC,YAAY,GAAGH,oBAAoB,CAAER,QAAS,CAAC;IACrD,MAAMY,cAAc,GAAGH,uBAAuB,CAC7CH,SAAS,EACTK,YACD,CAAC;IACD,OAAOC,cAAc,CAAC7C,MAAM,GAAG,CAAC;EACjC,CAAC,EACD,CAAEiC,QAAQ,EAAEK,mBAAmB,EAAEC,SAAS,CAC3C,CAAC;EACD,OAAOC,0BAA0B,GAAGD,SAAS,GAAG,YAAY;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,wBAAwBA,CAAE9B,UAAU,EAAG;EACtD,MAAM;IAAEsB,mBAAmB;IAAES;EAAgB,CAAC,GAAG,IAAA5D,eAAS,EACvDC,MAAM,IAAM;IACb,MAAM;MAAE8B,uBAAuB;MAAE8B;IAAmB,CAAC,GACpD5D,MAAM,CAAE6B,aAAY,CAAC;IACtB,OAAO;MACNqB,mBAAmB,EAAEpB,uBAAuB,CAC3C,YAAY,EACZF,UACD,CAAC,EAAE7C,IAAI;MACP4E,eAAe,EAAEC,kBAAkB,CAAE,YAAY,EAAE,OAAQ;IAC5D,CAAC;EACF,CAAC,EACD,CAAEhC,UAAU,CACb,CAAC;EACD,MAAMiC,UAAU,GAAG,IAAAlD,gBAAO,EAAE,MAAM;IACjC;IACA;IACA,MAAMmD,cAAc,GAAKC,SAAS,IACjC,CAAEA,SAAS,CAACnC,UAAU,EAAEoC,SAAS;IAClC,IAAK,CAAEd,mBAAmB,EAAG;MAC5B,OAAOS,eAAe,CAACrD,MAAM,CAAEwD,cAAe,CAAC;IAChD;IACA,MAAMG,mBAAmB,GAAGN,eAAe,CAACrD,MAAM,CAAIyD,SAAS,IAC9DA,SAAS,CAACnC,UAAU,EAAEoC,SAAS,EAAEvD,QAAQ,CAAEyC,mBAAoB,CAChE,CAAC;IACD,IAAK,CAAC,CAAEe,mBAAmB,CAACrD,MAAM,EAAG;MACpC,OAAOqD,mBAAmB;IAC3B;IACA,OAAON,eAAe,CAACrD,MAAM,CAAEwD,cAAe,CAAC;EAChD,CAAC,EAAE,CAAEZ,mBAAmB,EAAES,eAAe,CAAG,CAAC;EAC7C,OAAOE,UAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,WAAW,GAAGA,CAAErB,QAAQ,EAAE9D,IAAI,KAAM;EAChD,OAAO,IAAAgB,eAAS,EACbC,MAAM,IAAM;IACb,MAAM;MAAEqD,oBAAoB;MAAEC;IAAwB,CAAC,GACtDtD,MAAM,CAAEuD,kBAAiB,CAAC;IAC3B,MAAMC,YAAY,GAAGH,oBAAoB,CAAER,QAAS,CAAC;IACrD,OAAOS,uBAAuB,CAAEvE,IAAI,EAAEyE,YAAa,CAAC;EACrD,CAAC,EACD,CAAEzE,IAAI,EAAE8D,QAAQ,CACjB,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA5D,OAAA,CAAAiF,WAAA,GAAAA,WAAA;AASO,MAAMC,oBAAoB,GAAKtB,QAAQ,IAAM;EACnD,OAAO,IAAA9C,eAAS,EACbC,MAAM,IAAM;IACb,MAAM;MAAEoE,yBAAyB;MAAEC;IAAa,CAAC,GAChDrE,MAAM,CAAEuD,kBAAiB,CAAC;IAC3B,MAAMpB,MAAM,GAAG,CAAC,CAAC;IACjBiC,yBAAyB,CAAEvB,QAAS,CAAC,CAACrD,OAAO,CAC1C8E,kBAAkB,IAAM;MACzB,MAAMnB,SAAS,GAAGkB,YAAY,CAAEC,kBAAmB,CAAC;MACpD,IAAK,CAAEnB,SAAS,CAACoB,UAAU,CAAE,OAAQ,CAAC,EAAG;QACxCpC,MAAM,CAACqC,oBAAoB,GAAG,IAAI;MACnC,CAAC,MAAM,IAAKrB,SAAS,KAAK,mBAAmB,EAAG;QAC/ChB,MAAM,CAACsC,mBAAmB,GAAG,IAAI;MAClC;IACD,CACD,CAAC;IACDtC,MAAM,CAACuC,oBAAoB,GAC1BvC,MAAM,CAACqC,oBAAoB,IAAIrC,MAAM,CAACsC,mBAAmB;IAC1D,OAAOtC,MAAM;EACd,CAAC,EACD,CAAEU,QAAQ,CACX,CAAC;AACF,CAAC;AAAC5D,OAAA,CAAAkF,oBAAA,GAAAA,oBAAA"}
@@ -36,7 +36,8 @@ const isValidEvent = event => event.button === 0 &&
36
36
  ref,
37
37
  context
38
38
  }) => {
39
- if (isValidLink(ref) && isValidEvent(event)) {
39
+ const isDisabled = ref.closest('[data-wp-navigation-id]')?.dataset.wpNavigationDisabled;
40
+ if (isValidLink(ref) && isValidEvent(event) && !isDisabled) {
40
41
  event.preventDefault();
41
42
  const id = ref.closest('[data-wp-navigation-id]').dataset.wpNavigationId;
42
43
 
@@ -65,7 +66,8 @@ const isValidEvent = event => event.button === 0 &&
65
66
  prefetch: async ({
66
67
  ref
67
68
  }) => {
68
- if (isValidLink(ref)) {
69
+ const isDisabled = ref.closest('[data-wp-navigation-id]')?.dataset.wpNavigationDisabled;
70
+ if (isValidLink(ref) && !isDisabled) {
69
71
  await (0, _interactivity.prefetch)(ref.href);
70
72
  }
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_interactivity","require","isValidLink","ref","window","HTMLAnchorElement","href","target","origin","location","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","store","selectors","core","query","startAnimation","context","animation","finishAnimation","actions","navigate","preventDefault","id","closest","dataset","wpNavigationId","timeout","setTimeout","message","loadingText","clearTimeout","loadedText","url","firstAnchor","document","querySelector","focus","prefetch","effects"],"sources":["@wordpress/block-library/src/query/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, navigate, prefetch } from '@wordpress/interactivity';\n\nconst isValidLink = ( ref ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin;\n\nconst isValidEvent = ( event ) =>\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\nstore( {\n\tselectors: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tstartAnimation: ( { context } ) =>\n\t\t\t\t\tcontext.core.query.animation === 'start',\n\t\t\t\tfinishAnimation: ( { context } ) =>\n\t\t\t\t\tcontext.core.query.animation === 'finish',\n\t\t\t},\n\t\t},\n\t},\n\tactions: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tnavigate: async ( { event, ref, context } ) => {\n\t\t\t\t\tif ( isValidLink( ref ) && isValidEvent( event ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\tconst id = ref.closest( '[data-wp-navigation-id]' )\n\t\t\t\t\t\t\t.dataset.wpNavigationId;\n\n\t\t\t\t\t\t// Don't announce the navigation immediately, wait 400 ms.\n\t\t\t\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\t\t\t\tcontext.core.query.message =\n\t\t\t\t\t\t\t\tcontext.core.query.loadingText;\n\t\t\t\t\t\t\tcontext.core.query.animation = 'start';\n\t\t\t\t\t\t}, 400 );\n\n\t\t\t\t\t\tawait navigate( ref.href );\n\n\t\t\t\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\t// Announce that the page has been loaded. If the message is the\n\t\t\t\t\t\t// same, we use a no-break space similar to the @wordpress/a11y\n\t\t\t\t\t\t// package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26\n\t\t\t\t\t\tcontext.core.query.message =\n\t\t\t\t\t\t\tcontext.core.query.loadedText +\n\t\t\t\t\t\t\t( context.core.query.message ===\n\t\t\t\t\t\t\tcontext.core.query.loadedText\n\t\t\t\t\t\t\t\t? '\\u00A0'\n\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\tcontext.core.query.animation = 'finish';\n\t\t\t\t\t\tcontext.core.query.url = ref.href;\n\n\t\t\t\t\t\t// Focus the first anchor of the Query block.\n\t\t\t\t\t\tconst firstAnchor = `[data-wp-navigation-id=${ id }] .wp-block-post-template a[href]`;\n\t\t\t\t\t\tdocument.querySelector( firstAnchor )?.focus();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tprefetch: async ( { ref } ) => {\n\t\t\t\t\tif ( isValidLink( ref ) ) {\n\t\t\t\t\t\tawait prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\teffects: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tprefetch: async ( { ref, context } ) => {\n\t\t\t\t\tif ( context.core.query.url && isValidLink( ref ) ) {\n\t\t\t\t\t\tawait prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_interactivity","require","isValidLink","ref","window","HTMLAnchorElement","href","target","origin","location","isValidEvent","event","button","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","store","selectors","core","query","startAnimation","context","animation","finishAnimation","actions","navigate","isDisabled","closest","dataset","wpNavigationDisabled","preventDefault","id","wpNavigationId","timeout","setTimeout","message","loadingText","clearTimeout","loadedText","url","firstAnchor","document","querySelector","focus","prefetch","effects"],"sources":["@wordpress/block-library/src/query/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, navigate, prefetch } from '@wordpress/interactivity';\n\nconst isValidLink = ( ref ) =>\n\tref &&\n\tref instanceof window.HTMLAnchorElement &&\n\tref.href &&\n\t( ! ref.target || ref.target === '_self' ) &&\n\tref.origin === window.location.origin;\n\nconst isValidEvent = ( event ) =>\n\tevent.button === 0 && // Left clicks only.\n\t! event.metaKey && // Open in new tab (Mac).\n\t! event.ctrlKey && // Open in new tab (Windows).\n\t! event.altKey && // Download.\n\t! event.shiftKey &&\n\t! event.defaultPrevented;\n\nstore( {\n\tselectors: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tstartAnimation: ( { context } ) =>\n\t\t\t\t\tcontext.core.query.animation === 'start',\n\t\t\t\tfinishAnimation: ( { context } ) =>\n\t\t\t\t\tcontext.core.query.animation === 'finish',\n\t\t\t},\n\t\t},\n\t},\n\tactions: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tnavigate: async ( { event, ref, context } ) => {\n\t\t\t\t\tconst isDisabled = ref.closest( '[data-wp-navigation-id]' )\n\t\t\t\t\t\t?.dataset.wpNavigationDisabled;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tisValidLink( ref ) &&\n\t\t\t\t\t\tisValidEvent( event ) &&\n\t\t\t\t\t\t! isDisabled\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\tconst id = ref.closest( '[data-wp-navigation-id]' )\n\t\t\t\t\t\t\t.dataset.wpNavigationId;\n\n\t\t\t\t\t\t// Don't announce the navigation immediately, wait 400 ms.\n\t\t\t\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\t\t\t\tcontext.core.query.message =\n\t\t\t\t\t\t\t\tcontext.core.query.loadingText;\n\t\t\t\t\t\t\tcontext.core.query.animation = 'start';\n\t\t\t\t\t\t}, 400 );\n\n\t\t\t\t\t\tawait navigate( ref.href );\n\n\t\t\t\t\t\t// Dismiss loading message if it hasn't been added yet.\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\t// Announce that the page has been loaded. If the message is the\n\t\t\t\t\t\t// same, we use a no-break space similar to the @wordpress/a11y\n\t\t\t\t\t\t// package: https://github.com/WordPress/gutenberg/blob/c395242b8e6ee20f8b06c199e4fc2920d7018af1/packages/a11y/src/filter-message.js#L20-L26\n\t\t\t\t\t\tcontext.core.query.message =\n\t\t\t\t\t\t\tcontext.core.query.loadedText +\n\t\t\t\t\t\t\t( context.core.query.message ===\n\t\t\t\t\t\t\tcontext.core.query.loadedText\n\t\t\t\t\t\t\t\t? '\\u00A0'\n\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\tcontext.core.query.animation = 'finish';\n\t\t\t\t\t\tcontext.core.query.url = ref.href;\n\n\t\t\t\t\t\t// Focus the first anchor of the Query block.\n\t\t\t\t\t\tconst firstAnchor = `[data-wp-navigation-id=${ id }] .wp-block-post-template a[href]`;\n\t\t\t\t\t\tdocument.querySelector( firstAnchor )?.focus();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tprefetch: async ( { ref } ) => {\n\t\t\t\t\tconst isDisabled = ref.closest( '[data-wp-navigation-id]' )\n\t\t\t\t\t\t?.dataset.wpNavigationDisabled;\n\t\t\t\t\tif ( isValidLink( ref ) && ! isDisabled ) {\n\t\t\t\t\t\tawait prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\teffects: {\n\t\tcore: {\n\t\t\tquery: {\n\t\t\t\tprefetch: async ( { ref, context } ) => {\n\t\t\t\t\tif ( context.core.query.url && isValidLink( ref ) ) {\n\t\t\t\t\t\tawait prefetch( ref.href );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} );\n"],"mappings":"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"}