@wordpress/block-library 7.0.2 → 7.1.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 (447) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +4 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js +4 -4
  5. package/build/audio/edit.native.js.map +1 -1
  6. package/build/audio/transforms.js +1 -1
  7. package/build/audio/transforms.js.map +1 -1
  8. package/build/block/edit.js +3 -9
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +3 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/button/edit.native.js +2 -2
  13. package/build/button/edit.native.js.map +1 -1
  14. package/build/buttons/transforms.js +8 -8
  15. package/build/buttons/transforms.js.map +1 -1
  16. package/build/categories/edit.js +15 -26
  17. package/build/categories/edit.js.map +1 -1
  18. package/build/code/index.js +0 -1
  19. package/build/code/index.js.map +1 -1
  20. package/build/columns/columnCalculations.native.js +1 -1
  21. package/build/columns/columnCalculations.native.js.map +1 -1
  22. package/build/columns/edit.js +1 -1
  23. package/build/columns/edit.js.map +1 -1
  24. package/build/columns/edit.native.js +3 -3
  25. package/build/columns/edit.native.js.map +1 -1
  26. package/build/cover/controls.native.js +5 -5
  27. package/build/cover/controls.native.js.map +1 -1
  28. package/build/cover/deprecated.js +188 -17
  29. package/build/cover/deprecated.js.map +1 -1
  30. package/build/cover/edit.js +8 -11
  31. package/build/cover/edit.js.map +1 -1
  32. package/build/cover/edit.native.js +8 -8
  33. package/build/cover/edit.native.js.map +1 -1
  34. package/build/cover/overlay-color-settings.native.js +3 -3
  35. package/build/cover/overlay-color-settings.native.js.map +1 -1
  36. package/build/cover/save.js +1 -1
  37. package/build/cover/save.js.map +1 -1
  38. package/build/cover/shared.js +2 -2
  39. package/build/cover/shared.js.map +1 -1
  40. package/build/embed/edit.js +1 -1
  41. package/build/embed/edit.js.map +1 -1
  42. package/build/embed/edit.native.js +1 -1
  43. package/build/embed/edit.native.js.map +1 -1
  44. package/build/embed/util.js +2 -2
  45. package/build/embed/util.js.map +1 -1
  46. package/build/embed/variations.js +1 -1
  47. package/build/embed/variations.js.map +1 -1
  48. package/build/file/edit.js +20 -17
  49. package/build/file/edit.js.map +1 -1
  50. package/build/file/edit.native.js +1 -1
  51. package/build/file/edit.native.js.map +1 -1
  52. package/build/file/save.js +7 -3
  53. package/build/file/save.js.map +1 -1
  54. package/build/freeform/edit.js +2 -2
  55. package/build/freeform/edit.js.map +1 -1
  56. package/build/gallery/edit.js +1 -1
  57. package/build/gallery/edit.js.map +1 -1
  58. package/build/gallery/gallery.native.js +1 -1
  59. package/build/gallery/gallery.native.js.map +1 -1
  60. package/build/gallery/v1/edit.js +3 -3
  61. package/build/gallery/v1/edit.js.map +1 -1
  62. package/build/gallery/v1/gallery-image.native.js +3 -3
  63. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  64. package/build/gallery/v1/gallery.native.js +2 -2
  65. package/build/gallery/v1/gallery.native.js.map +1 -1
  66. package/build/group/index.js +3 -37
  67. package/build/group/index.js.map +1 -1
  68. package/build/group/transforms.js +45 -0
  69. package/build/group/transforms.js.map +1 -0
  70. package/build/home-link/edit.js +1 -1
  71. package/build/home-link/edit.js.map +1 -1
  72. package/build/image/edit.js +7 -6
  73. package/build/image/edit.js.map +1 -1
  74. package/build/image/edit.native.js +25 -10
  75. package/build/image/edit.native.js.map +1 -1
  76. package/build/image/transforms.js +1 -1
  77. package/build/image/transforms.js.map +1 -1
  78. package/build/index.js +3 -4
  79. package/build/index.js.map +1 -1
  80. package/build/index.native.js +2 -2
  81. package/build/index.native.js.map +1 -1
  82. package/build/media-text/edit.js +21 -2
  83. package/build/media-text/edit.js.map +1 -1
  84. package/build/media-text/edit.native.js +2 -2
  85. package/build/media-text/edit.native.js.map +1 -1
  86. package/build/media-text/media-container.native.js +1 -1
  87. package/build/media-text/media-container.native.js.map +1 -1
  88. package/build/missing/edit.native.js +1 -1
  89. package/build/missing/edit.native.js.map +1 -1
  90. package/build/more/transforms.js +2 -2
  91. package/build/more/transforms.js.map +1 -1
  92. package/build/navigation/edit/index.js +134 -60
  93. package/build/navigation/edit/index.js.map +1 -1
  94. package/build/navigation/edit/inner-blocks.js +8 -3
  95. package/build/navigation/edit/inner-blocks.js.map +1 -1
  96. package/build/navigation/edit/navigation-menu-selector.js +66 -53
  97. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  98. package/build/navigation/edit/placeholder/index.js +31 -46
  99. package/build/navigation/edit/placeholder/index.js.map +1 -1
  100. package/build/navigation/edit/placeholder/placeholder-preview.js +3 -12
  101. package/build/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
  102. package/build/navigation/edit/unsaved-inner-blocks.js +3 -1
  103. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  104. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +120 -0
  105. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
  106. package/build/navigation/edit/use-create-navigation-menu.js +53 -4
  107. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  108. package/build/navigation/edit/use-navigation-notice.js +3 -3
  109. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  110. package/build/navigation/menu-items-to-blocks.js +1 -1
  111. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  112. package/build/navigation/use-navigation-entities.js +25 -49
  113. package/build/navigation/use-navigation-entities.js.map +1 -1
  114. package/build/navigation/use-navigation-menu.js +2 -0
  115. package/build/navigation/use-navigation-menu.js.map +1 -1
  116. package/build/navigation-link/fallback-variations.js +1 -1
  117. package/build/navigation-link/fallback-variations.js.map +1 -1
  118. package/build/navigation-link/hooks.js +2 -2
  119. package/build/navigation-link/hooks.js.map +1 -1
  120. package/build/navigation-submenu/edit.js +2 -2
  121. package/build/navigation-submenu/edit.js.map +1 -1
  122. package/build/page-list/convert-to-links-modal.js +13 -23
  123. package/build/page-list/convert-to-links-modal.js.map +1 -1
  124. package/build/page-list/edit.js +8 -22
  125. package/build/page-list/edit.js.map +1 -1
  126. package/build/post-author-name/edit.js +2 -1
  127. package/build/post-author-name/edit.js.map +1 -1
  128. package/build/post-comments-form/edit.js +3 -1
  129. package/build/post-comments-form/edit.js.map +1 -1
  130. package/build/post-excerpt/edit.js +7 -4
  131. package/build/post-excerpt/edit.js.map +1 -1
  132. package/build/post-terms/edit.js +3 -1
  133. package/build/post-terms/edit.js.map +1 -1
  134. package/build/query-title/edit.js +0 -1
  135. package/build/query-title/edit.js.map +1 -1
  136. package/build/search/edit.js +4 -1
  137. package/build/search/edit.js.map +1 -1
  138. package/build/search/edit.native.js +1 -1
  139. package/build/search/edit.native.js.map +1 -1
  140. package/build/separator/save.js +4 -4
  141. package/build/separator/save.js.map +1 -1
  142. package/build/separator/separator-settings.native.js +1 -1
  143. package/build/separator/separator-settings.native.js.map +1 -1
  144. package/build/site-logo/edit.js +1 -1
  145. package/build/site-logo/edit.js.map +1 -1
  146. package/build/social-link/edit.native.js +11 -3
  147. package/build/social-link/edit.native.js.map +1 -1
  148. package/build/spacer/controls.js +5 -5
  149. package/build/spacer/controls.js.map +1 -1
  150. package/build/spacer/controls.native.js +5 -5
  151. package/build/spacer/controls.native.js.map +1 -1
  152. package/build/table/edit.js +2 -2
  153. package/build/table/edit.js.map +1 -1
  154. package/build/video/edit.js +4 -4
  155. package/build/video/edit.js.map +1 -1
  156. package/build/video/edit.native.js +3 -3
  157. package/build/video/edit.native.js.map +1 -1
  158. package/build-module/audio/edit.js +4 -4
  159. package/build-module/audio/edit.js.map +1 -1
  160. package/build-module/audio/edit.native.js +4 -4
  161. package/build-module/audio/edit.native.js.map +1 -1
  162. package/build-module/audio/transforms.js +1 -1
  163. package/build-module/audio/transforms.js.map +1 -1
  164. package/build-module/block/edit.js +5 -11
  165. package/build-module/block/edit.js.map +1 -1
  166. package/build-module/button/edit.js +3 -2
  167. package/build-module/button/edit.js.map +1 -1
  168. package/build-module/button/edit.native.js +2 -2
  169. package/build-module/button/edit.native.js.map +1 -1
  170. package/build-module/buttons/transforms.js +8 -8
  171. package/build-module/buttons/transforms.js.map +1 -1
  172. package/build-module/categories/edit.js +15 -25
  173. package/build-module/categories/edit.js.map +1 -1
  174. package/build-module/code/index.js +0 -1
  175. package/build-module/code/index.js.map +1 -1
  176. package/build-module/columns/columnCalculations.native.js +1 -1
  177. package/build-module/columns/columnCalculations.native.js.map +1 -1
  178. package/build-module/columns/edit.js +1 -1
  179. package/build-module/columns/edit.js.map +1 -1
  180. package/build-module/columns/edit.native.js +3 -3
  181. package/build-module/columns/edit.native.js.map +1 -1
  182. package/build-module/cover/controls.native.js +5 -5
  183. package/build-module/cover/controls.native.js.map +1 -1
  184. package/build-module/cover/deprecated.js +190 -17
  185. package/build-module/cover/deprecated.js.map +1 -1
  186. package/build-module/cover/edit.js +8 -11
  187. package/build-module/cover/edit.js.map +1 -1
  188. package/build-module/cover/edit.native.js +8 -8
  189. package/build-module/cover/edit.native.js.map +1 -1
  190. package/build-module/cover/overlay-color-settings.native.js +3 -3
  191. package/build-module/cover/overlay-color-settings.native.js.map +1 -1
  192. package/build-module/cover/save.js +1 -1
  193. package/build-module/cover/save.js.map +1 -1
  194. package/build-module/cover/shared.js +2 -2
  195. package/build-module/cover/shared.js.map +1 -1
  196. package/build-module/embed/edit.js +1 -1
  197. package/build-module/embed/edit.js.map +1 -1
  198. package/build-module/embed/edit.native.js +1 -1
  199. package/build-module/embed/edit.native.js.map +1 -1
  200. package/build-module/embed/util.js +2 -2
  201. package/build-module/embed/util.js.map +1 -1
  202. package/build-module/embed/variations.js +1 -1
  203. package/build-module/embed/variations.js.map +1 -1
  204. package/build-module/file/edit.js +21 -18
  205. package/build-module/file/edit.js.map +1 -1
  206. package/build-module/file/edit.native.js +1 -1
  207. package/build-module/file/edit.native.js.map +1 -1
  208. package/build-module/file/save.js +7 -3
  209. package/build-module/file/save.js.map +1 -1
  210. package/build-module/freeform/edit.js +2 -2
  211. package/build-module/freeform/edit.js.map +1 -1
  212. package/build-module/gallery/edit.js +1 -1
  213. package/build-module/gallery/edit.js.map +1 -1
  214. package/build-module/gallery/gallery.native.js +1 -1
  215. package/build-module/gallery/gallery.native.js.map +1 -1
  216. package/build-module/gallery/v1/edit.js +3 -3
  217. package/build-module/gallery/v1/edit.js.map +1 -1
  218. package/build-module/gallery/v1/gallery-image.native.js +3 -3
  219. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  220. package/build-module/gallery/v1/gallery.native.js +2 -2
  221. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  222. package/build-module/group/index.js +2 -36
  223. package/build-module/group/index.js.map +1 -1
  224. package/build-module/group/transforms.js +36 -0
  225. package/build-module/group/transforms.js.map +1 -0
  226. package/build-module/home-link/edit.js +1 -1
  227. package/build-module/home-link/edit.js.map +1 -1
  228. package/build-module/image/edit.js +7 -6
  229. package/build-module/image/edit.js.map +1 -1
  230. package/build-module/image/edit.native.js +25 -10
  231. package/build-module/image/edit.native.js.map +1 -1
  232. package/build-module/image/transforms.js +1 -1
  233. package/build-module/image/transforms.js.map +1 -1
  234. package/build-module/index.js +4 -5
  235. package/build-module/index.js.map +1 -1
  236. package/build-module/index.native.js +2 -2
  237. package/build-module/index.native.js.map +1 -1
  238. package/build-module/media-text/edit.js +20 -2
  239. package/build-module/media-text/edit.js.map +1 -1
  240. package/build-module/media-text/edit.native.js +2 -2
  241. package/build-module/media-text/edit.native.js.map +1 -1
  242. package/build-module/media-text/media-container.native.js +1 -1
  243. package/build-module/media-text/media-container.native.js.map +1 -1
  244. package/build-module/missing/edit.native.js +1 -1
  245. package/build-module/missing/edit.native.js.map +1 -1
  246. package/build-module/more/transforms.js +2 -2
  247. package/build-module/more/transforms.js.map +1 -1
  248. package/build-module/navigation/edit/index.js +128 -60
  249. package/build-module/navigation/edit/index.js.map +1 -1
  250. package/build-module/navigation/edit/inner-blocks.js +8 -3
  251. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  252. package/build-module/navigation/edit/navigation-menu-selector.js +66 -50
  253. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  254. package/build-module/navigation/edit/placeholder/index.js +32 -45
  255. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  256. package/build-module/navigation/edit/placeholder/placeholder-preview.js +3 -9
  257. package/build-module/navigation/edit/placeholder/placeholder-preview.js.map +1 -1
  258. package/build-module/navigation/edit/unsaved-inner-blocks.js +3 -1
  259. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  260. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +100 -0
  261. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -0
  262. package/build-module/navigation/edit/use-create-navigation-menu.js +48 -5
  263. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  264. package/build-module/navigation/edit/use-navigation-notice.js +3 -3
  265. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  266. package/build-module/navigation/menu-items-to-blocks.js +1 -1
  267. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  268. package/build-module/navigation/use-navigation-entities.js +26 -50
  269. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  270. package/build-module/navigation/use-navigation-menu.js +2 -0
  271. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  272. package/build-module/navigation-link/fallback-variations.js +1 -1
  273. package/build-module/navigation-link/fallback-variations.js.map +1 -1
  274. package/build-module/navigation-link/hooks.js +2 -2
  275. package/build-module/navigation-link/hooks.js.map +1 -1
  276. package/build-module/navigation-submenu/edit.js +2 -2
  277. package/build-module/navigation-submenu/edit.js.map +1 -1
  278. package/build-module/page-list/convert-to-links-modal.js +15 -25
  279. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  280. package/build-module/page-list/edit.js +9 -23
  281. package/build-module/page-list/edit.js.map +1 -1
  282. package/build-module/post-author-name/edit.js +2 -1
  283. package/build-module/post-author-name/edit.js.map +1 -1
  284. package/build-module/post-comments-form/edit.js +4 -2
  285. package/build-module/post-comments-form/edit.js.map +1 -1
  286. package/build-module/post-excerpt/edit.js +9 -6
  287. package/build-module/post-excerpt/edit.js.map +1 -1
  288. package/build-module/post-terms/edit.js +2 -1
  289. package/build-module/post-terms/edit.js.map +1 -1
  290. package/build-module/query-title/edit.js +0 -1
  291. package/build-module/query-title/edit.js.map +1 -1
  292. package/build-module/search/edit.js +3 -1
  293. package/build-module/search/edit.js.map +1 -1
  294. package/build-module/search/edit.native.js +1 -1
  295. package/build-module/search/edit.native.js.map +1 -1
  296. package/build-module/separator/save.js +4 -4
  297. package/build-module/separator/save.js.map +1 -1
  298. package/build-module/separator/separator-settings.native.js +1 -1
  299. package/build-module/separator/separator-settings.native.js.map +1 -1
  300. package/build-module/site-logo/edit.js +1 -1
  301. package/build-module/site-logo/edit.js.map +1 -1
  302. package/build-module/social-link/edit.native.js +11 -3
  303. package/build-module/social-link/edit.native.js.map +1 -1
  304. package/build-module/spacer/controls.js +5 -5
  305. package/build-module/spacer/controls.js.map +1 -1
  306. package/build-module/spacer/controls.native.js +5 -5
  307. package/build-module/spacer/controls.native.js.map +1 -1
  308. package/build-module/table/edit.js +2 -2
  309. package/build-module/table/edit.js.map +1 -1
  310. package/build-module/video/edit.js +4 -4
  311. package/build-module/video/edit.js.map +1 -1
  312. package/build-module/video/edit.native.js +3 -3
  313. package/build-module/video/edit.native.js.map +1 -1
  314. package/build-style/button/editor-rtl.css +0 -3
  315. package/build-style/button/editor.css +0 -3
  316. package/build-style/code/style-rtl.css +2 -1
  317. package/build-style/code/style.css +2 -1
  318. package/build-style/code/theme-rtl.css +0 -3
  319. package/build-style/code/theme.css +0 -3
  320. package/build-style/common-rtl.css +1 -1
  321. package/build-style/common.css +1 -1
  322. package/build-style/cover/style-rtl.css +1 -5
  323. package/build-style/cover/style.css +1 -5
  324. package/build-style/editor-rtl.css +16 -3
  325. package/build-style/editor.css +16 -3
  326. package/build-style/image/style-rtl.css +2 -1
  327. package/build-style/image/style.css +2 -1
  328. package/build-style/navigation/editor-rtl.css +16 -0
  329. package/build-style/navigation/editor.css +16 -0
  330. package/build-style/style-rtl.css +12 -10
  331. package/build-style/style.css +12 -10
  332. package/build-style/tag-cloud/style-rtl.css +6 -2
  333. package/build-style/tag-cloud/style.css +6 -2
  334. package/build-style/theme-rtl.css +0 -3
  335. package/build-style/theme.css +0 -3
  336. package/package.json +32 -28
  337. package/src/audio/edit.js +4 -4
  338. package/src/audio/edit.native.js +4 -4
  339. package/src/audio/transforms.js +1 -1
  340. package/src/block/edit.js +7 -22
  341. package/src/block/test/edit.native.js +9 -9
  342. package/src/button/edit.js +2 -1
  343. package/src/button/edit.native.js +2 -2
  344. package/src/button/editor.scss +0 -5
  345. package/src/buttons/test/edit.native.js +3 -3
  346. package/src/buttons/transforms.js +8 -8
  347. package/src/categories/edit.js +12 -22
  348. package/src/code/block.json +0 -1
  349. package/src/code/style.scss +4 -2
  350. package/src/code/theme.scss +0 -3
  351. package/src/columns/columnCalculations.native.js +1 -1
  352. package/src/columns/edit.js +1 -1
  353. package/src/columns/edit.native.js +3 -3
  354. package/src/comments-pagination-numbers/index.php +1 -1
  355. package/src/common.scss +1 -1
  356. package/src/cover/controls.native.js +1 -1
  357. package/src/cover/deprecated.js +214 -1
  358. package/src/cover/edit.js +6 -8
  359. package/src/cover/edit.native.js +8 -8
  360. package/src/cover/overlay-color-settings.native.js +3 -3
  361. package/src/cover/save.js +4 -3
  362. package/src/cover/shared.js +2 -2
  363. package/src/cover/style.scss +1 -3
  364. package/src/cover/test/edit.native.js +39 -39
  365. package/src/embed/edit.js +1 -1
  366. package/src/embed/edit.native.js +1 -1
  367. package/src/embed/test/index.native.js +105 -105
  368. package/src/embed/util.js +2 -2
  369. package/src/embed/variations.js +1 -1
  370. package/src/file/edit.js +19 -17
  371. package/src/file/edit.native.js +1 -1
  372. package/src/file/save.js +9 -3
  373. package/src/file/style.native.scss +1 -0
  374. package/src/freeform/edit.js +2 -2
  375. package/src/gallery/edit.js +1 -1
  376. package/src/gallery/gallery.native.js +1 -1
  377. package/src/gallery/test/__snapshots__/index.native.js.snap +164 -0
  378. package/src/gallery/test/helpers.native.js +293 -0
  379. package/src/gallery/test/index.native.js +583 -65
  380. package/src/gallery/v1/edit.js +3 -4
  381. package/src/gallery/v1/gallery-image.native.js +3 -3
  382. package/src/gallery/v1/gallery.native.js +2 -2
  383. package/src/group/index.js +2 -54
  384. package/src/group/transforms.js +52 -0
  385. package/src/home-link/edit.js +1 -1
  386. package/src/image/edit.js +7 -6
  387. package/src/image/edit.native.js +25 -8
  388. package/src/image/style.scss +2 -1
  389. package/src/image/test/edit.native.js +1 -1
  390. package/src/image/transforms.js +1 -1
  391. package/src/index.js +2 -3
  392. package/src/index.native.js +2 -2
  393. package/src/media-text/edit.js +20 -2
  394. package/src/media-text/edit.native.js +2 -2
  395. package/src/media-text/media-container.native.js +1 -1
  396. package/src/media-text/style.native.scss +1 -0
  397. package/src/missing/edit.native.js +1 -1
  398. package/src/missing/test/edit-integration.native.js +4 -4
  399. package/src/missing/test/edit.native.js +2 -2
  400. package/src/more/transforms.js +2 -2
  401. package/src/navigation/edit/index.js +194 -69
  402. package/src/navigation/edit/inner-blocks.js +11 -4
  403. package/src/navigation/edit/navigation-menu-selector.js +97 -79
  404. package/src/navigation/edit/placeholder/index.js +61 -84
  405. package/src/navigation/edit/placeholder/placeholder-preview.js +3 -10
  406. package/src/navigation/edit/unsaved-inner-blocks.js +3 -1
  407. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +137 -0
  408. package/src/navigation/edit/use-create-navigation-menu.js +59 -8
  409. package/src/navigation/edit/use-navigation-notice.js +3 -3
  410. package/src/navigation/editor.scss +23 -1
  411. package/src/navigation/menu-items-to-blocks.js +1 -1
  412. package/src/navigation/test/menu-items-to-blocks.js +1 -1
  413. package/src/navigation/use-navigation-entities.js +26 -60
  414. package/src/navigation/use-navigation-menu.js +5 -0
  415. package/src/navigation-link/fallback-variations.js +1 -1
  416. package/src/navigation-link/hooks.js +2 -2
  417. package/src/navigation-link/test/edit.js +5 -5
  418. package/src/navigation-submenu/edit.js +2 -2
  419. package/src/page-list/convert-to-links-modal.js +17 -31
  420. package/src/page-list/edit.js +14 -23
  421. package/src/post-author-name/edit.js +1 -0
  422. package/src/post-author-name/index.php +1 -1
  423. package/src/post-comments-form/edit.js +7 -3
  424. package/src/post-excerpt/edit.js +9 -12
  425. package/src/post-terms/edit.js +2 -1
  426. package/src/query-title/edit.js +0 -1
  427. package/src/search/edit.js +6 -0
  428. package/src/search/edit.native.js +1 -1
  429. package/src/search/index.php +3 -2
  430. package/src/search/test/edit.native.js +0 -1
  431. package/src/separator/save.js +4 -4
  432. package/src/separator/separator-settings.native.js +1 -1
  433. package/src/site-logo/edit.js +1 -1
  434. package/src/social-link/edit.native.js +17 -8
  435. package/src/social-link/test/index.native.js +138 -0
  436. package/src/spacer/controls.js +1 -1
  437. package/src/spacer/controls.native.js +1 -1
  438. package/src/table/edit.js +2 -2
  439. package/src/tag-cloud/style.scss +12 -7
  440. package/src/video/edit.js +4 -4
  441. package/src/video/edit.native.js +3 -3
  442. package/src/video/style.native.scss +1 -0
  443. package/build/navigation/use-convert-classic-menu.js +0 -59
  444. package/build/navigation/use-convert-classic-menu.js.map +0 -1
  445. package/build-module/navigation/use-convert-classic-menu.js +0 -47
  446. package/build-module/navigation/use-convert-classic-menu.js.map +0 -1
  447. package/src/navigation/use-convert-classic-menu.js +0 -58
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/columnCalculations.native.js"],"names":["ALIGNMENT_BREAKPOINTS","convertUnitToMobile","getColumnWidths","getWidths","styles","MAX_COLUMNS_NUM_IN_ROW","MIN_WIDTH","columnsContainer","minWidth","MARGIN","marginLeft","getColumnsInRow","width","columnCount","mobile","medium","Math","min","max","calculateContainerWidth","containerWidth","columnsInRow","getContentWidths","innerColumns","globalStyles","widths","columnWidthsWithUnits","columnWidths","columnWidthsValues","map","v","columnWidthsSum","reduce","acc","curr","columnRatios","colWidth","columnWidthsPerRatio","columnRatio","filteredColumnWidthsPerRatio","filter","columnWidthPerRatio","baseContainerWidth","length","minPercentageRatio","largeColumnsWidthsSum","ratio","index","columnWidth","maxColumnWidth","forEach","attributes","innerColumnAttributes","clientId","attributeWidth","proportionalRatio","percentageRatio","initialColumnWidth","round","newColumnWidth","floor","maxWidth"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tALIGNMENT_BREAKPOINTS,\n\tconvertUnitToMobile,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getColumnWidths, getWidths } from './utils';\nimport styles from './editor.scss';\n\n/**\n * Maximum number of columns in a row\n *\n * @type {number}\n */\nconst MAX_COLUMNS_NUM_IN_ROW = 3;\n\n/**\n * Minimum width of column\n *\n * @type {number}\n */\nconst MIN_WIDTH = styles.columnsContainer?.minWidth;\n\n/**\n * Container margin value\n *\n * @type {number}\n */\nconst MARGIN = styles.columnsContainer?.marginLeft;\n\nexport const getColumnsInRow = ( width, columnCount ) => {\n\tif ( width ) {\n\t\tif ( width < ALIGNMENT_BREAKPOINTS.mobile ) {\n\t\t\t// show only 1 Column in row for mobile breakpoint container width\n\t\t\treturn 1;\n\t\t} else if ( width <= ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t// show the maximum number of columns in a row for large breakpoint container width\n\t\t\treturn Math.min(\n\t\t\t\tMath.max( 1, columnCount ),\n\t\t\t\tMAX_COLUMNS_NUM_IN_ROW\n\t\t\t);\n\t\t}\n\t\t// show all Column in one row\n\t\treturn columnCount;\n\t}\n};\n\nexport const calculateContainerWidth = ( containerWidth, columnsInRow ) =>\n\t2 * MARGIN + containerWidth - columnsInRow * 2 * MARGIN;\n\nexport const getContentWidths = (\n\tcolumnsInRow,\n\twidth,\n\tcolumnCount,\n\tinnerColumns,\n\tglobalStyles\n) => {\n\tconst widths = {};\n\tconst columnWidthsWithUnits = getWidths( innerColumns, false );\n\tconst columnWidths = getColumnWidths( innerColumns, columnCount );\n\n\t// Array of column width attribute values\n\tconst columnWidthsValues = columnWidthsWithUnits.map( ( v ) =>\n\t\tconvertUnitToMobile( { width }, globalStyles, v )\n\t);\n\n\t// The sum of column width attribute values\n\tconst columnWidthsSum = columnWidthsValues.reduce(\n\t\t( acc, curr ) => acc + curr,\n\t\t0\n\t);\n\n\t// Array of ratios of each column width attribute value to their sum\n\tconst columnRatios = columnWidthsValues.map(\n\t\t( colWidth ) => colWidth / columnWidthsSum\n\t);\n\n\t// Array of calculated column width for its ratio\n\tconst columnWidthsPerRatio = columnRatios.map(\n\t\t( columnRatio ) =>\n\t\t\tcolumnRatio * calculateContainerWidth( width, columnsInRow )\n\t);\n\n\t// Array of columns whose calculated width is lower than minimum width value\n\tconst filteredColumnWidthsPerRatio = columnWidthsPerRatio.filter(\n\t\t( columnWidthPerRatio ) => columnWidthPerRatio <= MIN_WIDTH\n\t);\n\n\t// Container width to be divided. If there are some results within `filteredColumnWidthsPerRatio`\n\t// there is a need to reduce the main width by multiplying number\n\t// of results in `filteredColumnWidthsPerRatio` and minimum width value\n\tconst baseContainerWidth =\n\t\twidth - filteredColumnWidthsPerRatio.length * MIN_WIDTH;\n\n\t// The minimum percentage ratio for which column width is equal minimum width value\n\tconst minPercentageRatio =\n\t\tMIN_WIDTH / calculateContainerWidth( width, columnsInRow );\n\n\t// The sum of column widths which ratio is higher than `minPercentageRatio`\n\tconst largeColumnsWidthsSum = columnRatios\n\t\t.map( ( ratio, index ) => {\n\t\t\tif ( ratio > minPercentageRatio ) {\n\t\t\t\treturn columnWidthsValues[ index ];\n\t\t\t}\n\t\t\treturn 0;\n\t\t} )\n\t\t.reduce( ( acc, curr ) => acc + curr, 0 );\n\n\tconst containerWidth = calculateContainerWidth(\n\t\tbaseContainerWidth,\n\t\tcolumnsInRow\n\t);\n\n\tlet columnWidth =\n\t\tcalculateContainerWidth( width, columnsInRow ) / columnsInRow;\n\tlet maxColumnWidth = columnWidth;\n\n\tinnerColumns.forEach(\n\t\t( { attributes: innerColumnAttributes, clientId } ) => {\n\t\t\tconst attributeWidth = convertUnitToMobile(\n\t\t\t\t{ width },\n\t\t\t\tglobalStyles,\n\t\t\t\tinnerColumnAttributes.width || columnWidths[ clientId ]\n\t\t\t);\n\t\t\tconst proportionalRatio = attributeWidth / columnWidthsSum;\n\t\t\tconst percentageRatio = attributeWidth / width;\n\t\t\tconst initialColumnWidth = proportionalRatio * containerWidth;\n\n\t\t\tif ( columnCount === 1 && width > ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t// Exactly one column inside columns on the breakpoint higher than medium\n\t\t\t\t// has to take a percentage of the full width\n\t\t\t\tcolumnWidth = percentageRatio * containerWidth;\n\t\t\t} else if ( columnsInRow > 1 ) {\n\t\t\t\tif ( width > ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t\tif ( initialColumnWidth <= MIN_WIDTH ) {\n\t\t\t\t\t\t// Column width cannot be lower than minimum 32px\n\t\t\t\t\t\tcolumnWidth = MIN_WIDTH;\n\t\t\t\t\t} else if ( initialColumnWidth > MIN_WIDTH ) {\n\t\t\t\t\t\t// Column width has to be the result of multiplying the container width and\n\t\t\t\t\t\t// the ratio of attribute and the sum of widths of columns wider than 32px\n\t\t\t\t\t\tcolumnWidth =\n\t\t\t\t\t\t\t( attributeWidth / largeColumnsWidthsSum ) *\n\t\t\t\t\t\t\tcontainerWidth;\n\t\t\t\t\t}\n\n\t\t\t\t\tmaxColumnWidth = columnWidth;\n\n\t\t\t\t\tif ( Math.round( columnWidthsSum ) < width ) {\n\t\t\t\t\t\t// In case that column width attribute values does not exceed 100, each column\n\t\t\t\t\t\t// should have attribute percentage of container width\n\t\t\t\t\t\tconst newColumnWidth = percentageRatio * containerWidth;\n\t\t\t\t\t\tif ( newColumnWidth <= MIN_WIDTH ) {\n\t\t\t\t\t\t\tcolumnWidth = MIN_WIDTH;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcolumnWidth = newColumnWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( width < ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t\t// On the breakpoint lower than medium each column inside columns\n\t\t\t\t\t// has to take equal part of container width\n\t\t\t\t\tcolumnWidth =\n\t\t\t\t\t\tcalculateContainerWidth( width, columnsInRow ) /\n\t\t\t\t\t\tcolumnsInRow;\n\t\t\t\t}\n\t\t\t}\n\t\t\twidths[ clientId ] = {\n\t\t\t\twidth: Math.floor( columnWidth ),\n\t\t\t\tmaxWidth: Math.floor( maxColumnWidth ),\n\t\t\t};\n\t\t}\n\t);\n\treturn widths;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/columnCalculations.native.js"],"names":["ALIGNMENT_BREAKPOINTS","convertUnitToMobile","getColumnWidths","getWidths","styles","MAX_COLUMNS_NUM_IN_ROW","MIN_WIDTH","columnsContainer","minWidth","MARGIN","marginLeft","getColumnsInRow","width","columnCount","mobile","medium","Math","min","max","calculateContainerWidth","containerWidth","columnsInRow","getContentWidths","innerColumns","globalStyles","widths","columnWidthsWithUnits","columnWidths","columnWidthsValues","map","v","columnWidthsSum","reduce","acc","curr","columnRatios","colWidth","columnWidthsPerRatio","columnRatio","filteredColumnWidthsPerRatio","filter","columnWidthPerRatio","baseContainerWidth","length","minPercentageRatio","largeColumnsWidthsSum","ratio","index","columnWidth","maxColumnWidth","forEach","attributes","innerColumnAttributes","clientId","attributeWidth","proportionalRatio","percentageRatio","initialColumnWidth","round","newColumnWidth","floor","maxWidth"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tALIGNMENT_BREAKPOINTS,\n\tconvertUnitToMobile,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getColumnWidths, getWidths } from './utils';\nimport styles from './editor.scss';\n\n/**\n * Maximum number of columns in a row\n *\n * @type {number}\n */\nconst MAX_COLUMNS_NUM_IN_ROW = 3;\n\n/**\n * Minimum width of column\n *\n * @type {number}\n */\nconst MIN_WIDTH = styles.columnsContainer?.minWidth;\n\n/**\n * Container margin value\n *\n * @type {number}\n */\nconst MARGIN = styles.columnsContainer?.marginLeft;\n\nexport const getColumnsInRow = ( width, columnCount ) => {\n\tif ( width ) {\n\t\tif ( width < ALIGNMENT_BREAKPOINTS.mobile ) {\n\t\t\t// show only 1 Column in row for mobile breakpoint container width\n\t\t\treturn 1;\n\t\t} else if ( width <= ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t// show the maximum number of columns in a row for large breakpoint container width\n\t\t\treturn Math.min(\n\t\t\t\tMath.max( 1, columnCount ),\n\t\t\t\tMAX_COLUMNS_NUM_IN_ROW\n\t\t\t);\n\t\t}\n\t\t// Show all Column in one row.\n\t\treturn columnCount;\n\t}\n};\n\nexport const calculateContainerWidth = ( containerWidth, columnsInRow ) =>\n\t2 * MARGIN + containerWidth - columnsInRow * 2 * MARGIN;\n\nexport const getContentWidths = (\n\tcolumnsInRow,\n\twidth,\n\tcolumnCount,\n\tinnerColumns,\n\tglobalStyles\n) => {\n\tconst widths = {};\n\tconst columnWidthsWithUnits = getWidths( innerColumns, false );\n\tconst columnWidths = getColumnWidths( innerColumns, columnCount );\n\n\t// Array of column width attribute values\n\tconst columnWidthsValues = columnWidthsWithUnits.map( ( v ) =>\n\t\tconvertUnitToMobile( { width }, globalStyles, v )\n\t);\n\n\t// The sum of column width attribute values\n\tconst columnWidthsSum = columnWidthsValues.reduce(\n\t\t( acc, curr ) => acc + curr,\n\t\t0\n\t);\n\n\t// Array of ratios of each column width attribute value to their sum\n\tconst columnRatios = columnWidthsValues.map(\n\t\t( colWidth ) => colWidth / columnWidthsSum\n\t);\n\n\t// Array of calculated column width for its ratio\n\tconst columnWidthsPerRatio = columnRatios.map(\n\t\t( columnRatio ) =>\n\t\t\tcolumnRatio * calculateContainerWidth( width, columnsInRow )\n\t);\n\n\t// Array of columns whose calculated width is lower than minimum width value\n\tconst filteredColumnWidthsPerRatio = columnWidthsPerRatio.filter(\n\t\t( columnWidthPerRatio ) => columnWidthPerRatio <= MIN_WIDTH\n\t);\n\n\t// Container width to be divided. If there are some results within `filteredColumnWidthsPerRatio`\n\t// there is a need to reduce the main width by multiplying number\n\t// of results in `filteredColumnWidthsPerRatio` and minimum width value\n\tconst baseContainerWidth =\n\t\twidth - filteredColumnWidthsPerRatio.length * MIN_WIDTH;\n\n\t// The minimum percentage ratio for which column width is equal minimum width value\n\tconst minPercentageRatio =\n\t\tMIN_WIDTH / calculateContainerWidth( width, columnsInRow );\n\n\t// The sum of column widths which ratio is higher than `minPercentageRatio`\n\tconst largeColumnsWidthsSum = columnRatios\n\t\t.map( ( ratio, index ) => {\n\t\t\tif ( ratio > minPercentageRatio ) {\n\t\t\t\treturn columnWidthsValues[ index ];\n\t\t\t}\n\t\t\treturn 0;\n\t\t} )\n\t\t.reduce( ( acc, curr ) => acc + curr, 0 );\n\n\tconst containerWidth = calculateContainerWidth(\n\t\tbaseContainerWidth,\n\t\tcolumnsInRow\n\t);\n\n\tlet columnWidth =\n\t\tcalculateContainerWidth( width, columnsInRow ) / columnsInRow;\n\tlet maxColumnWidth = columnWidth;\n\n\tinnerColumns.forEach(\n\t\t( { attributes: innerColumnAttributes, clientId } ) => {\n\t\t\tconst attributeWidth = convertUnitToMobile(\n\t\t\t\t{ width },\n\t\t\t\tglobalStyles,\n\t\t\t\tinnerColumnAttributes.width || columnWidths[ clientId ]\n\t\t\t);\n\t\t\tconst proportionalRatio = attributeWidth / columnWidthsSum;\n\t\t\tconst percentageRatio = attributeWidth / width;\n\t\t\tconst initialColumnWidth = proportionalRatio * containerWidth;\n\n\t\t\tif ( columnCount === 1 && width > ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t// Exactly one column inside columns on the breakpoint higher than medium\n\t\t\t\t// has to take a percentage of the full width\n\t\t\t\tcolumnWidth = percentageRatio * containerWidth;\n\t\t\t} else if ( columnsInRow > 1 ) {\n\t\t\t\tif ( width > ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t\tif ( initialColumnWidth <= MIN_WIDTH ) {\n\t\t\t\t\t\t// Column width cannot be lower than minimum 32px\n\t\t\t\t\t\tcolumnWidth = MIN_WIDTH;\n\t\t\t\t\t} else if ( initialColumnWidth > MIN_WIDTH ) {\n\t\t\t\t\t\t// Column width has to be the result of multiplying the container width and\n\t\t\t\t\t\t// the ratio of attribute and the sum of widths of columns wider than 32px\n\t\t\t\t\t\tcolumnWidth =\n\t\t\t\t\t\t\t( attributeWidth / largeColumnsWidthsSum ) *\n\t\t\t\t\t\t\tcontainerWidth;\n\t\t\t\t\t}\n\n\t\t\t\t\tmaxColumnWidth = columnWidth;\n\n\t\t\t\t\tif ( Math.round( columnWidthsSum ) < width ) {\n\t\t\t\t\t\t// In case that column width attribute values does not exceed 100, each column\n\t\t\t\t\t\t// should have attribute percentage of container width\n\t\t\t\t\t\tconst newColumnWidth = percentageRatio * containerWidth;\n\t\t\t\t\t\tif ( newColumnWidth <= MIN_WIDTH ) {\n\t\t\t\t\t\t\tcolumnWidth = MIN_WIDTH;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcolumnWidth = newColumnWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( width < ALIGNMENT_BREAKPOINTS.medium ) {\n\t\t\t\t\t// On the breakpoint lower than medium each column inside columns\n\t\t\t\t\t// has to take equal part of container width\n\t\t\t\t\tcolumnWidth =\n\t\t\t\t\t\tcalculateContainerWidth( width, columnsInRow ) /\n\t\t\t\t\t\tcolumnsInRow;\n\t\t\t\t}\n\t\t\t}\n\t\t\twidths[ clientId ] = {\n\t\t\t\twidth: Math.floor( columnWidth ),\n\t\t\t\tmaxWidth: Math.floor( maxColumnWidth ),\n\t\t\t};\n\t\t}\n\t);\n\treturn widths;\n};\n"]}
@@ -105,7 +105,7 @@ const ColumnsEditContainerWrapper = withDispatch((dispatch, ownProps, registry)
105
105
 
106
106
  setAttributes({
107
107
  verticalAlignment
108
- }); // Update all child Column Blocks to match
108
+ }); // Update all child Column Blocks to match.
109
109
 
110
110
  const innerBlockClientIds = getBlockOrder(clientId);
111
111
  innerBlockClientIds.forEach(innerBlockClientId => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["classnames","dropRight","get","times","__","Notice","PanelBody","RangeControl","ToggleControl","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","withDispatch","useDispatch","useSelect","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","count","select","getBlockCount","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","Math","max","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","width","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","nextVariation","ColumnsEdit","props","hasInnerBlocks","length","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { dropRight, get, times } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment } = attributes;\n\n\tconst { count } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcount: select( blockEditorStore ).getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\tonChange={ ( value ) => updateColumns( count, value ) }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths(\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = dropRight(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpreviousColumns - newColumns\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ get( blockType, [ 'icon', 'src' ] ) }\n\t\t\t\tlabel={ get( blockType, [ 'title' ] ) }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/edit.js"],"names":["classnames","dropRight","get","times","__","Notice","PanelBody","RangeControl","ToggleControl","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","withDispatch","useDispatch","useSelect","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","ALLOWED_BLOCKS","ColumnsEditContainer","attributes","setAttributes","updateAlignment","updateColumns","clientId","isStackedOnMobile","verticalAlignment","count","select","getBlockCount","classes","blockProps","className","innerBlocksProps","allowedBlocks","orientation","renderAppender","value","Math","max","ColumnsEditContainerWrapper","dispatch","ownProps","registry","updateBlockAttributes","getBlockOrder","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","width","Placeholder","name","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","nextVariation","ColumnsEdit","props","hasInnerBlocks","length","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { dropRight, get, times } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tsetAttributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tclientId,\n} ) {\n\tconst { isStackedOnMobile, verticalAlignment } = attributes;\n\n\tconst { count } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcount: select( blockEditorStore ).getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\tonChange={ ( value ) => updateColumns( count, value ) }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Updates the column count, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column count.\n\t\t * @param {number} newColumns New column count.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths(\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = dropRight(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpreviousColumns - newColumns\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t} )\n)( ColumnsEditContainer );\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ get( blockType, [ 'icon', 'src' ] ) }\n\t\t\t\tlabel={ get( blockType, [ 'title' ] ) }\n\t\t\t\tvariations={ variations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? ColumnsEditContainerWrapper\n\t\t: Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"]}
@@ -224,7 +224,7 @@ const ColumnsEditContainerWrapper = withDispatch((dispatch, ownProps, registry)
224
224
 
225
225
  setAttributes({
226
226
  verticalAlignment
227
- }); // Update all child Column Blocks to match
227
+ }); // Update all child Column Blocks to match.
228
228
 
229
229
  const innerBlockClientIds = getBlockOrder(clientId);
230
230
  innerBlockClientIds.forEach(innerBlockClientId => {
@@ -274,7 +274,7 @@ const ColumnsEditContainerWrapper = withDispatch((dispatch, ownProps, registry)
274
274
  let innerBlocks = getBlocks(clientId);
275
275
  const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks); // Redistribute available width for existing inner blocks.
276
276
 
277
- const isAddingColumn = newColumns > previousColumns; // Get verticalAlignment from Columns block to set the same to new Column
277
+ const isAddingColumn = newColumns > previousColumns; // Get verticalAlignment from Columns block to set the same to new Column.
278
278
 
279
279
  const {
280
280
  verticalAlignment
@@ -324,7 +324,7 @@ const ColumnsEditContainerWrapper = withDispatch((dispatch, ownProps, registry)
324
324
  const {
325
325
  getBlocks,
326
326
  getBlockAttributes
327
- } = registry.select(blockEditorStore); // Get verticalAlignment from Columns block to set the same to new Column
327
+ } = registry.select(blockEditorStore); // Get verticalAlignment from Columns block to set the same to new Column.
328
328
 
329
329
  const {
330
330
  verticalAlignment
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/columns/edit.native.js"],"names":["View","Dimensions","dropRight","times","map","compact","delay","__","sprintf","PanelBody","RangeControl","FooterMessageControl","UnitControl","getValueAndUnit","GlobalStylesContext","alignmentHelpers","__experimentalUseCustomUnits","useCustomUnits","InspectorControls","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","BlockVariationPicker","useSetting","store","blockEditorStore","withDispatch","useSelect","useEffect","useState","useContext","useMemo","useCallback","memo","useResizeObserver","createBlock","columns","variations","styles","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","getWidths","getWidthWithUnit","isPercentageUnit","getColumnsInRow","calculateContainerWidth","getContentWidths","ColumnsPreview","ALLOWED_BLOCKS","DEFAULT_COLUMNS_NUM","MIN_COLUMNS_NUM","isFullWidth","ColumnsEditContainer","attributes","updateAlignment","updateColumns","columnCount","isSelected","onDeleteBlock","innerWidths","updateInnerColumnWidth","editorSidebarOpened","resizeListener","sizes","columnsInRow","setColumnsInRow","screenWidth","Math","floor","get","width","globalStyles","verticalAlignment","align","units","availableUnits","newColumnCount","renderAppender","columnAppender","onAddBlock","contentWidths","onChangeWidth","nextWidth","valueUnit","columnId","widthWithUnit","onChangeUnit","nextUnit","index","widthWithoutUnit","parseFloat","onChange","getColumnsSliders","column","label","clientId","length","undefined","onChangeColumnsNum","value","innerBlocksSelected","ColumnsEditContainerWrapper","dispatch","ownProps","registry","setAttributes","updateBlockAttributes","getBlockOrder","select","innerBlockClientIds","forEach","innerBlockClientId","updateBlockSettings","settings","updateBlockListSettings","previousColumns","newColumns","replaceInnerBlocks","getBlocks","getBlockAttributes","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","onAddNextColumn","selectBlock","insertedBlock","removeBlock","ColumnsEdit","props","style","isDefaultColumns","hasParents","parentBlockAlignment","getBlockCount","getBlockParents","isEditorSidebarOpened","isContentEmpty","innerBlock","innerColumnsWidths","inn","parents","memoizedInnerWidths","JSON","stringify","isVisible","setIsVisible","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\nimport { dropRight, times, map, compact, delay } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\tGlobalStylesContext,\n\talignmentHelpers,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tBlockVariationPicker,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseContext,\n\tuseMemo,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { createBlock } from '@wordpress/blocks';\nimport { columns } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport variations from './variations';\nimport styles from './editor.scss';\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from './utils';\nimport {\n\tgetColumnsInRow,\n\tcalculateContainerWidth,\n\tgetContentWidths,\n} from './columnCalculations.native';\nimport ColumnsPreview from '../column/column-preview';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\n/**\n * Number of columns to assume for template in case the user opts to skip\n * template option selection.\n *\n * @type {number}\n */\nconst DEFAULT_COLUMNS_NUM = 2;\n\n/**\n * Minimum number of columns in a row\n *\n * @type {number}\n */\nconst MIN_COLUMNS_NUM = 1;\n\nconst { isFullWidth } = alignmentHelpers;\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tcolumnCount,\n\tisSelected,\n\tonDeleteBlock,\n\tinnerWidths,\n\tupdateInnerColumnWidth,\n\teditorSidebarOpened,\n} ) {\n\tconst [ resizeListener, sizes ] = useResizeObserver();\n\tconst [ columnsInRow, setColumnsInRow ] = useState( MIN_COLUMNS_NUM );\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\tconst globalStyles = useContext( GlobalStylesContext );\n\n\tconst { verticalAlignment, align } = attributes;\n\tconst { width } = sizes || {};\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( columnCount === 0 ) {\n\t\t\tconst newColumnCount = columnCount || DEFAULT_COLUMNS_NUM;\n\t\t\tupdateColumns( columnCount, newColumnCount );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( width ) {\n\t\t\tif ( getColumnsInRow( width, columnCount ) !== columnsInRow ) {\n\t\t\t\tsetColumnsInRow( getColumnsInRow( width, columnCount ) );\n\t\t\t}\n\t\t}\n\t}, [ width, columnCount ] );\n\n\tconst renderAppender = () => {\n\t\tif ( isSelected ) {\n\t\t\treturn (\n\t\t\t\t<View style={ isFullWidth( align ) && styles.columnAppender }>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst contentWidths = useMemo(\n\t\t() =>\n\t\t\tgetContentWidths(\n\t\t\t\tcolumnsInRow,\n\t\t\t\twidth,\n\t\t\t\tcolumnCount,\n\t\t\t\tinnerWidths,\n\t\t\t\tglobalStyles\n\t\t\t),\n\t\t[ width, columnsInRow, columnCount, innerWidths, globalStyles ]\n\t);\n\n\tconst onAddBlock = useCallback( () => {\n\t\tupdateColumns( columnCount, columnCount + 1 );\n\t}, [ columnCount ] );\n\n\tconst onChangeWidth = ( nextWidth, valueUnit, columnId ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, valueUnit );\n\n\t\tupdateInnerColumnWidth( widthWithUnit, columnId );\n\t};\n\n\tconst onChangeUnit = ( nextUnit, index, columnId ) => {\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\tgetWidths( innerWidths )[ index ]\n\t\t);\n\t\tconst widthWithUnit = getWidthWithUnit( widthWithoutUnit, nextUnit );\n\n\t\tupdateInnerColumnWidth( widthWithUnit, columnId );\n\t};\n\n\tconst onChange = ( nextWidth, valueUnit, columnId ) => {\n\t\tif ( isPercentageUnit( valueUnit ) || ! valueUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth, valueUnit, columnId );\n\t};\n\n\tconst getColumnsSliders = useMemo( () => {\n\t\tif ( ! editorSidebarOpened || ! isSelected ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn innerWidths.map( ( column, index ) => {\n\t\t\tconst { valueUnit = '%' } =\n\t\t\t\tgetValueAndUnit( column.attributes.width ) || {};\n\t\t\tconst label = sprintf(\n\t\t\t\t/* translators: %d: column index. */\n\t\t\t\t__( 'Column %d' ),\n\t\t\t\tindex + 1\n\t\t\t);\n\t\t\treturn (\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tsettingLabel=\"Width\"\n\t\t\t\t\tkey={ `${ column.clientId }-${\n\t\t\t\t\t\tgetWidths( innerWidths ).length\n\t\t\t\t\t}` }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t\tmax={\n\t\t\t\t\t\tisPercentageUnit( valueUnit ) || ! valueUnit\n\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ getWidths( innerWidths )[ index ] }\n\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\tonChange( nextWidth, valueUnit, column.clientId );\n\t\t\t\t\t} }\n\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\tonChangeUnit( nextUnit, index, column.clientId )\n\t\t\t\t\t}\n\t\t\t\t\tonComplete={ ( nextWidth ) => {\n\t\t\t\t\t\tonChangeWidth( nextWidth, valueUnit, column.clientId );\n\t\t\t\t\t} }\n\t\t\t\t\tunit={ valueUnit }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tpreview={\n\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\tcolumnWidths={ getWidths( innerWidths, false ) }\n\t\t\t\t\t\t\tselectedColumnIndex={ index }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ editorSidebarOpened, isSelected, innerWidths ] );\n\n\tconst onChangeColumnsNum = useCallback(\n\t\t( value ) => {\n\t\t\tupdateColumns( columnCount, value );\n\t\t},\n\t\t[ columnCount ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Columns Settings' ) }>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Number of columns' ) }\n\t\t\t\t\t\t\t\ticon={ columns }\n\t\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\t\tonChange={ onChangeColumnsNum }\n\t\t\t\t\t\t\t\tmin={ MIN_COLUMNS_NUM }\n\t\t\t\t\t\t\t\tmax={ columnCount + 1 }\n\t\t\t\t\t\t\t\ttype=\"stepper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ getColumnsSliders }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View style={ isSelected && styles.innerBlocksSelected }>\n\t\t\t\t{ resizeListener }\n\t\t\t\t{ width && (\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\torientation={\n\t\t\t\t\t\t\tcolumnsInRow > 1 ? 'horizontal' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\thorizontal={ columnsInRow > 1 }\n\t\t\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS }\n\t\t\t\t\t\tcontentResizeMode=\"stretch\"\n\t\t\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\t\t\tonDeleteBlock={\n\t\t\t\t\t\t\tcolumnCount === 1 ? onDeleteBlock : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblockWidth={ width }\n\t\t\t\t\t\tcontentStyle={ contentWidths }\n\t\t\t\t\t\tparentWidth={\n\t\t\t\t\t\t\tisFullWidth( align ) && columnCount === 0\n\t\t\t\t\t\t\t\t? screenWidth\n\t\t\t\t\t\t\t\t: calculateContainerWidth( width, columnsInRow )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\t\tupdateInnerColumnWidth( value, columnId ) {\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\n\t\t\tupdateBlockAttributes( columnId, {\n\t\t\t\twidth: value,\n\t\t\t} );\n\t\t},\n\t\tupdateBlockSettings( settings ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { updateBlockListSettings } = dispatch( blockEditorStore );\n\t\t\tupdateBlockListSettings( clientId, settings );\n\t\t},\n\t\t/**\n\t\t * Updates the column columnCount, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column columnCount.\n\t\t * @param {number} newColumns New column columnCount.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks, getBlockAttributes } = registry.select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths(\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\t// Get verticalAlignment from Columns block to set the same to new Column\n\t\t\tconst { verticalAlignment } = getBlockAttributes( clientId ) || {};\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = dropRight(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpreviousColumns - newColumns\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t\tonAddNextColumn: () => {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks, selectBlock } = dispatch(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst { getBlocks, getBlockAttributes } = registry.select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// Get verticalAlignment from Columns block to set the same to new Column\n\t\t\tconst { verticalAlignment } = getBlockAttributes( clientId );\n\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\tconst insertedBlock = createBlock( 'core/column', {\n\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\treplaceInnerBlocks(\n\t\t\t\tclientId,\n\t\t\t\t[ ...innerBlocks, insertedBlock ],\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t},\n\t\tonDeleteBlock: () => {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { removeBlock } = dispatch( blockEditorStore );\n\t\t\tremoveBlock( clientId );\n\t\t},\n\t} )\n)( memo( ColumnsEditContainer ) );\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId, isSelected, style } = props;\n\tconst {\n\t\tcolumnCount,\n\t\tisDefaultColumns,\n\t\tinnerWidths = [],\n\t\thasParents,\n\t\tparentBlockAlignment,\n\t\teditorSidebarOpened,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\tconst isContentEmpty = map(\n\t\t\t\tinnerBlocks,\n\t\t\t\t( innerBlock ) => innerBlock.innerBlocks.length\n\t\t\t);\n\n\t\t\tconst innerColumnsWidths = innerBlocks.map( ( inn ) => ( {\n\t\t\t\tclientId: inn.clientId,\n\t\t\t\tattributes: { width: inn.attributes.width },\n\t\t\t} ) );\n\t\t\tconst parents = getBlockParents( clientId, true );\n\n\t\t\treturn {\n\t\t\t\tcolumnCount: getBlockCount( clientId ),\n\t\t\t\tisDefaultColumns: ! compact( isContentEmpty ).length,\n\t\t\t\tinnerWidths: innerColumnsWidths,\n\t\t\t\thasParents: !! parents.length,\n\t\t\t\tparentBlockAlignment: getBlockAttributes( parents[ 0 ] )?.align,\n\t\t\t\teditorSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected ]\n\t);\n\n\tconst memoizedInnerWidths = useMemo( () => {\n\t\treturn innerWidths;\n\t}, [\n\t\t// The JSON.stringify is used because innerWidth is always a new reference.\n\t\t// The innerBlocks is a new reference after each attribute change of any nested block.\n\t\tJSON.stringify( innerWidths ),\n\t] );\n\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( isSelected && isDefaultColumns ) {\n\t\t\tdelay( () => setIsVisible( true ), 100 );\n\t\t}\n\t}, [] );\n\n\tconst onClose = useCallback( () => {\n\t\tsetIsVisible( false );\n\t}, [] );\n\n\treturn (\n\t\t<View style={ style }>\n\t\t\t<ColumnsEditContainerWrapper\n\t\t\t\tcolumnCount={ columnCount }\n\t\t\t\tinnerWidths={ memoizedInnerWidths }\n\t\t\t\thasParents={ hasParents }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\teditorSidebarOpened={ editorSidebarOpened }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t<BlockVariationPicker\n\t\t\t\tvariations={ variations }\n\t\t\t\tonClose={ onClose }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisVisible={ isVisible }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default ColumnsEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/columns/edit.native.js"],"names":["View","Dimensions","dropRight","times","map","compact","delay","__","sprintf","PanelBody","RangeControl","FooterMessageControl","UnitControl","getValueAndUnit","GlobalStylesContext","alignmentHelpers","__experimentalUseCustomUnits","useCustomUnits","InspectorControls","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","BlockVariationPicker","useSetting","store","blockEditorStore","withDispatch","useSelect","useEffect","useState","useContext","useMemo","useCallback","memo","useResizeObserver","createBlock","columns","variations","styles","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","getWidths","getWidthWithUnit","isPercentageUnit","getColumnsInRow","calculateContainerWidth","getContentWidths","ColumnsPreview","ALLOWED_BLOCKS","DEFAULT_COLUMNS_NUM","MIN_COLUMNS_NUM","isFullWidth","ColumnsEditContainer","attributes","updateAlignment","updateColumns","columnCount","isSelected","onDeleteBlock","innerWidths","updateInnerColumnWidth","editorSidebarOpened","resizeListener","sizes","columnsInRow","setColumnsInRow","screenWidth","Math","floor","get","width","globalStyles","verticalAlignment","align","units","availableUnits","newColumnCount","renderAppender","columnAppender","onAddBlock","contentWidths","onChangeWidth","nextWidth","valueUnit","columnId","widthWithUnit","onChangeUnit","nextUnit","index","widthWithoutUnit","parseFloat","onChange","getColumnsSliders","column","label","clientId","length","undefined","onChangeColumnsNum","value","innerBlocksSelected","ColumnsEditContainerWrapper","dispatch","ownProps","registry","setAttributes","updateBlockAttributes","getBlockOrder","select","innerBlockClientIds","forEach","innerBlockClientId","updateBlockSettings","settings","updateBlockListSettings","previousColumns","newColumns","replaceInnerBlocks","getBlocks","getBlockAttributes","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","onAddNextColumn","selectBlock","insertedBlock","removeBlock","ColumnsEdit","props","style","isDefaultColumns","hasParents","parentBlockAlignment","getBlockCount","getBlockParents","isEditorSidebarOpened","isContentEmpty","innerBlock","innerColumnsWidths","inn","parents","memoizedInnerWidths","JSON","stringify","isVisible","setIsVisible","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\nimport { dropRight, times, map, compact, delay } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\tGlobalStylesContext,\n\talignmentHelpers,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tBlockVariationPicker,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseContext,\n\tuseMemo,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { createBlock } from '@wordpress/blocks';\nimport { columns } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport variations from './variations';\nimport styles from './editor.scss';\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from './utils';\nimport {\n\tgetColumnsInRow,\n\tcalculateContainerWidth,\n\tgetContentWidths,\n} from './columnCalculations.native';\nimport ColumnsPreview from '../column/column-preview';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\n/**\n * Number of columns to assume for template in case the user opts to skip\n * template option selection.\n *\n * @type {number}\n */\nconst DEFAULT_COLUMNS_NUM = 2;\n\n/**\n * Minimum number of columns in a row\n *\n * @type {number}\n */\nconst MIN_COLUMNS_NUM = 1;\n\nconst { isFullWidth } = alignmentHelpers;\n\nfunction ColumnsEditContainer( {\n\tattributes,\n\tupdateAlignment,\n\tupdateColumns,\n\tcolumnCount,\n\tisSelected,\n\tonDeleteBlock,\n\tinnerWidths,\n\tupdateInnerColumnWidth,\n\teditorSidebarOpened,\n} ) {\n\tconst [ resizeListener, sizes ] = useResizeObserver();\n\tconst [ columnsInRow, setColumnsInRow ] = useState( MIN_COLUMNS_NUM );\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\tconst globalStyles = useContext( GlobalStylesContext );\n\n\tconst { verticalAlignment, align } = attributes;\n\tconst { width } = sizes || {};\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( columnCount === 0 ) {\n\t\t\tconst newColumnCount = columnCount || DEFAULT_COLUMNS_NUM;\n\t\t\tupdateColumns( columnCount, newColumnCount );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( width ) {\n\t\t\tif ( getColumnsInRow( width, columnCount ) !== columnsInRow ) {\n\t\t\t\tsetColumnsInRow( getColumnsInRow( width, columnCount ) );\n\t\t\t}\n\t\t}\n\t}, [ width, columnCount ] );\n\n\tconst renderAppender = () => {\n\t\tif ( isSelected ) {\n\t\t\treturn (\n\t\t\t\t<View style={ isFullWidth( align ) && styles.columnAppender }>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst contentWidths = useMemo(\n\t\t() =>\n\t\t\tgetContentWidths(\n\t\t\t\tcolumnsInRow,\n\t\t\t\twidth,\n\t\t\t\tcolumnCount,\n\t\t\t\tinnerWidths,\n\t\t\t\tglobalStyles\n\t\t\t),\n\t\t[ width, columnsInRow, columnCount, innerWidths, globalStyles ]\n\t);\n\n\tconst onAddBlock = useCallback( () => {\n\t\tupdateColumns( columnCount, columnCount + 1 );\n\t}, [ columnCount ] );\n\n\tconst onChangeWidth = ( nextWidth, valueUnit, columnId ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, valueUnit );\n\n\t\tupdateInnerColumnWidth( widthWithUnit, columnId );\n\t};\n\n\tconst onChangeUnit = ( nextUnit, index, columnId ) => {\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\tgetWidths( innerWidths )[ index ]\n\t\t);\n\t\tconst widthWithUnit = getWidthWithUnit( widthWithoutUnit, nextUnit );\n\n\t\tupdateInnerColumnWidth( widthWithUnit, columnId );\n\t};\n\n\tconst onChange = ( nextWidth, valueUnit, columnId ) => {\n\t\tif ( isPercentageUnit( valueUnit ) || ! valueUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth, valueUnit, columnId );\n\t};\n\n\tconst getColumnsSliders = useMemo( () => {\n\t\tif ( ! editorSidebarOpened || ! isSelected ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn innerWidths.map( ( column, index ) => {\n\t\t\tconst { valueUnit = '%' } =\n\t\t\t\tgetValueAndUnit( column.attributes.width ) || {};\n\t\t\tconst label = sprintf(\n\t\t\t\t/* translators: %d: column index. */\n\t\t\t\t__( 'Column %d' ),\n\t\t\t\tindex + 1\n\t\t\t);\n\t\t\treturn (\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tsettingLabel=\"Width\"\n\t\t\t\t\tkey={ `${ column.clientId }-${\n\t\t\t\t\t\tgetWidths( innerWidths ).length\n\t\t\t\t\t}` }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t\tmax={\n\t\t\t\t\t\tisPercentageUnit( valueUnit ) || ! valueUnit\n\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ getWidths( innerWidths )[ index ] }\n\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\tonChange( nextWidth, valueUnit, column.clientId );\n\t\t\t\t\t} }\n\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\tonChangeUnit( nextUnit, index, column.clientId )\n\t\t\t\t\t}\n\t\t\t\t\tonComplete={ ( nextWidth ) => {\n\t\t\t\t\t\tonChangeWidth( nextWidth, valueUnit, column.clientId );\n\t\t\t\t\t} }\n\t\t\t\t\tunit={ valueUnit }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tpreview={\n\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\tcolumnWidths={ getWidths( innerWidths, false ) }\n\t\t\t\t\t\t\tselectedColumnIndex={ index }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ editorSidebarOpened, isSelected, innerWidths ] );\n\n\tconst onChangeColumnsNum = useCallback(\n\t\t( value ) => {\n\t\t\tupdateColumns( columnCount, value );\n\t\t},\n\t\t[ columnCount ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Columns Settings' ) }>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Number of columns' ) }\n\t\t\t\t\t\t\t\ticon={ columns }\n\t\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\t\tonChange={ onChangeColumnsNum }\n\t\t\t\t\t\t\t\tmin={ MIN_COLUMNS_NUM }\n\t\t\t\t\t\t\t\tmax={ columnCount + 1 }\n\t\t\t\t\t\t\t\ttype=\"stepper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ getColumnsSliders }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View style={ isSelected && styles.innerBlocksSelected }>\n\t\t\t\t{ resizeListener }\n\t\t\t\t{ width && (\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\torientation={\n\t\t\t\t\t\t\tcolumnsInRow > 1 ? 'horizontal' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\thorizontal={ columnsInRow > 1 }\n\t\t\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS }\n\t\t\t\t\t\tcontentResizeMode=\"stretch\"\n\t\t\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\t\t\tonDeleteBlock={\n\t\t\t\t\t\t\tcolumnCount === 1 ? onDeleteBlock : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblockWidth={ width }\n\t\t\t\t\t\tcontentStyle={ contentWidths }\n\t\t\t\t\t\tparentWidth={\n\t\t\t\t\t\t\tisFullWidth( align ) && columnCount === 0\n\t\t\t\t\t\t\t\t? screenWidth\n\t\t\t\t\t\t\t\t: calculateContainerWidth( width, columnsInRow )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nconst ColumnsEditContainerWrapper = withDispatch(\n\t( dispatch, ownProps, registry ) => ( {\n\t\t/**\n\t\t * Update all child Column blocks with a new vertical alignment setting\n\t\t * based on whatever alignment is passed in. This allows change to parent\n\t\t * to overide anything set on a individual column basis.\n\t\t *\n\t\t * @param {string} verticalAlignment the vertical alignment setting\n\t\t */\n\t\tupdateAlignment( verticalAlignment ) {\n\t\t\tconst { clientId, setAttributes } = ownProps;\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\t\t\tconst { getBlockOrder } = registry.select( blockEditorStore );\n\n\t\t\t// Update own alignment.\n\t\t\tsetAttributes( { verticalAlignment } );\n\n\t\t\t// Update all child Column Blocks to match.\n\t\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\t\t\tinnerBlockClientIds.forEach( ( innerBlockClientId ) => {\n\t\t\t\tupdateBlockAttributes( innerBlockClientId, {\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\t\tupdateInnerColumnWidth( value, columnId ) {\n\t\t\tconst { updateBlockAttributes } = dispatch( blockEditorStore );\n\n\t\t\tupdateBlockAttributes( columnId, {\n\t\t\t\twidth: value,\n\t\t\t} );\n\t\t},\n\t\tupdateBlockSettings( settings ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { updateBlockListSettings } = dispatch( blockEditorStore );\n\t\t\tupdateBlockListSettings( clientId, settings );\n\t\t},\n\t\t/**\n\t\t * Updates the column columnCount, including necessary revisions to child Column\n\t\t * blocks to grant required or redistribute available space.\n\t\t *\n\t\t * @param {number} previousColumns Previous column columnCount.\n\t\t * @param {number} newColumns New column columnCount.\n\t\t */\n\t\tupdateColumns( previousColumns, newColumns ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks } = dispatch( blockEditorStore );\n\t\t\tconst { getBlocks, getBlockAttributes } = registry.select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths(\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\t// Redistribute available width for existing inner blocks.\n\t\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\t\t// Get verticalAlignment from Columns block to set the same to new Column.\n\t\t\tconst { verticalAlignment } = getBlockAttributes( clientId ) || {};\n\n\t\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\n\t\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t\t// constraining the available working width.\n\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t100 - newColumnWidth\n\t\t\t\t);\n\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else if ( isAddingColumn ) {\n\t\t\t\tinnerBlocks = [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t...times( newColumns - previousColumns, () => {\n\t\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\t\tinnerBlocks = dropRight(\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpreviousColumns - newColumns\n\t\t\t\t);\n\n\t\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t\t100\n\t\t\t\t\t);\n\n\t\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t\t},\n\t\tonAddNextColumn: () => {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { replaceInnerBlocks, selectBlock } = dispatch(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst { getBlocks, getBlockAttributes } = registry.select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// Get verticalAlignment from Columns block to set the same to new Column.\n\t\t\tconst { verticalAlignment } = getBlockAttributes( clientId );\n\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\tconst insertedBlock = createBlock( 'core/column', {\n\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\treplaceInnerBlocks(\n\t\t\t\tclientId,\n\t\t\t\t[ ...innerBlocks, insertedBlock ],\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tselectBlock( insertedBlock.clientId );\n\t\t},\n\t\tonDeleteBlock: () => {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { removeBlock } = dispatch( blockEditorStore );\n\t\t\tremoveBlock( clientId );\n\t\t},\n\t} )\n)( memo( ColumnsEditContainer ) );\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId, isSelected, style } = props;\n\tconst {\n\t\tcolumnCount,\n\t\tisDefaultColumns,\n\t\tinnerWidths = [],\n\t\thasParents,\n\t\tparentBlockAlignment,\n\t\teditorSidebarOpened,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\tconst isContentEmpty = map(\n\t\t\t\tinnerBlocks,\n\t\t\t\t( innerBlock ) => innerBlock.innerBlocks.length\n\t\t\t);\n\n\t\t\tconst innerColumnsWidths = innerBlocks.map( ( inn ) => ( {\n\t\t\t\tclientId: inn.clientId,\n\t\t\t\tattributes: { width: inn.attributes.width },\n\t\t\t} ) );\n\t\t\tconst parents = getBlockParents( clientId, true );\n\n\t\t\treturn {\n\t\t\t\tcolumnCount: getBlockCount( clientId ),\n\t\t\t\tisDefaultColumns: ! compact( isContentEmpty ).length,\n\t\t\t\tinnerWidths: innerColumnsWidths,\n\t\t\t\thasParents: !! parents.length,\n\t\t\t\tparentBlockAlignment: getBlockAttributes( parents[ 0 ] )?.align,\n\t\t\t\teditorSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected ]\n\t);\n\n\tconst memoizedInnerWidths = useMemo( () => {\n\t\treturn innerWidths;\n\t}, [\n\t\t// The JSON.stringify is used because innerWidth is always a new reference.\n\t\t// The innerBlocks is a new reference after each attribute change of any nested block.\n\t\tJSON.stringify( innerWidths ),\n\t] );\n\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( isSelected && isDefaultColumns ) {\n\t\t\tdelay( () => setIsVisible( true ), 100 );\n\t\t}\n\t}, [] );\n\n\tconst onClose = useCallback( () => {\n\t\tsetIsVisible( false );\n\t}, [] );\n\n\treturn (\n\t\t<View style={ style }>\n\t\t\t<ColumnsEditContainerWrapper\n\t\t\t\tcolumnCount={ columnCount }\n\t\t\t\tinnerWidths={ memoizedInnerWidths }\n\t\t\t\thasParents={ hasParents }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\teditorSidebarOpened={ editorSidebarOpened }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t<BlockVariationPicker\n\t\t\t\tvariations={ variations }\n\t\t\t\tonClose={ onClose }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisVisible={ isVisible }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default ColumnsEdit;\n"]}
@@ -56,11 +56,11 @@ function Controls(_ref) {
56
56
  const units = useCustomUnits({
57
57
  availableUnits: useSetting('spacing.units') || ['px', 'em', 'rem', 'vw', 'vh'],
58
58
  defaultValues: {
59
- px: '430',
60
- em: '20',
61
- rem: '20',
62
- vw: '20',
63
- vh: '50'
59
+ px: 430,
60
+ em: 20,
61
+ rem: 20,
62
+ vw: 20,
63
+ vh: 50
64
64
  }
65
65
  });
66
66
  const onOpacityChange = useCallback(value => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/controls.native.js"],"names":["View","Video","Image","Icon","IMAGE_DEFAULT_FOCAL_POINT","PanelBody","RangeControl","UnitControl","TextControl","BottomSheet","ToggleControl","__experimentalUseCustomUnits","useCustomUnits","plus","useState","useCallback","useRef","usePreferredColorSchemeStyle","useSetting","MediaUpload","__","styles","OverlayColorSettings","FocalPointSettingsButton","ALLOWED_MEDIA_TYPES","COVER_MIN_HEIGHT","COVER_MAX_HEIGHT","COVER_DEFAULT_HEIGHT","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","Controls","attributes","didUploadFail","hasOnlyColorBackground","isUploadInProgress","onClearMedia","onSelectMedia","setAttributes","backgroundType","dimRatio","hasParallax","focalPoint","minHeight","minHeightUnit","url","CONTAINER_HEIGHT","onHeightChange","value","units","availableUnits","defaultValues","px","em","rem","vw","vh","onOpacityChange","onChangeUnit","nextUnit","Math","max","displayPlaceholder","setDisplayPlaceholder","setFocalPoint","toggleParallax","undefined","addMediaButtonStyle","addMediaButton","addMediaButtonDark","focalPointPosition","x","y","left","top","videoNaturalSize","setVideoNaturalSize","videoRef","mediaBackground","mediaBackgroundDark","imagePreviewStyles","imagePlaceholder","videoPreviewStyles","aspectRatio","width","height","opacity","video","focalPointHint","renderMediaSection","open","openMediaOptions","getMediaOptions","mediaPreview","mediaInner","destructiveButton","id","label","onPress","separated","image","event","naturalSize","current","seek","uri","clearMediaButton","overlayColor","customOverlayColor","gradient","customGradient","rangeCellContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\nimport Video from 'react-native-video';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tImage,\n\tIcon,\n\tIMAGE_DEFAULT_FOCAL_POINT,\n\tPanelBody,\n\tRangeControl,\n\tUnitControl,\n\tTextControl,\n\tBottomSheet,\n\tToggleControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { plus } from '@wordpress/icons';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useSetting, MediaUpload } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport OverlayColorSettings from './overlay-color-settings';\nimport FocalPointSettingsButton from './focal-point-settings-button';\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tCOVER_MIN_HEIGHT,\n\tCOVER_MAX_HEIGHT,\n\tCOVER_DEFAULT_HEIGHT,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n} from './shared';\n\nfunction Controls( {\n\tattributes,\n\tdidUploadFail,\n\thasOnlyColorBackground,\n\tisUploadInProgress,\n\tonClearMedia,\n\tonSelectMedia,\n\tsetAttributes,\n} ) {\n\tconst {\n\t\tbackgroundType,\n\t\tdimRatio,\n\t\thasParallax,\n\t\tfocalPoint,\n\t\tminHeight,\n\t\tminHeightUnit = 'px',\n\t\turl,\n\t} = attributes;\n\tconst CONTAINER_HEIGHT = minHeight || COVER_DEFAULT_HEIGHT;\n\tconst onHeightChange = useCallback(\n\t\t( value ) => {\n\t\t\tif ( minHeight || value !== COVER_DEFAULT_HEIGHT ) {\n\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t}\n\t\t},\n\t\t[ minHeight ]\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: '430', em: '20', rem: '20', vw: '20', vh: '50' },\n\t} );\n\n\tconst onOpacityChange = useCallback( ( value ) => {\n\t\tsetAttributes( { dimRatio: value } );\n\t}, [] );\n\n\tconst onChangeUnit = useCallback( ( nextUnit ) => {\n\t\tsetAttributes( {\n\t\t\tminHeightUnit: nextUnit,\n\t\t\tminHeight:\n\t\t\t\tnextUnit === 'px'\n\t\t\t\t\t? Math.max( CONTAINER_HEIGHT, COVER_MIN_HEIGHT )\n\t\t\t\t\t: CONTAINER_HEIGHT,\n\t\t} );\n\t}, [] );\n\n\tconst [ displayPlaceholder, setDisplayPlaceholder ] = useState( true );\n\n\tfunction setFocalPoint( value ) {\n\t\tsetAttributes( { focalPoint: value } );\n\t}\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax\n\t\t\t\t? { focalPoint: undefined }\n\t\t\t\t: { focalPoint: IMAGE_DEFAULT_FOCAL_POINT } ),\n\t\t} );\n\t};\n\n\tconst addMediaButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.addMediaButton,\n\t\tstyles.addMediaButtonDark\n\t);\n\n\tfunction focalPointPosition( { x, y } = IMAGE_DEFAULT_FOCAL_POINT ) {\n\t\treturn {\n\t\t\tleft: `${ ( hasParallax ? 0.5 : x ) * 100 }%`,\n\t\t\ttop: `${ ( hasParallax ? 0.5 : y ) * 100 }%`,\n\t\t};\n\t}\n\n\tconst [ videoNaturalSize, setVideoNaturalSize ] = useState( null );\n\tconst videoRef = useRef( null );\n\n\tconst mediaBackground = usePreferredColorSchemeStyle(\n\t\tstyles.mediaBackground,\n\t\tstyles.mediaBackgroundDark\n\t);\n\tconst imagePreviewStyles = [\n\t\tdisplayPlaceholder && styles.imagePlaceholder,\n\t];\n\tconst videoPreviewStyles = [\n\t\t{\n\t\t\taspectRatio:\n\t\t\t\tvideoNaturalSize &&\n\t\t\t\tvideoNaturalSize.width / videoNaturalSize.height,\n\t\t\t// Hide Video component since it has black background while loading the source\n\t\t\topacity: displayPlaceholder ? 0 : 1,\n\t\t},\n\t\tstyles.video,\n\t\tdisplayPlaceholder && styles.imagePlaceholder,\n\t];\n\n\tconst focalPointHint = ! hasParallax && ! displayPlaceholder && (\n\t\t<Icon\n\t\t\ticon={ plus }\n\t\t\tsize={ styles.focalPointHint?.width }\n\t\t\tstyle={ [\n\t\t\t\tstyles.focalPointHint,\n\t\t\t\tfocalPointPosition( focalPoint ),\n\t\t\t] }\n\t\t/>\n\t);\n\n\tconst renderMediaSection = ( {\n\t\topen: openMediaOptions,\n\t\tgetMediaOptions,\n\t} ) => (\n\t\t<>\n\t\t\t{ getMediaOptions() }\n\t\t\t{ url ? (\n\t\t\t\t<>\n\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\taccessible={ false }\n\t\t\t\t\t\tcellContainerStyle={ [\n\t\t\t\t\t\t\tstyles.mediaPreview,\n\t\t\t\t\t\t\tmediaBackground,\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonLongPress={ openMediaOptions }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.mediaInner }>\n\t\t\t\t\t\t\t{ IMAGE_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\teditButton={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\t\thighlightSelected={ false }\n\t\t\t\t\t\t\t\t\tisSelected={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\t\tisUploadFailed={ didUploadFail }\n\t\t\t\t\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\t\t\t\t\tmediaPickerOptions={ [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tdestructiveButton: true,\n\t\t\t\t\t\t\t\t\t\t\tid: 'clearMedia',\n\t\t\t\t\t\t\t\t\t\t\tlabel: __( 'Clear Media' ),\n\t\t\t\t\t\t\t\t\t\t\tonPress: onClearMedia,\n\t\t\t\t\t\t\t\t\t\t\tseparated: true,\n\t\t\t\t\t\t\t\t\t\t\tvalue: 'clearMedia',\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\tonImageDataLoad={ () => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonSelectMediaUploadOption={ onSelectMedia }\n\t\t\t\t\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\t\t\tstyle={ imagePreviewStyles }\n\t\t\t\t\t\t\t\t\twidth={ styles.image?.width }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t\t<Video\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tpaused\n\t\t\t\t\t\t\t\t\tdisableFocus\n\t\t\t\t\t\t\t\t\tonLoadStart={ () => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( true );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t} = event.naturalSize;\n\t\t\t\t\t\t\t\t\t\tsetVideoNaturalSize( {\n\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( false );\n\t\t\t\t\t\t\t\t\t\t// Avoid invisible, paused video on Android, presumably\n\t\t\t\t\t\t\t\t\t\t// related to https://git.io/Jt6Dr\n\t\t\t\t\t\t\t\t\t\tvideoRef?.current.seek( 0 );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tref={ videoRef }\n\t\t\t\t\t\t\t\t\tresizeMode={ 'cover' }\n\t\t\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t\t\tstyle={ videoPreviewStyles }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPlaceholder ? null : focalPointHint }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t\t<FocalPointSettingsButton\n\t\t\t\t\t\tdisabled={ hasParallax }\n\t\t\t\t\t\tfocalPoint={ focalPoint || IMAGE_DEFAULT_FOCAL_POINT }\n\t\t\t\t\t\tonFocalPointChange={ setFocalPoint }\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t/>\n\t\t\t\t\t{ IMAGE_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\tonChange={ toggleParallax }\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\tleftAlign\n\t\t\t\t\t\tlabel={ __( 'Clear Media' ) }\n\t\t\t\t\t\tlabelStyle={ styles.clearMediaButton }\n\t\t\t\t\t\tonPress={ onClearMedia }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<TextControl\n\t\t\t\t\taccessibilityLabel={ __( 'Add image or video' ) }\n\t\t\t\t\tlabel={ __( 'Add image or video' ) }\n\t\t\t\t\tlabelStyle={ addMediaButtonStyle }\n\t\t\t\t\tleftAlign\n\t\t\t\t\tonPress={ openMediaOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tisReplacingMedia={ ! hasOnlyColorBackground }\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\trender={ renderMediaSection }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<OverlayColorSettings\n\t\t\t\toverlayColor={ attributes.overlayColor }\n\t\t\t\tcustomOverlayColor={ attributes.customOverlayColor }\n\t\t\t\tgradient={ attributes.gradient }\n\t\t\t\tcustomGradient={ attributes.customGradient }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\n\t\t\t{ url ? (\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tminimumValue={ 0 }\n\t\t\t\t\t\tmaximumValue={ 100 }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ onOpacityChange }\n\t\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t\t\tseparatorType={ 'topFullWidth' }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) : null }\n\n\t\t\t<PanelBody title={ __( 'Dimensions' ) }>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tmin={ minHeightUnit === 'px' ? COVER_MIN_HEIGHT : 1 }\n\t\t\t\t\tmax={ COVER_MAX_HEIGHT }\n\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\tvalue={ CONTAINER_HEIGHT }\n\t\t\t\t\tonChange={ onHeightChange }\n\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t\tkey={ minHeightUnit }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</>\n\t);\n}\n\nexport default Controls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/controls.native.js"],"names":["View","Video","Image","Icon","IMAGE_DEFAULT_FOCAL_POINT","PanelBody","RangeControl","UnitControl","TextControl","BottomSheet","ToggleControl","__experimentalUseCustomUnits","useCustomUnits","plus","useState","useCallback","useRef","usePreferredColorSchemeStyle","useSetting","MediaUpload","__","styles","OverlayColorSettings","FocalPointSettingsButton","ALLOWED_MEDIA_TYPES","COVER_MIN_HEIGHT","COVER_MAX_HEIGHT","COVER_DEFAULT_HEIGHT","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","Controls","attributes","didUploadFail","hasOnlyColorBackground","isUploadInProgress","onClearMedia","onSelectMedia","setAttributes","backgroundType","dimRatio","hasParallax","focalPoint","minHeight","minHeightUnit","url","CONTAINER_HEIGHT","onHeightChange","value","units","availableUnits","defaultValues","px","em","rem","vw","vh","onOpacityChange","onChangeUnit","nextUnit","Math","max","displayPlaceholder","setDisplayPlaceholder","setFocalPoint","toggleParallax","undefined","addMediaButtonStyle","addMediaButton","addMediaButtonDark","focalPointPosition","x","y","left","top","videoNaturalSize","setVideoNaturalSize","videoRef","mediaBackground","mediaBackgroundDark","imagePreviewStyles","imagePlaceholder","videoPreviewStyles","aspectRatio","width","height","opacity","video","focalPointHint","renderMediaSection","open","openMediaOptions","getMediaOptions","mediaPreview","mediaInner","destructiveButton","id","label","onPress","separated","image","event","naturalSize","current","seek","uri","clearMediaButton","overlayColor","customOverlayColor","gradient","customGradient","rangeCellContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\nimport Video from 'react-native-video';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tImage,\n\tIcon,\n\tIMAGE_DEFAULT_FOCAL_POINT,\n\tPanelBody,\n\tRangeControl,\n\tUnitControl,\n\tTextControl,\n\tBottomSheet,\n\tToggleControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { plus } from '@wordpress/icons';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useSetting, MediaUpload } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport OverlayColorSettings from './overlay-color-settings';\nimport FocalPointSettingsButton from './focal-point-settings-button';\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tCOVER_MIN_HEIGHT,\n\tCOVER_MAX_HEIGHT,\n\tCOVER_DEFAULT_HEIGHT,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n} from './shared';\n\nfunction Controls( {\n\tattributes,\n\tdidUploadFail,\n\thasOnlyColorBackground,\n\tisUploadInProgress,\n\tonClearMedia,\n\tonSelectMedia,\n\tsetAttributes,\n} ) {\n\tconst {\n\t\tbackgroundType,\n\t\tdimRatio,\n\t\thasParallax,\n\t\tfocalPoint,\n\t\tminHeight,\n\t\tminHeightUnit = 'px',\n\t\turl,\n\t} = attributes;\n\tconst CONTAINER_HEIGHT = minHeight || COVER_DEFAULT_HEIGHT;\n\tconst onHeightChange = useCallback(\n\t\t( value ) => {\n\t\t\tif ( minHeight || value !== COVER_DEFAULT_HEIGHT ) {\n\t\t\t\tsetAttributes( { minHeight: value } );\n\t\t\t}\n\t\t},\n\t\t[ minHeight ]\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst onOpacityChange = useCallback( ( value ) => {\n\t\tsetAttributes( { dimRatio: value } );\n\t}, [] );\n\n\tconst onChangeUnit = useCallback( ( nextUnit ) => {\n\t\tsetAttributes( {\n\t\t\tminHeightUnit: nextUnit,\n\t\t\tminHeight:\n\t\t\t\tnextUnit === 'px'\n\t\t\t\t\t? Math.max( CONTAINER_HEIGHT, COVER_MIN_HEIGHT )\n\t\t\t\t\t: CONTAINER_HEIGHT,\n\t\t} );\n\t}, [] );\n\n\tconst [ displayPlaceholder, setDisplayPlaceholder ] = useState( true );\n\n\tfunction setFocalPoint( value ) {\n\t\tsetAttributes( { focalPoint: value } );\n\t}\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax\n\t\t\t\t? { focalPoint: undefined }\n\t\t\t\t: { focalPoint: IMAGE_DEFAULT_FOCAL_POINT } ),\n\t\t} );\n\t};\n\n\tconst addMediaButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.addMediaButton,\n\t\tstyles.addMediaButtonDark\n\t);\n\n\tfunction focalPointPosition( { x, y } = IMAGE_DEFAULT_FOCAL_POINT ) {\n\t\treturn {\n\t\t\tleft: `${ ( hasParallax ? 0.5 : x ) * 100 }%`,\n\t\t\ttop: `${ ( hasParallax ? 0.5 : y ) * 100 }%`,\n\t\t};\n\t}\n\n\tconst [ videoNaturalSize, setVideoNaturalSize ] = useState( null );\n\tconst videoRef = useRef( null );\n\n\tconst mediaBackground = usePreferredColorSchemeStyle(\n\t\tstyles.mediaBackground,\n\t\tstyles.mediaBackgroundDark\n\t);\n\tconst imagePreviewStyles = [\n\t\tdisplayPlaceholder && styles.imagePlaceholder,\n\t];\n\tconst videoPreviewStyles = [\n\t\t{\n\t\t\taspectRatio:\n\t\t\t\tvideoNaturalSize &&\n\t\t\t\tvideoNaturalSize.width / videoNaturalSize.height,\n\t\t\t// Hide Video component since it has black background while loading the source\n\t\t\topacity: displayPlaceholder ? 0 : 1,\n\t\t},\n\t\tstyles.video,\n\t\tdisplayPlaceholder && styles.imagePlaceholder,\n\t];\n\n\tconst focalPointHint = ! hasParallax && ! displayPlaceholder && (\n\t\t<Icon\n\t\t\ticon={ plus }\n\t\t\tsize={ styles.focalPointHint?.width }\n\t\t\tstyle={ [\n\t\t\t\tstyles.focalPointHint,\n\t\t\t\tfocalPointPosition( focalPoint ),\n\t\t\t] }\n\t\t/>\n\t);\n\n\tconst renderMediaSection = ( {\n\t\topen: openMediaOptions,\n\t\tgetMediaOptions,\n\t} ) => (\n\t\t<>\n\t\t\t{ getMediaOptions() }\n\t\t\t{ url ? (\n\t\t\t\t<>\n\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\taccessible={ false }\n\t\t\t\t\t\tcellContainerStyle={ [\n\t\t\t\t\t\t\tstyles.mediaPreview,\n\t\t\t\t\t\t\tmediaBackground,\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonLongPress={ openMediaOptions }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.mediaInner }>\n\t\t\t\t\t\t\t{ IMAGE_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\teditButton={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\t\thighlightSelected={ false }\n\t\t\t\t\t\t\t\t\tisSelected={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\t\tisUploadFailed={ didUploadFail }\n\t\t\t\t\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\t\t\t\t\tmediaPickerOptions={ [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tdestructiveButton: true,\n\t\t\t\t\t\t\t\t\t\t\tid: 'clearMedia',\n\t\t\t\t\t\t\t\t\t\t\tlabel: __( 'Clear Media' ),\n\t\t\t\t\t\t\t\t\t\t\tonPress: onClearMedia,\n\t\t\t\t\t\t\t\t\t\t\tseparated: true,\n\t\t\t\t\t\t\t\t\t\t\tvalue: 'clearMedia',\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\tonImageDataLoad={ () => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonSelectMediaUploadOption={ onSelectMedia }\n\t\t\t\t\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\t\t\tstyle={ imagePreviewStyles }\n\t\t\t\t\t\t\t\t\twidth={ styles.image?.width }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t\t<Video\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tpaused\n\t\t\t\t\t\t\t\t\tdisableFocus\n\t\t\t\t\t\t\t\t\tonLoadStart={ () => {\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( true );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t} = event.naturalSize;\n\t\t\t\t\t\t\t\t\t\tsetVideoNaturalSize( {\n\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tsetDisplayPlaceholder( false );\n\t\t\t\t\t\t\t\t\t\t// Avoid invisible, paused video on Android, presumably\n\t\t\t\t\t\t\t\t\t\t// related to https://git.io/Jt6Dr\n\t\t\t\t\t\t\t\t\t\tvideoRef?.current.seek( 0 );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tref={ videoRef }\n\t\t\t\t\t\t\t\t\tresizeMode={ 'cover' }\n\t\t\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t\t\tstyle={ videoPreviewStyles }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPlaceholder ? null : focalPointHint }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t\t<FocalPointSettingsButton\n\t\t\t\t\t\tdisabled={ hasParallax }\n\t\t\t\t\t\tfocalPoint={ focalPoint || IMAGE_DEFAULT_FOCAL_POINT }\n\t\t\t\t\t\tonFocalPointChange={ setFocalPoint }\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t/>\n\t\t\t\t\t{ IMAGE_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\tonChange={ toggleParallax }\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\tleftAlign\n\t\t\t\t\t\tlabel={ __( 'Clear Media' ) }\n\t\t\t\t\t\tlabelStyle={ styles.clearMediaButton }\n\t\t\t\t\t\tonPress={ onClearMedia }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<TextControl\n\t\t\t\t\taccessibilityLabel={ __( 'Add image or video' ) }\n\t\t\t\t\tlabel={ __( 'Add image or video' ) }\n\t\t\t\t\tlabelStyle={ addMediaButtonStyle }\n\t\t\t\t\tleftAlign\n\t\t\t\t\tonPress={ openMediaOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tisReplacingMedia={ ! hasOnlyColorBackground }\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\trender={ renderMediaSection }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<OverlayColorSettings\n\t\t\t\toverlayColor={ attributes.overlayColor }\n\t\t\t\tcustomOverlayColor={ attributes.customOverlayColor }\n\t\t\t\tgradient={ attributes.gradient }\n\t\t\t\tcustomGradient={ attributes.customGradient }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\n\t\t\t{ url ? (\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tminimumValue={ 0 }\n\t\t\t\t\t\tmaximumValue={ 100 }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ onOpacityChange }\n\t\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t\t\tseparatorType={ 'topFullWidth' }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) : null }\n\n\t\t\t<PanelBody title={ __( 'Dimensions' ) }>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tmin={ minHeightUnit === 'px' ? COVER_MIN_HEIGHT : 1 }\n\t\t\t\t\tmax={ COVER_MAX_HEIGHT }\n\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\tvalue={ CONTAINER_HEIGHT }\n\t\t\t\t\tonChange={ onHeightChange }\n\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t\tkey={ minHeightUnit }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</>\n\t);\n}\n\nexport default Controls;\n"]}