@wordpress/block-library 8.7.0 → 8.9.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 (416) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/column/index.js +2 -1
  3. package/build/column/index.js.map +1 -1
  4. package/build/columns/edit.js +24 -6
  5. package/build/columns/edit.js.map +1 -1
  6. package/build/columns/index.js +2 -1
  7. package/build/columns/index.js.map +1 -1
  8. package/build/columns/utils.js +4 -9
  9. package/build/columns/utils.js.map +1 -1
  10. package/build/cover/edit/index.js +46 -50
  11. package/build/cover/edit/index.js.map +1 -1
  12. package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
  13. package/build/cover/edit/resizable-cover-popover.js.map +1 -0
  14. package/build/cover/index.js +12 -0
  15. package/build/cover/index.js.map +1 -1
  16. package/build/cover/transforms.js +10 -7
  17. package/build/cover/transforms.js.map +1 -1
  18. package/build/details/edit.js +67 -0
  19. package/build/details/edit.js.map +1 -0
  20. package/build/details/index.js +110 -0
  21. package/build/details/index.js.map +1 -0
  22. package/build/details/save.js +33 -0
  23. package/build/details/save.js.map +1 -0
  24. package/build/details-content/edit.js +34 -0
  25. package/build/details-content/edit.js.map +1 -0
  26. package/build/details-content/index.js +94 -0
  27. package/build/details-content/index.js.map +1 -0
  28. package/build/details-content/save.js +20 -0
  29. package/build/details-content/save.js.map +1 -0
  30. package/build/details-summary/edit.js +42 -0
  31. package/build/details-summary/edit.js.map +1 -0
  32. package/build/details-summary/index.js +97 -0
  33. package/build/details-summary/index.js.map +1 -0
  34. package/build/details-summary/save.js +24 -0
  35. package/build/details-summary/save.js.map +1 -0
  36. package/build/embed/deprecated.js +4 -1
  37. package/build/embed/deprecated.js.map +1 -1
  38. package/build/embed/embed-link-settings.native.js +1 -1
  39. package/build/embed/embed-link-settings.native.js.map +1 -1
  40. package/build/embed/embed-placeholder.js +1 -1
  41. package/build/embed/embed-placeholder.js.map +1 -1
  42. package/build/embed/index.js +4 -1
  43. package/build/embed/index.js.map +1 -1
  44. package/build/embed/transforms.js +4 -1
  45. package/build/embed/transforms.js.map +1 -1
  46. package/build/embed/util.js +4 -1
  47. package/build/embed/util.js.map +1 -1
  48. package/build/file/edit.native.js +0 -2
  49. package/build/file/edit.native.js.map +1 -1
  50. package/build/gallery/use-get-media.native.js +2 -1
  51. package/build/gallery/use-get-media.native.js.map +1 -1
  52. package/build/group/edit.js +3 -1
  53. package/build/group/edit.js.map +1 -1
  54. package/build/group/index.js +3 -0
  55. package/build/group/index.js.map +1 -1
  56. package/build/image/edit.js +16 -13
  57. package/build/image/edit.js.map +1 -1
  58. package/build/image/index.js +5 -3
  59. package/build/image/index.js.map +1 -1
  60. package/build/index.js +24 -6
  61. package/build/index.js.map +1 -1
  62. package/build/index.native.js +9 -5
  63. package/build/index.native.js.map +1 -1
  64. package/build/media-text/edit.js +4 -2
  65. package/build/media-text/edit.js.map +1 -1
  66. package/build/media-text/index.js +3 -0
  67. package/build/media-text/index.js.map +1 -1
  68. package/build/media-text/media-container.js +2 -6
  69. package/build/media-text/media-container.js.map +1 -1
  70. package/build/media-text/media-container.native.js +3 -3
  71. package/build/media-text/media-container.native.js.map +1 -1
  72. package/build/navigation/deprecated.js +8 -11
  73. package/build/navigation/deprecated.js.map +1 -1
  74. package/build/navigation/edit/index.js +32 -64
  75. package/build/navigation/edit/index.js.map +1 -1
  76. package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
  77. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  78. package/build/post-author/index.js +0 -1
  79. package/build/post-author/index.js.map +1 -1
  80. package/build/post-date/edit.js +4 -2
  81. package/build/post-date/edit.js.map +1 -1
  82. package/build/post-excerpt/edit.js +2 -2
  83. package/build/post-excerpt/edit.js.map +1 -1
  84. package/build/post-featured-image/dimension-controls.js +2 -1
  85. package/build/post-featured-image/dimension-controls.js.map +1 -1
  86. package/build/post-featured-image/edit.js +16 -27
  87. package/build/post-featured-image/edit.js.map +1 -1
  88. package/build/post-time-to-read/edit.js +1 -1
  89. package/build/post-time-to-read/edit.js.map +1 -1
  90. package/build/post-time-to-read/index.js +7 -0
  91. package/build/post-time-to-read/index.js.map +1 -1
  92. package/build/query/deprecated.js +8 -6
  93. package/build/query/deprecated.js.map +1 -1
  94. package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
  95. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  96. package/build/query/edit/inspector-controls/index.js +14 -6
  97. package/build/query/edit/inspector-controls/index.js.map +1 -1
  98. package/build/query/edit/pattern-selection-modal.js +2 -1
  99. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  100. package/build/query/index.js +5 -12
  101. package/build/query/index.js.map +1 -1
  102. package/build/site-logo/edit.js +114 -16
  103. package/build/site-logo/edit.js.map +1 -1
  104. package/build/site-logo/index.js +1 -1
  105. package/build/social-link/icons/chain.js +1 -1
  106. package/build/social-link/icons/chain.js.map +1 -1
  107. package/build/social-link/icons/mail.js +1 -1
  108. package/build/social-link/icons/mail.js.map +1 -1
  109. package/build/spacer/controls.js +25 -6
  110. package/build/spacer/controls.js.map +1 -1
  111. package/build/spacer/edit.js +129 -13
  112. package/build/spacer/edit.js.map +1 -1
  113. package/build/spacer/save.js +2 -2
  114. package/build/spacer/save.js.map +1 -1
  115. package/build/table/state.js +35 -35
  116. package/build/table/state.js.map +1 -1
  117. package/build/template-part/edit/index.js +2 -1
  118. package/build/template-part/edit/index.js.map +1 -1
  119. package/build/template-part/edit/utils/hooks.js +2 -2
  120. package/build/template-part/edit/utils/hooks.js.map +1 -1
  121. package/build/term-description/index.js +1 -2
  122. package/build/term-description/index.js.map +1 -1
  123. package/build/utils/migrate-font-family.js +12 -5
  124. package/build/utils/migrate-font-family.js.map +1 -1
  125. package/build/video/edit.native.js +4 -3
  126. package/build/video/edit.native.js.map +1 -1
  127. package/build-module/column/index.js +2 -1
  128. package/build-module/column/index.js.map +1 -1
  129. package/build-module/columns/edit.js +24 -6
  130. package/build-module/columns/edit.js.map +1 -1
  131. package/build-module/columns/index.js +2 -1
  132. package/build-module/columns/index.js.map +1 -1
  133. package/build-module/columns/utils.js +4 -8
  134. package/build-module/columns/utils.js.map +1 -1
  135. package/build-module/cover/edit/index.js +48 -52
  136. package/build-module/cover/edit/index.js.map +1 -1
  137. package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
  138. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
  139. package/build-module/cover/index.js +12 -0
  140. package/build-module/cover/index.js.map +1 -1
  141. package/build-module/cover/transforms.js +5 -1
  142. package/build-module/cover/transforms.js.map +1 -1
  143. package/build-module/details/edit.js +52 -0
  144. package/build-module/details/edit.js.map +1 -0
  145. package/build-module/details/index.js +91 -0
  146. package/build-module/details/index.js.map +1 -0
  147. package/build-module/details/save.js +20 -0
  148. package/build-module/details/save.js.map +1 -0
  149. package/build-module/details-content/edit.js +23 -0
  150. package/build-module/details-content/edit.js.map +1 -0
  151. package/build-module/details-content/index.js +76 -0
  152. package/build-module/details-content/index.js.map +1 -0
  153. package/build-module/details-content/save.js +11 -0
  154. package/build-module/details-content/save.js.map +1 -0
  155. package/build-module/details-summary/edit.js +30 -0
  156. package/build-module/details-summary/edit.js.map +1 -0
  157. package/build-module/details-summary/index.js +79 -0
  158. package/build-module/details-summary/index.js.map +1 -0
  159. package/build-module/details-summary/save.js +16 -0
  160. package/build-module/details-summary/save.js.map +1 -0
  161. package/build-module/embed/deprecated.js +4 -1
  162. package/build-module/embed/deprecated.js.map +1 -1
  163. package/build-module/embed/embed-link-settings.native.js +1 -1
  164. package/build-module/embed/embed-link-settings.native.js.map +1 -1
  165. package/build-module/embed/embed-placeholder.js +1 -1
  166. package/build-module/embed/embed-placeholder.js.map +1 -1
  167. package/build-module/embed/index.js +4 -1
  168. package/build-module/embed/index.js.map +1 -1
  169. package/build-module/embed/transforms.js +4 -1
  170. package/build-module/embed/transforms.js.map +1 -1
  171. package/build-module/embed/util.js +4 -1
  172. package/build-module/embed/util.js.map +1 -1
  173. package/build-module/file/edit.native.js +0 -2
  174. package/build-module/file/edit.native.js.map +1 -1
  175. package/build-module/gallery/use-get-media.native.js +2 -1
  176. package/build-module/gallery/use-get-media.native.js.map +1 -1
  177. package/build-module/group/edit.js +3 -1
  178. package/build-module/group/edit.js.map +1 -1
  179. package/build-module/group/index.js +3 -0
  180. package/build-module/group/index.js.map +1 -1
  181. package/build-module/image/edit.js +16 -13
  182. package/build-module/image/edit.js.map +1 -1
  183. package/build-module/image/index.js +5 -3
  184. package/build-module/image/index.js.map +1 -1
  185. package/build-module/index.js +21 -6
  186. package/build-module/index.js.map +1 -1
  187. package/build-module/index.native.js +9 -5
  188. package/build-module/index.native.js.map +1 -1
  189. package/build-module/media-text/edit.js +4 -2
  190. package/build-module/media-text/edit.js.map +1 -1
  191. package/build-module/media-text/index.js +3 -0
  192. package/build-module/media-text/index.js.map +1 -1
  193. package/build-module/media-text/media-container.js +1 -5
  194. package/build-module/media-text/media-container.js.map +1 -1
  195. package/build-module/media-text/media-container.native.js +1 -1
  196. package/build-module/media-text/media-container.native.js.map +1 -1
  197. package/build-module/navigation/deprecated.js +8 -10
  198. package/build-module/navigation/deprecated.js.map +1 -1
  199. package/build-module/navigation/edit/index.js +31 -63
  200. package/build-module/navigation/edit/index.js.map +1 -1
  201. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
  202. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  203. package/build-module/post-author/index.js +0 -1
  204. package/build-module/post-author/index.js.map +1 -1
  205. package/build-module/post-date/edit.js +4 -2
  206. package/build-module/post-date/edit.js.map +1 -1
  207. package/build-module/post-excerpt/edit.js +2 -2
  208. package/build-module/post-excerpt/edit.js.map +1 -1
  209. package/build-module/post-featured-image/dimension-controls.js +2 -1
  210. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  211. package/build-module/post-featured-image/edit.js +16 -27
  212. package/build-module/post-featured-image/edit.js.map +1 -1
  213. package/build-module/post-time-to-read/edit.js +1 -1
  214. package/build-module/post-time-to-read/edit.js.map +1 -1
  215. package/build-module/post-time-to-read/index.js +7 -0
  216. package/build-module/post-time-to-read/index.js.map +1 -1
  217. package/build-module/query/deprecated.js +5 -2
  218. package/build-module/query/deprecated.js.map +1 -1
  219. package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
  220. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  221. package/build-module/query/edit/inspector-controls/index.js +12 -7
  222. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  223. package/build-module/query/edit/pattern-selection-modal.js +2 -1
  224. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  225. package/build-module/query/index.js +5 -10
  226. package/build-module/query/index.js.map +1 -1
  227. package/build-module/site-logo/edit.js +115 -18
  228. package/build-module/site-logo/edit.js.map +1 -1
  229. package/build-module/site-logo/index.js +1 -1
  230. package/build-module/social-link/icons/chain.js +1 -1
  231. package/build-module/social-link/icons/chain.js.map +1 -1
  232. package/build-module/social-link/icons/mail.js +1 -1
  233. package/build-module/social-link/icons/mail.js.map +1 -1
  234. package/build-module/spacer/controls.js +27 -9
  235. package/build-module/spacer/controls.js.map +1 -1
  236. package/build-module/spacer/edit.js +129 -14
  237. package/build-module/spacer/edit.js.map +1 -1
  238. package/build-module/spacer/save.js +3 -3
  239. package/build-module/spacer/save.js.map +1 -1
  240. package/build-module/table/state.js +35 -33
  241. package/build-module/table/state.js.map +1 -1
  242. package/build-module/template-part/edit/index.js +2 -1
  243. package/build-module/template-part/edit/index.js.map +1 -1
  244. package/build-module/template-part/edit/utils/hooks.js +2 -2
  245. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  246. package/build-module/term-description/index.js +1 -2
  247. package/build-module/term-description/index.js.map +1 -1
  248. package/build-module/utils/migrate-font-family.js +9 -1
  249. package/build-module/utils/migrate-font-family.js.map +1 -1
  250. package/build-module/video/edit.native.js +4 -3
  251. package/build-module/video/edit.native.js.map +1 -1
  252. package/build-style/columns/style-rtl.css +4 -1
  253. package/build-style/columns/style.css +4 -1
  254. package/build-style/common-rtl.css +1 -1
  255. package/build-style/common.css +1 -1
  256. package/build-style/cover/editor-rtl.css +9 -10
  257. package/build-style/cover/editor.css +9 -10
  258. package/build-style/cover/style-rtl.css +1 -1
  259. package/build-style/cover/style.css +1 -1
  260. package/build-style/details/style-rtl.css +91 -0
  261. package/build-style/details/style.css +91 -0
  262. package/build-style/details-summary/editor-rtl.css +91 -0
  263. package/build-style/details-summary/editor.css +91 -0
  264. package/build-style/details-summary/style-rtl.css +91 -0
  265. package/build-style/details-summary/style.css +91 -0
  266. package/build-style/editor-rtl.css +97 -74
  267. package/build-style/editor.css +97 -74
  268. package/build-style/file/style-rtl.css +4 -3
  269. package/build-style/file/style.css +4 -3
  270. package/build-style/html/editor-rtl.css +2 -2
  271. package/build-style/html/editor.css +2 -2
  272. package/build-style/image/editor-rtl.css +1 -1
  273. package/build-style/image/editor.css +1 -1
  274. package/build-style/post-excerpt/style-rtl.css +1 -1
  275. package/build-style/post-excerpt/style.css +1 -1
  276. package/build-style/pullquote/style-rtl.css +4 -1
  277. package/build-style/pullquote/style.css +4 -1
  278. package/build-style/query/editor-rtl.css +8 -12
  279. package/build-style/query/editor.css +8 -12
  280. package/build-style/search/style-rtl.css +2 -0
  281. package/build-style/search/style.css +2 -0
  282. package/build-style/shortcode/editor-rtl.css +15 -35
  283. package/build-style/shortcode/editor.css +15 -35
  284. package/build-style/site-logo/editor-rtl.css +46 -0
  285. package/build-style/site-logo/editor.css +46 -0
  286. package/build-style/spacer/editor-rtl.css +4 -2
  287. package/build-style/spacer/editor.css +4 -2
  288. package/build-style/style-rtl.css +25 -8
  289. package/build-style/style.css +25 -8
  290. package/build-style/template-part/editor-rtl.css +8 -12
  291. package/build-style/template-part/editor.css +8 -12
  292. package/package.json +31 -31
  293. package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
  294. package/src/buttons/test/edit.native.js +123 -2
  295. package/src/column/block.json +2 -1
  296. package/src/columns/block.json +2 -1
  297. package/src/columns/edit.js +33 -9
  298. package/src/columns/style.scss +5 -1
  299. package/src/columns/utils.js +8 -9
  300. package/src/common.scss +1 -1
  301. package/src/cover/block.json +12 -0
  302. package/src/cover/edit/index.js +44 -37
  303. package/src/cover/edit/resizable-cover-popover.js +82 -0
  304. package/src/cover/editor.scss +20 -13
  305. package/src/cover/index.php +9 -10
  306. package/src/cover/style.scss +1 -1
  307. package/src/cover/test/edit.js +1 -1
  308. package/src/cover/transforms.js +4 -1
  309. package/src/details/block.json +54 -0
  310. package/src/details/edit.js +59 -0
  311. package/src/details/index.js +35 -0
  312. package/src/details/save.js +15 -0
  313. package/src/details/style.scss +3 -0
  314. package/src/details-content/block.json +50 -0
  315. package/src/details-content/edit.js +29 -0
  316. package/src/details-content/index.js +23 -0
  317. package/src/details-content/save.js +12 -0
  318. package/src/details-summary/block.json +53 -0
  319. package/src/details-summary/edit.js +27 -0
  320. package/src/details-summary/editor.scss +3 -0
  321. package/src/details-summary/index.js +23 -0
  322. package/src/details-summary/save.js +13 -0
  323. package/src/details-summary/style.scss +3 -0
  324. package/src/editor.scss +1 -0
  325. package/src/embed/block.json +4 -1
  326. package/src/embed/embed-link-settings.native.js +1 -1
  327. package/src/embed/embed-placeholder.js +1 -1
  328. package/src/file/edit.native.js +0 -2
  329. package/src/file/style.scss +5 -2
  330. package/src/gallery/test/index.native.js +4 -4
  331. package/src/gallery/test/use-get-media.native.js +24 -0
  332. package/src/gallery/use-get-media.native.js +1 -1
  333. package/src/group/block.json +3 -0
  334. package/src/group/edit.js +8 -2
  335. package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
  336. package/src/heading/test/index.native.js +71 -0
  337. package/src/html/editor.scss +2 -21
  338. package/src/image/block.json +5 -3
  339. package/src/image/edit.js +21 -17
  340. package/src/image/editor.scss +1 -1
  341. package/src/index.js +13 -3
  342. package/src/index.native.js +9 -5
  343. package/src/list/test/edit.native.js +7 -7
  344. package/src/media-text/block.json +3 -0
  345. package/src/media-text/edit.js +2 -1
  346. package/src/media-text/media-container.js +1 -5
  347. package/src/media-text/media-container.native.js +1 -1
  348. package/src/navigation/deprecated.js +15 -19
  349. package/src/navigation/edit/index.js +32 -106
  350. package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
  351. package/src/navigation/index.php +15 -12
  352. package/src/paragraph/test/edit.native.js +616 -1
  353. package/src/post-author/block.json +0 -1
  354. package/src/post-date/edit.js +4 -0
  355. package/src/post-date/index.php +17 -8
  356. package/src/post-excerpt/edit.js +1 -1
  357. package/src/post-excerpt/index.php +3 -3
  358. package/src/post-excerpt/style.scss +2 -1
  359. package/src/post-featured-image/dimension-controls.js +5 -1
  360. package/src/post-featured-image/edit.js +14 -34
  361. package/src/post-featured-image/index.php +1 -1
  362. package/src/post-time-to-read/block.json +7 -0
  363. package/src/post-time-to-read/edit.js +1 -1
  364. package/src/post-time-to-read/index.php +3 -3
  365. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
  366. package/src/preformatted/test/edit.native.js +42 -2
  367. package/src/pullquote/style.scss +5 -1
  368. package/src/pullquote/test/edit.native.js +65 -0
  369. package/src/query/deprecated.js +4 -1
  370. package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
  371. package/src/query/edit/inspector-controls/index.js +13 -6
  372. package/src/query/edit/pattern-selection-modal.js +1 -0
  373. package/src/query/editor.scss +8 -11
  374. package/src/query/index.js +1 -7
  375. package/src/quote/test/edit.native.js +88 -0
  376. package/src/search/index.php +1 -1
  377. package/src/search/style.scss +3 -0
  378. package/src/shortcode/editor.scss +6 -5
  379. package/src/site-logo/block.json +1 -1
  380. package/src/site-logo/edit.js +123 -9
  381. package/src/site-logo/editor.scss +57 -0
  382. package/src/social-link/icons/chain.js +1 -1
  383. package/src/social-link/icons/mail.js +1 -1
  384. package/src/social-link/index.php +2 -2
  385. package/src/spacer/controls.js +42 -17
  386. package/src/spacer/edit.js +176 -18
  387. package/src/spacer/editor.scss +2 -1
  388. package/src/spacer/save.js +3 -3
  389. package/src/style.scss +2 -0
  390. package/src/table/state.js +83 -66
  391. package/src/template-part/edit/index.js +1 -0
  392. package/src/template-part/edit/utils/hooks.js +2 -2
  393. package/src/template-part/editor.scss +9 -11
  394. package/src/term-description/block.json +1 -2
  395. package/src/utils/migrate-font-family.js +8 -1
  396. package/src/verse/test/edit.native.js +28 -0
  397. package/src/video/edit.native.js +2 -2
  398. package/tsconfig.json +1 -0
  399. package/build/cover/edit/resizable-cover.js.map +0 -1
  400. package/build/media-text/media-container-icon.js +0 -27
  401. package/build/media-text/media-container-icon.js.map +0 -1
  402. package/build/query/hooks.js +0 -72
  403. package/build/query/hooks.js.map +0 -1
  404. package/build/utils/clean-empty-object.js +0 -34
  405. package/build/utils/clean-empty-object.js.map +0 -1
  406. package/build-module/cover/edit/resizable-cover.js.map +0 -1
  407. package/build-module/media-text/media-container-icon.js +0 -17
  408. package/build-module/media-text/media-container-icon.js.map +0 -1
  409. package/build-module/query/hooks.js +0 -59
  410. package/build-module/query/hooks.js.map +0 -1
  411. package/build-module/utils/clean-empty-object.js +0 -25
  412. package/build-module/utils/clean-empty-object.js.map +0 -1
  413. package/src/cover/edit/resizable-cover.js +0 -61
  414. package/src/media-text/media-container-icon.js +0 -12
  415. package/src/query/hooks.js +0 -53
  416. package/src/utils/clean-empty-object.js +0 -28
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["ELLIPSIS","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","postTypeSupportsExcerpts","select","coreStore","getPostType","supports","excerpt","isEditable","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","newAlign","readMoreLink","newMoreText","excerptClassName","rawOrRenderedExcerpt","trim","trimmedExcerpt","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","isTrimmed","excerptContent","newShowMoreOnNewLine","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'There is no excerpt because this is a protected post.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting={ true }\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No post excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No post excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["ELLIPSIS","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","postTypeSupportsExcerpts","select","coreStore","getPostType","supports","excerpt","isEditable","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","newAlign","readMoreLink","newMoreText","excerptClassName","rawOrRenderedExcerpt","trim","trimmedExcerpt","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","isTrimmed","excerptContent","newShowMoreOnNewLine","value"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AAQA;;AACA;;AACA;;AAKA;;AAzBA;AACA;AACA;;AAGA;AACA;AACA;;AAeA;AACA;AACA;AAGA,MAAMA,QAAQ,GAAG,GAAjB;;AAEe,SAASC,iBAAT,OAKX;AAAA,MALuC;AAC1CC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,QAAb;AAAuBC,MAAAA,iBAAvB;AAA0CC,MAAAA;AAA1C,KAD8B;AAE1CC,IAAAA,aAF0C;AAG1CC,IAAAA,UAH0C;AAI1CC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA,QAAV;AAAoBC,MAAAA;AAApB;AAJiC,GAKvC;AACH,QAAMC,uBAAuB,GAAGC,MAAM,CAACC,QAAP,CAAiBH,OAAjB,CAAhC;AACA,QAAMI,WAAW,GAAG,6BAAkB,UAAlB,EAA8BL,QAA9B,EAAwCD,MAAxC,CAApB;AACA,QAAM,CACLO,UADK,EAELC,UAFK,EAGL;AAAEC,IAAAA,QAAQ,EAAEC,eAAZ;AAA6BC,IAAAA,SAAS,EAAEC;AAAxC,MAAwD,EAHnD,IAIF,6BAAe,UAAf,EAA2BX,QAA3B,EAAqC,SAArC,EAAgDD,MAAhD,CAJJ;AAMA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,QAAMa,wBAAwB,GAAG,qBAC9BC,MAAF,IAAc;AAAA;;AACb,QAAKb,QAAQ,KAAK,MAAlB,EAA2B;AAC1B,aAAO,IAAP;AACA;;AACD,WAAO,CAAC,yBAAEa,MAAM,CAAEC,eAAF,CAAN,CAAoBC,WAApB,CAAiCf,QAAjC,CAAF,yEAAE,oBAA6CgB,QAA/C,kDAAE,sBACPC,OADK,CAAR;AAEA,GAP+B,EAQhC,CAAEjB,QAAF,CARgC,CAAjC;AAWA;AACD;AACA;AACA;AACA;AACA;;AACC,QAAMkB,UAAU,GACfb,WAAW,IAAI,CAAEH,uBAAjB,IAA4CU,wBAD7C;AAGA,QAAMO,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkB5B,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAMA;AACD;AACA;AACA;AACA;;AACC,QAAM6B,aAAa,GAAG,cAAI,OAAJ,EAAa,oCAAb,CAAtB;AAEA;AACD;AACA;AACA;AACA;;AACC,QAAMC,uBAAuB,GAAG,sBAAS,MAAM;AAC9C,QAAK,CAAEb,eAAP,EAAyB,OAAO,EAAP;AACzB,UAAMc,QAAQ,GAAG,IAAIC,MAAM,CAACC,SAAX,GAAuBC,eAAvB,CAChBjB,eADgB,EAEhB,WAFgB,CAAjB;AAIA,WAAOc,QAAQ,CAACI,IAAT,CAAcC,WAAd,IAA6BL,QAAQ,CAACI,IAAT,CAAcE,SAA3C,IAAwD,EAA/D;AACA,GAP+B,EAO7B,CAAEpB,eAAF,CAP6B,CAAhC;;AASA,MAAK,CAAET,QAAF,IAAc,CAAED,MAArB,EAA8B;AAC7B,WACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,6BAAD;AACC,MAAA,KAAK,EAAGP,SADT;AAEC,MAAA,QAAQ,EAAKsC,QAAF,IACVlC,aAAa,CAAE;AAAEJ,QAAAA,SAAS,EAAEsC;AAAb,OAAF;AAHf,MADD,CADD,EASC,mCAAUX,UAAV,EACC,uCACG,cACD,gFADC,CADH,CADD,EAMC,uCACG,cACD,yIADC,CADH,CAND,CATD,CADD;AAwBA;;AACD,MAAKR,WAAW,IAAI,CAAEN,WAAtB,EAAoC;AACnC,WACC,mCAAUc,UAAV,EACC,4BAAC,oBAAD,QACG,cACD,uDADC,CADH,CADD,CADD;AASA;;AACD,QAAMY,YAAY,GACjB,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAC,kCADX;AAEC,IAAA,OAAO,EAAC,GAFT;AAGC,kBAAa,cAAI,uBAAJ,CAHd;AAIC,IAAA,WAAW,EAAG,cAAI,2BAAJ,CAJf;AAKC,IAAA,KAAK,EAAGtC,QALT;AAMC,IAAA,QAAQ,EAAKuC,WAAF,IACVpC,aAAa,CAAE;AAAEH,MAAAA,QAAQ,EAAEuC;AAAZ,KAAF,CAPf;AASC,IAAA,4BAA4B,EAAG;AAThC,IADD;AAaA,QAAMC,gBAAgB,GAAG,yBAAY,gCAAZ,EAA8C;AACtE,iBAAa,CAAEvC;AADuD,GAA9C,CAAzB;AAIA;AACD;AACA;AACA;;AACC,QAAMwC,oBAAoB,GAAG,CAC5B5B,UAAU,IAAIgB,uBADc,EAE3Ba,IAF2B,EAA7B;AAIA,MAAIC,cAAc,GAAG,EAArB;;AACA,MAAKf,aAAa,KAAK,OAAvB,EAAiC;AAChCe,IAAAA,cAAc,GAAGF,oBAAoB,CACnCG,KADe,CACR,GADQ,EACH1C,aADG,EAEf2C,IAFe,CAET,GAFS,CAAjB;AAGA,GAJD,MAIO,IAAKjB,aAAa,KAAK,6BAAvB,EAAuD;AAC7D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE,UAAMkB,iBAAiB,GAAGL,oBAAoB,CAC5CG,KADwB,CACjB,EADiB,EACb1C,aADa,EAExB2C,IAFwB,CAElB,EAFkB,CAA1B;AAIA,UAAME,cAAc,GACnBD,iBAAiB,CAACE,MAAlB,GACAF,iBAAiB,CAACG,UAAlB,CAA8B,GAA9B,EAAmC,EAAnC,EAAwCD,MAFzC;AAIAL,IAAAA,cAAc,GAAGF,oBAAoB,CACnCG,KADe,CACR,EADQ,EACJ1C,aAAa,GAAG6C,cADZ,EAEfF,IAFe,CAET,EAFS,CAAjB;AAGA,GApBM,MAoBA,IAAKjB,aAAa,KAAK,6BAAvB,EAAuD;AAC7De,IAAAA,cAAc,GAAGF,oBAAoB,CACnCG,KADe,CACR,EADQ,EACJ1C,aADI,EAEf2C,IAFe,CAET,EAFS,CAAjB;AAGA;;AAED,QAAMK,SAAS,GAAGP,cAAc,KAAKF,oBAArC;AAEA,QAAMU,cAAc,GAAG1B,UAAU,GAChC,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAGe,gBADb;AAEC,kBAAa,cAAI,mBAAJ,CAFd;AAGC,IAAA,KAAK,EACJpC,UAAU,GACPqC,oBADO,GAEP,CAAE,CAAES,SAAF,GACAT,oBADA,GAEAE,cAAc,GAAG/C,QAFnB,KAGA,cAAI,uBAAJ,CATL;AAWC,IAAA,QAAQ,EAAGkB,UAXZ;AAYC,IAAA,OAAO,EAAC;AAZT,IADgC,GAgBhC;AAAG,IAAA,SAAS,EAAG0B;AAAf,KACG,CAAEU,SAAF,GACCT,oBAAoB,IAAI,cAAI,uBAAJ,CADzB,GAECE,cAAc,GAAG/C,QAHrB,CAhBD;AAsBA,SACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGG,SADT;AAEC,IAAA,QAAQ,EAAKsC,QAAF,IACVlC,aAAa,CAAE;AAAEJ,MAAAA,SAAS,EAAEsC;AAAb,KAAF;AAHf,IADD,CADD,EASC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGpC,iBAHX;AAIC,IAAA,QAAQ,EAAKmD,oBAAF,IACVjD,aAAa,CAAE;AACdF,MAAAA,iBAAiB,EAAEmD;AADL,KAAF;AALf,IADD,EAWC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAG,cAAI,qBAAJ,CADT;AAEC,IAAA,KAAK,EAAGlD,aAFT;AAGC,IAAA,QAAQ,EAAKmD,KAAF,IAAa;AACvBlD,MAAAA,aAAa,CAAE;AAAED,QAAAA,aAAa,EAAEmD;AAAjB,OAAF,CAAb;AACA,KALF;AAMC,IAAA,GAAG,EAAC,IANL;AAOC,IAAA,GAAG,EAAC;AAPL,IAXD,CADD,CATD,EAgCC,mCAAU3B,UAAV,EACGyB,cADH,EAEG,CAAElD,iBAAF,IAAuB,GAF1B,EAGGA,iBAAiB,GAClB;AAAG,IAAA,SAAS,EAAC;AAAb,KACGqC,YADH,CADkB,GAKlBA,YARF,CAhCD,CADD;AA8CA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'There is no excerpt because this is a protected post.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting={ true }\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No post excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No post excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -67,6 +67,7 @@ const DimensionControls = _ref => {
67
67
  };
68
68
 
69
69
  const scaleLabel = (0, _i18n._x)('Scale', 'Image scaling options');
70
+ const showScaleControl = height || aspectRatio && aspectRatio !== 'auto';
70
71
  return (0, _element.createElement)(_blockEditor.InspectorControls, {
71
72
  group: "dimensions"
72
73
  }, (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
@@ -151,7 +152,7 @@ const DimensionControls = _ref => {
151
152
  min: 0,
152
153
  onChange: nextWidth => onDimensionChange('width', nextWidth),
153
154
  units: units
154
- })), (height || aspectRatio) && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
155
+ })), showScaleControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
155
156
  hasValue: () => !!scale && scale !== DEFAULT_SCALE,
156
157
  label: scaleLabel,
157
158
  onDeselect: () => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"names":["SCALE_OPTIONS","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","defaultUnits","units","availableUnits","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","undefined","label","value","nextAspectRatio","nextHeight","nextWidth","length","nextSizeSlug"],"mappings":"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","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\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{ ( height || aspectRatio ) && (\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"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"names":["SCALE_OPTIONS","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","defaultUnits","units","availableUnits","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","showScaleControl","undefined","label","value","nextAspectRatio","nextHeight","nextWidth","length","nextSizeSlug"],"mappings":"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","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"]}
@@ -109,7 +109,8 @@ function PostFeaturedImageEdit(_ref) {
109
109
  style: {
110
110
  width,
111
111
  height,
112
- aspectRatio
112
+ aspectRatio,
113
+ maxWidth: '100%'
113
114
  }
114
115
  });
115
116
  const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes);
@@ -118,7 +119,9 @@ function PostFeaturedImageEdit(_ref) {
118
119
  return (0, _element.createElement)(_components.Placeholder, {
119
120
  className: (0, _classnames.default)('block-editor-media-placeholder', borderProps.className),
120
121
  withIllustration: true,
121
- style: { ...blockProps.style,
122
+ style: {
123
+ height: !!aspectRatio && '100%',
124
+ width: !!aspectRatio && '100%',
122
125
  ...borderProps.style
123
126
  }
124
127
  }, content);
@@ -149,8 +152,8 @@ function PostFeaturedImageEdit(_ref) {
149
152
  title: (0, _i18n.__)('Settings')
150
153
  }, (0, _element.createElement)(_components.ToggleControl, {
151
154
  __nextHasNoMarginBottom: true,
152
- label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0, _i18n.sprintf)( // translators: %s: Name of the post type e.g: "post".
153
- (0, _i18n.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0, _i18n.__)('Link to post'),
155
+ label: postType !== null && postType !== void 0 && postType.labels.singular_name ? (0, _i18n.sprintf)( // translators: %s: Name of the post type e.g: "Page".
156
+ (0, _i18n.__)('Link to %s'), postType.labels.singular_name) : (0, _i18n.__)('Link to post'),
154
157
  onChange: () => setAttributes({
155
158
  isLink: !isLink
156
159
  }),
@@ -172,40 +175,26 @@ function PostFeaturedImageEdit(_ref) {
172
175
  })))));
173
176
  let image;
174
177
  /**
175
- * A post featured image block placed in a query loop
176
- * does not have image replacement or upload options.
178
+ * A Post Featured Image block should not have image replacement
179
+ * or upload options in the following cases:
180
+ * - Is placed in a Query Loop. This is a consious decision to
181
+ * prevent content editing of different posts in Query Loop, and
182
+ * this could change in the future.
183
+ * - Is in a context where it does not have a postId (for example
184
+ * in a template or template part).
177
185
  */
178
186
 
179
- if (!featuredImage && isDescendentOfQueryLoop) {
187
+ if (!featuredImage && (isDescendentOfQueryLoop || !postId)) {
180
188
  return (0, _element.createElement)(_element.Fragment, null, controls, (0, _element.createElement)("div", blockProps, placeholder(), (0, _element.createElement)(_overlay.default, {
181
189
  attributes: attributes,
182
190
  setAttributes: setAttributes,
183
191
  clientId: clientId
184
192
  })));
185
193
  }
186
- /**
187
- * A post featured image placed in a block template, outside a query loop,
188
- * does not have a postId and will always be a placeholder image.
189
- * It does not have image replacement, upload, or link options.
190
- */
191
-
192
-
193
- if (!featuredImage && !postId) {
194
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_dimensionControls.default, {
195
- clientId: clientId,
196
- attributes: attributes,
197
- setAttributes: setAttributes,
198
- imageSizeOptions: imageSizeOptions
199
- }), (0, _element.createElement)("div", blockProps, placeholder(), (0, _element.createElement)(_overlay.default, {
200
- attributes: attributes,
201
- setAttributes: setAttributes,
202
- clientId: clientId
203
- })));
204
- }
205
194
 
206
195
  const label = (0, _i18n.__)('Add a featured image');
207
196
  const imageStyles = { ...borderProps.style,
208
- height: !!aspectRatio && '100%' || height,
197
+ height: aspectRatio ? '100%' : height,
209
198
  width: !!aspectRatio && '100%',
210
199
  objectFit: !!(height || aspectRatio) && scale
211
200
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["ALLOWED_MEDIA_TYPES","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","PostFeaturedImageEdit","clientId","attributes","setAttributes","context","postId","postType","postTypeSlug","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","aspectRatio","height","width","scale","sizeSlug","rel","linkTarget","featuredImage","setFeaturedImage","select","getMedia","getPostType","coreStore","mediaUrl","imageSizes","blockEditorStore","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","borderProps","placeholder","content","className","onSelectImage","id","createErrorNotice","noticesStore","onUploadError","message","type","controls","labels","singular_name","toLowerCase","newRel","image","imageStyles","objectFit","open","upload","alt_text"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n\tTextControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\nimport Overlay from './overlay';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t} = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst { media, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia, getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetMedia( featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug ]\n\t);\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height, aspectRatio },\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\tlet image;\n\n\t/**\n\t * A post featured image block placed in a query loop\n\t * does not have image replacement or upload options.\n\t */\n\tif ( ! featuredImage && isDescendentOfQueryLoop ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * A post featured image placed in a block template, outside a query loop,\n\t * does not have a postId and will always be a placeholder image.\n\t * It does not have image replacement, upload, or link options.\n\t */\n\tif ( ! featuredImage && ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<DimensionControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t/>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\theight: ( !! aspectRatio && '100%' ) || height,\n\t\twidth: !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholder()\n\t\t) : (\n\t\t\t<img\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ imageStyles }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ image }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["ALLOWED_MEDIA_TYPES","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","PostFeaturedImageEdit","clientId","attributes","setAttributes","context","postId","postType","postTypeSlug","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","aspectRatio","height","width","scale","sizeSlug","rel","linkTarget","featuredImage","setFeaturedImage","select","getMedia","getPostType","coreStore","mediaUrl","imageSizes","blockEditorStore","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","maxWidth","borderProps","placeholder","content","className","onSelectImage","id","createErrorNotice","noticesStore","onUploadError","message","type","controls","labels","singular_name","newRel","image","imageStyles","objectFit","open","upload","alt_text"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n\tTextControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\nimport Overlay from './overlay';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t} = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst { media, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia, getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetMedia( featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug ]\n\t);\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height, aspectRatio, maxWidth: '100%' },\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\tstyle={ {\n\t\t\t\t\theight: !! aspectRatio && '100%',\n\t\t\t\t\twidth: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Page\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a consious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\theight: aspectRatio ? '100%' : height,\n\t\twidth: !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholder()\n\t\t) : (\n\t\t\t<img\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ imageStyles }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ image }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"]}
@@ -96,7 +96,7 @@ function PostTimeToReadEdit(_ref) {
96
96
  textAlign: nextAlign
97
97
  });
98
98
  }
99
- })), (0, _element.createElement)("p", blockProps, minutesToReadString));
99
+ })), (0, _element.createElement)("div", blockProps, minutesToReadString));
100
100
  }
101
101
 
102
102
  var _default = PostTimeToReadEdit;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"names":["AVERAGE_READING_RATE","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","postId","postType","contentStructure","blocks","id","minutesToReadString","content","Function","wordCountType","minutesToRead","Math","max","round","blockProps","className","nextAlign"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA,MAAMA,oBAAoB,GAAG,GAA7B;;AAEA,SAASC,kBAAT,OAAsE;AAAA,MAAzC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,aAAd;AAA6BC,IAAAA;AAA7B,GAAyC;AACrE,QAAM;AAAEC,IAAAA;AAAF,MAAgBH,UAAtB;AACA,QAAM;AAAEI,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAuBH,OAA7B;AAEA,QAAM,CAAEI,gBAAF,IAAuB,6BAC5B,UAD4B,EAE5BD,QAF4B,EAG5B,SAH4B,EAI5BD,MAJ4B,CAA7B;AAOA,QAAM,CAAEG,MAAF,IAAa,oCAAsB,UAAtB,EAAkCF,QAAlC,EAA4C;AAC9DG,IAAAA,EAAE,EAAEJ;AAD0D,GAA5C,CAAnB;AAIA,QAAMK,mBAAmB,GAAG,sBAAS,MAAM;AAC1C;AACA,QAAIC,OAAJ;;AACA,QAAKJ,gBAAgB,YAAYK,QAAjC,EAA4C;AAC3CD,MAAAA,OAAO,GAAGJ,gBAAgB,CAAE;AAAEC,QAAAA;AAAF,OAAF,CAA1B;AACA,KAFD,MAEO,IAAKA,MAAL,EAAc;AACpB;AACA;AACA;AACAG,MAAAA,OAAO,GAAG,yCAA6BH,MAA7B,CAAV;AACA,KALM,MAKA;AACNG,MAAAA,OAAO,GAAGJ,gBAAV;AACA;AAED;AACF;AACA;AACA;AACA;;;AACE,UAAMM,aAAa,GAAG,cACrB,OADqB,EAErB,oCAFqB,CAAtB;AAKA,UAAMC,aAAa,GAAGC,IAAI,CAACC,GAAL,CACrB,CADqB,EAErBD,IAAI,CAACE,KAAL,CACC,sBAAWN,OAAX,EAAoBE,aAApB,IAAsCd,oBADvC,CAFqB,CAAtB;AAOA,WAAO;AACN;AACA,kBAAI,WAAJ,EAAiB,YAAjB,EAA+Be,aAA/B,CAFM,EAGNA,aAHM,CAAP;AAKA,GApC2B,EAoCzB,CAAEP,gBAAF,EAAoBC,MAApB,CApCyB,CAA5B;AAsCA,QAAMU,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkBf,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAMA,SACC,qDACC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGA,SADT;AAEC,IAAA,QAAQ,EAAKgB,SAAF,IAAiB;AAC3BlB,MAAAA,aAAa,CAAE;AAAEE,QAAAA,SAAS,EAAEgB;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CADD,EASC,iCAAQF,UAAR,EAAuBR,mBAAvB,CATD,CADD;AAaA;;eAEcV,kB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n */\nconst AVERAGE_READING_RATE = 189;\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst minutesToReadString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst minutesToRead = Math.max(\n\t\t\t1,\n\t\t\tMath.round(\n\t\t\t\twordCount( content, wordCountType ) / AVERAGE_READING_RATE\n\t\t\t)\n\t\t);\n\n\t\treturn sprintf(\n\t\t\t/* translators: %d is the number of minutes the post will take to read. */\n\t\t\t_n( '%d minute', '%d minutes', minutesToRead ),\n\t\t\tminutesToRead\n\t\t);\n\t}, [ contentStructure, blocks ] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<p { ...blockProps }>{ minutesToReadString }</p>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"names":["AVERAGE_READING_RATE","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","postId","postType","contentStructure","blocks","id","minutesToReadString","content","Function","wordCountType","minutesToRead","Math","max","round","blockProps","className","nextAlign"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA,MAAMA,oBAAoB,GAAG,GAA7B;;AAEA,SAASC,kBAAT,OAAsE;AAAA,MAAzC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,aAAd;AAA6BC,IAAAA;AAA7B,GAAyC;AACrE,QAAM;AAAEC,IAAAA;AAAF,MAAgBH,UAAtB;AACA,QAAM;AAAEI,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAuBH,OAA7B;AAEA,QAAM,CAAEI,gBAAF,IAAuB,6BAC5B,UAD4B,EAE5BD,QAF4B,EAG5B,SAH4B,EAI5BD,MAJ4B,CAA7B;AAOA,QAAM,CAAEG,MAAF,IAAa,oCAAsB,UAAtB,EAAkCF,QAAlC,EAA4C;AAC9DG,IAAAA,EAAE,EAAEJ;AAD0D,GAA5C,CAAnB;AAIA,QAAMK,mBAAmB,GAAG,sBAAS,MAAM;AAC1C;AACA,QAAIC,OAAJ;;AACA,QAAKJ,gBAAgB,YAAYK,QAAjC,EAA4C;AAC3CD,MAAAA,OAAO,GAAGJ,gBAAgB,CAAE;AAAEC,QAAAA;AAAF,OAAF,CAA1B;AACA,KAFD,MAEO,IAAKA,MAAL,EAAc;AACpB;AACA;AACA;AACAG,MAAAA,OAAO,GAAG,yCAA6BH,MAA7B,CAAV;AACA,KALM,MAKA;AACNG,MAAAA,OAAO,GAAGJ,gBAAV;AACA;AAED;AACF;AACA;AACA;AACA;;;AACE,UAAMM,aAAa,GAAG,cACrB,OADqB,EAErB,oCAFqB,CAAtB;AAKA,UAAMC,aAAa,GAAGC,IAAI,CAACC,GAAL,CACrB,CADqB,EAErBD,IAAI,CAACE,KAAL,CACC,sBAAWN,OAAX,EAAoBE,aAApB,IAAsCd,oBADvC,CAFqB,CAAtB;AAOA,WAAO;AACN;AACA,kBAAI,WAAJ,EAAiB,YAAjB,EAA+Be,aAA/B,CAFM,EAGNA,aAHM,CAAP;AAKA,GApC2B,EAoCzB,CAAEP,gBAAF,EAAoBC,MAApB,CApCyB,CAA5B;AAsCA,QAAMU,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkBf,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAMA,SACC,qDACC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGA,SADT;AAEC,IAAA,QAAQ,EAAKgB,SAAF,IAAiB;AAC3BlB,MAAAA,aAAa,CAAE;AAAEE,QAAAA,SAAS,EAAEgB;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CADD,EASC,mCAAUF,UAAV,EAAyBR,mBAAzB,CATD,CADD;AAaA;;eAEcV,kB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n */\nconst AVERAGE_READING_RATE = 189;\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst minutesToReadString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst minutesToRead = Math.max(\n\t\t\t1,\n\t\t\tMath.round(\n\t\t\t\twordCount( content, wordCountType ) / AVERAGE_READING_RATE\n\t\t\t)\n\t\t);\n\n\t\treturn sprintf(\n\t\t\t/* translators: %d is the number of minutes the post will take to read. */\n\t\t\t_n( '%d minute', '%d minutes', minutesToRead ),\n\t\t\tminutesToRead\n\t\t);\n\t}, [ contentStructure, blocks ] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>{ minutesToReadString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"]}
@@ -32,6 +32,13 @@ const metadata = {
32
32
  }
33
33
  },
34
34
  supports: {
35
+ color: {
36
+ gradients: true,
37
+ __experimentalDefaultControls: {
38
+ background: true,
39
+ text: true
40
+ }
41
+ },
35
42
  html: false,
36
43
  spacing: {
37
44
  margin: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-time-to-read/index.js"],"names":["name","metadata","settings","icon","edit","init"],"mappings":";;;;;;;;;AAGA;;AAEA;;AACA;;AANA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,IAAI,EAAJA;AAFuB,CAAjB;;;AAKA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEL,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-time-to-read/index.js"],"names":["name","metadata","settings","icon","edit","init"],"mappings":";;;;;;;;;AAGA;;AAEA;;AACA;;AANA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,IAAI,EAAJA;AAFuB,CAAjB;;;AAKA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEL,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -13,7 +11,7 @@ var _blocks = require("@wordpress/blocks");
13
11
 
14
12
  var _blockEditor = require("@wordpress/block-editor");
15
13
 
16
- var _cleanEmptyObject = _interopRequireDefault(require("../utils/clean-empty-object"));
14
+ var _privateApis = require("../private-apis");
17
15
 
18
16
  /**
19
17
  * WordPress dependencies
@@ -22,6 +20,10 @@ var _cleanEmptyObject = _interopRequireDefault(require("../utils/clean-empty-obj
22
20
  /**
23
21
  * Internal dependencies
24
22
  */
23
+ const {
24
+ cleanEmptyObject
25
+ } = (0, _privateApis.unlock)(_blockEditor.privateApis);
26
+
25
27
  const migrateToTaxQuery = attributes => {
26
28
  var _query$categoryIds, _query$tagIds;
27
29
 
@@ -68,7 +70,7 @@ const migrateColors = (attributes, innerBlocks) => {
68
70
 
69
71
 
70
72
  if (style) {
71
- newAttributes.style = (0, _cleanEmptyObject.default)({ ...style,
73
+ newAttributes.style = cleanEmptyObject({ ...style,
72
74
  color: undefined,
73
75
  elements: { ...style.elements,
74
76
  link: undefined
@@ -84,7 +86,7 @@ const migrateColors = (attributes, innerBlocks) => {
84
86
  const groupBlock = innerBlocks[0]; // Create new styles for the group block.
85
87
 
86
88
  const hasStyles = (style === null || style === void 0 ? void 0 : style.color) || (style === null || style === void 0 ? void 0 : (_style$elements2 = style.elements) === null || _style$elements2 === void 0 ? void 0 : _style$elements2.link) || groupBlock.attributes.style;
87
- const newStyles = hasStyles ? (0, _cleanEmptyObject.default)({ ...groupBlock.attributes.style,
89
+ const newStyles = hasStyles ? cleanEmptyObject({ ...groupBlock.attributes.style,
88
90
  color: style === null || style === void 0 ? void 0 : style.color,
89
91
  elements: style !== null && style !== void 0 && (_style$elements3 = style.elements) !== null && _style$elements3 !== void 0 && _style$elements3.link ? {
90
92
  link: style === null || style === void 0 ? void 0 : (_style$elements4 = style.elements) === null || _style$elements4 === void 0 ? void 0 : _style$elements4.link
@@ -107,7 +109,7 @@ const migrateColors = (attributes, innerBlocks) => {
107
109
  backgroundColor,
108
110
  gradient,
109
111
  textColor,
110
- style: (0, _cleanEmptyObject.default)({
112
+ style: cleanEmptyObject({
111
113
  color: style === null || style === void 0 ? void 0 : style.color,
112
114
  elements: style !== null && style !== void 0 && (_style$elements5 = style.elements) !== null && _style$elements5 !== void 0 && _style$elements5.link ? {
113
115
  link: style === null || style === void 0 ? void 0 : (_style$elements6 = style.elements) === null || _style$elements6 === void 0 ? void 0 : _style$elements6.link
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/query/deprecated.js"],"names":["migrateToTaxQuery","attributes","query","categoryIds","tagIds","newQuery","length","taxQuery","category","undefined","post_tag","migrateColors","innerBlocks","style","backgroundColor","gradient","textColor","newAttributes","hasColorStyles","color","elements","link","hasSingleInnerGroupBlock","groupBlock","hasStyles","newStyles","updatedGroupBlock","newGroupBlock","name","v1","queryId","type","default","perPage","pages","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","layout","supports","html","migrate","withTaxQuery","restWithTaxQuery","displayLayout","save","v2","tagName","align","gradients","__experimentalLayout","isEligible","Tag","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","v3","parents","namespace","__experimentalDefaultControls","background","text","v4","contentSize","deprecated"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport cleanEmptyObject from '../utils/clean-empty-object';\n\nconst migrateToTaxQuery = ( attributes ) => {\n\tconst { query } = attributes;\n\tconst { categoryIds, tagIds, ...newQuery } = query;\n\n\tif ( query.categoryIds?.length || query.tagIds?.length ) {\n\t\tnewQuery.taxQuery = {\n\t\t\tcategory: !! query.categoryIds?.length\n\t\t\t\t? query.categoryIds\n\t\t\t\t: undefined,\n\t\t\tpost_tag: !! query.tagIds?.length ? query.tagIds : undefined,\n\t\t};\n\t}\n\treturn {\n\t\t...attributes,\n\t\tquery: newQuery,\n\t};\n};\n\nconst migrateColors = ( attributes, innerBlocks ) => {\n\t// Remove color style attributes from the Query block.\n\tconst { style, backgroundColor, gradient, textColor, ...newAttributes } =\n\t\tattributes;\n\n\tconst hasColorStyles =\n\t\tbackgroundColor ||\n\t\tgradient ||\n\t\ttextColor ||\n\t\tstyle?.color ||\n\t\tstyle?.elements?.link;\n\n\t// If the query block doesn't currently have any color styles,\n\t// nothing needs migrating.\n\tif ( ! hasColorStyles ) {\n\t\treturn [ attributes, innerBlocks ];\n\t}\n\n\t// Clean color values from style attribute object.\n\tif ( style ) {\n\t\tnewAttributes.style = cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...style.elements,\n\t\t\t\tlink: undefined,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// If the inner blocks are already wrapped in a single group\n\t// block, add the color support styles to that group block.\n\tif ( hasSingleInnerGroupBlock( innerBlocks ) ) {\n\t\tconst groupBlock = innerBlocks[ 0 ];\n\n\t\t// Create new styles for the group block.\n\t\tconst hasStyles =\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link ||\n\t\t\tgroupBlock.attributes.style;\n\n\t\tconst newStyles = hasStyles\n\t\t\t? cleanEmptyObject( {\n\t\t\t\t\t...groupBlock.attributes.style,\n\t\t\t\t\tcolor: style?.color,\n\t\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t\t: undefined,\n\t\t\t } )\n\t\t\t: undefined;\n\n\t\t// Create a new Group block from the original.\n\t\tconst updatedGroupBlock = createBlock(\n\t\t\t'core/group',\n\t\t\t{\n\t\t\t\t...groupBlock.attributes,\n\t\t\t\tbackgroundColor,\n\t\t\t\tgradient,\n\t\t\t\ttextColor,\n\t\t\t\tstyle: newStyles,\n\t\t\t},\n\t\t\tgroupBlock.innerBlocks\n\t\t);\n\n\t\treturn [ newAttributes, [ updatedGroupBlock ] ];\n\t}\n\n\t// When we don't have a single wrapping group block for the inner\n\t// blocks, wrap the current inner blocks in a group applying the\n\t// color styles to that.\n\tconst newGroupBlock = createBlock(\n\t\t'core/group',\n\t\t{\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t\ttextColor,\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\tcolor: style?.color,\n\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t: undefined,\n\t\t\t} ),\n\t\t},\n\t\tinnerBlocks\n\t);\n\n\treturn [ newAttributes, [ newGroupBlock ] ];\n};\n\nconst hasSingleInnerGroupBlock = ( innerBlocks = [] ) =>\n\tinnerBlocks.length === 1 && innerBlocks[ 0 ].name === 'core/group';\n\n// Version with NO wrapper `div` element.\nconst v1 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\tlayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t},\n\tmigrate( attributes ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\tconst { layout, ...restWithTaxQuery } = withTaxQuery;\n\t\treturn {\n\t\t\t...restWithTaxQuery,\n\t\t\tdisplayLayout: withTaxQuery.layout,\n\t\t};\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n};\n\n// Version with `categoryIds and tagIds`.\nconst v2 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tisEligible: ( { query: { categoryIds, tagIds } = {} } ) =>\n\t\tcategoryIds || tagIds,\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\treturn migrateColors( withTaxQuery, innerBlocks );\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\n// Version with color support prior to moving it to the PostTemplate block.\nconst v3 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tisEligible( attributes ) {\n\t\tconst { style, backgroundColor, gradient, textColor } = attributes;\n\t\treturn (\n\t\t\tbackgroundColor ||\n\t\t\tgradient ||\n\t\t\ttextColor ||\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link\n\t\t);\n\t},\n\tmigrate: migrateColors,\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\nconst v4 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n\tisEligible: ( { layout } ) =>\n\t\t! layout ||\n\t\tlayout.inherit ||\n\t\t( layout.contentSize && layout.type !== 'constrained' ),\n\tmigrate: ( attributes ) => {\n\t\tconst { layout = null } = attributes;\n\t\tif ( ! layout ) {\n\t\t\treturn attributes;\n\t\t}\n\t\tif ( layout.inherit || layout.contentSize ) {\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tlayout: {\n\t\t\t\t\t...layout,\n\t\t\t\t\ttype: 'constrained',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t},\n};\n\nconst deprecated = [ v4, v3, v2, v1 ];\n\nexport default deprecated;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/query/deprecated.js"],"names":["cleanEmptyObject","blockEditorPrivateApis","migrateToTaxQuery","attributes","query","categoryIds","tagIds","newQuery","length","taxQuery","category","undefined","post_tag","migrateColors","innerBlocks","style","backgroundColor","gradient","textColor","newAttributes","hasColorStyles","color","elements","link","hasSingleInnerGroupBlock","groupBlock","hasStyles","newStyles","updatedGroupBlock","newGroupBlock","name","v1","queryId","type","default","perPage","pages","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","layout","supports","html","migrate","withTaxQuery","restWithTaxQuery","displayLayout","save","v2","tagName","align","gradients","__experimentalLayout","isEligible","Tag","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","v3","parents","namespace","__experimentalDefaultControls","background","text","v4","contentSize","deprecated"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../private-apis';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nconst migrateToTaxQuery = ( attributes ) => {\n\tconst { query } = attributes;\n\tconst { categoryIds, tagIds, ...newQuery } = query;\n\n\tif ( query.categoryIds?.length || query.tagIds?.length ) {\n\t\tnewQuery.taxQuery = {\n\t\t\tcategory: !! query.categoryIds?.length\n\t\t\t\t? query.categoryIds\n\t\t\t\t: undefined,\n\t\t\tpost_tag: !! query.tagIds?.length ? query.tagIds : undefined,\n\t\t};\n\t}\n\treturn {\n\t\t...attributes,\n\t\tquery: newQuery,\n\t};\n};\n\nconst migrateColors = ( attributes, innerBlocks ) => {\n\t// Remove color style attributes from the Query block.\n\tconst { style, backgroundColor, gradient, textColor, ...newAttributes } =\n\t\tattributes;\n\n\tconst hasColorStyles =\n\t\tbackgroundColor ||\n\t\tgradient ||\n\t\ttextColor ||\n\t\tstyle?.color ||\n\t\tstyle?.elements?.link;\n\n\t// If the query block doesn't currently have any color styles,\n\t// nothing needs migrating.\n\tif ( ! hasColorStyles ) {\n\t\treturn [ attributes, innerBlocks ];\n\t}\n\n\t// Clean color values from style attribute object.\n\tif ( style ) {\n\t\tnewAttributes.style = cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...style.elements,\n\t\t\t\tlink: undefined,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// If the inner blocks are already wrapped in a single group\n\t// block, add the color support styles to that group block.\n\tif ( hasSingleInnerGroupBlock( innerBlocks ) ) {\n\t\tconst groupBlock = innerBlocks[ 0 ];\n\n\t\t// Create new styles for the group block.\n\t\tconst hasStyles =\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link ||\n\t\t\tgroupBlock.attributes.style;\n\n\t\tconst newStyles = hasStyles\n\t\t\t? cleanEmptyObject( {\n\t\t\t\t\t...groupBlock.attributes.style,\n\t\t\t\t\tcolor: style?.color,\n\t\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t\t: undefined,\n\t\t\t } )\n\t\t\t: undefined;\n\n\t\t// Create a new Group block from the original.\n\t\tconst updatedGroupBlock = createBlock(\n\t\t\t'core/group',\n\t\t\t{\n\t\t\t\t...groupBlock.attributes,\n\t\t\t\tbackgroundColor,\n\t\t\t\tgradient,\n\t\t\t\ttextColor,\n\t\t\t\tstyle: newStyles,\n\t\t\t},\n\t\t\tgroupBlock.innerBlocks\n\t\t);\n\n\t\treturn [ newAttributes, [ updatedGroupBlock ] ];\n\t}\n\n\t// When we don't have a single wrapping group block for the inner\n\t// blocks, wrap the current inner blocks in a group applying the\n\t// color styles to that.\n\tconst newGroupBlock = createBlock(\n\t\t'core/group',\n\t\t{\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t\ttextColor,\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\tcolor: style?.color,\n\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t: undefined,\n\t\t\t} ),\n\t\t},\n\t\tinnerBlocks\n\t);\n\n\treturn [ newAttributes, [ newGroupBlock ] ];\n};\n\nconst hasSingleInnerGroupBlock = ( innerBlocks = [] ) =>\n\tinnerBlocks.length === 1 && innerBlocks[ 0 ].name === 'core/group';\n\n// Version with NO wrapper `div` element.\nconst v1 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\tlayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t},\n\tmigrate( attributes ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\tconst { layout, ...restWithTaxQuery } = withTaxQuery;\n\t\treturn {\n\t\t\t...restWithTaxQuery,\n\t\t\tdisplayLayout: withTaxQuery.layout,\n\t\t};\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n};\n\n// Version with `categoryIds and tagIds`.\nconst v2 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tisEligible: ( { query: { categoryIds, tagIds } = {} } ) =>\n\t\tcategoryIds || tagIds,\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\treturn migrateColors( withTaxQuery, innerBlocks );\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\n// Version with color support prior to moving it to the PostTemplate block.\nconst v3 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tisEligible( attributes ) {\n\t\tconst { style, backgroundColor, gradient, textColor } = attributes;\n\t\treturn (\n\t\t\tbackgroundColor ||\n\t\t\tgradient ||\n\t\t\ttextColor ||\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link\n\t\t);\n\t},\n\tmigrate: migrateColors,\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\nconst v4 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalLayout: true,\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n\tisEligible: ( { layout } ) =>\n\t\t! layout ||\n\t\tlayout.inherit ||\n\t\t( layout.contentSize && layout.type !== 'constrained' ),\n\tmigrate: ( attributes ) => {\n\t\tconst { layout = null } = attributes;\n\t\tif ( ! layout ) {\n\t\t\treturn attributes;\n\t\t}\n\t\tif ( layout.inherit || layout.contentSize ) {\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tlayout: {\n\t\t\t\t\t...layout,\n\t\t\t\t\ttype: 'constrained',\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t},\n};\n\nconst deprecated = [ v4, v3, v2, v1 ];\n\nexport default deprecated;\n"]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var _i18n = require("@wordpress/i18n");
11
+
12
+ var _url = require("@wordpress/url");
13
+
14
+ /**
15
+ * WordPress dependencies
16
+ */
17
+ const CreateNewPostLink = _ref => {
18
+ let {
19
+ attributes: {
20
+ query: {
21
+ postType
22
+ } = {}
23
+ } = {}
24
+ } = _ref;
25
+ if (!postType) return null;
26
+ const newPostUrl = (0, _url.addQueryArgs)('post-new.php', {
27
+ post_type: postType
28
+ });
29
+ return (0, _element.createElement)("div", {
30
+ className: "wp-block-query__create-new-link"
31
+ }, (0, _element.createInterpolateElement)((0, _i18n.__)('<a>Add new post</a>'), // eslint-disable-next-line jsx-a11y/anchor-has-content
32
+ {
33
+ a: (0, _element.createElement)("a", {
34
+ href: newPostUrl
35
+ })
36
+ }));
37
+ };
38
+
39
+ var _default = CreateNewPostLink;
40
+ exports.default = _default;
41
+ //# sourceMappingURL=create-new-post-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/query/edit/inspector-controls/create-new-post-link.js"],"names":["CreateNewPostLink","attributes","query","postType","newPostUrl","post_type","a"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AALA;AACA;AACA;AAKA,MAAMA,iBAAiB,GAAG,QAEnB;AAAA,MAFqB;AAC3BC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAEC,QAAAA;AAAF,UAAe;AAAxB,QAA+B;AADhB,GAErB;AACN,MAAK,CAAEA,QAAP,EAAkB,OAAO,IAAP;AAClB,QAAMC,UAAU,GAAG,uBAAc,cAAd,EAA8B;AAChDC,IAAAA,SAAS,EAAEF;AADqC,GAA9B,CAAnB;AAGA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,uCACD,cAAI,qBAAJ,CADC,EAED;AACA;AAAEG,IAAAA,CAAC,EAAE;AAAG,MAAA,IAAI,EAAGF;AAAV;AAAL,GAHC,CADH,CADD;AASA,CAhBD;;eAkBeJ,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\n\nconst CreateNewPostLink = ( {\n\tattributes: { query: { postType } = {} } = {},\n} ) => {\n\tif ( ! postType ) return null;\n\tconst newPostUrl = addQueryArgs( 'post-new.php', {\n\t\tpost_type: postType,\n\t} );\n\treturn (\n\t\t<div className=\"wp-block-query__create-new-link\">\n\t\t\t{ createInterpolateElement(\n\t\t\t\t__( '<a>Add new post</a>' ),\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t{ a: <a href={ newPostUrl } /> }\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default CreateNewPostLink;\n"]}