@wordpress/block-library 8.7.0 → 8.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/column/index.js +2 -1
  3. package/build/column/index.js.map +1 -1
  4. package/build/columns/edit.js +24 -6
  5. package/build/columns/edit.js.map +1 -1
  6. package/build/columns/index.js +2 -1
  7. package/build/columns/index.js.map +1 -1
  8. package/build/columns/utils.js +4 -9
  9. package/build/columns/utils.js.map +1 -1
  10. package/build/cover/edit/index.js +46 -50
  11. package/build/cover/edit/index.js.map +1 -1
  12. package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
  13. package/build/cover/edit/resizable-cover-popover.js.map +1 -0
  14. package/build/cover/index.js +12 -0
  15. package/build/cover/index.js.map +1 -1
  16. package/build/cover/transforms.js +10 -7
  17. package/build/cover/transforms.js.map +1 -1
  18. package/build/details/edit.js +67 -0
  19. package/build/details/edit.js.map +1 -0
  20. package/build/details/index.js +110 -0
  21. package/build/details/index.js.map +1 -0
  22. package/build/details/save.js +33 -0
  23. package/build/details/save.js.map +1 -0
  24. package/build/details-content/edit.js +34 -0
  25. package/build/details-content/edit.js.map +1 -0
  26. package/build/details-content/index.js +94 -0
  27. package/build/details-content/index.js.map +1 -0
  28. package/build/details-content/save.js +20 -0
  29. package/build/details-content/save.js.map +1 -0
  30. package/build/details-summary/edit.js +42 -0
  31. package/build/details-summary/edit.js.map +1 -0
  32. package/build/details-summary/index.js +97 -0
  33. package/build/details-summary/index.js.map +1 -0
  34. package/build/details-summary/save.js +24 -0
  35. package/build/details-summary/save.js.map +1 -0
  36. package/build/embed/deprecated.js +4 -1
  37. package/build/embed/deprecated.js.map +1 -1
  38. package/build/embed/embed-link-settings.native.js +1 -1
  39. package/build/embed/embed-link-settings.native.js.map +1 -1
  40. package/build/embed/embed-placeholder.js +1 -1
  41. package/build/embed/embed-placeholder.js.map +1 -1
  42. package/build/embed/index.js +4 -1
  43. package/build/embed/index.js.map +1 -1
  44. package/build/embed/transforms.js +4 -1
  45. package/build/embed/transforms.js.map +1 -1
  46. package/build/embed/util.js +4 -1
  47. package/build/embed/util.js.map +1 -1
  48. package/build/file/edit.native.js +0 -2
  49. package/build/file/edit.native.js.map +1 -1
  50. package/build/gallery/use-get-media.native.js +2 -1
  51. package/build/gallery/use-get-media.native.js.map +1 -1
  52. package/build/group/edit.js +3 -1
  53. package/build/group/edit.js.map +1 -1
  54. package/build/group/index.js +3 -0
  55. package/build/group/index.js.map +1 -1
  56. package/build/image/edit.js +16 -13
  57. package/build/image/edit.js.map +1 -1
  58. package/build/image/index.js +5 -3
  59. package/build/image/index.js.map +1 -1
  60. package/build/index.js +24 -6
  61. package/build/index.js.map +1 -1
  62. package/build/index.native.js +9 -5
  63. package/build/index.native.js.map +1 -1
  64. package/build/media-text/edit.js +4 -2
  65. package/build/media-text/edit.js.map +1 -1
  66. package/build/media-text/index.js +3 -0
  67. package/build/media-text/index.js.map +1 -1
  68. package/build/media-text/media-container.js +2 -6
  69. package/build/media-text/media-container.js.map +1 -1
  70. package/build/media-text/media-container.native.js +3 -3
  71. package/build/media-text/media-container.native.js.map +1 -1
  72. package/build/navigation/deprecated.js +8 -11
  73. package/build/navigation/deprecated.js.map +1 -1
  74. package/build/navigation/edit/index.js +32 -64
  75. package/build/navigation/edit/index.js.map +1 -1
  76. package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
  77. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  78. package/build/post-author/index.js +0 -1
  79. package/build/post-author/index.js.map +1 -1
  80. package/build/post-date/edit.js +4 -2
  81. package/build/post-date/edit.js.map +1 -1
  82. package/build/post-excerpt/edit.js +2 -2
  83. package/build/post-excerpt/edit.js.map +1 -1
  84. package/build/post-featured-image/dimension-controls.js +2 -1
  85. package/build/post-featured-image/dimension-controls.js.map +1 -1
  86. package/build/post-featured-image/edit.js +16 -27
  87. package/build/post-featured-image/edit.js.map +1 -1
  88. package/build/post-time-to-read/edit.js +1 -1
  89. package/build/post-time-to-read/edit.js.map +1 -1
  90. package/build/post-time-to-read/index.js +7 -0
  91. package/build/post-time-to-read/index.js.map +1 -1
  92. package/build/query/deprecated.js +8 -6
  93. package/build/query/deprecated.js.map +1 -1
  94. package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
  95. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  96. package/build/query/edit/inspector-controls/index.js +14 -6
  97. package/build/query/edit/inspector-controls/index.js.map +1 -1
  98. package/build/query/edit/pattern-selection-modal.js +2 -1
  99. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  100. package/build/query/index.js +5 -12
  101. package/build/query/index.js.map +1 -1
  102. package/build/site-logo/edit.js +114 -16
  103. package/build/site-logo/edit.js.map +1 -1
  104. package/build/site-logo/index.js +1 -1
  105. package/build/social-link/icons/chain.js +1 -1
  106. package/build/social-link/icons/chain.js.map +1 -1
  107. package/build/social-link/icons/mail.js +1 -1
  108. package/build/social-link/icons/mail.js.map +1 -1
  109. package/build/spacer/controls.js +25 -6
  110. package/build/spacer/controls.js.map +1 -1
  111. package/build/spacer/edit.js +129 -13
  112. package/build/spacer/edit.js.map +1 -1
  113. package/build/spacer/save.js +2 -2
  114. package/build/spacer/save.js.map +1 -1
  115. package/build/table/state.js +35 -35
  116. package/build/table/state.js.map +1 -1
  117. package/build/template-part/edit/index.js +2 -1
  118. package/build/template-part/edit/index.js.map +1 -1
  119. package/build/template-part/edit/utils/hooks.js +2 -2
  120. package/build/template-part/edit/utils/hooks.js.map +1 -1
  121. package/build/term-description/index.js +1 -2
  122. package/build/term-description/index.js.map +1 -1
  123. package/build/utils/migrate-font-family.js +12 -5
  124. package/build/utils/migrate-font-family.js.map +1 -1
  125. package/build/video/edit.native.js +4 -3
  126. package/build/video/edit.native.js.map +1 -1
  127. package/build-module/column/index.js +2 -1
  128. package/build-module/column/index.js.map +1 -1
  129. package/build-module/columns/edit.js +24 -6
  130. package/build-module/columns/edit.js.map +1 -1
  131. package/build-module/columns/index.js +2 -1
  132. package/build-module/columns/index.js.map +1 -1
  133. package/build-module/columns/utils.js +4 -8
  134. package/build-module/columns/utils.js.map +1 -1
  135. package/build-module/cover/edit/index.js +48 -52
  136. package/build-module/cover/edit/index.js.map +1 -1
  137. package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
  138. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
  139. package/build-module/cover/index.js +12 -0
  140. package/build-module/cover/index.js.map +1 -1
  141. package/build-module/cover/transforms.js +5 -1
  142. package/build-module/cover/transforms.js.map +1 -1
  143. package/build-module/details/edit.js +52 -0
  144. package/build-module/details/edit.js.map +1 -0
  145. package/build-module/details/index.js +91 -0
  146. package/build-module/details/index.js.map +1 -0
  147. package/build-module/details/save.js +20 -0
  148. package/build-module/details/save.js.map +1 -0
  149. package/build-module/details-content/edit.js +23 -0
  150. package/build-module/details-content/edit.js.map +1 -0
  151. package/build-module/details-content/index.js +76 -0
  152. package/build-module/details-content/index.js.map +1 -0
  153. package/build-module/details-content/save.js +11 -0
  154. package/build-module/details-content/save.js.map +1 -0
  155. package/build-module/details-summary/edit.js +30 -0
  156. package/build-module/details-summary/edit.js.map +1 -0
  157. package/build-module/details-summary/index.js +79 -0
  158. package/build-module/details-summary/index.js.map +1 -0
  159. package/build-module/details-summary/save.js +16 -0
  160. package/build-module/details-summary/save.js.map +1 -0
  161. package/build-module/embed/deprecated.js +4 -1
  162. package/build-module/embed/deprecated.js.map +1 -1
  163. package/build-module/embed/embed-link-settings.native.js +1 -1
  164. package/build-module/embed/embed-link-settings.native.js.map +1 -1
  165. package/build-module/embed/embed-placeholder.js +1 -1
  166. package/build-module/embed/embed-placeholder.js.map +1 -1
  167. package/build-module/embed/index.js +4 -1
  168. package/build-module/embed/index.js.map +1 -1
  169. package/build-module/embed/transforms.js +4 -1
  170. package/build-module/embed/transforms.js.map +1 -1
  171. package/build-module/embed/util.js +4 -1
  172. package/build-module/embed/util.js.map +1 -1
  173. package/build-module/file/edit.native.js +0 -2
  174. package/build-module/file/edit.native.js.map +1 -1
  175. package/build-module/gallery/use-get-media.native.js +2 -1
  176. package/build-module/gallery/use-get-media.native.js.map +1 -1
  177. package/build-module/group/edit.js +3 -1
  178. package/build-module/group/edit.js.map +1 -1
  179. package/build-module/group/index.js +3 -0
  180. package/build-module/group/index.js.map +1 -1
  181. package/build-module/image/edit.js +16 -13
  182. package/build-module/image/edit.js.map +1 -1
  183. package/build-module/image/index.js +5 -3
  184. package/build-module/image/index.js.map +1 -1
  185. package/build-module/index.js +21 -6
  186. package/build-module/index.js.map +1 -1
  187. package/build-module/index.native.js +9 -5
  188. package/build-module/index.native.js.map +1 -1
  189. package/build-module/media-text/edit.js +4 -2
  190. package/build-module/media-text/edit.js.map +1 -1
  191. package/build-module/media-text/index.js +3 -0
  192. package/build-module/media-text/index.js.map +1 -1
  193. package/build-module/media-text/media-container.js +1 -5
  194. package/build-module/media-text/media-container.js.map +1 -1
  195. package/build-module/media-text/media-container.native.js +1 -1
  196. package/build-module/media-text/media-container.native.js.map +1 -1
  197. package/build-module/navigation/deprecated.js +8 -10
  198. package/build-module/navigation/deprecated.js.map +1 -1
  199. package/build-module/navigation/edit/index.js +31 -63
  200. package/build-module/navigation/edit/index.js.map +1 -1
  201. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
  202. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  203. package/build-module/post-author/index.js +0 -1
  204. package/build-module/post-author/index.js.map +1 -1
  205. package/build-module/post-date/edit.js +4 -2
  206. package/build-module/post-date/edit.js.map +1 -1
  207. package/build-module/post-excerpt/edit.js +2 -2
  208. package/build-module/post-excerpt/edit.js.map +1 -1
  209. package/build-module/post-featured-image/dimension-controls.js +2 -1
  210. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  211. package/build-module/post-featured-image/edit.js +16 -27
  212. package/build-module/post-featured-image/edit.js.map +1 -1
  213. package/build-module/post-time-to-read/edit.js +1 -1
  214. package/build-module/post-time-to-read/edit.js.map +1 -1
  215. package/build-module/post-time-to-read/index.js +7 -0
  216. package/build-module/post-time-to-read/index.js.map +1 -1
  217. package/build-module/query/deprecated.js +5 -2
  218. package/build-module/query/deprecated.js.map +1 -1
  219. package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
  220. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  221. package/build-module/query/edit/inspector-controls/index.js +12 -7
  222. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  223. package/build-module/query/edit/pattern-selection-modal.js +2 -1
  224. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  225. package/build-module/query/index.js +5 -10
  226. package/build-module/query/index.js.map +1 -1
  227. package/build-module/site-logo/edit.js +115 -18
  228. package/build-module/site-logo/edit.js.map +1 -1
  229. package/build-module/site-logo/index.js +1 -1
  230. package/build-module/social-link/icons/chain.js +1 -1
  231. package/build-module/social-link/icons/chain.js.map +1 -1
  232. package/build-module/social-link/icons/mail.js +1 -1
  233. package/build-module/social-link/icons/mail.js.map +1 -1
  234. package/build-module/spacer/controls.js +27 -9
  235. package/build-module/spacer/controls.js.map +1 -1
  236. package/build-module/spacer/edit.js +129 -14
  237. package/build-module/spacer/edit.js.map +1 -1
  238. package/build-module/spacer/save.js +3 -3
  239. package/build-module/spacer/save.js.map +1 -1
  240. package/build-module/table/state.js +35 -33
  241. package/build-module/table/state.js.map +1 -1
  242. package/build-module/template-part/edit/index.js +2 -1
  243. package/build-module/template-part/edit/index.js.map +1 -1
  244. package/build-module/template-part/edit/utils/hooks.js +2 -2
  245. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  246. package/build-module/term-description/index.js +1 -2
  247. package/build-module/term-description/index.js.map +1 -1
  248. package/build-module/utils/migrate-font-family.js +9 -1
  249. package/build-module/utils/migrate-font-family.js.map +1 -1
  250. package/build-module/video/edit.native.js +4 -3
  251. package/build-module/video/edit.native.js.map +1 -1
  252. package/build-style/columns/style-rtl.css +4 -1
  253. package/build-style/columns/style.css +4 -1
  254. package/build-style/common-rtl.css +1 -1
  255. package/build-style/common.css +1 -1
  256. package/build-style/cover/editor-rtl.css +9 -10
  257. package/build-style/cover/editor.css +9 -10
  258. package/build-style/cover/style-rtl.css +1 -1
  259. package/build-style/cover/style.css +1 -1
  260. package/build-style/details/style-rtl.css +91 -0
  261. package/build-style/details/style.css +91 -0
  262. package/build-style/details-summary/editor-rtl.css +91 -0
  263. package/build-style/details-summary/editor.css +91 -0
  264. package/build-style/details-summary/style-rtl.css +91 -0
  265. package/build-style/details-summary/style.css +91 -0
  266. package/build-style/editor-rtl.css +97 -74
  267. package/build-style/editor.css +97 -74
  268. package/build-style/file/style-rtl.css +4 -3
  269. package/build-style/file/style.css +4 -3
  270. package/build-style/html/editor-rtl.css +2 -2
  271. package/build-style/html/editor.css +2 -2
  272. package/build-style/image/editor-rtl.css +1 -1
  273. package/build-style/image/editor.css +1 -1
  274. package/build-style/post-excerpt/style-rtl.css +1 -1
  275. package/build-style/post-excerpt/style.css +1 -1
  276. package/build-style/pullquote/style-rtl.css +4 -1
  277. package/build-style/pullquote/style.css +4 -1
  278. package/build-style/query/editor-rtl.css +8 -12
  279. package/build-style/query/editor.css +8 -12
  280. package/build-style/search/style-rtl.css +2 -0
  281. package/build-style/search/style.css +2 -0
  282. package/build-style/shortcode/editor-rtl.css +15 -35
  283. package/build-style/shortcode/editor.css +15 -35
  284. package/build-style/site-logo/editor-rtl.css +46 -0
  285. package/build-style/site-logo/editor.css +46 -0
  286. package/build-style/spacer/editor-rtl.css +4 -2
  287. package/build-style/spacer/editor.css +4 -2
  288. package/build-style/style-rtl.css +25 -8
  289. package/build-style/style.css +25 -8
  290. package/build-style/template-part/editor-rtl.css +8 -12
  291. package/build-style/template-part/editor.css +8 -12
  292. package/package.json +31 -31
  293. package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
  294. package/src/buttons/test/edit.native.js +123 -2
  295. package/src/column/block.json +2 -1
  296. package/src/columns/block.json +2 -1
  297. package/src/columns/edit.js +33 -9
  298. package/src/columns/style.scss +5 -1
  299. package/src/columns/utils.js +8 -9
  300. package/src/common.scss +1 -1
  301. package/src/cover/block.json +12 -0
  302. package/src/cover/edit/index.js +44 -37
  303. package/src/cover/edit/resizable-cover-popover.js +82 -0
  304. package/src/cover/editor.scss +20 -13
  305. package/src/cover/index.php +9 -10
  306. package/src/cover/style.scss +1 -1
  307. package/src/cover/test/edit.js +1 -1
  308. package/src/cover/transforms.js +4 -1
  309. package/src/details/block.json +54 -0
  310. package/src/details/edit.js +59 -0
  311. package/src/details/index.js +35 -0
  312. package/src/details/save.js +15 -0
  313. package/src/details/style.scss +3 -0
  314. package/src/details-content/block.json +50 -0
  315. package/src/details-content/edit.js +29 -0
  316. package/src/details-content/index.js +23 -0
  317. package/src/details-content/save.js +12 -0
  318. package/src/details-summary/block.json +53 -0
  319. package/src/details-summary/edit.js +27 -0
  320. package/src/details-summary/editor.scss +3 -0
  321. package/src/details-summary/index.js +23 -0
  322. package/src/details-summary/save.js +13 -0
  323. package/src/details-summary/style.scss +3 -0
  324. package/src/editor.scss +1 -0
  325. package/src/embed/block.json +4 -1
  326. package/src/embed/embed-link-settings.native.js +1 -1
  327. package/src/embed/embed-placeholder.js +1 -1
  328. package/src/file/edit.native.js +0 -2
  329. package/src/file/style.scss +5 -2
  330. package/src/gallery/test/index.native.js +4 -4
  331. package/src/gallery/test/use-get-media.native.js +24 -0
  332. package/src/gallery/use-get-media.native.js +1 -1
  333. package/src/group/block.json +3 -0
  334. package/src/group/edit.js +8 -2
  335. package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
  336. package/src/heading/test/index.native.js +71 -0
  337. package/src/html/editor.scss +2 -21
  338. package/src/image/block.json +5 -3
  339. package/src/image/edit.js +21 -17
  340. package/src/image/editor.scss +1 -1
  341. package/src/index.js +13 -3
  342. package/src/index.native.js +9 -5
  343. package/src/list/test/edit.native.js +7 -7
  344. package/src/media-text/block.json +3 -0
  345. package/src/media-text/edit.js +2 -1
  346. package/src/media-text/media-container.js +1 -5
  347. package/src/media-text/media-container.native.js +1 -1
  348. package/src/navigation/deprecated.js +15 -19
  349. package/src/navigation/edit/index.js +32 -106
  350. package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
  351. package/src/navigation/index.php +15 -12
  352. package/src/paragraph/test/edit.native.js +616 -1
  353. package/src/post-author/block.json +0 -1
  354. package/src/post-date/edit.js +4 -0
  355. package/src/post-date/index.php +17 -8
  356. package/src/post-excerpt/edit.js +1 -1
  357. package/src/post-excerpt/index.php +3 -3
  358. package/src/post-excerpt/style.scss +2 -1
  359. package/src/post-featured-image/dimension-controls.js +5 -1
  360. package/src/post-featured-image/edit.js +14 -34
  361. package/src/post-featured-image/index.php +1 -1
  362. package/src/post-time-to-read/block.json +7 -0
  363. package/src/post-time-to-read/edit.js +1 -1
  364. package/src/post-time-to-read/index.php +3 -3
  365. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
  366. package/src/preformatted/test/edit.native.js +42 -2
  367. package/src/pullquote/style.scss +5 -1
  368. package/src/pullquote/test/edit.native.js +65 -0
  369. package/src/query/deprecated.js +4 -1
  370. package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
  371. package/src/query/edit/inspector-controls/index.js +13 -6
  372. package/src/query/edit/pattern-selection-modal.js +1 -0
  373. package/src/query/editor.scss +8 -11
  374. package/src/query/index.js +1 -7
  375. package/src/quote/test/edit.native.js +88 -0
  376. package/src/search/index.php +1 -1
  377. package/src/search/style.scss +3 -0
  378. package/src/shortcode/editor.scss +6 -5
  379. package/src/site-logo/block.json +1 -1
  380. package/src/site-logo/edit.js +123 -9
  381. package/src/site-logo/editor.scss +57 -0
  382. package/src/social-link/icons/chain.js +1 -1
  383. package/src/social-link/icons/mail.js +1 -1
  384. package/src/social-link/index.php +2 -2
  385. package/src/spacer/controls.js +42 -17
  386. package/src/spacer/edit.js +176 -18
  387. package/src/spacer/editor.scss +2 -1
  388. package/src/spacer/save.js +3 -3
  389. package/src/style.scss +2 -0
  390. package/src/table/state.js +83 -66
  391. package/src/template-part/edit/index.js +1 -0
  392. package/src/template-part/edit/utils/hooks.js +2 -2
  393. package/src/template-part/editor.scss +9 -11
  394. package/src/term-description/block.json +1 -2
  395. package/src/utils/migrate-font-family.js +8 -1
  396. package/src/verse/test/edit.native.js +28 -0
  397. package/src/video/edit.native.js +2 -2
  398. package/tsconfig.json +1 -0
  399. package/build/cover/edit/resizable-cover.js.map +0 -1
  400. package/build/media-text/media-container-icon.js +0 -27
  401. package/build/media-text/media-container-icon.js.map +0 -1
  402. package/build/query/hooks.js +0 -72
  403. package/build/query/hooks.js.map +0 -1
  404. package/build/utils/clean-empty-object.js +0 -34
  405. package/build/utils/clean-empty-object.js.map +0 -1
  406. package/build-module/cover/edit/resizable-cover.js.map +0 -1
  407. package/build-module/media-text/media-container-icon.js +0 -17
  408. package/build-module/media-text/media-container-icon.js.map +0 -1
  409. package/build-module/query/hooks.js +0 -59
  410. package/build-module/query/hooks.js.map +0 -1
  411. package/build-module/utils/clean-empty-object.js +0 -25
  412. package/build-module/utils/clean-empty-object.js.map +0 -1
  413. package/src/cover/edit/resizable-cover.js +0 -61
  414. package/src/media-text/media-container-icon.js +0 -12
  415. package/src/query/hooks.js +0 -53
  416. package/src/utils/clean-empty-object.js +0 -28
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.settings = exports.name = exports.metadata = exports.init = void 0;
9
+
10
+ var _icons = require("@wordpress/icons");
11
+
12
+ var _initBlock = _interopRequireDefault(require("../utils/init-block"));
13
+
14
+ var _edit = _interopRequireDefault(require("./edit"));
15
+
16
+ var _save = _interopRequireDefault(require("./save"));
17
+
18
+ /**
19
+ * WordPress dependencies
20
+ */
21
+
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+ const metadata = {
26
+ $schema: "https://schemas.wp.org/trunk/block.json",
27
+ apiVersion: 2,
28
+ __experimental: true,
29
+ name: "core/details-summary",
30
+ title: "Details Summary",
31
+ category: "text",
32
+ parent: ["core/details"],
33
+ description: "Provide summary text used to toggle the display of content inside a Details block.",
34
+ textdomain: "default",
35
+ attributes: {
36
+ summary: {
37
+ type: "string"
38
+ }
39
+ },
40
+ supports: {
41
+ align: false,
42
+ color: {
43
+ gradients: true,
44
+ __experimentalDefaultControls: {
45
+ background: true,
46
+ text: true
47
+ }
48
+ },
49
+ __experimentalBorder: {
50
+ radius: true,
51
+ color: true,
52
+ width: true,
53
+ style: true
54
+ },
55
+ html: false,
56
+ lock: false,
57
+ multiple: false,
58
+ reusable: false,
59
+ spacing: {
60
+ margin: true,
61
+ padding: true
62
+ },
63
+ typography: {
64
+ fontSize: true,
65
+ lineHeight: true,
66
+ __experimentalFontFamily: true,
67
+ __experimentalFontWeight: true,
68
+ __experimentalFontStyle: true,
69
+ __experimentalTextTransform: true,
70
+ __experimentalTextDecoration: true,
71
+ __experimentalLetterSpacing: true,
72
+ __experimentalDefaultControls: {
73
+ fontSize: true
74
+ }
75
+ }
76
+ }
77
+ };
78
+ exports.metadata = metadata;
79
+ const {
80
+ name
81
+ } = metadata;
82
+ exports.name = name;
83
+ const settings = {
84
+ icon: _icons.heading,
85
+ save: _save.default,
86
+ edit: _edit.default
87
+ };
88
+ exports.settings = settings;
89
+
90
+ const init = () => (0, _initBlock.default)({
91
+ name,
92
+ metadata,
93
+ settings
94
+ });
95
+
96
+ exports.init = init;
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/details-summary/index.js"],"names":["name","metadata","settings","icon","save","edit","init"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAEA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,cADuB;AAEvBC,EAAAA,IAAI,EAAJA,aAFuB;AAGvBC,EAAAA,IAAI,EAAJA;AAHuB,CAAjB;;;AAMA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEN,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { heading as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tsave,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = save;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var _blockEditor = require("@wordpress/block-editor");
11
+
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+ function save(_ref) {
16
+ let {
17
+ attributes
18
+ } = _ref;
19
+ const summary = attributes.summary ? attributes.summary : 'Details';
20
+ return (0, _element.createElement)("summary", _blockEditor.useBlockProps.save(), (0, _element.createElement)(_blockEditor.RichText.Content, {
21
+ value: summary
22
+ }));
23
+ }
24
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/details-summary/save.js"],"names":["save","attributes","summary","useBlockProps"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGe,SAASA,IAAT,OAAgC;AAAA,MAAjB;AAAEC,IAAAA;AAAF,GAAiB;AAC9C,QAAMC,OAAO,GAAGD,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAhC,GAA0C,SAA1D;AACA,SACC,uCAAcC,2BAAcH,IAAd,EAAd,EACC,4BAAC,qBAAD,CAAU,OAAV;AAAkB,IAAA,KAAK,EAAGE;AAA1B,IADD,CADD;AAKA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst summary = attributes.summary ? attributes.summary : 'Details';\n\treturn (\n\t\t<summary { ...useBlockProps.save() }>\n\t\t\t<RichText.Content value={ summary } />\n\t\t</summary>\n\t);\n}\n"]}
@@ -63,7 +63,10 @@ const metadata = {
63
63
  }
64
64
  },
65
65
  supports: {
66
- align: true
66
+ align: true,
67
+ spacing: {
68
+ margin: true
69
+ }
67
70
  },
68
71
  editorStyle: "wp-block-embed-editor",
69
72
  style: "wp-block-embed"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/deprecated.js"],"names":["attributes","blockAttributes","metadata","v2","save","url","caption","type","providerNameSlug","className","useBlockProps","RichText","isEmpty","v1","embedClassName","deprecated"],"mappings":";;;;;;;;;;;AAGA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;;AAGA,MAAM;AAAEA,EAAAA,UAAU,EAAEC;AAAd,IAAkCC,QAAxC,C,CAEA;AACA;;AACA,MAAMC,EAAE,GAAG;AACVH,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,OAAmB;AAAA,QAAjB;AAAEJ,MAAAA;AAAF,KAAiB;AACtB,UAAM;AAAEK,MAAAA,GAAF;AAAOC,MAAAA,OAAP;AAAgBC,MAAAA,IAAhB;AAAsBC,MAAAA;AAAtB,QAA2CR,UAAjD;;AAEA,QAAK,CAAEK,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMI,SAAS,GAAG,yBAAY,gBAAZ,EAA8B;AAC/C,OAAG,WAAWF,IAAM,EAApB,GAAyBA,IADsB;AAE/C,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA,gBAFM;AAG/C,OAAG,kBAAkBA,gBAAkB,EAAvC,GAA4CA;AAHG,KAA9B,CAAlB;AAMA,WACC,sCAAaE,2BAAcN,IAAd,CAAoB;AAAEK,MAAAA;AAAF,KAApB,CAAb,EACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACI,KAAKJ,GAAK;AAAI;AADlB,KADD,EAIG,CAAEM,sBAASC,OAAT,CAAkBN,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MALF,CADD;AAUA;;AAzBS,CAAX;AA4BA,MAAMO,EAAE,GAAG;AACVb,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,QAA6D;AAAA,QAA3D;AAAEJ,MAAAA,UAAU,EAAE;AAAEK,QAAAA,GAAF;AAAOC,QAAAA,OAAP;AAAgBC,QAAAA,IAAhB;AAAsBC,QAAAA;AAAtB;AAAd,KAA2D;;AAChE,QAAK,CAAEH,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMS,cAAc,GAAG,yBAAY,gBAAZ,EAA8B;AACpD,OAAG,WAAWP,IAAM,EAApB,GAAyBA,IAD2B;AAEpD,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA;AAFW,KAA9B,CAAvB;AAKA,WACC;AAAQ,MAAA,SAAS,EAAGM;AAApB,OACI,KAAKT,GAAK;AAAI;AADlB,MAEG,CAAEM,sBAASC,OAAT,CAAkBN,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAHF,CADD;AAQA;;AApBS,CAAX;AAuBA,MAAMS,UAAU,GAAG,CAAEZ,EAAF,EAAMU,EAAN,CAAnB;eAEeE,U","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the embed figcaption element.\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst className = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t</div>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes: { url, caption, type, providerNameSlug } } ) {\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure className={ embedClassName }>\n\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/deprecated.js"],"names":["attributes","blockAttributes","metadata","v2","save","url","caption","type","providerNameSlug","className","useBlockProps","RichText","isEmpty","v1","embedClassName","deprecated"],"mappings":";;;;;;;;;;;AAGA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;;AAGA,MAAM;AAAEA,EAAAA,UAAU,EAAEC;AAAd,IAAkCC,QAAxC,C,CAEA;AACA;;AACA,MAAMC,EAAE,GAAG;AACVH,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,OAAmB;AAAA,QAAjB;AAAEJ,MAAAA;AAAF,KAAiB;AACtB,UAAM;AAAEK,MAAAA,GAAF;AAAOC,MAAAA,OAAP;AAAgBC,MAAAA,IAAhB;AAAsBC,MAAAA;AAAtB,QAA2CR,UAAjD;;AAEA,QAAK,CAAEK,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMI,SAAS,GAAG,yBAAY,gBAAZ,EAA8B;AAC/C,OAAG,WAAWF,IAAM,EAApB,GAAyBA,IADsB;AAE/C,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA,gBAFM;AAG/C,OAAG,kBAAkBA,gBAAkB,EAAvC,GAA4CA;AAHG,KAA9B,CAAlB;AAMA,WACC,sCAAaE,2BAAcN,IAAd,CAAoB;AAAEK,MAAAA;AAAF,KAApB,CAAb,EACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACI,KAAKJ,GAAK;AAAI;AADlB,KADD,EAIG,CAAEM,sBAASC,OAAT,CAAkBN,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MALF,CADD;AAUA;;AAzBS,CAAX;AA4BA,MAAMO,EAAE,GAAG;AACVb,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,QAA6D;AAAA,QAA3D;AAAEJ,MAAAA,UAAU,EAAE;AAAEK,QAAAA,GAAF;AAAOC,QAAAA,OAAP;AAAgBC,QAAAA,IAAhB;AAAsBC,QAAAA;AAAtB;AAAd,KAA2D;;AAChE,QAAK,CAAEH,GAAP,EAAa;AACZ,aAAO,IAAP;AACA;;AAED,UAAMS,cAAc,GAAG,yBAAY,gBAAZ,EAA8B;AACpD,OAAG,WAAWP,IAAM,EAApB,GAAyBA,IAD2B;AAEpD,OAAG,eAAeC,gBAAkB,EAApC,GAAyCA;AAFW,KAA9B,CAAvB;AAKA,WACC;AAAQ,MAAA,SAAS,EAAGM;AAApB,OACI,KAAKT,GAAK;AAAI;AADlB,MAEG,CAAEM,sBAASC,OAAT,CAAkBN,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAHF,CADD;AAQA;;AApBS,CAAX;AAuBA,MAAMS,UAAU,GAAG,CAAEZ,EAAF,EAAMU,EAAN,CAAnB;eAEeE,U","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the embed figcaption element.\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst className = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t</div>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes: { url, caption, type, providerNameSlug } } ) {\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure className={ embedClassName }>\n\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n"]}
@@ -45,7 +45,7 @@ const EmbedLinkSettings = _ref => {
45
45
  },
46
46
  footer: {
47
47
  label: (0, _element.createElement)(_components.FooterMessageLink, {
48
- href: (0, _i18n.__)('https://wordpress.org/support/article/embeds/'),
48
+ href: (0, _i18n.__)('https://wordpress.org/documentation/article/embeds/'),
49
49
  value: (0, _i18n.__)('Learn more about embeds')
50
50
  }),
51
51
  separatorType: 'topFullWidth'
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/embed-link-settings.native.js"],"names":["EmbedLinkSettings","autoFocus","value","label","isVisible","onClose","onSubmit","withBottomSheet","url","inputURL","setInputURL","createErrorNotice","noticesStore","linkSettingsOptions","placeholder","autoFill","footer","separatorType","onDismiss","current","performOnCloseOperations","onSetAttributes","attributes"],"mappings":";;;;;;;AAWA;;AARA;;AACA;;AAIA;;AACA;;AACA;;AAVA;AACA;AACA;AAWA,MAAMA,iBAAiB,GAAG,QAQnB;AAAA,MARqB;AAC3BC,IAAAA,SAD2B;AAE3BC,IAAAA,KAF2B;AAG3BC,IAAAA,KAH2B;AAI3BC,IAAAA,SAJ2B;AAK3BC,IAAAA,OAL2B;AAM3BC,IAAAA,QAN2B;AAO3BC,IAAAA;AAP2B,GAQrB;AACN,QAAMC,GAAG,GAAG,qBAAQN,KAAR,CAAZ;AACA,QAAM,CAAEO,QAAF,EAAYC,WAAZ,IAA4B,uBAAUR,KAAV,CAAlC;AACA,QAAM;AAAES,IAAAA;AAAF,MAAwB,uBAAaC,cAAb,CAA9B;AAEA,QAAMC,mBAAmB,GAAG;AAC3BL,IAAAA,GAAG,EAAE;AACJL,MAAAA,KAAK,EAAE,oBACN;AACA,oBAAI,SAAJ,CAFM,EAGNA,KAHM,CADH;AAMJW,MAAAA,WAAW,EAAE,cAAI,UAAJ,CANT;AAOJb,MAAAA,SAPI;AAQJc,MAAAA,QAAQ,EAAE;AARN,KADsB;AAW3BC,IAAAA,MAAM,EAAE;AACPb,MAAAA,KAAK,EACJ,4BAAC,6BAAD;AACC,QAAA,IAAI,EAAG,cACN,+CADM,CADR;AAIC,QAAA,KAAK,EAAG,cAAI,yBAAJ;AAJT,QAFM;AASPc,MAAAA,aAAa,EAAE;AATR;AAXmB,GAA5B;AAwBA,QAAMC,SAAS,GAAG,0BAAa,MAAM;AACpC,QAAK,CAAE,gBAAOV,GAAG,CAACW,OAAX,CAAF,IAA0BX,GAAG,CAACW,OAAJ,KAAgB,EAA/C,EAAoD;AACnDR,MAAAA,iBAAiB,CAAE,cAAI,wCAAJ,CAAF,CAAjB,CADmD,CAEnD;;AACAL,MAAAA,QAAQ,CAAEJ,KAAF,CAAR;AACA;AACA;;AACDI,IAAAA,QAAQ,CAAEE,GAAG,CAACW,OAAN,CAAR;AACA,GARiB,EAQf,CAAEb,QAAF,EAAYJ,KAAZ,CARe,CAAlB;AAUA,0BAAW,MAAM;AAChBM,IAAAA,GAAG,CAACW,OAAJ,GAAcjB,KAAd;AACAQ,IAAAA,WAAW,CAAER,KAAF,CAAX;AACA,GAHD,EAGG,CAAEA,KAAF,CAHH;AAKA;AACD;AACA;AACA;;AACC,QAAMkB,wBAAwB,GAAG,0BAAa,MAAM;AACnD,QAAKf,OAAL,EAAe;AACdA,MAAAA,OAAO;AACP;;AAED,QAAK,CAAEE,eAAP,EAAyB;AACxBW,MAAAA,SAAS;AACT;AACD,GARgC,EAQ9B,CAAEb,OAAF,CAR8B,CAAjC;AAUA,QAAMgB,eAAe,GAAG,0BAAeC,UAAF,IAAkB;AACtDd,IAAAA,GAAG,CAACW,OAAJ,GAAcG,UAAU,CAACd,GAAzB;AACAE,IAAAA,WAAW,CAAEY,UAAU,CAACd,GAAb,CAAX;AACA,GAHuB,EAGrB,EAHqB,CAAxB;AAKA,SACC,4BAAC,kCAAD;AACC,IAAA,SAAS,EAAGJ,SADb;AAEC,IAAA,GAAG,EAAGK,QAFP;AAGC,IAAA,OAAO,EAAGW,wBAHX;AAIC,IAAA,SAAS,EAAGF,SAJb;AAKC,IAAA,aAAa,EAAGG,eALjB;AAMC,IAAA,OAAO,EAAGR,mBANX;AAOC,IAAA,MAAM,EAAC,sBAPR;AAQC,IAAA,eAAe,EAAGN,eARnB;AASC,IAAA,QAAQ;AATT,IADD;AAaA,CApFD;;eAsFeP,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tLinkSettingsNavigation,\n\tFooterMessageLink,\n} from '@wordpress/components';\nimport { isURL } from '@wordpress/url';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\nconst EmbedLinkSettings = ( {\n\tautoFocus,\n\tvalue,\n\tlabel,\n\tisVisible,\n\tonClose,\n\tonSubmit,\n\twithBottomSheet,\n} ) => {\n\tconst url = useRef( value );\n\tconst [ inputURL, setInputURL ] = useState( value );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tlabel: sprintf(\n\t\t\t\t// translators: %s: embed block variant's label e.g: \"Twitter\".\n\t\t\t\t__( '%s link' ),\n\t\t\t\tlabel\n\t\t\t),\n\t\t\tplaceholder: __( 'Add link' ),\n\t\t\tautoFocus,\n\t\t\tautoFill: true,\n\t\t},\n\t\tfooter: {\n\t\t\tlabel: (\n\t\t\t\t<FooterMessageLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/support/article/embeds/'\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ __( 'Learn more about embeds' ) }\n\t\t\t\t/>\n\t\t\t),\n\t\t\tseparatorType: 'topFullWidth',\n\t\t},\n\t};\n\n\tconst onDismiss = useCallback( () => {\n\t\tif ( ! isURL( url.current ) && url.current !== '' ) {\n\t\t\tcreateErrorNotice( __( 'Invalid URL. Please enter a valid URL.' ) );\n\t\t\t// If the URL was already defined, we submit it to stop showing the embed placeholder.\n\t\t\tonSubmit( value );\n\t\t\treturn;\n\t\t}\n\t\tonSubmit( url.current );\n\t}, [ onSubmit, value ] );\n\n\tuseEffect( () => {\n\t\turl.current = value;\n\t\tsetInputURL( value );\n\t}, [ value ] );\n\n\t/**\n\t * If the Embed Bottom Sheet component does not utilize a bottom sheet then the onDismiss action is not\n\t * called. Here we are wiring the onDismiss to the onClose callback that gets triggered when input is submitted.\n\t */\n\tconst performOnCloseOperations = useCallback( () => {\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\n\t\tif ( ! withBottomSheet ) {\n\t\t\tonDismiss();\n\t\t}\n\t}, [ onClose ] );\n\n\tconst onSetAttributes = useCallback( ( attributes ) => {\n\t\turl.current = attributes.url;\n\t\tsetInputURL( attributes.url );\n\t}, [] );\n\n\treturn (\n\t\t<LinkSettingsNavigation\n\t\t\tisVisible={ isVisible }\n\t\t\turl={ inputURL }\n\t\t\tonClose={ performOnCloseOperations }\n\t\t\tonDismiss={ onDismiss }\n\t\t\tsetAttributes={ onSetAttributes }\n\t\t\toptions={ linkSettingsOptions }\n\t\t\ttestID=\"embed-edit-url-modal\"\n\t\t\twithBottomSheet={ withBottomSheet }\n\t\t\tshowIcon\n\t\t/>\n\t);\n};\n\nexport default EmbedLinkSettings;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/embed-link-settings.native.js"],"names":["EmbedLinkSettings","autoFocus","value","label","isVisible","onClose","onSubmit","withBottomSheet","url","inputURL","setInputURL","createErrorNotice","noticesStore","linkSettingsOptions","placeholder","autoFill","footer","separatorType","onDismiss","current","performOnCloseOperations","onSetAttributes","attributes"],"mappings":";;;;;;;AAWA;;AARA;;AACA;;AAIA;;AACA;;AACA;;AAVA;AACA;AACA;AAWA,MAAMA,iBAAiB,GAAG,QAQnB;AAAA,MARqB;AAC3BC,IAAAA,SAD2B;AAE3BC,IAAAA,KAF2B;AAG3BC,IAAAA,KAH2B;AAI3BC,IAAAA,SAJ2B;AAK3BC,IAAAA,OAL2B;AAM3BC,IAAAA,QAN2B;AAO3BC,IAAAA;AAP2B,GAQrB;AACN,QAAMC,GAAG,GAAG,qBAAQN,KAAR,CAAZ;AACA,QAAM,CAAEO,QAAF,EAAYC,WAAZ,IAA4B,uBAAUR,KAAV,CAAlC;AACA,QAAM;AAAES,IAAAA;AAAF,MAAwB,uBAAaC,cAAb,CAA9B;AAEA,QAAMC,mBAAmB,GAAG;AAC3BL,IAAAA,GAAG,EAAE;AACJL,MAAAA,KAAK,EAAE,oBACN;AACA,oBAAI,SAAJ,CAFM,EAGNA,KAHM,CADH;AAMJW,MAAAA,WAAW,EAAE,cAAI,UAAJ,CANT;AAOJb,MAAAA,SAPI;AAQJc,MAAAA,QAAQ,EAAE;AARN,KADsB;AAW3BC,IAAAA,MAAM,EAAE;AACPb,MAAAA,KAAK,EACJ,4BAAC,6BAAD;AACC,QAAA,IAAI,EAAG,cACN,qDADM,CADR;AAIC,QAAA,KAAK,EAAG,cAAI,yBAAJ;AAJT,QAFM;AASPc,MAAAA,aAAa,EAAE;AATR;AAXmB,GAA5B;AAwBA,QAAMC,SAAS,GAAG,0BAAa,MAAM;AACpC,QAAK,CAAE,gBAAOV,GAAG,CAACW,OAAX,CAAF,IAA0BX,GAAG,CAACW,OAAJ,KAAgB,EAA/C,EAAoD;AACnDR,MAAAA,iBAAiB,CAAE,cAAI,wCAAJ,CAAF,CAAjB,CADmD,CAEnD;;AACAL,MAAAA,QAAQ,CAAEJ,KAAF,CAAR;AACA;AACA;;AACDI,IAAAA,QAAQ,CAAEE,GAAG,CAACW,OAAN,CAAR;AACA,GARiB,EAQf,CAAEb,QAAF,EAAYJ,KAAZ,CARe,CAAlB;AAUA,0BAAW,MAAM;AAChBM,IAAAA,GAAG,CAACW,OAAJ,GAAcjB,KAAd;AACAQ,IAAAA,WAAW,CAAER,KAAF,CAAX;AACA,GAHD,EAGG,CAAEA,KAAF,CAHH;AAKA;AACD;AACA;AACA;;AACC,QAAMkB,wBAAwB,GAAG,0BAAa,MAAM;AACnD,QAAKf,OAAL,EAAe;AACdA,MAAAA,OAAO;AACP;;AAED,QAAK,CAAEE,eAAP,EAAyB;AACxBW,MAAAA,SAAS;AACT;AACD,GARgC,EAQ9B,CAAEb,OAAF,CAR8B,CAAjC;AAUA,QAAMgB,eAAe,GAAG,0BAAeC,UAAF,IAAkB;AACtDd,IAAAA,GAAG,CAACW,OAAJ,GAAcG,UAAU,CAACd,GAAzB;AACAE,IAAAA,WAAW,CAAEY,UAAU,CAACd,GAAb,CAAX;AACA,GAHuB,EAGrB,EAHqB,CAAxB;AAKA,SACC,4BAAC,kCAAD;AACC,IAAA,SAAS,EAAGJ,SADb;AAEC,IAAA,GAAG,EAAGK,QAFP;AAGC,IAAA,OAAO,EAAGW,wBAHX;AAIC,IAAA,SAAS,EAAGF,SAJb;AAKC,IAAA,aAAa,EAAGG,eALjB;AAMC,IAAA,OAAO,EAAGR,mBANX;AAOC,IAAA,MAAM,EAAC,sBAPR;AAQC,IAAA,eAAe,EAAGN,eARnB;AASC,IAAA,QAAQ;AATT,IADD;AAaA,CApFD;;eAsFeP,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tLinkSettingsNavigation,\n\tFooterMessageLink,\n} from '@wordpress/components';\nimport { isURL } from '@wordpress/url';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\nconst EmbedLinkSettings = ( {\n\tautoFocus,\n\tvalue,\n\tlabel,\n\tisVisible,\n\tonClose,\n\tonSubmit,\n\twithBottomSheet,\n} ) => {\n\tconst url = useRef( value );\n\tconst [ inputURL, setInputURL ] = useState( value );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tlabel: sprintf(\n\t\t\t\t// translators: %s: embed block variant's label e.g: \"Twitter\".\n\t\t\t\t__( '%s link' ),\n\t\t\t\tlabel\n\t\t\t),\n\t\t\tplaceholder: __( 'Add link' ),\n\t\t\tautoFocus,\n\t\t\tautoFill: true,\n\t\t},\n\t\tfooter: {\n\t\t\tlabel: (\n\t\t\t\t<FooterMessageLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/documentation/article/embeds/'\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ __( 'Learn more about embeds' ) }\n\t\t\t\t/>\n\t\t\t),\n\t\t\tseparatorType: 'topFullWidth',\n\t\t},\n\t};\n\n\tconst onDismiss = useCallback( () => {\n\t\tif ( ! isURL( url.current ) && url.current !== '' ) {\n\t\t\tcreateErrorNotice( __( 'Invalid URL. Please enter a valid URL.' ) );\n\t\t\t// If the URL was already defined, we submit it to stop showing the embed placeholder.\n\t\t\tonSubmit( value );\n\t\t\treturn;\n\t\t}\n\t\tonSubmit( url.current );\n\t}, [ onSubmit, value ] );\n\n\tuseEffect( () => {\n\t\turl.current = value;\n\t\tsetInputURL( value );\n\t}, [ value ] );\n\n\t/**\n\t * If the Embed Bottom Sheet component does not utilize a bottom sheet then the onDismiss action is not\n\t * called. Here we are wiring the onDismiss to the onClose callback that gets triggered when input is submitted.\n\t */\n\tconst performOnCloseOperations = useCallback( () => {\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\n\t\tif ( ! withBottomSheet ) {\n\t\t\tonDismiss();\n\t\t}\n\t}, [ onClose ] );\n\n\tconst onSetAttributes = useCallback( ( attributes ) => {\n\t\turl.current = attributes.url;\n\t\tsetInputURL( attributes.url );\n\t}, [] );\n\n\treturn (\n\t\t<LinkSettingsNavigation\n\t\t\tisVisible={ isVisible }\n\t\t\turl={ inputURL }\n\t\t\tonClose={ performOnCloseOperations }\n\t\t\tonDismiss={ onDismiss }\n\t\t\tsetAttributes={ onSetAttributes }\n\t\t\toptions={ linkSettingsOptions }\n\t\t\ttestID=\"embed-edit-url-modal\"\n\t\t\twithBottomSheet={ withBottomSheet }\n\t\t\tshowIcon\n\t\t/>\n\t);\n};\n\nexport default EmbedLinkSettings;\n"]}
@@ -50,7 +50,7 @@ const EmbedPlaceholder = _ref => {
50
50
  }, (0, _i18n._x)('Embed', 'button label'))), (0, _element.createElement)("div", {
51
51
  className: "components-placeholder__learn-more"
52
52
  }, (0, _element.createElement)(_components.ExternalLink, {
53
- href: (0, _i18n.__)('https://wordpress.org/support/article/embeds/')
53
+ href: (0, _i18n.__)('https://wordpress.org/documentation/article/embeds/')
54
54
  }, (0, _i18n.__)('Learn more about embeds'))), cannotEmbed && (0, _element.createElement)("div", {
55
55
  className: "components-placeholder__error"
56
56
  }, (0, _element.createElement)("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/embed-placeholder.js"],"names":["EmbedPlaceholder","icon","label","value","onSubmit","onChange","cannotEmbed","fallback","tryAgain"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKA,MAAMA,gBAAgB,GAAG,QASlB;AAAA,MAToB;AAC1BC,IAAAA,IAD0B;AAE1BC,IAAAA,KAF0B;AAG1BC,IAAAA,KAH0B;AAI1BC,IAAAA,QAJ0B;AAK1BC,IAAAA,QAL0B;AAM1BC,IAAAA,WAN0B;AAO1BC,IAAAA,QAP0B;AAQ1BC,IAAAA;AAR0B,GASpB;AACN,SACC,4BAAC,uBAAD;AACC,IAAA,IAAI,EAAG,4BAAC,sBAAD;AAAW,MAAA,IAAI,EAAGP,IAAlB;AAAyB,MAAA,UAAU;AAAnC,MADR;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,SAAS,EAAC,gBAHX;AAIC,IAAA,YAAY,EAAG,cACd,+DADc;AAJhB,KAQC;AAAM,IAAA,QAAQ,EAAGE;AAAjB,KACC;AACC,IAAA,IAAI,EAAC,KADN;AAEC,IAAA,KAAK,EAAGD,KAAK,IAAI,EAFlB;AAGC,IAAA,SAAS,EAAC,+BAHX;AAIC,kBAAaD,KAJd;AAKC,IAAA,WAAW,EAAG,cAAI,0BAAJ,CALf;AAMC,IAAA,QAAQ,EAAGG;AANZ,IADD,EASC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,IAAI,EAAC;AAA/B,KACG,cAAI,OAAJ,EAAa,cAAb,CADH,CATD,CARD,EAqBC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,wBAAD;AACC,IAAA,IAAI,EAAG,cACN,+CADM;AADR,KAKG,cAAI,yBAAJ,CALH,CADD,CArBD,EA8BGC,WAAW,IACZ;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,cAAI,4CAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,WAAhB;AAA4B,IAAA,OAAO,EAAGE;AAAtC,KACG,cAAI,WAAJ,EAAiB,cAAjB,CADH,CAJD,EAMY,GANZ,EAOC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,WAAhB;AAA4B,IAAA,OAAO,EAAGD;AAAtC,KACG,cAAI,iBAAJ,EAAuB,cAAvB,CADH,CAPD,CA/BF,CADD;AA8CA,CAxDD;;eA0DeP,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, Placeholder, ExternalLink } from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\n\nconst EmbedPlaceholder = ( {\n\ticon,\n\tlabel,\n\tvalue,\n\tonSubmit,\n\tonChange,\n\tcannotEmbed,\n\tfallback,\n\ttryAgain,\n} ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\tlabel={ label }\n\t\t\tclassName=\"wp-block-embed\"\n\t\t\tinstructions={ __(\n\t\t\t\t'Paste a link to the content you want to display on your site.'\n\t\t\t) }\n\t\t>\n\t\t\t<form onSubmit={ onSubmit }>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"url\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t{ _x( 'Embed', 'button label' ) }\n\t\t\t\t</Button>\n\t\t\t</form>\n\t\t\t<div className=\"components-placeholder__learn-more\">\n\t\t\t\t<ExternalLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/support/article/embeds/'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Learn more about embeds' ) }\n\t\t\t\t</ExternalLink>\n\t\t\t</div>\n\t\t\t{ cannotEmbed && (\n\t\t\t\t<div className=\"components-placeholder__error\">\n\t\t\t\t\t<div className=\"components-placeholder__instructions\">\n\t\t\t\t\t\t{ __( 'Sorry, this content could not be embedded.' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button variant=\"secondary\" onClick={ tryAgain }>\n\t\t\t\t\t\t{ _x( 'Try again', 'button label' ) }\n\t\t\t\t\t</Button>{ ' ' }\n\t\t\t\t\t<Button variant=\"secondary\" onClick={ fallback }>\n\t\t\t\t\t\t{ _x( 'Convert to link', 'button label' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n};\n\nexport default EmbedPlaceholder;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/embed-placeholder.js"],"names":["EmbedPlaceholder","icon","label","value","onSubmit","onChange","cannotEmbed","fallback","tryAgain"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKA,MAAMA,gBAAgB,GAAG,QASlB;AAAA,MAToB;AAC1BC,IAAAA,IAD0B;AAE1BC,IAAAA,KAF0B;AAG1BC,IAAAA,KAH0B;AAI1BC,IAAAA,QAJ0B;AAK1BC,IAAAA,QAL0B;AAM1BC,IAAAA,WAN0B;AAO1BC,IAAAA,QAP0B;AAQ1BC,IAAAA;AAR0B,GASpB;AACN,SACC,4BAAC,uBAAD;AACC,IAAA,IAAI,EAAG,4BAAC,sBAAD;AAAW,MAAA,IAAI,EAAGP,IAAlB;AAAyB,MAAA,UAAU;AAAnC,MADR;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,SAAS,EAAC,gBAHX;AAIC,IAAA,YAAY,EAAG,cACd,+DADc;AAJhB,KAQC;AAAM,IAAA,QAAQ,EAAGE;AAAjB,KACC;AACC,IAAA,IAAI,EAAC,KADN;AAEC,IAAA,KAAK,EAAGD,KAAK,IAAI,EAFlB;AAGC,IAAA,SAAS,EAAC,+BAHX;AAIC,kBAAaD,KAJd;AAKC,IAAA,WAAW,EAAG,cAAI,0BAAJ,CALf;AAMC,IAAA,QAAQ,EAAGG;AANZ,IADD,EASC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,IAAI,EAAC;AAA/B,KACG,cAAI,OAAJ,EAAa,cAAb,CADH,CATD,CARD,EAqBC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,wBAAD;AACC,IAAA,IAAI,EAAG,cACN,qDADM;AADR,KAKG,cAAI,yBAAJ,CALH,CADD,CArBD,EA8BGC,WAAW,IACZ;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,cAAI,4CAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,WAAhB;AAA4B,IAAA,OAAO,EAAGE;AAAtC,KACG,cAAI,WAAJ,EAAiB,cAAjB,CADH,CAJD,EAMY,GANZ,EAOC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,WAAhB;AAA4B,IAAA,OAAO,EAAGD;AAAtC,KACG,cAAI,iBAAJ,EAAuB,cAAvB,CADH,CAPD,CA/BF,CADD;AA8CA,CAxDD;;eA0DeP,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, Placeholder, ExternalLink } from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\n\nconst EmbedPlaceholder = ( {\n\ticon,\n\tlabel,\n\tvalue,\n\tonSubmit,\n\tonChange,\n\tcannotEmbed,\n\tfallback,\n\ttryAgain,\n} ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\tlabel={ label }\n\t\t\tclassName=\"wp-block-embed\"\n\t\t\tinstructions={ __(\n\t\t\t\t'Paste a link to the content you want to display on your site.'\n\t\t\t) }\n\t\t>\n\t\t\t<form onSubmit={ onSubmit }>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"url\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t{ _x( 'Embed', 'button label' ) }\n\t\t\t\t</Button>\n\t\t\t</form>\n\t\t\t<div className=\"components-placeholder__learn-more\">\n\t\t\t\t<ExternalLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/documentation/article/embeds/'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Learn more about embeds' ) }\n\t\t\t\t</ExternalLink>\n\t\t\t</div>\n\t\t\t{ cannotEmbed && (\n\t\t\t\t<div className=\"components-placeholder__error\">\n\t\t\t\t\t<div className=\"components-placeholder__instructions\">\n\t\t\t\t\t\t{ __( 'Sorry, this content could not be embedded.' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button variant=\"secondary\" onClick={ tryAgain }>\n\t\t\t\t\t\t{ _x( 'Try again', 'button label' ) }\n\t\t\t\t\t</Button>{ ' ' }\n\t\t\t\t\t<Button variant=\"secondary\" onClick={ fallback }>\n\t\t\t\t\t\t{ _x( 'Convert to link', 'button label' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n};\n\nexport default EmbedPlaceholder;\n"]}
@@ -67,7 +67,10 @@ const metadata = {
67
67
  }
68
68
  },
69
69
  supports: {
70
- align: true
70
+ align: true,
71
+ spacing: {
72
+ margin: true
73
+ }
71
74
  },
72
75
  editorStyle: "wp-block-embed-editor",
73
76
  style: "wp-block-embed"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/index.js"],"names":["name","metadata","settings","icon","embedContentIcon","edit","save","transforms","variations","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAVA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAEC,uBADiB;AAEvBC,EAAAA,IAAI,EAAJA,aAFuB;AAGvBC,EAAAA,IAAI,EAAJA,aAHuB;AAIvBC,EAAAA,UAAU,EAAVA,mBAJuB;AAKvBC,EAAAA,UAAU,EAAVA,mBALuB;AAMvBC,EAAAA,UAAU,EAAVA;AANuB,CAAjB;;;AASA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEV,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport transforms from './transforms';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport { embedContentIcon } from './icons';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: embedContentIcon,\n\tedit,\n\tsave,\n\ttransforms,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/index.js"],"names":["name","metadata","settings","icon","embedContentIcon","edit","save","transforms","variations","deprecated","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAVA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAEC,uBADiB;AAEvBC,EAAAA,IAAI,EAAJA,aAFuB;AAGvBC,EAAAA,IAAI,EAAJA,aAHuB;AAIvBC,EAAAA,UAAU,EAAVA,mBAJuB;AAKvBC,EAAAA,UAAU,EAAVA,mBALuB;AAMvBC,EAAAA,UAAU,EAAVA;AANuB,CAAjB;;;AASA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEV,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport transforms from './transforms';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport { embedContentIcon } from './icons';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: embedContentIcon,\n\tedit,\n\tsave,\n\ttransforms,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -57,7 +57,10 @@ const metadata = {
57
57
  }
58
58
  },
59
59
  supports: {
60
- align: true
60
+ align: true,
61
+ spacing: {
62
+ margin: true
63
+ }
61
64
  },
62
65
  editorStyle: "wp-block-embed-editor",
63
66
  style: "wp-block-embed"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/transforms.js"],"names":["name","EMBED_BLOCK","metadata","transforms","from","type","isMatch","node","nodeName","test","textContent","match","length","transform","url","trim","to","blocks","caption","value","content"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM;AAAEA,EAAAA,IAAI,EAAEC;AAAR,IAAwBC,QAA9B;AAEA;AACA;AACA;;AACA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,KADP;AAECC,IAAAA,OAAO,EAAIC,IAAF;AAAA;;AAAA,aACRA,IAAI,CAACC,QAAL,KAAkB,GAAlB,IACA,4BAA4BC,IAA5B,CAAkCF,IAAI,CAACG,WAAvC,CADA,IAEA,sBAAAH,IAAI,CAACG,WAAL,iGAAkBC,KAAlB,CAAyB,SAAzB,iFAAsCC,MAAtC,MAAiD,CAHzC;AAAA,KAFV;AAMCC,IAAAA,SAAS,EAAIN,IAAF,IAAY;AACtB,aAAO,yBAAaN,WAAb,EAA0B;AAChCa,QAAAA,GAAG,EAAEP,IAAI,CAACG,WAAL,CAAiBK,IAAjB;AAD2B,OAA1B,CAAP;AAGA;AAVF,GADK,CADY;AAelBC,EAAAA,EAAE,EAAE,CACH;AACCX,IAAAA,IAAI,EAAE,OADP;AAECY,IAAAA,MAAM,EAAE,CAAE,gBAAF,CAFT;AAGCX,IAAAA,OAAO,EAAE;AAAA,UAAE;AAAEQ,QAAAA;AAAF,OAAF;AAAA,aAAe,CAAC,CAAEA,GAAlB;AAAA,KAHV;AAICD,IAAAA,SAAS,EAAE,SAAwB;AAAA,UAAtB;AAAEC,QAAAA,GAAF;AAAOI,QAAAA;AAAP,OAAsB;AAClC,UAAIC,KAAK,GAAI,YAAYL,GAAK,KAAKA,GAAK,MAAxC;;AACA,UAAKI,OAAL,aAAKA,OAAL,eAAKA,OAAO,CAAEH,IAAT,EAAL,EAAuB;AACtBI,QAAAA,KAAK,IAAK,SAASD,OAAS,EAA5B;AACA;;AACD,aAAO,yBAAa,gBAAb,EAA+B;AACrCE,QAAAA,OAAO,EAAED;AAD4B,OAA/B,CAAP;AAGA;AAZF,GADG;AAfc,CAAnB;eAiCehB,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { name: EMBED_BLOCK } = metadata;\n\n/**\n * Default transforms for generic embeds.\n */\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\t/^\\s*(https?:\\/\\/\\S+)\\s*$/i.test( node.textContent ) &&\n\t\t\t\tnode.textContent?.match( /https/gi )?.length === 1,\n\t\t\ttransform: ( node ) => {\n\t\t\t\treturn createBlock( EMBED_BLOCK, {\n\t\t\t\t\turl: node.textContent.trim(),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\tisMatch: ( { url } ) => !! url,\n\t\t\ttransform: ( { url, caption } ) => {\n\t\t\t\tlet value = `<a href=\"${ url }\">${ url }</a>`;\n\t\t\t\tif ( caption?.trim() ) {\n\t\t\t\t\tvalue += `<br />${ caption }`;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: value,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/transforms.js"],"names":["name","EMBED_BLOCK","metadata","transforms","from","type","isMatch","node","nodeName","test","textContent","match","length","transform","url","trim","to","blocks","caption","value","content"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM;AAAEA,EAAAA,IAAI,EAAEC;AAAR,IAAwBC,QAA9B;AAEA;AACA;AACA;;AACA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,KADP;AAECC,IAAAA,OAAO,EAAIC,IAAF;AAAA;;AAAA,aACRA,IAAI,CAACC,QAAL,KAAkB,GAAlB,IACA,4BAA4BC,IAA5B,CAAkCF,IAAI,CAACG,WAAvC,CADA,IAEA,sBAAAH,IAAI,CAACG,WAAL,iGAAkBC,KAAlB,CAAyB,SAAzB,iFAAsCC,MAAtC,MAAiD,CAHzC;AAAA,KAFV;AAMCC,IAAAA,SAAS,EAAIN,IAAF,IAAY;AACtB,aAAO,yBAAaN,WAAb,EAA0B;AAChCa,QAAAA,GAAG,EAAEP,IAAI,CAACG,WAAL,CAAiBK,IAAjB;AAD2B,OAA1B,CAAP;AAGA;AAVF,GADK,CADY;AAelBC,EAAAA,EAAE,EAAE,CACH;AACCX,IAAAA,IAAI,EAAE,OADP;AAECY,IAAAA,MAAM,EAAE,CAAE,gBAAF,CAFT;AAGCX,IAAAA,OAAO,EAAE;AAAA,UAAE;AAAEQ,QAAAA;AAAF,OAAF;AAAA,aAAe,CAAC,CAAEA,GAAlB;AAAA,KAHV;AAICD,IAAAA,SAAS,EAAE,SAAwB;AAAA,UAAtB;AAAEC,QAAAA,GAAF;AAAOI,QAAAA;AAAP,OAAsB;AAClC,UAAIC,KAAK,GAAI,YAAYL,GAAK,KAAKA,GAAK,MAAxC;;AACA,UAAKI,OAAL,aAAKA,OAAL,eAAKA,OAAO,CAAEH,IAAT,EAAL,EAAuB;AACtBI,QAAAA,KAAK,IAAK,SAASD,OAAS,EAA5B;AACA;;AACD,aAAO,yBAAa,gBAAb,EAA+B;AACrCE,QAAAA,OAAO,EAAED;AAD4B,OAA/B,CAAP;AAGA;AAZF,GADG;AAfc,CAAnB;eAiCehB,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { name: EMBED_BLOCK } = metadata;\n\n/**\n * Default transforms for generic embeds.\n */\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\t/^\\s*(https?:\\/\\/\\S+)\\s*$/i.test( node.textContent ) &&\n\t\t\t\tnode.textContent?.match( /https/gi )?.length === 1,\n\t\t\ttransform: ( node ) => {\n\t\t\t\treturn createBlock( EMBED_BLOCK, {\n\t\t\t\t\turl: node.textContent.trim(),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\tisMatch: ( { url } ) => !! url,\n\t\t\ttransform: ( { url, caption } ) => {\n\t\t\t\tlet value = `<a href=\"${ url }\">${ url }</a>`;\n\t\t\t\tif ( caption?.trim() ) {\n\t\t\t\t\tvalue += `<br />${ caption }`;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: value,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -81,7 +81,10 @@ const metadata = {
81
81
  }
82
82
  },
83
83
  supports: {
84
- align: true
84
+ align: true,
85
+ spacing: {
86
+ margin: true
87
+ }
85
88
  },
86
89
  editorStyle: "wp-block-embed-editor",
87
90
  style: "wp-block-embed"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/util.js"],"names":["name","DEFAULT_EMBED_BLOCK","metadata","getEmbedInfoByProvider","provider","find","matchesPatterns","url","patterns","some","pattern","match","findMoreSuitableBlock","isFromWordPress","html","includes","getPhotoHtml","photo","imageUrl","thumbnail_url","photoPreview","title","createUpgradedEmbedBlock","props","attributesFromPreview","preview","attributes","providerNameSlug","type","restAttributes","matchedBlock","isCurrentBlockWP","WP_EMBED_TYPE","shouldCreateNewBlock","wpVariation","hasAspectRatioClass","existingClassNames","ASPECT_RATIOS","className","removeAspectRatioClasses","aspectRatioClassNames","reduce","accumulator","getClassNames","allowResponsive","previewDocument","document","implementation","createHTMLDocument","body","innerHTML","iframe","querySelector","height","width","aspectRatio","toFixed","ratioIndex","length","potentialRatio","ratio","ratioDiff","fallback","onReplace","link","content","getAttributesFromPreview","currentClassNames","isResponsive","provider_name","providerName","toLowerCase","getMergedAttributesWithPreview","currentAttributes"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { ASPECT_RATIOS, WP_EMBED_TYPE } from './constants';\n\n/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport classnames from 'classnames/dedupe';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { renderToString } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tgetBlockType,\n\tgetBlockVariations,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { name: DEFAULT_EMBED_BLOCK } = metadata;\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * Returns the embed block's information by matching the provided service provider\n *\n * @param {string} provider The embed block's provider\n * @return {WPBlockVariation} The embed block's information\n */\nexport const getEmbedInfoByProvider = ( provider ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === provider\n\t);\n\n/**\n * Returns true if any of the regular expressions match the URL.\n *\n * @param {string} url The URL to test.\n * @param {Array} patterns The list of regular expressions to test agains.\n * @return {boolean} True if any of the regular expressions match the URL.\n */\nexport const matchesPatterns = ( url, patterns = [] ) =>\n\tpatterns.some( ( pattern ) => url.match( pattern ) );\n\n/**\n * Finds the block variation that should be used for the URL,\n * based on the provided URL and the variation's patterns.\n *\n * @param {string} url The URL to test.\n * @return {WPBlockVariation} The block variation that should be used for this URL\n */\nexport const findMoreSuitableBlock = ( url ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find( ( { patterns } ) =>\n\t\tmatchesPatterns( url, patterns )\n\t);\n\nexport const isFromWordPress = ( html ) =>\n\thtml && html.includes( 'class=\"wp-embedded-content\"' );\n\nexport const getPhotoHtml = ( photo ) => {\n\t// If full image url not found use thumbnail.\n\tconst imageUrl = photo.url || photo.thumbnail_url;\n\n\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t// actually the full size photo.\n\tconst photoPreview = (\n\t\t<p>\n\t\t\t<img src={ imageUrl } alt={ photo.title } width=\"100%\" />\n\t\t</p>\n\t);\n\treturn renderToString( photoPreview );\n};\n\n/**\n * Creates a more suitable embed block based on the passed in props\n * and attributes generated from an embed block's preview.\n *\n * We require `attributesFromPreview` to be generated from the latest attributes\n * and preview, and because of the way the react lifecycle operates, we can't\n * guarantee that the attributes contained in the block's props are the latest\n * versions, so we require that these are generated separately.\n * See `getAttributesFromPreview` in the generated embed edit component.\n *\n * @param {Object} props The block's props.\n * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.\n * @return {Object|undefined} A more suitable embed block if one exists.\n */\nexport const createUpgradedEmbedBlock = (\n\tprops,\n\tattributesFromPreview = {}\n) => {\n\tconst { preview, attributes = {} } = props;\n\tconst { url, providerNameSlug, type, ...restAttributes } = attributes;\n\n\tif ( ! url || ! getBlockType( DEFAULT_EMBED_BLOCK ) ) return;\n\n\tconst matchedBlock = findMoreSuitableBlock( url );\n\n\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\tconst isCurrentBlockWP =\n\t\tproviderNameSlug === 'wordpress' || type === WP_EMBED_TYPE;\n\t// If current block is not WordPress and a more suitable block found\n\t// that is different from the current one, create the new matched block.\n\tconst shouldCreateNewBlock =\n\t\t! isCurrentBlockWP &&\n\t\tmatchedBlock &&\n\t\t( matchedBlock.attributes.providerNameSlug !== providerNameSlug ||\n\t\t\t! providerNameSlug );\n\tif ( shouldCreateNewBlock ) {\n\t\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\t\turl,\n\t\t\t...restAttributes,\n\t\t\t...matchedBlock.attributes,\n\t\t} );\n\t}\n\n\tconst wpVariation = getBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === 'wordpress'\n\t);\n\n\t// We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\tif (\n\t\t! wpVariation ||\n\t\t! preview ||\n\t\t! isFromWordPress( preview.html ) ||\n\t\tisCurrentBlockWP\n\t) {\n\t\treturn;\n\t}\n\n\t// This is not the WordPress embed block so transform it into one.\n\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\turl,\n\t\t...wpVariation.attributes,\n\t\t// By now we have the preview, but when the new block first renders, it\n\t\t// won't have had all the attributes set, and so won't get the correct\n\t\t// type and it won't render correctly. So, we pass through the current attributes\n\t\t// here so that the initial render works when we switch to the WordPress\n\t\t// block. This only affects the WordPress block because it can't be\n\t\t// rendered in the usual Sandbox (it has a sandbox of its own) and it\n\t\t// relies on the preview to set the correct render type.\n\t\t...attributesFromPreview,\n\t} );\n};\n\n/**\n * Determine if the block already has an aspect ratio class applied.\n *\n * @param {string} existingClassNames Existing block classes.\n * @return {boolean} True or false if the classnames contain an aspect ratio class.\n */\nexport const hasAspectRatioClass = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\treturn false;\n\t}\n\treturn ASPECT_RATIOS.some( ( { className } ) =>\n\t\texistingClassNames.includes( className )\n\t);\n};\n\n/**\n * Removes all previously set aspect ratio related classes and return the rest\n * existing class names.\n *\n * @param {string} existingClassNames Any existing class names.\n * @return {string} The class names without any aspect ratio related class.\n */\nexport const removeAspectRatioClasses = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\t// Avoids extraneous work and also, by returning the same value as\n\t\t// received, ensures the post is not dirtied by a change of the block\n\t\t// attribute from `undefined` to an emtpy string.\n\t\treturn existingClassNames;\n\t}\n\tconst aspectRatioClassNames = ASPECT_RATIOS.reduce(\n\t\t( accumulator, { className } ) => {\n\t\t\taccumulator[ className ] = false;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ 'wp-has-aspect-ratio': false }\n\t);\n\treturn classnames( existingClassNames, aspectRatioClassNames );\n};\n\n/**\n * Returns class names with any relevant responsive aspect ratio names.\n *\n * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n * @param {string} existingClassNames Any existing class names.\n * @param {boolean} allowResponsive If the responsive class names should be added, or removed.\n * @return {string} Deduped class names.\n */\nexport function getClassNames(\n\thtml,\n\texistingClassNames,\n\tallowResponsive = true\n) {\n\tif ( ! allowResponsive ) {\n\t\treturn removeAspectRatioClasses( existingClassNames );\n\t}\n\n\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\tpreviewDocument.body.innerHTML = html;\n\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t// If we have a fixed aspect iframe, and it's a responsive embed block.\n\tif ( iframe && iframe.height && iframe.width ) {\n\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\tfor (\n\t\t\tlet ratioIndex = 0;\n\t\t\tratioIndex < ASPECT_RATIOS.length;\n\t\t\tratioIndex++\n\t\t) {\n\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\t// Evaluate the difference between actual aspect ratio and closest match.\n\t\t\t\t// If the difference is too big, do not scale the embed according to aspect ratio.\n\t\t\t\tconst ratioDiff = aspectRatio - potentialRatio.ratio;\n\t\t\t\tif ( ratioDiff > 0.1 ) {\n\t\t\t\t\t// No close aspect ratio match found.\n\t\t\t\t\treturn removeAspectRatioClasses( existingClassNames );\n\t\t\t\t}\n\t\t\t\t// Close aspect ratio match found.\n\t\t\t\treturn classnames(\n\t\t\t\t\tremoveAspectRatioClasses( existingClassNames ),\n\t\t\t\t\tpotentialRatio.className,\n\t\t\t\t\t'wp-has-aspect-ratio'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn existingClassNames;\n}\n\n/**\n * Fallback behaviour for unembeddable URLs.\n * Creates a paragraph block containing a link to the URL, and calls `onReplace`.\n *\n * @param {string} url The URL that could not be embedded.\n * @param {Function} onReplace Function to call with the created fallback block.\n */\nexport function fallback( url, onReplace ) {\n\tconst link = <a href={ url }>{ url }</a>;\n\tonReplace(\n\t\tcreateBlock( 'core/paragraph', { content: renderToString( link ) } )\n\t);\n}\n\n/***\n * Gets block attributes based on the preview and responsive state.\n *\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {Object} currentClassNames The block's current class names.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @param {boolean} allowResponsive Apply responsive classes to fixed size content.\n * @return {Object} Attributes and values.\n */\nexport const getAttributesFromPreview = memoize(\n\t(\n\t\tpreview,\n\t\ttitle,\n\t\tcurrentClassNames,\n\t\tisResponsive,\n\t\tallowResponsive = true\n\t) => {\n\t\tif ( ! preview ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst attributes = {};\n\t\t// Some plugins only return HTML with no type info, so default this to 'rich'.\n\t\tlet { type = 'rich' } = preview;\n\t\t// If we got a provider name from the API, use it for the slug, otherwise we use the title,\n\t\t// because not all embed code gives us a provider name.\n\t\tconst { html, provider_name: providerName } = preview;\n\t\tconst providerNameSlug = kebabCase(\n\t\t\t( providerName || title ).toLowerCase()\n\t\t);\n\n\t\tif ( isFromWordPress( html ) ) {\n\t\t\ttype = WP_EMBED_TYPE;\n\t\t}\n\n\t\tif ( html || 'photo' === type ) {\n\t\t\tattributes.type = type;\n\t\t\tattributes.providerNameSlug = providerNameSlug;\n\t\t}\n\n\t\t// Aspect ratio classes are removed when the embed URL is updated.\n\t\t// If the embed already has an aspect ratio class, that means the URL has not changed.\n\t\t// Which also means no need to regenerate it with getClassNames.\n\t\tif ( hasAspectRatioClass( currentClassNames ) ) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\tattributes.className = getClassNames(\n\t\t\thtml,\n\t\t\tcurrentClassNames,\n\t\t\tisResponsive && allowResponsive\n\t\t);\n\n\t\treturn attributes;\n\t}\n);\n\n/**\n * Returns the attributes derived from the preview, merged with the current attributes.\n *\n * @param {Object} currentAttributes The current attributes of the block.\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @return {Object} Merged attributes.\n */\nexport const getMergedAttributesWithPreview = (\n\tcurrentAttributes,\n\tpreview,\n\ttitle,\n\tisResponsive\n) => {\n\tconst { allowResponsive, className } = currentAttributes;\n\n\treturn {\n\t\t...currentAttributes,\n\t\t...getAttributesFromPreview(\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tclassName,\n\t\t\tisResponsive,\n\t\t\tallowResponsive\n\t\t),\n\t};\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/util.js"],"names":["name","DEFAULT_EMBED_BLOCK","metadata","getEmbedInfoByProvider","provider","find","matchesPatterns","url","patterns","some","pattern","match","findMoreSuitableBlock","isFromWordPress","html","includes","getPhotoHtml","photo","imageUrl","thumbnail_url","photoPreview","title","createUpgradedEmbedBlock","props","attributesFromPreview","preview","attributes","providerNameSlug","type","restAttributes","matchedBlock","isCurrentBlockWP","WP_EMBED_TYPE","shouldCreateNewBlock","wpVariation","hasAspectRatioClass","existingClassNames","ASPECT_RATIOS","className","removeAspectRatioClasses","aspectRatioClassNames","reduce","accumulator","getClassNames","allowResponsive","previewDocument","document","implementation","createHTMLDocument","body","innerHTML","iframe","querySelector","height","width","aspectRatio","toFixed","ratioIndex","length","potentialRatio","ratio","ratioDiff","fallback","onReplace","link","content","getAttributesFromPreview","currentClassNames","isResponsive","provider_name","providerName","toLowerCase","getMergedAttributesWithPreview","currentAttributes"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { ASPECT_RATIOS, WP_EMBED_TYPE } from './constants';\n\n/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport classnames from 'classnames/dedupe';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { renderToString } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tgetBlockType,\n\tgetBlockVariations,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { name: DEFAULT_EMBED_BLOCK } = metadata;\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * Returns the embed block's information by matching the provided service provider\n *\n * @param {string} provider The embed block's provider\n * @return {WPBlockVariation} The embed block's information\n */\nexport const getEmbedInfoByProvider = ( provider ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === provider\n\t);\n\n/**\n * Returns true if any of the regular expressions match the URL.\n *\n * @param {string} url The URL to test.\n * @param {Array} patterns The list of regular expressions to test agains.\n * @return {boolean} True if any of the regular expressions match the URL.\n */\nexport const matchesPatterns = ( url, patterns = [] ) =>\n\tpatterns.some( ( pattern ) => url.match( pattern ) );\n\n/**\n * Finds the block variation that should be used for the URL,\n * based on the provided URL and the variation's patterns.\n *\n * @param {string} url The URL to test.\n * @return {WPBlockVariation} The block variation that should be used for this URL\n */\nexport const findMoreSuitableBlock = ( url ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find( ( { patterns } ) =>\n\t\tmatchesPatterns( url, patterns )\n\t);\n\nexport const isFromWordPress = ( html ) =>\n\thtml && html.includes( 'class=\"wp-embedded-content\"' );\n\nexport const getPhotoHtml = ( photo ) => {\n\t// If full image url not found use thumbnail.\n\tconst imageUrl = photo.url || photo.thumbnail_url;\n\n\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t// actually the full size photo.\n\tconst photoPreview = (\n\t\t<p>\n\t\t\t<img src={ imageUrl } alt={ photo.title } width=\"100%\" />\n\t\t</p>\n\t);\n\treturn renderToString( photoPreview );\n};\n\n/**\n * Creates a more suitable embed block based on the passed in props\n * and attributes generated from an embed block's preview.\n *\n * We require `attributesFromPreview` to be generated from the latest attributes\n * and preview, and because of the way the react lifecycle operates, we can't\n * guarantee that the attributes contained in the block's props are the latest\n * versions, so we require that these are generated separately.\n * See `getAttributesFromPreview` in the generated embed edit component.\n *\n * @param {Object} props The block's props.\n * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.\n * @return {Object|undefined} A more suitable embed block if one exists.\n */\nexport const createUpgradedEmbedBlock = (\n\tprops,\n\tattributesFromPreview = {}\n) => {\n\tconst { preview, attributes = {} } = props;\n\tconst { url, providerNameSlug, type, ...restAttributes } = attributes;\n\n\tif ( ! url || ! getBlockType( DEFAULT_EMBED_BLOCK ) ) return;\n\n\tconst matchedBlock = findMoreSuitableBlock( url );\n\n\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\tconst isCurrentBlockWP =\n\t\tproviderNameSlug === 'wordpress' || type === WP_EMBED_TYPE;\n\t// If current block is not WordPress and a more suitable block found\n\t// that is different from the current one, create the new matched block.\n\tconst shouldCreateNewBlock =\n\t\t! isCurrentBlockWP &&\n\t\tmatchedBlock &&\n\t\t( matchedBlock.attributes.providerNameSlug !== providerNameSlug ||\n\t\t\t! providerNameSlug );\n\tif ( shouldCreateNewBlock ) {\n\t\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\t\turl,\n\t\t\t...restAttributes,\n\t\t\t...matchedBlock.attributes,\n\t\t} );\n\t}\n\n\tconst wpVariation = getBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === 'wordpress'\n\t);\n\n\t// We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\tif (\n\t\t! wpVariation ||\n\t\t! preview ||\n\t\t! isFromWordPress( preview.html ) ||\n\t\tisCurrentBlockWP\n\t) {\n\t\treturn;\n\t}\n\n\t// This is not the WordPress embed block so transform it into one.\n\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\turl,\n\t\t...wpVariation.attributes,\n\t\t// By now we have the preview, but when the new block first renders, it\n\t\t// won't have had all the attributes set, and so won't get the correct\n\t\t// type and it won't render correctly. So, we pass through the current attributes\n\t\t// here so that the initial render works when we switch to the WordPress\n\t\t// block. This only affects the WordPress block because it can't be\n\t\t// rendered in the usual Sandbox (it has a sandbox of its own) and it\n\t\t// relies on the preview to set the correct render type.\n\t\t...attributesFromPreview,\n\t} );\n};\n\n/**\n * Determine if the block already has an aspect ratio class applied.\n *\n * @param {string} existingClassNames Existing block classes.\n * @return {boolean} True or false if the classnames contain an aspect ratio class.\n */\nexport const hasAspectRatioClass = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\treturn false;\n\t}\n\treturn ASPECT_RATIOS.some( ( { className } ) =>\n\t\texistingClassNames.includes( className )\n\t);\n};\n\n/**\n * Removes all previously set aspect ratio related classes and return the rest\n * existing class names.\n *\n * @param {string} existingClassNames Any existing class names.\n * @return {string} The class names without any aspect ratio related class.\n */\nexport const removeAspectRatioClasses = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\t// Avoids extraneous work and also, by returning the same value as\n\t\t// received, ensures the post is not dirtied by a change of the block\n\t\t// attribute from `undefined` to an emtpy string.\n\t\treturn existingClassNames;\n\t}\n\tconst aspectRatioClassNames = ASPECT_RATIOS.reduce(\n\t\t( accumulator, { className } ) => {\n\t\t\taccumulator[ className ] = false;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ 'wp-has-aspect-ratio': false }\n\t);\n\treturn classnames( existingClassNames, aspectRatioClassNames );\n};\n\n/**\n * Returns class names with any relevant responsive aspect ratio names.\n *\n * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n * @param {string} existingClassNames Any existing class names.\n * @param {boolean} allowResponsive If the responsive class names should be added, or removed.\n * @return {string} Deduped class names.\n */\nexport function getClassNames(\n\thtml,\n\texistingClassNames,\n\tallowResponsive = true\n) {\n\tif ( ! allowResponsive ) {\n\t\treturn removeAspectRatioClasses( existingClassNames );\n\t}\n\n\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\tpreviewDocument.body.innerHTML = html;\n\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t// If we have a fixed aspect iframe, and it's a responsive embed block.\n\tif ( iframe && iframe.height && iframe.width ) {\n\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\tfor (\n\t\t\tlet ratioIndex = 0;\n\t\t\tratioIndex < ASPECT_RATIOS.length;\n\t\t\tratioIndex++\n\t\t) {\n\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\t// Evaluate the difference between actual aspect ratio and closest match.\n\t\t\t\t// If the difference is too big, do not scale the embed according to aspect ratio.\n\t\t\t\tconst ratioDiff = aspectRatio - potentialRatio.ratio;\n\t\t\t\tif ( ratioDiff > 0.1 ) {\n\t\t\t\t\t// No close aspect ratio match found.\n\t\t\t\t\treturn removeAspectRatioClasses( existingClassNames );\n\t\t\t\t}\n\t\t\t\t// Close aspect ratio match found.\n\t\t\t\treturn classnames(\n\t\t\t\t\tremoveAspectRatioClasses( existingClassNames ),\n\t\t\t\t\tpotentialRatio.className,\n\t\t\t\t\t'wp-has-aspect-ratio'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn existingClassNames;\n}\n\n/**\n * Fallback behaviour for unembeddable URLs.\n * Creates a paragraph block containing a link to the URL, and calls `onReplace`.\n *\n * @param {string} url The URL that could not be embedded.\n * @param {Function} onReplace Function to call with the created fallback block.\n */\nexport function fallback( url, onReplace ) {\n\tconst link = <a href={ url }>{ url }</a>;\n\tonReplace(\n\t\tcreateBlock( 'core/paragraph', { content: renderToString( link ) } )\n\t);\n}\n\n/***\n * Gets block attributes based on the preview and responsive state.\n *\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {Object} currentClassNames The block's current class names.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @param {boolean} allowResponsive Apply responsive classes to fixed size content.\n * @return {Object} Attributes and values.\n */\nexport const getAttributesFromPreview = memoize(\n\t(\n\t\tpreview,\n\t\ttitle,\n\t\tcurrentClassNames,\n\t\tisResponsive,\n\t\tallowResponsive = true\n\t) => {\n\t\tif ( ! preview ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst attributes = {};\n\t\t// Some plugins only return HTML with no type info, so default this to 'rich'.\n\t\tlet { type = 'rich' } = preview;\n\t\t// If we got a provider name from the API, use it for the slug, otherwise we use the title,\n\t\t// because not all embed code gives us a provider name.\n\t\tconst { html, provider_name: providerName } = preview;\n\t\tconst providerNameSlug = kebabCase(\n\t\t\t( providerName || title ).toLowerCase()\n\t\t);\n\n\t\tif ( isFromWordPress( html ) ) {\n\t\t\ttype = WP_EMBED_TYPE;\n\t\t}\n\n\t\tif ( html || 'photo' === type ) {\n\t\t\tattributes.type = type;\n\t\t\tattributes.providerNameSlug = providerNameSlug;\n\t\t}\n\n\t\t// Aspect ratio classes are removed when the embed URL is updated.\n\t\t// If the embed already has an aspect ratio class, that means the URL has not changed.\n\t\t// Which also means no need to regenerate it with getClassNames.\n\t\tif ( hasAspectRatioClass( currentClassNames ) ) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\tattributes.className = getClassNames(\n\t\t\thtml,\n\t\t\tcurrentClassNames,\n\t\t\tisResponsive && allowResponsive\n\t\t);\n\n\t\treturn attributes;\n\t}\n);\n\n/**\n * Returns the attributes derived from the preview, merged with the current attributes.\n *\n * @param {Object} currentAttributes The current attributes of the block.\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @return {Object} Merged attributes.\n */\nexport const getMergedAttributesWithPreview = (\n\tcurrentAttributes,\n\tpreview,\n\ttitle,\n\tisResponsive\n) => {\n\tconst { allowResponsive, className } = currentAttributes;\n\n\treturn {\n\t\t...currentAttributes,\n\t\t...getAttributesFromPreview(\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tclassName,\n\t\t\tisResponsive,\n\t\t\tallowResponsive\n\t\t),\n\t};\n};\n"]}
@@ -431,7 +431,6 @@ class FileEdit extends _element.Component {
431
431
  __unstableMobileNoFocusOnMount: true,
432
432
  onChange: this.onChangeFileName,
433
433
  placeholder: (0, _i18n.__)('File name'),
434
- rootTagsToEliminate: ['p'],
435
434
  tagName: "p",
436
435
  underlineColorAndroid: "transparent",
437
436
  value: fileName,
@@ -451,7 +450,6 @@ class FileEdit extends _element.Component {
451
450
  }, (0, _element.createElement)(_blockEditor.RichText, {
452
451
  withoutInteractiveFormatting: true,
453
452
  __unstableMobileNoFocusOnMount: true,
454
- rootTagsToEliminate: ['p'],
455
453
  tagName: "p",
456
454
  textAlign: "center",
457
455
  minWidth: minWidth,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/file/edit.native.js"],"names":["URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","Component","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","undefined","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","Clipboard","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","replace","link","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","styles","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","external","button","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","placeholder","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","container","errorContainer","warning","buttonText","color","placeholderTextColor","render","wasBlockJustInserted","icon","instructions","onFocus","MEDIA_TYPE_ANY","select","clientId","isEditorSidebarOpened","isNotFileHref","coreStore","getMedia","blockEditorStore","dispatch","openGeneralSidebar","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( downloadButtonText === undefined || downloadButtonText === '' ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\trootTagsToEliminate={ [ 'p' ] }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\trootTagsToEliminate={ [ 'p' ] }\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'CHOOSE A FILE' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/file/edit.native.js"],"names":["URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","Component","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","undefined","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","Clipboard","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","replace","link","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","styles","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","external","button","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","placeholder","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","container","errorContainer","warning","buttonText","color","placeholderTextColor","render","wasBlockJustInserted","icon","instructions","onFocus","MEDIA_TYPE_ANY","select","clientId","isEditorSidebarOpened","isNotFileHref","coreStore","getMedia","blockEditorStore","dispatch","openGeneralSidebar","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( downloadButtonText === undefined || downloadButtonText === '' ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'CHOOSE A FILE' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"]}
@@ -22,7 +22,8 @@ const EMPTY_IMAGE_MEDIA = [];
22
22
  * @return {Array} An array of media info options for each gallery image.
23
23
  */
24
24
 
25
- function useGetMedia(innerBlockImages) {
25
+ function useGetMedia() {
26
+ let innerBlockImages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
26
27
  return (0, _data.useSelect)(select => {
27
28
  var _select$getMediaItems;
28
29