@wordpress/block-library 8.29.0 → 8.30.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 (347) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +7 -17
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js.map +1 -1
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/deprecated.js +71 -11
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +49 -24
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +2 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.native.js.map +1 -1
  13. package/build/buttons/transforms.js +16 -2
  14. package/build/buttons/transforms.js.map +1 -1
  15. package/build/code/transforms.js +17 -6
  16. package/build/code/transforms.js.map +1 -1
  17. package/build/columns/edit.js +3 -2
  18. package/build/columns/edit.js.map +1 -1
  19. package/build/comment-author-avatar/edit.js +1 -1
  20. package/build/comment-author-avatar/edit.js.map +1 -1
  21. package/build/cover/edit/block-controls.js +14 -3
  22. package/build/cover/edit/block-controls.js.map +1 -1
  23. package/build/cover/edit/index.js.map +1 -1
  24. package/build/cover/edit/inspector-controls.js.map +1 -1
  25. package/build/cover/edit/resizable-cover-popover.js +0 -6
  26. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  27. package/build/cover/edit.native.js.map +1 -1
  28. package/build/file/deprecated.js.map +1 -1
  29. package/build/file/edit.js +6 -13
  30. package/build/file/edit.js.map +1 -1
  31. package/build/file/edit.native.js.map +1 -1
  32. package/build/file/save.js.map +1 -1
  33. package/build/form-input/edit.js +1 -1
  34. package/build/form-input/edit.js.map +1 -1
  35. package/build/gallery/edit.js.map +1 -1
  36. package/build/gallery/gallery.native.js.map +1 -1
  37. package/build/gallery/v1/edit.js.map +1 -1
  38. package/build/gallery/v1/gallery.native.js.map +1 -1
  39. package/build/heading/transforms.js +17 -4
  40. package/build/heading/transforms.js.map +1 -1
  41. package/build/image/edit.js +8 -4
  42. package/build/image/edit.js.map +1 -1
  43. package/build/image/edit.native.js.map +1 -1
  44. package/build/image/image.js +22 -8
  45. package/build/image/image.js.map +1 -1
  46. package/build/latest-posts/edit.native.js.map +1 -1
  47. package/build/list/ordered-list-settings.js +1 -1
  48. package/build/list/ordered-list-settings.js.map +1 -1
  49. package/build/list-item/edit.js +1 -3
  50. package/build/list-item/edit.js.map +1 -1
  51. package/build/list-item/edit.native.js.map +1 -1
  52. package/build/list-item/hooks/index.js +0 -7
  53. package/build/list-item/hooks/index.js.map +1 -1
  54. package/build/list-item/hooks/use-indent-list-item.js +1 -0
  55. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  56. package/build/list-item/hooks/use-outdent-list-item.js +1 -0
  57. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  58. package/build/list-item/hooks/use-space.js +16 -7
  59. package/build/list-item/hooks/use-space.js.map +1 -1
  60. package/build/list-item/index.js +4 -1
  61. package/build/list-item/index.js.map +1 -1
  62. package/build/media-text/media-container.native.js +1 -1
  63. package/build/media-text/media-container.native.js.map +1 -1
  64. package/build/navigation/edit/index.js.map +1 -1
  65. package/build/navigation-link/link-ui.js.map +1 -1
  66. package/build/paragraph/edit.native.js.map +1 -1
  67. package/build/pattern/edit.js +11 -0
  68. package/build/pattern/edit.js.map +1 -1
  69. package/build/post-excerpt/edit.js.map +1 -1
  70. package/build/post-featured-image/dimension-controls.js.map +1 -1
  71. package/build/post-featured-image/edit.js +8 -11
  72. package/build/post-featured-image/edit.js.map +1 -1
  73. package/build/post-navigation-link/edit.js.map +1 -1
  74. package/build/post-title/edit.js +2 -2
  75. package/build/post-title/edit.js.map +1 -1
  76. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  77. package/build/query/utils.js +7 -5
  78. package/build/query/utils.js.map +1 -1
  79. package/build/query-pagination-next/edit.js.map +1 -1
  80. package/build/query-pagination-previous/edit.js.map +1 -1
  81. package/build/quote/deprecated.js +111 -12
  82. package/build/quote/deprecated.js.map +1 -1
  83. package/build/quote/edit.js +5 -5
  84. package/build/quote/edit.js.map +1 -1
  85. package/build/quote/index.js +1 -1
  86. package/build/quote/index.js.map +1 -1
  87. package/build/quote/save.js +2 -2
  88. package/build/quote/save.js.map +1 -1
  89. package/build/read-more/edit.js.map +1 -1
  90. package/build/search/edit.js +1 -1
  91. package/build/search/edit.js.map +1 -1
  92. package/build/search/edit.native.js.map +1 -1
  93. package/build/site-logo/edit.js +7 -2
  94. package/build/site-logo/edit.js.map +1 -1
  95. package/build/site-title/{edit/index.js → edit.js} +1 -1
  96. package/build/site-title/edit.js.map +1 -0
  97. package/build/social-link/edit.js.map +1 -1
  98. package/build/social-links/edit.native.js.map +1 -1
  99. package/build/spacer/edit.js.map +1 -1
  100. package/build/table-of-contents/edit.js.map +1 -1
  101. package/build/template-part/edit/index.js +53 -1
  102. package/build/template-part/edit/index.js.map +1 -1
  103. package/build/template-part/edit/selection-modal.js +2 -8
  104. package/build/template-part/edit/selection-modal.js.map +1 -1
  105. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
  106. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  107. package/build/utils/caption.js +15 -5
  108. package/build/utils/caption.js.map +1 -1
  109. package/build/utils/get-transformed-metadata.js +57 -0
  110. package/build/utils/get-transformed-metadata.js.map +1 -0
  111. package/build/utils/hooks.js +55 -4
  112. package/build/utils/hooks.js.map +1 -1
  113. package/build/video/edit-common-settings.js.map +1 -1
  114. package/build/video/edit.js +7 -16
  115. package/build/video/edit.js.map +1 -1
  116. package/build/video/edit.native.js +2 -7
  117. package/build/video/edit.native.js.map +1 -1
  118. package/build-module/audio/edit.js +10 -20
  119. package/build-module/audio/edit.js.map +1 -1
  120. package/build-module/audio/edit.native.js.map +1 -1
  121. package/build-module/avatar/edit.js.map +1 -1
  122. package/build-module/block/deprecated.js +71 -11
  123. package/build-module/block/deprecated.js.map +1 -1
  124. package/build-module/block/edit.js +49 -24
  125. package/build-module/block/edit.js.map +1 -1
  126. package/build-module/button/edit.js +3 -3
  127. package/build-module/button/edit.js.map +1 -1
  128. package/build-module/buttons/edit.native.js.map +1 -1
  129. package/build-module/buttons/transforms.js +16 -2
  130. package/build-module/buttons/transforms.js.map +1 -1
  131. package/build-module/code/transforms.js +17 -6
  132. package/build-module/code/transforms.js.map +1 -1
  133. package/build-module/columns/edit.js +3 -2
  134. package/build-module/columns/edit.js.map +1 -1
  135. package/build-module/comment-author-avatar/edit.js +1 -1
  136. package/build-module/comment-author-avatar/edit.js.map +1 -1
  137. package/build-module/cover/edit/block-controls.js +15 -4
  138. package/build-module/cover/edit/block-controls.js.map +1 -1
  139. package/build-module/cover/edit/index.js.map +1 -1
  140. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  141. package/build-module/cover/edit/resizable-cover-popover.js +1 -7
  142. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  143. package/build-module/cover/edit.native.js.map +1 -1
  144. package/build-module/file/deprecated.js.map +1 -1
  145. package/build-module/file/edit.js +7 -14
  146. package/build-module/file/edit.js.map +1 -1
  147. package/build-module/file/edit.native.js.map +1 -1
  148. package/build-module/file/save.js.map +1 -1
  149. package/build-module/form-input/edit.js +1 -1
  150. package/build-module/form-input/edit.js.map +1 -1
  151. package/build-module/gallery/edit.js.map +1 -1
  152. package/build-module/gallery/gallery.native.js.map +1 -1
  153. package/build-module/gallery/v1/edit.js.map +1 -1
  154. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  155. package/build-module/heading/transforms.js +17 -4
  156. package/build-module/heading/transforms.js.map +1 -1
  157. package/build-module/image/edit.js +9 -5
  158. package/build-module/image/edit.js.map +1 -1
  159. package/build-module/image/edit.native.js.map +1 -1
  160. package/build-module/image/image.js +23 -9
  161. package/build-module/image/image.js.map +1 -1
  162. package/build-module/latest-posts/edit.native.js.map +1 -1
  163. package/build-module/list/ordered-list-settings.js +1 -1
  164. package/build-module/list/ordered-list-settings.js.map +1 -1
  165. package/build-module/list-item/edit.js +2 -4
  166. package/build-module/list-item/edit.js.map +1 -1
  167. package/build-module/list-item/edit.native.js.map +1 -1
  168. package/build-module/list-item/hooks/index.js +0 -1
  169. package/build-module/list-item/hooks/index.js.map +1 -1
  170. package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
  171. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  172. package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
  173. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  174. package/build-module/list-item/hooks/use-space.js +17 -8
  175. package/build-module/list-item/hooks/use-space.js.map +1 -1
  176. package/build-module/list-item/index.js +4 -1
  177. package/build-module/list-item/index.js.map +1 -1
  178. package/build-module/media-text/media-container.native.js +1 -1
  179. package/build-module/media-text/media-container.native.js.map +1 -1
  180. package/build-module/navigation/edit/index.js.map +1 -1
  181. package/build-module/navigation-link/link-ui.js.map +1 -1
  182. package/build-module/paragraph/edit.native.js.map +1 -1
  183. package/build-module/pattern/edit.js +11 -0
  184. package/build-module/pattern/edit.js.map +1 -1
  185. package/build-module/post-excerpt/edit.js.map +1 -1
  186. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  187. package/build-module/post-featured-image/edit.js +9 -12
  188. package/build-module/post-featured-image/edit.js.map +1 -1
  189. package/build-module/post-navigation-link/edit.js.map +1 -1
  190. package/build-module/post-title/edit.js +2 -2
  191. package/build-module/post-title/edit.js.map +1 -1
  192. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  193. package/build-module/query/utils.js +7 -5
  194. package/build-module/query/utils.js.map +1 -1
  195. package/build-module/query-pagination-next/edit.js.map +1 -1
  196. package/build-module/query-pagination-previous/edit.js.map +1 -1
  197. package/build-module/quote/deprecated.js +112 -13
  198. package/build-module/quote/deprecated.js.map +1 -1
  199. package/build-module/quote/edit.js +5 -5
  200. package/build-module/quote/edit.js.map +1 -1
  201. package/build-module/quote/index.js +1 -1
  202. package/build-module/quote/index.js.map +1 -1
  203. package/build-module/quote/save.js +2 -2
  204. package/build-module/quote/save.js.map +1 -1
  205. package/build-module/read-more/edit.js.map +1 -1
  206. package/build-module/search/edit.js +1 -1
  207. package/build-module/search/edit.js.map +1 -1
  208. package/build-module/search/edit.native.js.map +1 -1
  209. package/build-module/site-logo/edit.js +7 -2
  210. package/build-module/site-logo/edit.js.map +1 -1
  211. package/build-module/site-title/{edit/index.js → edit.js} +1 -1
  212. package/build-module/site-title/edit.js.map +1 -0
  213. package/build-module/social-link/edit.js.map +1 -1
  214. package/build-module/social-links/edit.native.js.map +1 -1
  215. package/build-module/spacer/edit.js.map +1 -1
  216. package/build-module/table-of-contents/edit.js.map +1 -1
  217. package/build-module/template-part/edit/index.js +57 -5
  218. package/build-module/template-part/edit/index.js.map +1 -1
  219. package/build-module/template-part/edit/selection-modal.js +2 -8
  220. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  221. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
  222. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  223. package/build-module/utils/caption.js +13 -3
  224. package/build-module/utils/caption.js.map +1 -1
  225. package/build-module/utils/get-transformed-metadata.js +51 -0
  226. package/build-module/utils/get-transformed-metadata.js.map +1 -0
  227. package/build-module/utils/hooks.js +54 -3
  228. package/build-module/utils/hooks.js.map +1 -1
  229. package/build-module/video/edit-common-settings.js.map +1 -1
  230. package/build-module/video/edit.js +10 -19
  231. package/build-module/video/edit.js.map +1 -1
  232. package/build-module/video/edit.native.js +2 -7
  233. package/build-module/video/edit.native.js.map +1 -1
  234. package/build-style/common-rtl.css +1 -0
  235. package/build-style/common.css +1 -0
  236. package/build-style/cover/style-rtl.css +2 -1
  237. package/build-style/cover/style.css +2 -1
  238. package/build-style/editor-rtl.css +4 -1
  239. package/build-style/editor.css +4 -1
  240. package/build-style/group/editor-rtl.css +1 -1
  241. package/build-style/group/editor.css +1 -1
  242. package/build-style/image/editor-rtl.css +3 -0
  243. package/build-style/image/editor.css +3 -0
  244. package/build-style/search/style-rtl.css +2 -0
  245. package/build-style/search/style.css +2 -0
  246. package/build-style/style-rtl.css +4 -1
  247. package/build-style/style.css +4 -1
  248. package/package.json +34 -34
  249. package/src/audio/edit.js +9 -19
  250. package/src/audio/edit.native.js +3 -3
  251. package/src/avatar/edit.js +1 -1
  252. package/src/block/deprecated.js +76 -11
  253. package/src/block/edit.js +64 -19
  254. package/src/block/index.php +23 -12
  255. package/src/button/edit.js +4 -3
  256. package/src/buttons/edit.native.js +1 -1
  257. package/src/buttons/transforms.js +14 -4
  258. package/src/calendar/index.php +5 -0
  259. package/src/code/transforms.js +20 -5
  260. package/src/columns/edit.js +3 -2
  261. package/src/comment-author-avatar/edit.js +1 -1
  262. package/src/comments/index.php +2 -0
  263. package/src/cover/edit/block-controls.js +16 -2
  264. package/src/cover/edit/index.js +2 -2
  265. package/src/cover/edit/inspector-controls.js +1 -1
  266. package/src/cover/edit/resizable-cover-popover.js +1 -6
  267. package/src/cover/edit.native.js +1 -1
  268. package/src/cover/style.scss +3 -2
  269. package/src/file/deprecated.js +3 -3
  270. package/src/file/edit.js +8 -15
  271. package/src/file/edit.native.js +4 -4
  272. package/src/file/save.js +1 -1
  273. package/src/footnotes/index.php +1 -1
  274. package/src/form-input/edit.js +1 -1
  275. package/src/gallery/edit.js +3 -3
  276. package/src/gallery/gallery.native.js +1 -1
  277. package/src/gallery/test/index.native.js +1 -1
  278. package/src/gallery/v1/edit.js +2 -2
  279. package/src/gallery/v1/gallery.native.js +1 -1
  280. package/src/group/editor.scss +1 -1
  281. package/src/heading/transforms.js +27 -8
  282. package/src/image/edit.js +13 -5
  283. package/src/image/edit.native.js +1 -1
  284. package/src/image/editor.scss +6 -0
  285. package/src/image/image.js +34 -22
  286. package/src/latest-posts/edit.native.js +1 -1
  287. package/src/list/ordered-list-settings.js +1 -1
  288. package/src/list-item/edit.js +1 -2
  289. package/src/list-item/edit.native.js +1 -1
  290. package/src/list-item/hooks/index.js +0 -1
  291. package/src/list-item/hooks/use-indent-list-item.js +2 -0
  292. package/src/list-item/hooks/use-outdent-list-item.js +2 -0
  293. package/src/list-item/hooks/use-space.js +16 -9
  294. package/src/list-item/index.js +3 -0
  295. package/src/media-text/media-container.native.js +5 -3
  296. package/src/media-text/test/edit.native.js +58 -0
  297. package/src/missing/test/edit-integration.native.js +2 -1
  298. package/src/navigation/edit/index.js +1 -1
  299. package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
  300. package/src/navigation/index.php +26 -17
  301. package/src/navigation-link/link-ui.js +2 -2
  302. package/src/paragraph/edit.native.js +1 -1
  303. package/src/paragraph/test/edit.native.js +36 -0
  304. package/src/pattern/edit.js +14 -0
  305. package/src/post-excerpt/edit.js +1 -1
  306. package/src/post-featured-image/dimension-controls.js +4 -4
  307. package/src/post-featured-image/edit.js +10 -12
  308. package/src/post-navigation-link/edit.js +1 -1
  309. package/src/post-template/index.php +2 -0
  310. package/src/post-title/edit.js +49 -43
  311. package/src/query/edit/pattern-selection-modal.js +1 -1
  312. package/src/query/utils.js +6 -4
  313. package/src/query-pagination-next/edit.js +1 -1
  314. package/src/query-pagination-previous/edit.js +1 -1
  315. package/src/quote/block.json +1 -1
  316. package/src/quote/deprecated.js +110 -15
  317. package/src/quote/edit.js +5 -5
  318. package/src/quote/save.js +2 -2
  319. package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
  320. package/src/read-more/edit.js +1 -1
  321. package/src/search/edit.js +1 -1
  322. package/src/search/edit.native.js +4 -4
  323. package/src/search/index.php +1 -1
  324. package/src/search/style.scss +2 -0
  325. package/src/site-logo/edit.js +11 -6
  326. package/src/social-link/edit.js +1 -1
  327. package/src/social-links/edit.native.js +1 -1
  328. package/src/spacer/edit.js +1 -1
  329. package/src/table-of-contents/edit.js +1 -1
  330. package/src/template-part/edit/index.js +91 -4
  331. package/src/template-part/edit/selection-modal.js +4 -8
  332. package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
  333. package/src/utils/caption.js +10 -1
  334. package/src/utils/get-transformed-metadata.js +65 -0
  335. package/src/utils/hooks.js +53 -3
  336. package/src/video/edit-common-settings.js +1 -1
  337. package/src/video/edit.js +10 -18
  338. package/src/video/edit.native.js +5 -8
  339. package/src/video/test/edit.native.js +0 -14
  340. package/build/list-item/hooks/use-copy.js +0 -39
  341. package/build/list-item/hooks/use-copy.js.map +0 -1
  342. package/build/site-title/edit/index.js.map +0 -1
  343. package/build-module/list-item/hooks/use-copy.js +0 -32
  344. package/build-module/list-item/hooks/use-copy.js.map +0 -1
  345. package/build-module/site-title/edit/index.js.map +0 -1
  346. package/src/list-item/hooks/use-copy.js +0 -38
  347. /package/src/site-title/{edit/index.js → edit.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blockEditor","_components","_i18n","_coreData","_element","_placeholder","_interopRequireDefault","_selectionModal","_advancedControls","_innerBlocks","_createTemplatePartId","_hooks","ReplaceButton","isEntityAvailable","area","clientId","templatePartId","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","templateParts","useAlternativeTemplateParts","blockPatterns","useAlternativeBlockPatterns","hasReplacements","length","canReplace","_react","createElement","MenuItem","onClick","__","TemplatePartEdit","attributes","setAttributes","currentTheme","useSelect","select","coreStore","getCurrentTheme","stylesheet","slug","theme","tagName","layout","createTemplatePartId","hasAlreadyRendered","useHasRecursion","useState","isResolved","hasInnerBlocks","isMissing","getEditedEntityRecord","hasFinishedResolution","getBlockCount","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","areaObject","useTemplatePartArea","blockProps","useBlockProps","isPlaceholder","TagName","Warning","sprintf","Fragment","RecursionProvider","uniqueId","InspectorControls","group","TemplatePartAdvancedControls","defaultWrapper","default","onOpenSelectionModal","BlockSettingsMenuControls","selectedClientIds","postId","Spinner","Modal","overlayClassName","title","label","toLowerCase","onRequestClose","isFullScreen","onClose"],"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport { Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst { isResolved, hasInnerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\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</BlockSettingsMenuControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen={ true }\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_blockEditor","_components","_compose","_i18n","_coreData","_element","_notices","_placeholder","_interopRequireDefault","_selectionModal","_advancedControls","_innerBlocks","_createTemplatePartId","_mapTemplatePartToBlockPattern","_hooks","ReplaceButton","isEntityAvailable","area","clientId","templatePartId","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","templateParts","useAlternativeTemplateParts","blockPatterns","useAlternativeBlockPatterns","hasReplacements","length","canReplace","_react","createElement","MenuItem","onClick","__","TemplatesList","availableTemplates","onSelect","shownTemplates","useAsyncList","__experimentalBlockPatternsList","label","shownPatterns","onClickPattern","TemplatePartEdit","attributes","setAttributes","createSuccessNotice","useDispatch","noticesStore","currentTheme","useSelect","select","coreStore","getCurrentTheme","stylesheet","slug","theme","tagName","layout","createTemplatePartId","hasAlreadyRendered","useHasRecursion","useState","isResolved","hasInnerBlocks","isMissing","getEditedEntityRecord","hasFinishedResolution","getBlockCount","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","areaObject","useTemplatePartArea","blockProps","useBlockProps","isPlaceholder","TagName","createFromBlocks","useCreateTemplatePartFromBlocks","Warning","sprintf","partsAsPatterns","map","templatePart","mapTemplatePartToBlockPattern","onTemplatePartSelect","undefined","title","rendered","type","Fragment","RecursionProvider","uniqueId","InspectorControls","group","TemplatePartAdvancedControls","defaultWrapper","default","onOpenSelectionModal","BlockSettingsMenuControls","selectedClientIds","PanelBody","pattern","blocks","postId","Spinner","Modal","overlayClassName","toLowerCase","onRequestClose","isFullScreen","onClose"],"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n} from '@wordpress/block-editor';\nimport { PanelBody, Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n\tuseCreateTemplatePartFromBlocks,\n} from './utils/hooks';\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { availableTemplates, onSelect } ) {\n\tconst shownTemplates = useAsyncList( availableTemplates );\n\n\tif ( ! availableTemplates ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ availableTemplates }\n\t\t\tshownPatterns={ shownTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst { isResolved, hasInnerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\tmapTemplatePartToBlockPattern( templatePart )\n\t);\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" replaceed.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\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</BlockSettingsMenuControls>\n\n\t\t\t\t{ canReplace &&\n\t\t\t\t\t( partsAsPatterns.length > 0 ||\n\t\t\t\t\t\tblockPatterns.length > 0 ) && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Replace' ) }>\n\t\t\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\t\t\tavailableTemplates={ partsAsPatterns }\n\t\t\t\t\t\t\t\t\tonSelect={ ( pattern ) => {\n\t\t\t\t\t\t\t\t\t\tonTemplatePartSelect(\n\t\t\t\t\t\t\t\t\t\t\tpattern.templatePart\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\t\t\tavailableTemplates={ blockPatterns }\n\t\t\t\t\t\t\t\t\tonSelect={ ( pattern, blocks ) => {\n\t\t\t\t\t\t\t\t\t\tcreateFromBlocks(\n\t\t\t\t\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\t\t\t\t\tpattern.title\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAKA,IAAAQ,YAAA,GAAAC,sBAAA,CAAAT,OAAA;AACA,IAAAU,eAAA,GAAAD,sBAAA,CAAAT,OAAA;AACA,IAAAW,iBAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAH,sBAAA,CAAAT,OAAA;AACA,IAAAa,qBAAA,GAAAb,OAAA;AACA,IAAAc,8BAAA,GAAAd,OAAA;AACA,IAAAe,MAAA,GAAAf,OAAA;AA9BA;AACA;AACA;;AAmBA;AACA;AACA;;AAcA,SAASgB,aAAaA,CAAE;EACvBC,iBAAiB;EACjBC,IAAI;EACJC,QAAQ;EACRC,cAAc;EACdC,2BAA2B;EAC3BC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,kCAA2B,EACpDN,IAAI,EACJE,cACD,CAAC;EACD,MAAMK,aAAa,GAAG,IAAAC,kCAA2B,EAAER,IAAI,EAAEC,QAAS,CAAC;EACnE,MAAMQ,eAAe,GAAG,CAAC,CAAEJ,aAAa,CAACK,MAAM,IAAI,CAAC,CAAEH,aAAa,CAACG,MAAM;EAC1E,MAAMC,UAAU,GACfZ,iBAAiB,IACjBU,eAAe,KACbT,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,CAAE;EAE3C,IAAK,CAAEW,UAAU,EAAG;IACnB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA8B,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACfX,8BAA8B,CAAE,IAAK,CAAC;IACvC,CAAG;IACH,iBAAgBD,2BAA6B;IAC7C,iBAAc;EAAQ,GAEpB,IAAAa,QAAE,EAAE,SAAU,CACP,CAAC;AAEb;AAEA,SAASC,aAAaA,CAAE;EAAEC,kBAAkB;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAMC,cAAc,GAAG,IAAAC,qBAAY,EAAEH,kBAAmB,CAAC;EAEzD,IAAK,CAAEA,kBAAkB,EAAG;IAC3B,OAAO,IAAI;EACZ;EAEA,OACC,IAAAN,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAuC,+BAAiB;IACjBC,KAAK,EAAG,IAAAP,QAAE,EAAE,WAAY,CAAG;IAC3BT,aAAa,EAAGW,kBAAoB;IACpCM,aAAa,EAAGJ,cAAgB;IAChCK,cAAc,EAAGN;EAAU,CAC3B,CAAC;AAEJ;AAEe,SAASO,gBAAgBA,CAAE;EACzCC,UAAU;EACVC,aAAa;EACb3B;AACD,CAAC,EAAG;EACH,MAAM;IAAE4B;EAAoB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EAC3D,MAAMC,YAAY,GAAG,IAAAC,eAAS,EAC3BC,MAAM,IAAMA,MAAM,CAAEC,eAAU,CAAC,CAACC,eAAe,CAAC,CAAC,EAAEC,UAAU,EAC/D,EACD,CAAC;EACD,MAAM;IAAEC,IAAI;IAAEC,KAAK,GAAGP,YAAY;IAAEQ,OAAO;IAAEC,MAAM,GAAG,CAAC;EAAE,CAAC,GAAGd,UAAU;EACvE,MAAMzB,cAAc,GAAG,IAAAwC,0CAAoB,EAAEH,KAAK,EAAED,IAAK,CAAC;EAC1D,MAAMK,kBAAkB,GAAG,IAAAC,4BAAe,EAAE1C,cAAe,CAAC;EAC5D,MAAM,CAAEC,2BAA2B,EAAEC,8BAA8B,CAAE,GACpE,IAAAyC,iBAAQ,EAAE,KAAM,CAAC;EAElB,MAAM;IAAEC,UAAU;IAAEC,cAAc;IAAEC,SAAS;IAAEhD;EAAK,CAAC,GAAG,IAAAiC,eAAS,EAC9DC,MAAM,IAAM;IACb,MAAM;MAAEe,qBAAqB;MAAEC;IAAsB,CAAC,GACrDhB,MAAM,CAAEC,eAAU,CAAC;IACpB,MAAM;MAAEgB;IAAc,CAAC,GAAGjB,MAAM,CAAEkB,kBAAiB,CAAC;IAEpD,MAAMC,aAAa,GAAG,CACrB,UAAU,EACV,kBAAkB,EAClBnD,cAAc,CACd;IACD,MAAMoD,YAAY,GAAGpD,cAAc,GAChC+C,qBAAqB,CAAE,GAAGI,aAAc,CAAC,GACzC,IAAI;IACP,MAAME,KAAK,GAAGD,YAAY,EAAEtD,IAAI,IAAI2B,UAAU,CAAC3B,IAAI;IACnD,MAAMwD,iBAAiB,GAAGtD,cAAc,GACrCgD,qBAAqB,CACrB,uBAAuB,EACvBG,aACA,CAAC,GACD,KAAK;IAER,OAAO;MACNN,cAAc,EAAEI,aAAa,CAAElD,QAAS,CAAC,GAAG,CAAC;MAC7C6C,UAAU,EAAEU,iBAAiB;MAC7BR,SAAS,EACRQ,iBAAiB,KACf,CAAEF,YAAY,IACfG,MAAM,CAACC,IAAI,CAAEJ,YAAa,CAAC,CAAC5C,MAAM,KAAK,CAAC,CAAE;MAC5CV,IAAI,EAAEuD;IACP,CAAC;EACF,CAAC,EACD,CAAErD,cAAc,EAAEyB,UAAU,CAAC3B,IAAI,EAAEC,QAAQ,CAC5C,CAAC;EAED,MAAM;IAAEI;EAAc,CAAC,GAAG,IAAAC,kCAA2B,EACpDN,IAAI,EACJE,cACD,CAAC;EACD,MAAMK,aAAa,GAAG,IAAAC,kCAA2B,EAAER,IAAI,EAAEC,QAAS,CAAC;EACnE,MAAMQ,eAAe,GAAG,CAAC,CAAEJ,aAAa,CAACK,MAAM,IAAI,CAAC,CAAEH,aAAa,CAACG,MAAM;EAC1E,MAAMiD,UAAU,GAAG,IAAAC,0BAAmB,EAAE5D,IAAK,CAAC;EAC9C,MAAM6D,UAAU,GAAG,IAAAC,0BAAa,EAAC,CAAC;EAClC,MAAMC,aAAa,GAAG,CAAEzB,IAAI;EAC5B,MAAMvC,iBAAiB,GAAG,CAAEgE,aAAa,IAAI,CAAEf,SAAS,IAAIF,UAAU;EACtE,MAAMkB,OAAO,GAAGxB,OAAO,IAAImB,UAAU,CAACnB,OAAO;EAE7C,MAAM7B,UAAU,GACfZ,iBAAiB,IACjBU,eAAe,KACbT,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,CAAE;EAE3C,MAAMiE,gBAAgB,GAAG,IAAAC,sCAA+B,EACvDlE,IAAI,EACJ4B,aACD,CAAC;;EAED;EACA;EACA,IACC,CAAEmB,cAAc,KACZT,IAAI,IAAI,CAAEC,KAAK,IAAQD,IAAI,IAAIU,SAAW,CAAE,EAC/C;IACD,OACC,IAAApC,MAAA,CAAAC,aAAA,EAACmD,OAAO;MAAA,GAAMH;IAAU,GACvB,IAAAjD,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAoF,OAAO,QACL,IAAAC,aAAO,GACR;IACA,IAAApD,QAAE,EACD,sDACD,CAAC,EACDsB,IACD,CACQ,CACD,CAAC;EAEZ;EAEA,IAAKvC,iBAAiB,IAAI4C,kBAAkB,EAAG;IAC9C,OACC,IAAA/B,MAAA,CAAAC,aAAA,EAACmD,OAAO;MAAA,GAAMH;IAAU,GACvB,IAAAjD,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAoF,OAAO,QACL,IAAAnD,QAAE,EAAE,yCAA0C,CACxC,CACD,CAAC;EAEZ;EAEA,MAAMqD,eAAe,GAAGhE,aAAa,CAACiE,GAAG,CAAIC,YAAY,IACxD,IAAAC,4DAA6B,EAAED,YAAa,CAC7C,CAAC;EAED,MAAME,oBAAoB,GAAKF,YAAY,IAAM;IAChD3C,aAAa,CAAE;MACdU,IAAI,EAAEiC,YAAY,CAACjC,IAAI;MACvBC,KAAK,EAAEgC,YAAY,CAAChC,KAAK;MACzBvC,IAAI,EAAE0E;IACP,CAAE,CAAC;IACH7C,mBAAmB,CAClB,IAAAuC,aAAO,GACN;IACA,IAAApD,QAAE,EAAE,+BAAgC,CAAC,EACrCuD,YAAY,CAACI,KAAK,EAAEC,QAAQ,IAAIL,YAAY,CAACjC,IAC9C,CAAC,EACD;MACCuC,IAAI,EAAE;IACP,CACD,CAAC;EACF,CAAC;EAED,OACC,IAAAjE,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAkE,QAAA,QACC,IAAAlE,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAgG,iBAAiB;IAACC,QAAQ,EAAG9E;EAAgB,GAC7C,IAAAU,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAkG,iBAAiB;IAACC,KAAK,EAAC;EAAU,GAClC,IAAAtE,MAAA,CAAAC,aAAA,EAACpB,iBAAA,CAAA0F,4BAA4B;IAC5B3C,OAAO,EAAGA,OAAS;IACnBZ,aAAa,EAAGA,aAAe;IAC/B7B,iBAAiB,EAAGA,iBAAmB;IACvCG,cAAc,EAAGA,cAAgB;IACjCkF,cAAc,EAAGzB,UAAU,CAACnB,OAAS;IACrCO,cAAc,EAAGA;EAAgB,CACjC,CACiB,CAAC,EAClBgB,aAAa,IACd,IAAAnD,MAAA,CAAAC,aAAA,EAACmD,OAAO;IAAA,GAAMH;EAAU,GACvB,IAAAjD,MAAA,CAAAC,aAAA,EAACvB,YAAA,CAAA+F,OAAuB;IACvBrF,IAAI,EAAG2B,UAAU,CAAC3B,IAAM;IACxBE,cAAc,EAAGA,cAAgB;IACjCD,QAAQ,EAAGA,QAAU;IACrB2B,aAAa,EAAGA,aAAe;IAC/B0D,oBAAoB,EAAGA,CAAA,KACtBlF,8BAA8B,CAAE,IAAK;EACrC,CACD,CACO,CACT,EACD,IAAAQ,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAwG,yBAAyB,QACvB,CAAE;IAAEC;EAAkB,CAAC,KAAM;IAC9B;IACA;IACA,IACC,EACCA,iBAAiB,CAAC9E,MAAM,KAAK,CAAC,IAC9BT,QAAQ,KAAKuF,iBAAiB,CAAE,CAAC,CAAE,CACnC,EACA;MACD,OAAO,IAAI;IACZ;IAEA,OACC,IAAA5E,MAAA,CAAAC,aAAA,EAACf,aAAa;MAEZC,iBAAiB;MACjBC,IAAI;MACJC,QAAQ;MACRC,cAAc;MACdC,2BAA2B;MAC3BC;IAA8B,CAE/B,CAAC;EAEJ,CAC0B,CAAC,EAE1BO,UAAU,KACT0D,eAAe,CAAC3D,MAAM,GAAG,CAAC,IAC3BH,aAAa,CAACG,MAAM,GAAG,CAAC,CAAE,IAC1B,IAAAE,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAkG,iBAAiB,QACjB,IAAArE,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAAyG,SAAS;IAACd,KAAK,EAAG,IAAA3D,QAAE,EAAE,SAAU;EAAG,GACnC,IAAAJ,MAAA,CAAAC,aAAA,EAACI,aAAa;IACbC,kBAAkB,EAAGmD,eAAiB;IACtClD,QAAQ,EAAKuE,OAAO,IAAM;MACzBjB,oBAAoB,CACnBiB,OAAO,CAACnB,YACT,CAAC;IACF;EAAG,CACH,CAAC,EACF,IAAA3D,MAAA,CAAAC,aAAA,EAACI,aAAa;IACbC,kBAAkB,EAAGX,aAAe;IACpCY,QAAQ,EAAGA,CAAEuE,OAAO,EAAEC,MAAM,KAAM;MACjC1B,gBAAgB,CACf0B,MAAM,EACND,OAAO,CAACf,KACT,CAAC;IACF;EAAG,CACH,CACS,CACO,CACnB,EAEA5E,iBAAiB,IAClB,IAAAa,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAA2F,OAAuB;IACvB7C,OAAO,EAAGwB,OAAS;IACnBH,UAAU,EAAGA,UAAY;IACzB+B,MAAM,EAAG1F,cAAgB;IACzB6C,cAAc,EAAGA,cAAgB;IACjCN,MAAM,EAAGA;EAAQ,CACjB,CACD,EACC,CAAEsB,aAAa,IAAI,CAAEjB,UAAU,IAChC,IAAAlC,MAAA,CAAAC,aAAA,EAACmD,OAAO;IAAA,GAAMH;EAAU,GACvB,IAAAjD,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA6G,OAAO,MAAE,CACF,CAEQ,CAAC,EAClB1F,2BAA2B,IAC5B,IAAAS,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA8G,KAAK;IACLC,gBAAgB,EAAC,6CAA6C;IAC9DpB,KAAK,EAAG,IAAAP,aAAO;IACd;IACA,IAAApD,QAAE,EAAE,aAAc,CAAC,EACnB2C,UAAU,CAACpC,KAAK,CAACyE,WAAW,CAAC,CAC9B,CAAG;IACHC,cAAc,EAAGA,CAAA,KAChB7F,8BAA8B,CAAE,KAAM,CACtC;IACD8F,YAAY;EAAA,GAEZ,IAAAtF,MAAA,CAAAC,aAAA,EAACrB,eAAA,CAAA6F,OAA0B;IAC1BnF,cAAc,EAAGA,cAAgB;IACjCD,QAAQ,EAAGA,QAAU;IACrBD,IAAI,EAAGA,IAAM;IACb4B,aAAa,EAAGA,aAAe;IAC/BuE,OAAO,EAAGA,CAAA,KACT/F,8BAA8B,CAAE,KAAM;EACtC,CACD,CACK,CAEP,CAAC;AAEL"}
@@ -9,12 +9,11 @@ var _element = require("@wordpress/element");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _notices = require("@wordpress/notices");
11
11
  var _data = require("@wordpress/data");
12
- var _blocks = require("@wordpress/blocks");
13
12
  var _compose = require("@wordpress/compose");
14
13
  var _blockEditor = require("@wordpress/block-editor");
15
14
  var _components = require("@wordpress/components");
16
15
  var _hooks = require("./utils/hooks");
17
- var _createTemplatePartId = require("./utils/create-template-part-id");
16
+ var _mapTemplatePartToBlockPattern = require("./utils/map-template-part-to-block-pattern");
18
17
  var _searchPatterns = require("../../utils/search-patterns");
19
18
  /**
20
19
  * WordPress dependencies
@@ -37,12 +36,7 @@ function TemplatePartSelectionModal({
37
36
  } = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
38
37
  // We can map template parts to block patters to reuse the BlockPatternsList UI
39
38
  const filteredTemplateParts = (0, _element.useMemo)(() => {
40
- const partsAsPatterns = templateParts.map(templatePart => ({
41
- name: (0, _createTemplatePartId.createTemplatePartId)(templatePart.theme, templatePart.slug),
42
- title: templatePart.title.rendered,
43
- blocks: (0, _blocks.parse)(templatePart.content.raw),
44
- templatePart
45
- }));
39
+ const partsAsPatterns = templateParts.map(templatePart => (0, _mapTemplatePartToBlockPattern.mapTemplatePartToBlockPattern)(templatePart));
46
40
  return (0, _searchPatterns.searchPatterns)(partsAsPatterns, searchValue);
47
41
  }, [templateParts, searchValue]);
48
42
  const shownTemplateParts = (0, _compose.useAsyncList)(filteredTemplateParts);
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_notices","_data","_blocks","_compose","_blockEditor","_components","_hooks","_createTemplatePartId","_searchPatterns","TemplatePartSelectionModal","setAttributes","onClose","templatePartId","area","clientId","searchValue","setSearchValue","useState","templateParts","useAlternativeTemplateParts","filteredTemplateParts","useMemo","partsAsPatterns","map","templatePart","name","createTemplatePartId","theme","slug","title","rendered","blocks","parse","content","raw","searchPatterns","shownTemplateParts","useAsyncList","blockPatterns","useAlternativeBlockPatterns","filteredBlockPatterns","shownBlockPatterns","createSuccessNotice","useDispatch","noticesStore","onTemplatePartSelect","undefined","sprintf","__","type","createFromBlocks","useCreateTemplatePartFromBlocks","hasTemplateParts","length","hasBlockPatterns","_react","createElement","className","SearchControl","__nextHasNoMarginBottom","onChange","value","label","placeholder","__experimentalBlockPatternsList","shownPatterns","onClickPattern","pattern","__experimentalHStack","alignment"],"sources":["@wordpress/block-library/src/template-part/edit/selection-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport {\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n} from './utils/hooks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport default function TemplatePartSelectionModal( {\n\tsetAttributes,\n\tonClose,\n\ttemplatePartId = null,\n\tarea,\n\tclientId,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\t// We can map template parts to block patters to reuse the BlockPatternsList UI\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tconst partsAsPatterns = templateParts.map( ( templatePart ) => ( {\n\t\t\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\t\t\ttitle: templatePart.title.rendered,\n\t\t\tblocks: parse( templatePart.content.raw ),\n\t\t\ttemplatePart,\n\t\t} ) );\n\n\t\treturn searchPatterns( partsAsPatterns, searchValue );\n\t}, [ templateParts, searchValue ] );\n\tconst shownTemplateParts = useAsyncList( filteredTemplateParts );\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\tconst shownBlockPatterns = useAsyncList( filteredBlockPatterns );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" inserted.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t\tonClose();\n\t};\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst hasTemplateParts = !! filteredTemplateParts.length;\n\tconst hasBlockPatterns = !! filteredBlockPatterns.length;\n\n\treturn (\n\t\t<div className=\"block-library-template-part__selection-content\">\n\t\t\t<div className=\"block-library-template-part__selection-search\">\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search for replacements' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasTemplateParts && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Existing template parts' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredTemplateParts }\n\t\t\t\t\t\tshownPatterns={ shownTemplateParts }\n\t\t\t\t\t\tonClickPattern={ ( pattern ) => {\n\t\t\t\t\t\t\tonTemplatePartSelect( pattern.templatePart );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ hasBlockPatterns && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Patterns' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ ( pattern, blocks ) => {\n\t\t\t\t\t\t\tcreateFromBlocks( blocks, pattern.title );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! hasTemplateParts && ! hasBlockPatterns && (\n\t\t\t\t<HStack alignment=\"center\">\n\t\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_notices","_data","_compose","_blockEditor","_components","_hooks","_mapTemplatePartToBlockPattern","_searchPatterns","TemplatePartSelectionModal","setAttributes","onClose","templatePartId","area","clientId","searchValue","setSearchValue","useState","templateParts","useAlternativeTemplateParts","filteredTemplateParts","useMemo","partsAsPatterns","map","templatePart","mapTemplatePartToBlockPattern","searchPatterns","shownTemplateParts","useAsyncList","blockPatterns","useAlternativeBlockPatterns","filteredBlockPatterns","shownBlockPatterns","createSuccessNotice","useDispatch","noticesStore","onTemplatePartSelect","slug","theme","undefined","sprintf","__","title","rendered","type","createFromBlocks","useCreateTemplatePartFromBlocks","hasTemplateParts","length","hasBlockPatterns","_react","createElement","className","SearchControl","__nextHasNoMarginBottom","onChange","value","label","placeholder","__experimentalBlockPatternsList","shownPatterns","onClickPattern","pattern","blocks","__experimentalHStack","alignment"],"sources":["@wordpress/block-library/src/template-part/edit/selection-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport {\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n} from './utils/hooks';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport default function TemplatePartSelectionModal( {\n\tsetAttributes,\n\tonClose,\n\ttemplatePartId = null,\n\tarea,\n\tclientId,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\t// We can map template parts to block patters to reuse the BlockPatternsList UI\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\t\tmapTemplatePartToBlockPattern( templatePart )\n\t\t);\n\n\t\treturn searchPatterns( partsAsPatterns, searchValue );\n\t}, [ templateParts, searchValue ] );\n\tconst shownTemplateParts = useAsyncList( filteredTemplateParts );\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\tconst shownBlockPatterns = useAsyncList( filteredBlockPatterns );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" inserted.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t\tonClose();\n\t};\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst hasTemplateParts = !! filteredTemplateParts.length;\n\tconst hasBlockPatterns = !! filteredBlockPatterns.length;\n\n\treturn (\n\t\t<div className=\"block-library-template-part__selection-content\">\n\t\t\t<div className=\"block-library-template-part__selection-search\">\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search for replacements' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasTemplateParts && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Existing template parts' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredTemplateParts }\n\t\t\t\t\t\tshownPatterns={ shownTemplateParts }\n\t\t\t\t\t\tonClickPattern={ ( pattern ) => {\n\t\t\t\t\t\t\tonTemplatePartSelect( pattern.templatePart );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ hasBlockPatterns && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Patterns' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ ( pattern, blocks ) => {\n\t\t\t\t\t\t\tcreateFromBlocks( blocks, pattern.title );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! hasTemplateParts && ! hasBlockPatterns && (\n\t\t\t\t<HStack alignment=\"center\">\n\t\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapTemplatePartToBlockPattern = mapTemplatePartToBlockPattern;
7
+ var _blocks = require("@wordpress/blocks");
8
+ var _createTemplatePartId = require("./create-template-part-id");
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ /**
18
+ * This maps the properties of a template part to those of a block pattern.
19
+ * @param {Object} templatePart
20
+ * @return {Object} The template part in the shape of block pattern.
21
+ */
22
+ function mapTemplatePartToBlockPattern(templatePart) {
23
+ return {
24
+ name: (0, _createTemplatePartId.createTemplatePartId)(templatePart.theme, templatePart.slug),
25
+ title: templatePart.title.rendered,
26
+ blocks: (0, _blocks.parse)(templatePart.content.raw),
27
+ templatePart
28
+ };
29
+ }
30
+ //# sourceMappingURL=map-template-part-to-block-pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blocks","require","_createTemplatePartId","mapTemplatePartToBlockPattern","templatePart","name","createTemplatePartId","theme","slug","title","rendered","blocks","parse","content","raw"],"sources":["@wordpress/block-library/src/template-part/edit/utils/map-template-part-to-block-pattern.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from './create-template-part-id';\n\n/**\n * This maps the properties of a template part to those of a block pattern.\n * @param {Object} templatePart\n * @return {Object} The template part in the shape of block pattern.\n */\nexport function mapTemplatePartToBlockPattern( templatePart ) {\n\treturn {\n\t\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\t\ttitle: templatePart.title.rendered,\n\t\tblocks: parse( templatePart.content.raw ),\n\t\ttemplatePart,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,qBAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASE,6BAA6BA,CAAEC,YAAY,EAAG;EAC7D,OAAO;IACNC,IAAI,EAAE,IAAAC,0CAAoB,EAAEF,YAAY,CAACG,KAAK,EAAEH,YAAY,CAACI,IAAK,CAAC;IACnEC,KAAK,EAAEL,YAAY,CAACK,KAAK,CAACC,QAAQ;IAClCC,MAAM,EAAE,IAAAC,aAAK,EAAER,YAAY,CAACS,OAAO,CAACC,GAAI,CAAC;IACzCV;EACD,CAAC;AACF"}
@@ -14,6 +14,7 @@ var _blockEditor = require("@wordpress/block-editor");
14
14
  var _components = require("@wordpress/components");
15
15
  var _icons = require("@wordpress/icons");
16
16
  var _blocks = require("@wordpress/blocks");
17
+ var _lockUnlock = require("../lock-unlock");
17
18
  /**
18
19
  * External dependencies
19
20
  */
@@ -22,6 +23,13 @@ var _blocks = require("@wordpress/blocks");
22
23
  * WordPress dependencies
23
24
  */
24
25
 
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+
30
+ const {
31
+ PrivateRichText: RichText
32
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
25
33
  function Caption({
26
34
  key = 'caption',
27
35
  attributes,
@@ -31,12 +39,13 @@ function Caption({
31
39
  placeholder = (0, _i18n.__)('Add caption'),
32
40
  label = (0, _i18n.__)('Caption text'),
33
41
  showToolbarButton = true,
34
- className
42
+ className,
43
+ disableEditing
35
44
  }) {
36
45
  const caption = attributes[key];
37
46
  const prevCaption = (0, _compose.usePrevious)(caption);
38
- const isCaptionEmpty = _blockEditor.RichText.isEmpty(caption);
39
- const isPrevCaptionEmpty = _blockEditor.RichText.isEmpty(prevCaption);
47
+ const isCaptionEmpty = RichText.isEmpty(caption);
48
+ const isPrevCaptionEmpty = RichText.isEmpty(prevCaption);
40
49
  const [showCaption, setShowCaption] = (0, _element.useState)(!isCaptionEmpty);
41
50
 
42
51
  // We need to show the caption when changes come from
@@ -72,7 +81,7 @@ function Caption({
72
81
  icon: _icons.caption,
73
82
  isPressed: showCaption,
74
83
  label: showCaption ? (0, _i18n.__)('Remove caption') : (0, _i18n.__)('Add caption')
75
- })), showCaption && (!_blockEditor.RichText.isEmpty(caption) || isSelected) && (0, _react.createElement)(_blockEditor.RichText, {
84
+ })), showCaption && (!RichText.isEmpty(caption) || isSelected) && (0, _react.createElement)(RichText, {
76
85
  identifier: key,
77
86
  tagName: "figcaption",
78
87
  className: (0, _classnames.default)(className, (0, _blockEditor.__experimentalGetElementClassName)('caption')),
@@ -84,7 +93,8 @@ function Caption({
84
93
  caption: value
85
94
  }),
86
95
  inlineToolbar: true,
87
- __unstableOnSplitAtEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)()))
96
+ __unstableOnSplitAtEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)())),
97
+ disableEditing: disableEditing
88
98
  }));
89
99
  }
90
100
  //# sourceMappingURL=caption.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_compose","_i18n","_blockEditor","_components","_icons","_blocks","Caption","key","attributes","setAttributes","isSelected","insertBlocksAfter","placeholder","__","label","showToolbarButton","className","caption","prevCaption","usePrevious","isCaptionEmpty","RichText","isEmpty","isPrevCaptionEmpty","showCaption","setShowCaption","useState","useEffect","ref","useCallback","node","focus","_react","createElement","Fragment","BlockControls","group","ToolbarButton","onClick","undefined","icon","captionIcon","isPressed","identifier","tagName","classnames","__experimentalGetElementClassName","value","onChange","inlineToolbar","__unstableOnSplitAtEnd","createBlock","getDefaultBlockName"],"sources":["@wordpress/block-library/src/utils/caption.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tBlockControls,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport function Caption( {\n\tkey = 'caption',\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tplaceholder = __( 'Add caption' ),\n\tlabel = __( 'Caption text' ),\n\tshowToolbarButton = true,\n\tclassName,\n} ) {\n\tconst caption = attributes[ key ];\n\tconst prevCaption = usePrevious( caption );\n\tconst isCaptionEmpty = RichText.isEmpty( caption );\n\tconst isPrevCaptionEmpty = RichText.isEmpty( prevCaption );\n\tconst [ showCaption, setShowCaption ] = useState( ! isCaptionEmpty );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( ! isCaptionEmpty && isPrevCaptionEmpty ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ isCaptionEmpty, isPrevCaptionEmpty ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && isCaptionEmpty ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, isCaptionEmpty ] );\n\n\t// Focus the caption when we click to add one.\n\tconst ref = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && isCaptionEmpty ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ isCaptionEmpty ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ showToolbarButton && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier={ key }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_compose","_i18n","_blockEditor","_components","_icons","_blocks","_lockUnlock","PrivateRichText","RichText","unlock","blockEditorPrivateApis","Caption","key","attributes","setAttributes","isSelected","insertBlocksAfter","placeholder","__","label","showToolbarButton","className","disableEditing","caption","prevCaption","usePrevious","isCaptionEmpty","isEmpty","isPrevCaptionEmpty","showCaption","setShowCaption","useState","useEffect","ref","useCallback","node","focus","_react","createElement","Fragment","BlockControls","group","ToolbarButton","onClick","undefined","icon","captionIcon","isPressed","identifier","tagName","classnames","__experimentalGetElementClassName","value","onChange","inlineToolbar","__unstableOnSplitAtEnd","createBlock","getDefaultBlockName"],"sources":["@wordpress/block-library/src/utils/caption.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\t__experimentalGetElementClassName,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateRichText: RichText } = unlock( blockEditorPrivateApis );\n\nexport function Caption( {\n\tkey = 'caption',\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tplaceholder = __( 'Add caption' ),\n\tlabel = __( 'Caption text' ),\n\tshowToolbarButton = true,\n\tclassName,\n\tdisableEditing,\n} ) {\n\tconst caption = attributes[ key ];\n\tconst prevCaption = usePrevious( caption );\n\tconst isCaptionEmpty = RichText.isEmpty( caption );\n\tconst isPrevCaptionEmpty = RichText.isEmpty( prevCaption );\n\tconst [ showCaption, setShowCaption ] = useState( ! isCaptionEmpty );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( ! isCaptionEmpty && isPrevCaptionEmpty ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ isCaptionEmpty, isPrevCaptionEmpty ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && isCaptionEmpty ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, isCaptionEmpty ] );\n\n\t// Focus the caption when we click to add one.\n\tconst ref = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && isCaptionEmpty ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ isCaptionEmpty ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ showToolbarButton && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier={ key }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisableEditing={ disableEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getTransformedMetadata = getTransformedMetadata;
7
+ var _blocks = require("@wordpress/blocks");
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ /**
13
+ * Transform the metadata attribute with only the values and bindings specified by each transform.
14
+ * Returns `undefined` if the input metadata is falsy.
15
+ *
16
+ * @param {Object} metadata Original metadata attribute from the block that is being transformed.
17
+ * @param {Object} newBlockName Name of the final block after the transformation.
18
+ * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.
19
+ * @return {Object|undefined} New metadata object only with the relevant properties.
20
+ */
21
+ function getTransformedMetadata(metadata, newBlockName, bindingsCallback) {
22
+ if (!metadata) {
23
+ return;
24
+ }
25
+ const {
26
+ supports
27
+ } = (0, _blocks.getBlockType)(newBlockName);
28
+ // Fixed until an opt-in mechanism is implemented.
29
+ const BLOCK_BINDINGS_SUPPORTED_BLOCKS = ['core/paragraph', 'core/heading', 'core/image', 'core/button'];
30
+ // The metadata properties that should be preserved after the transform.
31
+ const transformSupportedProps = [];
32
+ // If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.
33
+ if (BLOCK_BINDINGS_SUPPORTED_BLOCKS.includes(newBlockName) && bindingsCallback) {
34
+ transformSupportedProps.push('id', 'bindings');
35
+ }
36
+ // If it support block naming (true by default), add the `name` property.
37
+ if (supports.renaming !== false) {
38
+ transformSupportedProps.push('name');
39
+ }
40
+
41
+ // Return early if no supported properties.
42
+ if (!transformSupportedProps.length) {
43
+ return;
44
+ }
45
+ const newMetadata = Object.entries(metadata).reduce((obj, [prop, value]) => {
46
+ // If prop is not supported, don't add it to the new metadata object.
47
+ if (!transformSupportedProps.includes(prop)) {
48
+ return obj;
49
+ }
50
+ obj[prop] = prop === 'bindings' ? bindingsCallback(value) : value;
51
+ return obj;
52
+ }, {});
53
+
54
+ // Return undefined if object is empty.
55
+ return Object.keys(newMetadata).length ? newMetadata : undefined;
56
+ }
57
+ //# sourceMappingURL=get-transformed-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blocks","require","getTransformedMetadata","metadata","newBlockName","bindingsCallback","supports","getBlockType","BLOCK_BINDINGS_SUPPORTED_BLOCKS","transformSupportedProps","includes","push","renaming","length","newMetadata","Object","entries","reduce","obj","prop","value","keys","undefined"],"sources":["@wordpress/block-library/src/utils/get-transformed-metadata.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Transform the metadata attribute with only the values and bindings specified by each transform.\n * Returns `undefined` if the input metadata is falsy.\n *\n * @param {Object} metadata Original metadata attribute from the block that is being transformed.\n * @param {Object} newBlockName Name of the final block after the transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object|undefined} New metadata object only with the relevant properties.\n */\nexport function getTransformedMetadata(\n\tmetadata,\n\tnewBlockName,\n\tbindingsCallback\n) {\n\tif ( ! metadata ) {\n\t\treturn;\n\t}\n\tconst { supports } = getBlockType( newBlockName );\n\t// Fixed until an opt-in mechanism is implemented.\n\tconst BLOCK_BINDINGS_SUPPORTED_BLOCKS = [\n\t\t'core/paragraph',\n\t\t'core/heading',\n\t\t'core/image',\n\t\t'core/button',\n\t];\n\t// The metadata properties that should be preserved after the transform.\n\tconst transformSupportedProps = [];\n\t// If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.\n\tif (\n\t\tBLOCK_BINDINGS_SUPPORTED_BLOCKS.includes( newBlockName ) &&\n\t\tbindingsCallback\n\t) {\n\t\ttransformSupportedProps.push( 'id', 'bindings' );\n\t}\n\t// If it support block naming (true by default), add the `name` property.\n\tif ( supports.renaming !== false ) {\n\t\ttransformSupportedProps.push( 'name' );\n\t}\n\n\t// Return early if no supported properties.\n\tif ( ! transformSupportedProps.length ) {\n\t\treturn;\n\t}\n\n\tconst newMetadata = Object.entries( metadata ).reduce(\n\t\t( obj, [ prop, value ] ) => {\n\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\tif ( ! transformSupportedProps.includes( prop ) ) {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tobj[ prop ] =\n\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\treturn obj;\n\t\t},\n\t\t{}\n\t);\n\n\t// Return undefined if object is empty.\n\treturn Object.keys( newMetadata ).length ? newMetadata : undefined;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CACrCC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EACf;EACD,IAAK,CAAEF,QAAQ,EAAG;IACjB;EACD;EACA,MAAM;IAAEG;EAAS,CAAC,GAAG,IAAAC,oBAAY,EAAEH,YAAa,CAAC;EACjD;EACA,MAAMI,+BAA+B,GAAG,CACvC,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,CACb;EACD;EACA,MAAMC,uBAAuB,GAAG,EAAE;EAClC;EACA,IACCD,+BAA+B,CAACE,QAAQ,CAAEN,YAAa,CAAC,IACxDC,gBAAgB,EACf;IACDI,uBAAuB,CAACE,IAAI,CAAE,IAAI,EAAE,UAAW,CAAC;EACjD;EACA;EACA,IAAKL,QAAQ,CAACM,QAAQ,KAAK,KAAK,EAAG;IAClCH,uBAAuB,CAACE,IAAI,CAAE,MAAO,CAAC;EACvC;;EAEA;EACA,IAAK,CAAEF,uBAAuB,CAACI,MAAM,EAAG;IACvC;EACD;EAEA,MAAMC,WAAW,GAAGC,MAAM,CAACC,OAAO,CAAEb,QAAS,CAAC,CAACc,MAAM,CACpD,CAAEC,GAAG,EAAE,CAAEC,IAAI,EAAEC,KAAK,CAAE,KAAM;IAC3B;IACA,IAAK,CAAEX,uBAAuB,CAACC,QAAQ,CAAES,IAAK,CAAC,EAAG;MACjD,OAAOD,GAAG;IACX;IACAA,GAAG,CAAEC,IAAI,CAAE,GACVA,IAAI,KAAK,UAAU,GAAGd,gBAAgB,CAAEe,KAAM,CAAC,GAAGA,KAAK;IACxD,OAAOF,GAAG;EACX,CAAC,EACD,CAAC,CACF,CAAC;;EAED;EACA,OAAOH,MAAM,CAACM,IAAI,CAAEP,WAAY,CAAC,CAACD,MAAM,GAAGC,WAAW,GAAGQ,SAAS;AACnE"}
@@ -3,9 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
6
  exports.useCanEditEntity = useCanEditEntity;
7
+ exports.useUploadMediaFromBlobURL = useUploadMediaFromBlobURL;
8
8
  var _data = require("@wordpress/data");
9
+ var _element = require("@wordpress/element");
10
+ var _blob = require("@wordpress/blob");
11
+ var _blockEditor = require("@wordpress/block-editor");
9
12
  var _coreData = require("@wordpress/core-data");
10
13
  /**
11
14
  * WordPress dependencies
@@ -21,7 +24,55 @@ var _coreData = require("@wordpress/core-data");
21
24
  function useCanEditEntity(kind, name, recordId) {
22
25
  return (0, _data.useSelect)(select => select(_coreData.store).canUserEditEntityRecord(kind, name, recordId), [kind, name, recordId]);
23
26
  }
24
- var _default = exports.default = {
25
- useCanEditEntity
26
- };
27
+
28
+ /**
29
+ * Handles uploading a media file from a blob URL on mount.
30
+ *
31
+ * @param {Object} args Upload media arguments.
32
+ * @param {string} args.url Blob URL.
33
+ * @param {?Array} args.allowedTypes Array of allowed media types.
34
+ * @param {Function} args.onChange Function called when the media is uploaded.
35
+ * @param {Function} args.onError Function called when an error happens.
36
+ */
37
+ function useUploadMediaFromBlobURL(args = {}) {
38
+ const latestArgs = (0, _element.useRef)(args);
39
+ const {
40
+ getSettings
41
+ } = (0, _data.useSelect)(_blockEditor.store);
42
+ (0, _element.useLayoutEffect)(() => {
43
+ latestArgs.current = args;
44
+ });
45
+ (0, _element.useEffect)(() => {
46
+ if (!latestArgs.current.url || !(0, _blob.isBlobURL)(latestArgs.current.url)) {
47
+ return;
48
+ }
49
+ const file = (0, _blob.getBlobByURL)(latestArgs.current.url);
50
+ if (!file) {
51
+ return;
52
+ }
53
+ const {
54
+ url,
55
+ allowedTypes,
56
+ onChange,
57
+ onError
58
+ } = latestArgs.current;
59
+ const {
60
+ mediaUpload
61
+ } = getSettings();
62
+ mediaUpload({
63
+ filesList: [file],
64
+ allowedTypes,
65
+ onFileChange: ([media]) => {
66
+ if ((0, _blob.isBlobURL)(media?.url)) {
67
+ return;
68
+ }
69
+ (0, _blob.revokeBlobURL)(url);
70
+ onChange(media);
71
+ },
72
+ onError: message => {
73
+ onError(message);
74
+ }
75
+ });
76
+ }, [getSettings]);
77
+ }
27
78
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_coreData","useCanEditEntity","kind","name","recordId","useSelect","select","coreStore","canUserEditEntityRecord","_default","exports","default"],"sources":["@wordpress/block-library/src/utils/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUserEditEntityRecord( kind, name, recordId ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\nexport default {\n\tuseCanEditEntity,\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,gBAAgBA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAG;EACxD,OAAO,IAAAC,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEC,eAAU,CAAC,CAACC,uBAAuB,CAAEN,IAAI,EAAEC,IAAI,EAAEC,QAAS,CAAC,EACpE,CAAEF,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CACvB,CAAC;AACF;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACdV;AACD,CAAC"}
1
+ {"version":3,"names":["_data","require","_element","_blob","_blockEditor","_coreData","useCanEditEntity","kind","name","recordId","useSelect","select","coreStore","canUserEditEntityRecord","useUploadMediaFromBlobURL","args","latestArgs","useRef","getSettings","blockEditorStore","useLayoutEffect","current","useEffect","url","isBlobURL","file","getBlobByURL","allowedTypes","onChange","onError","mediaUpload","filesList","onFileChange","media","revokeBlobURL","message"],"sources":["@wordpress/block-library/src/utils/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useEffect, useRef } from '@wordpress/element';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUserEditEntityRecord( kind, name, recordId ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\n/**\n * Handles uploading a media file from a blob URL on mount.\n *\n * @param {Object} args Upload media arguments.\n * @param {string} args.url Blob URL.\n * @param {?Array} args.allowedTypes Array of allowed media types.\n * @param {Function} args.onChange Function called when the media is uploaded.\n * @param {Function} args.onError Function called when an error happens.\n */\nexport function useUploadMediaFromBlobURL( args = {} ) {\n\tconst latestArgs = useRef( args );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgs.current = args;\n\t} );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! latestArgs.current.url ||\n\t\t\t! isBlobURL( latestArgs.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgs.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgs.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\tmediaUpload( {\n\t\t\tfilesList: [ file ],\n\t\t\tallowedTypes,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tif ( isBlobURL( media?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonChange( media );\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\tonError( message );\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,gBAAgBA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAG;EACxD,OAAO,IAAAC,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEC,eAAU,CAAC,CAACC,uBAAuB,CAAEN,IAAI,EAAEC,IAAI,EAAEC,QAAS,CAAC,EACpE,CAAEF,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CACvB,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,yBAAyBA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAG;EACtD,MAAMC,UAAU,GAAG,IAAAC,eAAM,EAAEF,IAAK,CAAC;EACjC,MAAM;IAAEG;EAAY,CAAC,GAAG,IAAAR,eAAS,EAAES,kBAAiB,CAAC;EAErD,IAAAC,wBAAe,EAAE,MAAM;IACtBJ,UAAU,CAACK,OAAO,GAAGN,IAAI;EAC1B,CAAE,CAAC;EAEH,IAAAO,kBAAS,EAAE,MAAM;IAChB,IACC,CAAEN,UAAU,CAACK,OAAO,CAACE,GAAG,IACxB,CAAE,IAAAC,eAAS,EAAER,UAAU,CAACK,OAAO,CAACE,GAAI,CAAC,EACpC;MACD;IACD;IAEA,MAAME,IAAI,GAAG,IAAAC,kBAAY,EAAEV,UAAU,CAACK,OAAO,CAACE,GAAI,CAAC;IACnD,IAAK,CAAEE,IAAI,EAAG;MACb;IACD;IAEA,MAAM;MAAEF,GAAG;MAAEI,YAAY;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,GAAGb,UAAU,CAACK,OAAO;IACnE,MAAM;MAAES;IAAY,CAAC,GAAGZ,WAAW,CAAC,CAAC;IAErCY,WAAW,CAAE;MACZC,SAAS,EAAE,CAAEN,IAAI,CAAE;MACnBE,YAAY;MACZK,YAAY,EAAEA,CAAE,CAAEC,KAAK,CAAE,KAAM;QAC9B,IAAK,IAAAT,eAAS,EAAES,KAAK,EAAEV,GAAI,CAAC,EAAG;UAC9B;QACD;QAEA,IAAAW,mBAAa,EAAEX,GAAI,CAAC;QACpBK,QAAQ,CAAEK,KAAM,CAAC;MAClB,CAAC;MACDJ,OAAO,EAAIM,OAAO,IAAM;QACvBN,OAAO,CAAEM,OAAQ,CAAC;MACnB;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEjB,WAAW,CAAG,CAAC;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_element","options","value","label","__","_x","VideoSettings","setAttributes","attributes","autoplay","controls","loop","muted","playsInline","preload","autoPlayHelpText","getAutoplayHelp","Platform","select","web","useCallback","checked","native","toggleFactory","useMemo","toggleAttribute","attribute","newValue","onChangePreload","_react","createElement","Fragment","ToggleControl","__nextHasNoMarginBottom","onChange","help","SelectControl","hideCancelButton","_default","exports","default"],"sources":["@wordpress/block-library/src/video/edit-common-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { ToggleControl, SelectControl } from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\tchecked={ !! autoplay }\n\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\tchecked={ !! loop }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\tchecked={ !! muted }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\tchecked={ !! controls }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\tchecked={ !! playsInline }\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tvalue={ preload }\n\t\t\t\tonChange={ onChangePreload }\n\t\t\t\toptions={ options }\n\t\t\t\thideCancelButton={ true }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_element","options","value","label","__","_x","VideoSettings","setAttributes","attributes","autoplay","controls","loop","muted","playsInline","preload","autoPlayHelpText","getAutoplayHelp","Platform","select","web","useCallback","checked","native","toggleFactory","useMemo","toggleAttribute","attribute","newValue","onChangePreload","_react","createElement","Fragment","ToggleControl","__nextHasNoMarginBottom","onChange","help","SelectControl","hideCancelButton","_default","exports","default"],"sources":["@wordpress/block-library/src/video/edit-common-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { ToggleControl, SelectControl } from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\tchecked={ !! autoplay }\n\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\tchecked={ !! loop }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\tchecked={ !! muted }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\tchecked={ !! controls }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\tchecked={ !! playsInline }\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tvalue={ preload }\n\t\t\t\tonChange={ onChangePreload }\n\t\t\t\toptions={ options }\n\t\t\t\thideCancelButton\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],"mappings":"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"}
@@ -17,6 +17,7 @@ var _data = require("@wordpress/data");
17
17
  var _icons = require("@wordpress/icons");
18
18
  var _notices = require("@wordpress/notices");
19
19
  var _util = require("../embed/util");
20
+ var _hooks = require("../utils/hooks");
20
21
  var _editCommonSettings = _interopRequireDefault(require("./edit-common-settings"));
21
22
  var _tracksEditor = _interopRequireDefault(require("./tracks-editor"));
22
23
  var _tracks = _interopRequireDefault(require("./tracks"));
@@ -64,22 +65,12 @@ function VideoEdit({
64
65
  tracks
65
66
  } = attributes;
66
67
  const isTemporaryVideo = !id && (0, _blob.isBlobURL)(src);
67
- const {
68
- getSettings
69
- } = (0, _data.useSelect)(_blockEditor.store);
70
- (0, _element.useEffect)(() => {
71
- if (!id && (0, _blob.isBlobURL)(src)) {
72
- const file = (0, _blob.getBlobByURL)(src);
73
- if (file) {
74
- getSettings().mediaUpload({
75
- filesList: [file],
76
- onFileChange: ([media]) => onSelectVideo(media),
77
- onError: onUploadError,
78
- allowedTypes: ALLOWED_MEDIA_TYPES
79
- });
80
- }
81
- }
82
- }, []);
68
+ (0, _hooks.useUploadMediaFromBlobURL)({
69
+ url: src,
70
+ allowedTypes: ALLOWED_MEDIA_TYPES,
71
+ onChange: onSelectVideo,
72
+ onError: onUploadError
73
+ });
83
74
  (0, _element.useEffect)(() => {
84
75
  // Placeholder may be rendered.
85
76
  if (videoPlayer.current) {