@wordpress/block-library 9.17.0 → 9.19.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 (554) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/index.js +9 -0
  3. package/build/archives/index.js.map +1 -1
  4. package/build/avatar/user-control.js +0 -1
  5. package/build/avatar/user-control.js.map +1 -1
  6. package/build/block/deprecated.js +0 -1
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +0 -1
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/deprecated.js +0 -1
  11. package/build/button/deprecated.js.map +1 -1
  12. package/build/buttons/transforms.js +0 -1
  13. package/build/buttons/transforms.js.map +1 -1
  14. package/build/categories/edit.js +0 -1
  15. package/build/categories/edit.js.map +1 -1
  16. package/build/categories/index.js +9 -0
  17. package/build/categories/index.js.map +1 -1
  18. package/build/column/column-preview.native.js +0 -1
  19. package/build/column/column-preview.native.js.map +1 -1
  20. package/build/columns/columnCalculations.native.js +0 -1
  21. package/build/columns/columnCalculations.native.js.map +1 -1
  22. package/build/columns/deprecated.js +0 -1
  23. package/build/columns/deprecated.js.map +1 -1
  24. package/build/columns/edit.js +0 -1
  25. package/build/columns/edit.js.map +1 -1
  26. package/build/columns/edit.native.js +0 -1
  27. package/build/columns/edit.native.js.map +1 -1
  28. package/build/columns/transforms.js +0 -1
  29. package/build/columns/transforms.js.map +1 -1
  30. package/build/columns/utils.js +0 -1
  31. package/build/columns/utils.js.map +1 -1
  32. package/build/comment-template/edit.js +0 -1
  33. package/build/comment-template/edit.js.map +1 -1
  34. package/build/comment-template/hooks.js +0 -1
  35. package/build/comment-template/hooks.js.map +1 -1
  36. package/build/comment-template/util.js +0 -1
  37. package/build/comment-template/util.js.map +1 -1
  38. package/build/cover/edit/index.js +3 -1
  39. package/build/cover/edit/index.js.map +1 -1
  40. package/build/details/transforms.js +0 -1
  41. package/build/details/transforms.js.map +1 -1
  42. package/build/embed/embed-placeholder.native.js +0 -1
  43. package/build/embed/embed-placeholder.native.js.map +1 -1
  44. package/build/embed/util.js +0 -1
  45. package/build/embed/util.js.map +1 -1
  46. package/build/embed/variations.js +0 -1
  47. package/build/embed/variations.js.map +1 -1
  48. package/build/embed/wp-embed-preview.js +0 -1
  49. package/build/embed/wp-embed-preview.js.map +1 -1
  50. package/build/file/transforms.js +0 -1
  51. package/build/file/transforms.js.map +1 -1
  52. package/build/footnotes/edit.js +0 -1
  53. package/build/footnotes/edit.js.map +1 -1
  54. package/build/form/edit.js +4 -2
  55. package/build/form/edit.js.map +1 -1
  56. package/build/freeform/modal.js +0 -1
  57. package/build/freeform/modal.js.map +1 -1
  58. package/build/gallery/deprecated.js +0 -1
  59. package/build/gallery/deprecated.js.map +1 -1
  60. package/build/gallery/edit.js +0 -1
  61. package/build/gallery/edit.js.map +1 -1
  62. package/build/gallery/shared.js +0 -1
  63. package/build/gallery/shared.js.map +1 -1
  64. package/build/gallery/transforms.js +0 -1
  65. package/build/gallery/transforms.js.map +1 -1
  66. package/build/gallery/use-get-media.js +0 -1
  67. package/build/gallery/use-get-media.js.map +1 -1
  68. package/build/gallery/use-get-media.native.js +0 -1
  69. package/build/gallery/use-get-media.native.js.map +1 -1
  70. package/build/gallery/use-get-new-images.js +0 -1
  71. package/build/gallery/use-get-new-images.js.map +1 -1
  72. package/build/gallery/use-image-sizes.js +0 -1
  73. package/build/gallery/use-image-sizes.js.map +1 -1
  74. package/build/group/placeholder.js +0 -1
  75. package/build/group/placeholder.js.map +1 -1
  76. package/build/group/transforms.js +0 -1
  77. package/build/group/transforms.js.map +1 -1
  78. package/build/heading/transforms.js +0 -1
  79. package/build/heading/transforms.js.map +1 -1
  80. package/build/html/preview.js +0 -1
  81. package/build/html/preview.js.map +1 -1
  82. package/build/image/edit.js +0 -1
  83. package/build/image/edit.js.map +1 -1
  84. package/build/image/edit.native.js +0 -1
  85. package/build/image/edit.native.js.map +1 -1
  86. package/build/image/image.js +0 -1
  87. package/build/image/image.js.map +1 -1
  88. package/build/image/transforms.js +0 -1
  89. package/build/image/transforms.js.map +1 -1
  90. package/build/image/utils.js +0 -1
  91. package/build/image/utils.js.map +1 -1
  92. package/build/image/view.js +4 -4
  93. package/build/image/view.js.map +1 -1
  94. package/build/index.native.js +0 -1
  95. package/build/index.native.js.map +1 -1
  96. package/build/latest-posts/edit.js +0 -1
  97. package/build/latest-posts/edit.js.map +1 -1
  98. package/build/list/transforms.js +0 -1
  99. package/build/list/transforms.js.map +1 -1
  100. package/build/list/utils.js +0 -1
  101. package/build/list/utils.js.map +1 -1
  102. package/build/list-item/hooks/use-indent-list-item.js +0 -1
  103. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  104. package/build/list-item/transforms.js +0 -1
  105. package/build/list-item/transforms.js.map +1 -1
  106. package/build/media-text/edit.js +0 -1
  107. package/build/media-text/edit.js.map +1 -1
  108. package/build/more/save.js +0 -1
  109. package/build/more/save.js.map +1 -1
  110. package/build/navigation/deprecated.js +0 -1
  111. package/build/navigation/deprecated.js.map +1 -1
  112. package/build/navigation/edit/index.js +0 -1
  113. package/build/navigation/edit/index.js.map +1 -1
  114. package/build/navigation/edit/use-generate-default-navigation-title.js +0 -1
  115. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  116. package/build/navigation/menu-items-to-blocks.js +0 -1
  117. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  118. package/build/navigation/use-template-part-area-label.js +0 -1
  119. package/build/navigation/use-template-part-area-label.js.map +1 -1
  120. package/build/navigation/view.js +2 -3
  121. package/build/navigation/view.js.map +1 -1
  122. package/build/navigation-link/edit.js +2 -1
  123. package/build/navigation-link/edit.js.map +1 -1
  124. package/build/navigation-link/hooks.js +0 -1
  125. package/build/navigation-link/hooks.js.map +1 -1
  126. package/build/navigation-submenu/edit.js +2 -1
  127. package/build/navigation-submenu/edit.js.map +1 -1
  128. package/build/page-list/edit.js +0 -1
  129. package/build/page-list/edit.js.map +1 -1
  130. package/build/page-list/use-convert-to-navigation-links.js +0 -1
  131. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  132. package/build/pattern/edit.js +0 -1
  133. package/build/pattern/edit.js.map +1 -1
  134. package/build/post-author/edit.js +0 -1
  135. package/build/post-author/edit.js.map +1 -1
  136. package/build/post-comments-count/index.js +8 -1
  137. package/build/post-comments-count/index.js.map +1 -1
  138. package/build/post-featured-image/dimension-controls.js +2 -39
  139. package/build/post-featured-image/dimension-controls.js.map +1 -1
  140. package/build/post-featured-image/edit.js +45 -3
  141. package/build/post-featured-image/edit.js.map +1 -1
  142. package/build/post-navigation-link/edit.js +1 -2
  143. package/build/post-navigation-link/edit.js.map +1 -1
  144. package/build/post-navigation-link/variations.js +0 -1
  145. package/build/post-navigation-link/variations.js.map +1 -1
  146. package/build/post-template/edit.js +14 -7
  147. package/build/post-template/edit.js.map +1 -1
  148. package/build/post-terms/edit.js +0 -1
  149. package/build/post-terms/edit.js.map +1 -1
  150. package/build/post-terms/hooks.js +0 -1
  151. package/build/post-terms/hooks.js.map +1 -1
  152. package/build/pullquote/blockquote.native.js +0 -1
  153. package/build/pullquote/blockquote.native.js.map +1 -1
  154. package/build/pullquote/transforms.js +0 -1
  155. package/build/pullquote/transforms.js.map +1 -1
  156. package/build/query/deprecated.js +0 -1
  157. package/build/query/deprecated.js.map +1 -1
  158. package/build/query/edit/inspector-controls/author-control.js +0 -1
  159. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  160. package/build/query/edit/inspector-controls/format-controls.js +0 -1
  161. package/build/query/edit/inspector-controls/format-controls.js.map +1 -1
  162. package/build/query/edit/inspector-controls/index.js +0 -1
  163. package/build/query/edit/inspector-controls/index.js.map +1 -1
  164. package/build/query/edit/inspector-controls/parent-control.js +0 -1
  165. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  166. package/build/query/edit/inspector-controls/sticky-control.js +3 -0
  167. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  168. package/build/query/edit/inspector-controls/taxonomy-controls.js +0 -1
  169. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  170. package/build/query/utils.js +0 -1
  171. package/build/query/utils.js.map +1 -1
  172. package/build/query/view.js +2 -2
  173. package/build/query/view.js.map +1 -1
  174. package/build/query-title/variations.js +0 -1
  175. package/build/query-title/variations.js.map +1 -1
  176. package/build/quote/deprecated.js +0 -1
  177. package/build/quote/deprecated.js.map +1 -1
  178. package/build/quote/transforms.js +0 -1
  179. package/build/quote/transforms.js.map +1 -1
  180. package/build/rss/edit.js +15 -1
  181. package/build/rss/edit.js.map +1 -1
  182. package/build/rss/index.js +14 -0
  183. package/build/rss/index.js.map +1 -1
  184. package/build/search/view.js +2 -2
  185. package/build/search/view.js.map +1 -1
  186. package/build/site-logo/edit.js +2 -5
  187. package/build/site-logo/edit.js.map +1 -1
  188. package/build/social-link/icons/discord.js +23 -0
  189. package/build/social-link/icons/discord.js.map +1 -0
  190. package/build/social-link/icons/index.js +11 -0
  191. package/build/social-link/icons/index.js.map +1 -1
  192. package/build/social-link/social-list.js +0 -1
  193. package/build/social-link/social-list.js.map +1 -1
  194. package/build/social-link/variations.js +7 -1
  195. package/build/social-link/variations.js.map +1 -1
  196. package/build/social-links/edit.js +0 -1
  197. package/build/social-links/edit.js.map +1 -1
  198. package/build/social-links/edit.native.js +0 -1
  199. package/build/social-links/edit.native.js.map +1 -1
  200. package/build/spacer/controls.js +0 -1
  201. package/build/spacer/controls.js.map +1 -1
  202. package/build/table/deprecated.js +0 -1
  203. package/build/table/deprecated.js.map +1 -1
  204. package/build/table/edit.js +0 -1
  205. package/build/table/edit.js.map +1 -1
  206. package/build/table/save.js +0 -1
  207. package/build/table/save.js.map +1 -1
  208. package/build/table/state.js +0 -1
  209. package/build/table/state.js.map +1 -1
  210. package/build/table/transforms.js +0 -1
  211. package/build/table/transforms.js.map +1 -1
  212. package/build/table-of-contents/list.js +0 -1
  213. package/build/table-of-contents/list.js.map +1 -1
  214. package/build/table-of-contents/utils.js +0 -1
  215. package/build/table-of-contents/utils.js.map +1 -1
  216. package/build/tag-cloud/edit.js +0 -1
  217. package/build/tag-cloud/edit.js.map +1 -1
  218. package/build/template-part/edit/advanced-controls.js +0 -1
  219. package/build/template-part/edit/advanced-controls.js.map +1 -1
  220. package/build/template-part/edit/import-controls.js +0 -1
  221. package/build/template-part/edit/import-controls.js.map +1 -1
  222. package/build/template-part/edit/selection-modal.js +0 -1
  223. package/build/template-part/edit/selection-modal.js.map +1 -1
  224. package/build/template-part/edit/utils/hooks.js +0 -1
  225. package/build/template-part/edit/utils/hooks.js.map +1 -1
  226. package/build/template-part/edit/utils/transformers.js +0 -1
  227. package/build/template-part/edit/utils/transformers.js.map +1 -1
  228. package/build/template-part/variations.js +0 -1
  229. package/build/template-part/variations.js.map +1 -1
  230. package/build/text-columns/edit.js +0 -1
  231. package/build/text-columns/edit.js.map +1 -1
  232. package/build/text-columns/save.js +0 -1
  233. package/build/text-columns/save.js.map +1 -1
  234. package/build/text-columns/transforms.js +0 -1
  235. package/build/text-columns/transforms.js.map +1 -1
  236. package/build/utils/get-transformed-metadata.js +0 -1
  237. package/build/utils/get-transformed-metadata.js.map +1 -1
  238. package/build/utils/search-patterns.js +0 -1
  239. package/build/utils/search-patterns.js.map +1 -1
  240. package/build/utils/transformation-categories.native.js +0 -1
  241. package/build/utils/transformation-categories.native.js.map +1 -1
  242. package/build/video/edit-common-settings.js +10 -3
  243. package/build/video/edit-common-settings.js.map +1 -1
  244. package/build/video/tracks-editor.js +0 -1
  245. package/build/video/tracks-editor.js.map +1 -1
  246. package/build/video/tracks.js +0 -1
  247. package/build/video/tracks.js.map +1 -1
  248. package/build-module/archives/index.js +9 -0
  249. package/build-module/archives/index.js.map +1 -1
  250. package/build-module/avatar/user-control.js +0 -1
  251. package/build-module/avatar/user-control.js.map +1 -1
  252. package/build-module/block/deprecated.js +0 -1
  253. package/build-module/block/deprecated.js.map +1 -1
  254. package/build-module/block/edit.js +0 -1
  255. package/build-module/block/edit.js.map +1 -1
  256. package/build-module/button/deprecated.js +0 -1
  257. package/build-module/button/deprecated.js.map +1 -1
  258. package/build-module/buttons/transforms.js +0 -1
  259. package/build-module/buttons/transforms.js.map +1 -1
  260. package/build-module/categories/edit.js +0 -1
  261. package/build-module/categories/edit.js.map +1 -1
  262. package/build-module/categories/index.js +9 -0
  263. package/build-module/categories/index.js.map +1 -1
  264. package/build-module/column/column-preview.native.js +0 -1
  265. package/build-module/column/column-preview.native.js.map +1 -1
  266. package/build-module/columns/columnCalculations.native.js +0 -1
  267. package/build-module/columns/columnCalculations.native.js.map +1 -1
  268. package/build-module/columns/deprecated.js +0 -1
  269. package/build-module/columns/deprecated.js.map +1 -1
  270. package/build-module/columns/edit.js +0 -1
  271. package/build-module/columns/edit.js.map +1 -1
  272. package/build-module/columns/edit.native.js +0 -1
  273. package/build-module/columns/edit.native.js.map +1 -1
  274. package/build-module/columns/transforms.js +0 -1
  275. package/build-module/columns/transforms.js.map +1 -1
  276. package/build-module/columns/utils.js +0 -1
  277. package/build-module/columns/utils.js.map +1 -1
  278. package/build-module/comment-template/edit.js +0 -1
  279. package/build-module/comment-template/edit.js.map +1 -1
  280. package/build-module/comment-template/hooks.js +0 -1
  281. package/build-module/comment-template/hooks.js.map +1 -1
  282. package/build-module/comment-template/util.js +0 -1
  283. package/build-module/comment-template/util.js.map +1 -1
  284. package/build-module/cover/edit/index.js +3 -1
  285. package/build-module/cover/edit/index.js.map +1 -1
  286. package/build-module/details/transforms.js +0 -1
  287. package/build-module/details/transforms.js.map +1 -1
  288. package/build-module/embed/embed-placeholder.native.js +0 -1
  289. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  290. package/build-module/embed/util.js +0 -1
  291. package/build-module/embed/util.js.map +1 -1
  292. package/build-module/embed/variations.js +0 -1
  293. package/build-module/embed/variations.js.map +1 -1
  294. package/build-module/embed/wp-embed-preview.js +0 -1
  295. package/build-module/embed/wp-embed-preview.js.map +1 -1
  296. package/build-module/file/transforms.js +0 -1
  297. package/build-module/file/transforms.js.map +1 -1
  298. package/build-module/footnotes/edit.js +0 -1
  299. package/build-module/footnotes/edit.js.map +1 -1
  300. package/build-module/form/edit.js +4 -2
  301. package/build-module/form/edit.js.map +1 -1
  302. package/build-module/freeform/modal.js +0 -1
  303. package/build-module/freeform/modal.js.map +1 -1
  304. package/build-module/gallery/deprecated.js +0 -1
  305. package/build-module/gallery/deprecated.js.map +1 -1
  306. package/build-module/gallery/edit.js +0 -1
  307. package/build-module/gallery/edit.js.map +1 -1
  308. package/build-module/gallery/shared.js +0 -1
  309. package/build-module/gallery/shared.js.map +1 -1
  310. package/build-module/gallery/transforms.js +0 -1
  311. package/build-module/gallery/transforms.js.map +1 -1
  312. package/build-module/gallery/use-get-media.js +0 -1
  313. package/build-module/gallery/use-get-media.js.map +1 -1
  314. package/build-module/gallery/use-get-media.native.js +0 -1
  315. package/build-module/gallery/use-get-media.native.js.map +1 -1
  316. package/build-module/gallery/use-get-new-images.js +0 -1
  317. package/build-module/gallery/use-get-new-images.js.map +1 -1
  318. package/build-module/gallery/use-image-sizes.js +0 -1
  319. package/build-module/gallery/use-image-sizes.js.map +1 -1
  320. package/build-module/group/placeholder.js +0 -1
  321. package/build-module/group/placeholder.js.map +1 -1
  322. package/build-module/group/transforms.js +0 -1
  323. package/build-module/group/transforms.js.map +1 -1
  324. package/build-module/heading/transforms.js +0 -1
  325. package/build-module/heading/transforms.js.map +1 -1
  326. package/build-module/html/preview.js +0 -1
  327. package/build-module/html/preview.js.map +1 -1
  328. package/build-module/image/edit.js +0 -1
  329. package/build-module/image/edit.js.map +1 -1
  330. package/build-module/image/edit.native.js +0 -1
  331. package/build-module/image/edit.native.js.map +1 -1
  332. package/build-module/image/image.js +0 -1
  333. package/build-module/image/image.js.map +1 -1
  334. package/build-module/image/transforms.js +0 -1
  335. package/build-module/image/transforms.js.map +1 -1
  336. package/build-module/image/utils.js +0 -1
  337. package/build-module/image/utils.js.map +1 -1
  338. package/build-module/image/view.js +5 -5
  339. package/build-module/image/view.js.map +1 -1
  340. package/build-module/index.native.js +0 -1
  341. package/build-module/index.native.js.map +1 -1
  342. package/build-module/latest-posts/edit.js +0 -1
  343. package/build-module/latest-posts/edit.js.map +1 -1
  344. package/build-module/list/transforms.js +0 -1
  345. package/build-module/list/transforms.js.map +1 -1
  346. package/build-module/list/utils.js +0 -1
  347. package/build-module/list/utils.js.map +1 -1
  348. package/build-module/list-item/hooks/use-indent-list-item.js +0 -1
  349. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  350. package/build-module/list-item/transforms.js +0 -1
  351. package/build-module/list-item/transforms.js.map +1 -1
  352. package/build-module/media-text/edit.js +0 -1
  353. package/build-module/media-text/edit.js.map +1 -1
  354. package/build-module/more/save.js +0 -1
  355. package/build-module/more/save.js.map +1 -1
  356. package/build-module/navigation/deprecated.js +0 -1
  357. package/build-module/navigation/deprecated.js.map +1 -1
  358. package/build-module/navigation/edit/index.js +0 -1
  359. package/build-module/navigation/edit/index.js.map +1 -1
  360. package/build-module/navigation/edit/use-generate-default-navigation-title.js +0 -1
  361. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  362. package/build-module/navigation/menu-items-to-blocks.js +0 -1
  363. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  364. package/build-module/navigation/use-template-part-area-label.js +0 -1
  365. package/build-module/navigation/use-template-part-area-label.js.map +1 -1
  366. package/build-module/navigation/view.js +3 -4
  367. package/build-module/navigation/view.js.map +1 -1
  368. package/build-module/navigation-link/edit.js +2 -1
  369. package/build-module/navigation-link/edit.js.map +1 -1
  370. package/build-module/navigation-link/hooks.js +0 -1
  371. package/build-module/navigation-link/hooks.js.map +1 -1
  372. package/build-module/navigation-submenu/edit.js +2 -1
  373. package/build-module/navigation-submenu/edit.js.map +1 -1
  374. package/build-module/page-list/edit.js +0 -1
  375. package/build-module/page-list/edit.js.map +1 -1
  376. package/build-module/page-list/use-convert-to-navigation-links.js +0 -1
  377. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  378. package/build-module/pattern/edit.js +0 -1
  379. package/build-module/pattern/edit.js.map +1 -1
  380. package/build-module/post-author/edit.js +0 -1
  381. package/build-module/post-author/edit.js.map +1 -1
  382. package/build-module/post-comments-count/index.js +8 -1
  383. package/build-module/post-comments-count/index.js.map +1 -1
  384. package/build-module/post-featured-image/dimension-controls.js +3 -40
  385. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  386. package/build-module/post-featured-image/edit.js +46 -4
  387. package/build-module/post-featured-image/edit.js.map +1 -1
  388. package/build-module/post-navigation-link/edit.js +1 -2
  389. package/build-module/post-navigation-link/edit.js.map +1 -1
  390. package/build-module/post-navigation-link/variations.js +0 -1
  391. package/build-module/post-navigation-link/variations.js.map +1 -1
  392. package/build-module/post-template/edit.js +14 -7
  393. package/build-module/post-template/edit.js.map +1 -1
  394. package/build-module/post-terms/edit.js +0 -1
  395. package/build-module/post-terms/edit.js.map +1 -1
  396. package/build-module/post-terms/hooks.js +0 -1
  397. package/build-module/post-terms/hooks.js.map +1 -1
  398. package/build-module/pullquote/blockquote.native.js +0 -1
  399. package/build-module/pullquote/blockquote.native.js.map +1 -1
  400. package/build-module/pullquote/transforms.js +0 -1
  401. package/build-module/pullquote/transforms.js.map +1 -1
  402. package/build-module/query/deprecated.js +0 -1
  403. package/build-module/query/deprecated.js.map +1 -1
  404. package/build-module/query/edit/inspector-controls/author-control.js +0 -1
  405. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  406. package/build-module/query/edit/inspector-controls/format-controls.js +0 -1
  407. package/build-module/query/edit/inspector-controls/format-controls.js.map +1 -1
  408. package/build-module/query/edit/inspector-controls/index.js +0 -1
  409. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  410. package/build-module/query/edit/inspector-controls/parent-control.js +0 -1
  411. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  412. package/build-module/query/edit/inspector-controls/sticky-control.js +3 -0
  413. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  414. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +0 -1
  415. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  416. package/build-module/query/utils.js +0 -1
  417. package/build-module/query/utils.js.map +1 -1
  418. package/build-module/query/view.js +3 -3
  419. package/build-module/query/view.js.map +1 -1
  420. package/build-module/query-title/variations.js +0 -1
  421. package/build-module/query-title/variations.js.map +1 -1
  422. package/build-module/quote/deprecated.js +0 -1
  423. package/build-module/quote/deprecated.js.map +1 -1
  424. package/build-module/quote/transforms.js +0 -1
  425. package/build-module/quote/transforms.js.map +1 -1
  426. package/build-module/rss/edit.js +15 -1
  427. package/build-module/rss/edit.js.map +1 -1
  428. package/build-module/rss/index.js +14 -0
  429. package/build-module/rss/index.js.map +1 -1
  430. package/build-module/search/view.js +3 -3
  431. package/build-module/search/view.js.map +1 -1
  432. package/build-module/site-logo/edit.js +2 -5
  433. package/build-module/site-logo/edit.js.map +1 -1
  434. package/build-module/social-link/icons/discord.js +15 -0
  435. package/build-module/social-link/icons/discord.js.map +1 -0
  436. package/build-module/social-link/icons/index.js +1 -0
  437. package/build-module/social-link/icons/index.js.map +1 -1
  438. package/build-module/social-link/social-list.js +0 -1
  439. package/build-module/social-link/social-list.js.map +1 -1
  440. package/build-module/social-link/variations.js +8 -2
  441. package/build-module/social-link/variations.js.map +1 -1
  442. package/build-module/social-links/edit.js +0 -1
  443. package/build-module/social-links/edit.js.map +1 -1
  444. package/build-module/social-links/edit.native.js +0 -1
  445. package/build-module/social-links/edit.native.js.map +1 -1
  446. package/build-module/spacer/controls.js +0 -1
  447. package/build-module/spacer/controls.js.map +1 -1
  448. package/build-module/table/deprecated.js +0 -1
  449. package/build-module/table/deprecated.js.map +1 -1
  450. package/build-module/table/edit.js +0 -1
  451. package/build-module/table/edit.js.map +1 -1
  452. package/build-module/table/save.js +0 -1
  453. package/build-module/table/save.js.map +1 -1
  454. package/build-module/table/state.js +0 -1
  455. package/build-module/table/state.js.map +1 -1
  456. package/build-module/table/transforms.js +0 -1
  457. package/build-module/table/transforms.js.map +1 -1
  458. package/build-module/table-of-contents/list.js +0 -1
  459. package/build-module/table-of-contents/list.js.map +1 -1
  460. package/build-module/table-of-contents/utils.js +0 -1
  461. package/build-module/table-of-contents/utils.js.map +1 -1
  462. package/build-module/tag-cloud/edit.js +0 -1
  463. package/build-module/tag-cloud/edit.js.map +1 -1
  464. package/build-module/template-part/edit/advanced-controls.js +0 -1
  465. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  466. package/build-module/template-part/edit/import-controls.js +0 -1
  467. package/build-module/template-part/edit/import-controls.js.map +1 -1
  468. package/build-module/template-part/edit/selection-modal.js +0 -1
  469. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  470. package/build-module/template-part/edit/utils/hooks.js +0 -1
  471. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  472. package/build-module/template-part/edit/utils/transformers.js +0 -1
  473. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  474. package/build-module/template-part/variations.js +0 -1
  475. package/build-module/template-part/variations.js.map +1 -1
  476. package/build-module/text-columns/edit.js +0 -1
  477. package/build-module/text-columns/edit.js.map +1 -1
  478. package/build-module/text-columns/save.js +0 -1
  479. package/build-module/text-columns/save.js.map +1 -1
  480. package/build-module/text-columns/transforms.js +0 -1
  481. package/build-module/text-columns/transforms.js.map +1 -1
  482. package/build-module/utils/get-transformed-metadata.js +0 -1
  483. package/build-module/utils/get-transformed-metadata.js.map +1 -1
  484. package/build-module/utils/search-patterns.js +0 -1
  485. package/build-module/utils/search-patterns.js.map +1 -1
  486. package/build-module/utils/transformation-categories.native.js +0 -1
  487. package/build-module/utils/transformation-categories.native.js.map +1 -1
  488. package/build-module/video/edit-common-settings.js +10 -3
  489. package/build-module/video/edit-common-settings.js.map +1 -1
  490. package/build-module/video/tracks-editor.js +0 -1
  491. package/build-module/video/tracks-editor.js.map +1 -1
  492. package/build-module/video/tracks.js +0 -1
  493. package/build-module/video/tracks.js.map +1 -1
  494. package/build-style/editor-rtl.css +15 -15
  495. package/build-style/editor.css +15 -15
  496. package/build-style/navigation-link/editor-rtl.css +5 -9
  497. package/build-style/navigation-link/editor.css +5 -9
  498. package/build-style/post-comments-count/style-rtl.css +103 -0
  499. package/build-style/post-comments-count/style.css +103 -0
  500. package/build-style/pullquote/style-rtl.css +4 -0
  501. package/build-style/pullquote/style.css +4 -0
  502. package/build-style/rss/editor-rtl.css +6 -0
  503. package/build-style/rss/editor.css +6 -0
  504. package/build-style/rss/style-rtl.css +6 -8
  505. package/build-style/rss/style.css +6 -8
  506. package/build-style/social-link/editor-rtl.css +1 -0
  507. package/build-style/social-link/editor.css +1 -0
  508. package/build-style/social-links/editor-rtl.css +3 -6
  509. package/build-style/social-links/editor.css +3 -6
  510. package/build-style/social-links/style-rtl.css +7 -0
  511. package/build-style/social-links/style.css +7 -0
  512. package/build-style/style-rtl.css +21 -8
  513. package/build-style/style.css +21 -8
  514. package/package.json +35 -35
  515. package/src/archives/block.json +9 -0
  516. package/src/block/index.php +1 -18
  517. package/src/categories/block.json +9 -0
  518. package/src/cover/edit/index.js +2 -0
  519. package/src/cover/test/edit.js +6 -6
  520. package/src/form/edit.js +2 -0
  521. package/src/image/view.js +10 -5
  522. package/src/navigation/index.php +11 -69
  523. package/src/navigation/view.js +8 -3
  524. package/src/navigation-link/edit.js +1 -0
  525. package/src/navigation-link/editor.scss +3 -24
  526. package/src/navigation-submenu/edit.js +1 -0
  527. package/src/post-comments-count/block.json +8 -1
  528. package/src/post-comments-count/style.scss +4 -0
  529. package/src/post-content/index.php +0 -23
  530. package/src/post-featured-image/dimension-controls.js +2 -43
  531. package/src/post-featured-image/edit.js +39 -3
  532. package/src/post-navigation-link/edit.js +1 -1
  533. package/src/post-template/edit.js +15 -6
  534. package/src/pullquote/style.scss +4 -0
  535. package/src/query/edit/inspector-controls/sticky-control.js +1 -0
  536. package/src/query/view.js +8 -3
  537. package/src/query-total/index.php +2 -0
  538. package/src/rss/block.json +14 -0
  539. package/src/rss/edit.js +14 -1
  540. package/src/rss/editor.scss +7 -0
  541. package/src/rss/style.scss +6 -8
  542. package/src/search/view.js +8 -3
  543. package/src/site-logo/edit.js +1 -5
  544. package/src/social-link/editor.scss +1 -0
  545. package/src/social-link/icons/discord.js +10 -0
  546. package/src/social-link/icons/index.js +1 -0
  547. package/src/social-link/index.php +4 -0
  548. package/src/social-link/socials-with-bg.scss +5 -0
  549. package/src/social-link/socials-without-bg.scss +4 -0
  550. package/src/social-link/variations.js +7 -0
  551. package/src/social-links/editor.scss +4 -1
  552. package/src/style.scss +1 -0
  553. package/src/template-part/index.php +3 -1
  554. package/src/video/edit-common-settings.js +11 -2
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","createBlock","InnerBlocks","getColorClassName","jsx","_jsx","getDeprecatedLayoutColumn","originalContent","doc","document","implementation","createHTMLDocument","columnMatch","body","innerHTML","classListItem","firstChild","classList","match","Number","migrateCustomColors","attributes","customTextColor","customBackgroundColor","style","color","text","background","restAttributes","isStackedOnMobile","verticalAlignment","type","backgroundColor","textColor","migrate","save","backgroundClass","textClass","className","undefined","children","Content","columns","default","isEligible","innerBlocks","isFastPassEligible","some","innerBlock","test","reduce","accumulator","columnIndex","push","migratedInnerBlocks","map","columnBlocks","ignoredColumns","wrapperClasses"],"sources":["@wordpress/block-library/src/columns/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { InnerBlocks, getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Given an HTML string for a deprecated columns inner block, returns the\n * column index to which the migrated inner block should be assigned. Returns\n * undefined if the inner block was not assigned to a column.\n *\n * @param {string} originalContent Deprecated Columns inner block HTML.\n *\n * @return {number | undefined} Column to which inner block is to be assigned.\n */\nfunction getDeprecatedLayoutColumn( originalContent ) {\n\tlet { doc } = getDeprecatedLayoutColumn;\n\tif ( ! doc ) {\n\t\tdoc = document.implementation.createHTMLDocument( '' );\n\t\tgetDeprecatedLayoutColumn.doc = doc;\n\t}\n\n\tlet columnMatch;\n\n\tdoc.body.innerHTML = originalContent;\n\tfor ( const classListItem of doc.body.firstChild.classList ) {\n\t\tif (\n\t\t\t( columnMatch = classListItem.match( /^layout-column-(\\d+)$/ ) )\n\t\t) {\n\t\t\treturn Number( columnMatch[ 1 ] ) - 1;\n\t\t}\n\t}\n}\n\nconst migrateCustomColors = ( attributes ) => {\n\tif ( ! attributes.customTextColor && ! attributes.customBackgroundColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = { color: {} };\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\n\tconst { customTextColor, customBackgroundColor, ...restAttributes } =\n\t\tattributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t\tisStackedOnMobile: true,\n\t};\n};\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\tverticalAlignment: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate: migrateCustomColors,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tverticalAlignment,\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\tconst style = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tisEligible( attributes, innerBlocks ) {\n\t\t\t// Since isEligible is called on every valid instance of the\n\t\t\t// Columns block and a deprecation is the unlikely case due to\n\t\t\t// its subsequent migration, optimize for the `false` condition\n\t\t\t// by performing a naive, inaccurate pass at inner blocks.\n\t\t\tconst isFastPassEligible = innerBlocks.some( ( innerBlock ) =>\n\t\t\t\t/layout-column-\\d+/.test( innerBlock.originalContent )\n\t\t\t);\n\n\t\t\tif ( ! isFastPassEligible ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Only if the fast pass is considered eligible is the more\n\t\t\t// accurate, durable, slower condition performed.\n\t\t\treturn innerBlocks.some(\n\t\t\t\t( innerBlock ) =>\n\t\t\t\t\tgetDeprecatedLayoutColumn( innerBlock.originalContent ) !==\n\t\t\t\t\tundefined\n\t\t\t);\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst columns = innerBlocks.reduce( ( accumulator, innerBlock ) => {\n\t\t\t\tconst { originalContent } = innerBlock;\n\n\t\t\t\tlet columnIndex = getDeprecatedLayoutColumn( originalContent );\n\t\t\t\tif ( columnIndex === undefined ) {\n\t\t\t\t\tcolumnIndex = 0;\n\t\t\t\t}\n\n\t\t\t\tif ( ! accumulator[ columnIndex ] ) {\n\t\t\t\t\taccumulator[ columnIndex ] = [];\n\t\t\t\t}\n\n\t\t\t\taccumulator[ columnIndex ].push( innerBlock );\n\n\t\t\t\treturn accumulator;\n\t\t\t}, [] );\n\n\t\t\tconst migratedInnerBlocks = columns.map( ( columnBlocks ) =>\n\t\t\t\tcreateBlock( 'core/column', {}, columnBlocks )\n\t\t\t);\n\n\t\t\tconst { columns: ignoredColumns, ...restAttributes } = attributes;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\t...restAttributes,\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t},\n\t\t\t\tmigratedInnerBlocks,\n\t\t\t];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { columns } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst { columns, ...restAttributes } = attributes;\n\t\t\tattributes = {\n\t\t\t\t...restAttributes,\n\t\t\t\tisStackedOnMobile: true,\n\t\t\t};\n\n\t\t\treturn [ attributes, innerBlocks ];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { verticalAlignment, columns } = attributes;\n\n\t\t\tconst wrapperClasses = clsx( `has-${ columns }-columns`, {\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div className={ wrapperClasses }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","createBlock","InnerBlocks","getColorClassName","jsx","_jsx","getDeprecatedLayoutColumn","originalContent","doc","document","implementation","createHTMLDocument","columnMatch","body","innerHTML","classListItem","firstChild","classList","match","Number","migrateCustomColors","attributes","customTextColor","customBackgroundColor","style","color","text","background","restAttributes","isStackedOnMobile","verticalAlignment","type","backgroundColor","textColor","migrate","save","backgroundClass","textClass","className","undefined","children","Content","columns","default","isEligible","innerBlocks","isFastPassEligible","some","innerBlock","test","reduce","accumulator","columnIndex","push","migratedInnerBlocks","map","columnBlocks","ignoredColumns","wrapperClasses"],"sources":["@wordpress/block-library/src/columns/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { InnerBlocks, getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Given an HTML string for a deprecated columns inner block, returns the\n * column index to which the migrated inner block should be assigned. Returns\n * undefined if the inner block was not assigned to a column.\n *\n * @param {string} originalContent Deprecated Columns inner block HTML.\n *\n * @return {number | undefined} Column to which inner block is to be assigned.\n */\nfunction getDeprecatedLayoutColumn( originalContent ) {\n\tlet { doc } = getDeprecatedLayoutColumn;\n\tif ( ! doc ) {\n\t\tdoc = document.implementation.createHTMLDocument( '' );\n\t\tgetDeprecatedLayoutColumn.doc = doc;\n\t}\n\n\tlet columnMatch;\n\n\tdoc.body.innerHTML = originalContent;\n\tfor ( const classListItem of doc.body.firstChild.classList ) {\n\t\tif (\n\t\t\t( columnMatch = classListItem.match( /^layout-column-(\\d+)$/ ) )\n\t\t) {\n\t\t\treturn Number( columnMatch[ 1 ] ) - 1;\n\t\t}\n\t}\n}\n\nconst migrateCustomColors = ( attributes ) => {\n\tif ( ! attributes.customTextColor && ! attributes.customBackgroundColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = { color: {} };\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\n\tconst { customTextColor, customBackgroundColor, ...restAttributes } =\n\t\tattributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t\tisStackedOnMobile: true,\n\t};\n};\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\tverticalAlignment: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate: migrateCustomColors,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tverticalAlignment,\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\tconst style = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tisEligible( attributes, innerBlocks ) {\n\t\t\t// Since isEligible is called on every valid instance of the\n\t\t\t// Columns block and a deprecation is the unlikely case due to\n\t\t\t// its subsequent migration, optimize for the `false` condition\n\t\t\t// by performing a naive, inaccurate pass at inner blocks.\n\t\t\tconst isFastPassEligible = innerBlocks.some( ( innerBlock ) =>\n\t\t\t\t/layout-column-\\d+/.test( innerBlock.originalContent )\n\t\t\t);\n\n\t\t\tif ( ! isFastPassEligible ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Only if the fast pass is considered eligible is the more\n\t\t\t// accurate, durable, slower condition performed.\n\t\t\treturn innerBlocks.some(\n\t\t\t\t( innerBlock ) =>\n\t\t\t\t\tgetDeprecatedLayoutColumn( innerBlock.originalContent ) !==\n\t\t\t\t\tundefined\n\t\t\t);\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst columns = innerBlocks.reduce( ( accumulator, innerBlock ) => {\n\t\t\t\tconst { originalContent } = innerBlock;\n\n\t\t\t\tlet columnIndex = getDeprecatedLayoutColumn( originalContent );\n\t\t\t\tif ( columnIndex === undefined ) {\n\t\t\t\t\tcolumnIndex = 0;\n\t\t\t\t}\n\n\t\t\t\tif ( ! accumulator[ columnIndex ] ) {\n\t\t\t\t\taccumulator[ columnIndex ] = [];\n\t\t\t\t}\n\n\t\t\t\taccumulator[ columnIndex ].push( innerBlock );\n\n\t\t\t\treturn accumulator;\n\t\t\t}, [] );\n\n\t\t\tconst migratedInnerBlocks = columns.map( ( columnBlocks ) =>\n\t\t\t\tcreateBlock( 'core/column', {}, columnBlocks )\n\t\t\t);\n\n\t\t\tconst { columns: ignoredColumns, ...restAttributes } = attributes;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\t...restAttributes,\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t},\n\t\t\t\tmigratedInnerBlocks,\n\t\t\t];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { columns } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst { columns, ...restAttributes } = attributes;\n\t\t\tattributes = {\n\t\t\t\t...restAttributes,\n\t\t\t\tisStackedOnMobile: true,\n\t\t\t};\n\n\t\t\treturn [ attributes, innerBlocks ];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { verticalAlignment, columns } = attributes;\n\n\t\t\tconst wrapperClasses = clsx( `has-${ columns }-columns`, {\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div className={ wrapperClasses }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * External dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","Notice","RangeControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","useDispatch","useSelect","useRegistry","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_BLOCK","name","ColumnInspectorControls","clientId","setAttributes","isStackedOnMobile","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlockOrder","blockOrder","preventRemovalBlockIndexes","reduce","acc","blockId","index","push","length","Math","max","getBlocks","replaceInnerBlocks","updateColumns","previousColumns","newColumns","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","newlyAddedColumns","widths","Array","from","map","width","slice","dropdownMenuProps","label","resetAll","children","isShownByDefault","hasValue","onDeselect","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","min","status","isDismissible","checked","ColumnsEditContainer","attributes","verticalAlignment","templateLock","registry","updateBlockAttributes","classes","blockProps","className","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","updateAlignment","newVerticalAlignment","innerBlockClientIds","batch","Placeholder","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","instructions","onSelect","nextVariation","allowSkip","ColumnsEdit","props","hasInnerBlocks","Component"],"sources":["@wordpress/block-library/src/columns/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\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 { useDispatch, useSelect, useRegistry } 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';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/column',\n};\n\nfunction ColumnInspectorControls( {\n\tclientId,\n\tsetAttributes,\n\tisStackedOnMobile,\n} ) {\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, canRemoveBlock, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = blockOrder.reduce(\n\t\t\t\t( acc, blockId, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( blockId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: blockOrder.length,\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Updates the column count, including necessary revisions to child Column\n\t * blocks to grant required or redistribute available space.\n\t *\n\t * @param {number} previousColumns Previous column count.\n\t * @param {number} newColumns New column count.\n\t */\n\tfunction updateColumns( previousColumns, newColumns ) {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t// Redistribute available width for existing inner blocks.\n\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\t\t\tconst newlyAddedColumns = newColumns - previousColumns;\n\n\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t// constraining the available working width.\n\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\tinnerBlocks,\n\t\t\t\t100 - newColumnWidth * newlyAddedColumns\n\t\t\t);\n\n\t\t\tinnerBlocks = [\n\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newlyAddedColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( isAddingColumn ) {\n\t\t\tinnerBlocks = [\n\t\t\t\t...innerBlocks,\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t0,\n\t\t\t\t-( previousColumns - newColumns )\n\t\t\t);\n\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\tconst widths = getRedistributedColumnWidths( innerBlocks, 100 );\n\n\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t}\n\t\t}\n\n\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t}\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tupdateColumns( count, minCount );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => count }\n\t\t\t\t\tonDeselect={ () => updateColumns( count, minCount ) }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateColumns(\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tMath.max( minCount, value )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => isStackedOnMobile !== true }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnsEditContainer( { attributes, setAttributes, clientId } ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst classes = clsx( {\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\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\t/**\n\t * Update all child Column blocks with a new vertical alignment setting\n\t * based on whatever alignment is passed in. This allows change to parent\n\t * to override anything set on a individual column basis.\n\t *\n\t * @param {string} newVerticalAlignment The vertical alignment setting.\n\t */\n\tfunction updateAlignment( newVerticalAlignment ) {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Update own and child Column block vertical alignments.\n\t\t// This is a single action; the batching prevents creating multiple history records.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { verticalAlignment: newVerticalAlignment } );\n\t\t\tupdateBlockAttributes( innerBlockClientIds, {\n\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t} );\n\t\t} );\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<ColumnInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\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={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tinstructions={ __( 'Divide into columns. Select a layout:' ) }\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 ? ColumnsEditContainer : Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","Notice","RangeControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","useDispatch","useSelect","useRegistry","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_BLOCK","name","ColumnInspectorControls","clientId","setAttributes","isStackedOnMobile","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlockOrder","blockOrder","preventRemovalBlockIndexes","reduce","acc","blockId","index","push","length","Math","max","getBlocks","replaceInnerBlocks","updateColumns","previousColumns","newColumns","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","newlyAddedColumns","widths","Array","from","map","width","slice","dropdownMenuProps","label","resetAll","children","isShownByDefault","hasValue","onDeselect","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","min","status","isDismissible","checked","ColumnsEditContainer","attributes","verticalAlignment","templateLock","registry","updateBlockAttributes","classes","blockProps","className","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","updateAlignment","newVerticalAlignment","innerBlockClientIds","batch","Placeholder","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","instructions","onSelect","nextVariation","allowSkip","ColumnsEdit","props","hasInnerBlocks","Component"],"sources":["@wordpress/block-library/src/columns/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\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 { useDispatch, useSelect, useRegistry } 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';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/column',\n};\n\nfunction ColumnInspectorControls( {\n\tclientId,\n\tsetAttributes,\n\tisStackedOnMobile,\n} ) {\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, canRemoveBlock, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = blockOrder.reduce(\n\t\t\t\t( acc, blockId, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( blockId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: blockOrder.length,\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Updates the column count, including necessary revisions to child Column\n\t * blocks to grant required or redistribute available space.\n\t *\n\t * @param {number} previousColumns Previous column count.\n\t * @param {number} newColumns New column count.\n\t */\n\tfunction updateColumns( previousColumns, newColumns ) {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t// Redistribute available width for existing inner blocks.\n\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\t\t\tconst newlyAddedColumns = newColumns - previousColumns;\n\n\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t// constraining the available working width.\n\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\tinnerBlocks,\n\t\t\t\t100 - newColumnWidth * newlyAddedColumns\n\t\t\t);\n\n\t\t\tinnerBlocks = [\n\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newlyAddedColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( isAddingColumn ) {\n\t\t\tinnerBlocks = [\n\t\t\t\t...innerBlocks,\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t0,\n\t\t\t\t-( previousColumns - newColumns )\n\t\t\t);\n\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\tconst widths = getRedistributedColumnWidths( innerBlocks, 100 );\n\n\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t}\n\t\t}\n\n\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t}\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tupdateColumns( count, minCount );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => count }\n\t\t\t\t\tonDeselect={ () => updateColumns( count, minCount ) }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateColumns(\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tMath.max( minCount, value )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ __(\n\t\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\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => isStackedOnMobile !== true }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnsEditContainer( { attributes, setAttributes, clientId } ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst classes = clsx( {\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\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\t/**\n\t * Update all child Column blocks with a new vertical alignment setting\n\t * based on whatever alignment is passed in. This allows change to parent\n\t * to override anything set on a individual column basis.\n\t *\n\t * @param {string} newVerticalAlignment The vertical alignment setting.\n\t */\n\tfunction updateAlignment( newVerticalAlignment ) {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Update own and child Column block vertical alignments.\n\t\t// This is a single action; the batching prevents creating multiple history records.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { verticalAlignment: newVerticalAlignment } );\n\t\t\tupdateBlockAttributes( innerBlockClientIds, {\n\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t} );\n\t\t} );\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<ColumnInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\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={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tinstructions={ __( 'Divide into columns. Select a layout:' ) }\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 ? ColumnsEditContainer : Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * External dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["View","Dimensions","__","sprintf","PanelBody","RangeControl","FooterMessageControl","UnitControl","getValueAndUnit","alignmentHelpers","__experimentalUseCustomUnits","useCustomUnits","InspectorControls","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","BlockVariationPicker","useSettings","store","blockEditorStore","useGlobalStyles","withDispatch","useSelect","useEffect","useState","useMemo","useCallback","memo","useResizeObserver","createBlock","columns","variations","styles","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","getWidths","getWidthWithUnit","isPercentageUnit","getColumnsInRow","calculateContainerWidth","getContentWidths","ColumnsPreview","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","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","availableUnits","units","newColumnCount","renderAppender","style","columnAppender","children","ButtonBlockAppender","onAddBlock","contentWidths","onChangeWidth","nextWidth","valueUnit","columnId","widthWithUnit","onChangeUnit","nextUnit","index","widthWithoutUnit","parseFloat","onChange","getColumnsSliders","map","column","label","settingLabel","min","max","undefined","value","clientId","onUnitChange","onComplete","unit","preview","columnWidths","selectedColumnIndex","length","onChangeColumnsNum","title","icon","type","innerBlocksSelected","orientation","horizontal","contentResizeMode","blockWidth","contentStyle","parentWidth","ColumnsEditContainerWrapper","dispatch","ownProps","registry","setAttributes","updateBlockAttributes","getBlockOrder","select","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","getBlockAttributes","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","slice","onAddNextColumn","selectBlock","insertedBlock","removeBlock","ColumnsEdit","props","isDefaultColumns","hasParents","parentBlockAlignment","getBlockCount","getBlockParents","isEditorSidebarOpened","innerBlocksList","isContentEmpty","every","innerBlock","parents","inn","isVisible","setIsVisible","revealTimeout","setTimeout","clearTimeout","onClose"],"sources":["@wordpress/block-library/src/columns/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\talignmentHelpers,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tBlockVariationPicker,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseGlobalStyles,\n} from '@wordpress/block-editor';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEffect,\n\tuseState,\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 * 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 = useGlobalStyles();\n\n\tconst { verticalAlignment, align } = attributes;\n\tconst { width } = sizes || {};\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\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\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 override 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\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 } =\n\t\t\t\tregistry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\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...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\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...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\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 = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - 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 } =\n\t\t\t\tdispatch( blockEditorStore );\n\t\t\tconst { getBlocks, getBlockAttributes } =\n\t\t\t\tregistry.select( blockEditorStore );\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\tinnerBlocks,\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\n\t\t\tconst innerBlocksList = getBlocks( clientId );\n\n\t\t\tconst isContentEmpty = innerBlocksList.every(\n\t\t\t\t( innerBlock ) => innerBlock.innerBlocks.length === 0\n\t\t\t);\n\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: isContentEmpty,\n\t\t\t\tinnerBlocks: innerBlocksList,\n\t\t\t\thasParents: parents.length > 0,\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 innerWidths = useMemo(\n\t\t() =>\n\t\t\tinnerBlocks.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[ innerBlocks ]\n\t);\n\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( isSelected && isDefaultColumns ) {\n\t\t\tconst revealTimeout = setTimeout( () => setIsVisible( true ), 100 );\n\n\t\t\treturn () => clearTimeout( revealTimeout );\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={ innerWidths }\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","Dimensions","__","sprintf","PanelBody","RangeControl","FooterMessageControl","UnitControl","getValueAndUnit","alignmentHelpers","__experimentalUseCustomUnits","useCustomUnits","InspectorControls","InnerBlocks","BlockControls","BlockVerticalAlignmentToolbar","BlockVariationPicker","useSettings","store","blockEditorStore","useGlobalStyles","withDispatch","useSelect","useEffect","useState","useMemo","useCallback","memo","useResizeObserver","createBlock","columns","variations","styles","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","getWidths","getWidthWithUnit","isPercentageUnit","getColumnsInRow","calculateContainerWidth","getContentWidths","ColumnsPreview","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","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","availableUnits","units","newColumnCount","renderAppender","style","columnAppender","children","ButtonBlockAppender","onAddBlock","contentWidths","onChangeWidth","nextWidth","valueUnit","columnId","widthWithUnit","onChangeUnit","nextUnit","index","widthWithoutUnit","parseFloat","onChange","getColumnsSliders","map","column","label","settingLabel","min","max","undefined","value","clientId","onUnitChange","onComplete","unit","preview","columnWidths","selectedColumnIndex","length","onChangeColumnsNum","title","icon","type","innerBlocksSelected","orientation","horizontal","contentResizeMode","blockWidth","contentStyle","parentWidth","ColumnsEditContainerWrapper","dispatch","ownProps","registry","setAttributes","updateBlockAttributes","getBlockOrder","select","innerBlockClientIds","forEach","innerBlockClientId","previousColumns","newColumns","replaceInnerBlocks","getBlocks","getBlockAttributes","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","widths","Array","from","slice","onAddNextColumn","selectBlock","insertedBlock","removeBlock","ColumnsEdit","props","isDefaultColumns","hasParents","parentBlockAlignment","getBlockCount","getBlockParents","isEditorSidebarOpened","innerBlocksList","isContentEmpty","every","innerBlock","parents","inn","isVisible","setIsVisible","revealTimeout","setTimeout","clearTimeout","onClose"],"sources":["@wordpress/block-library/src/columns/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\talignmentHelpers,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tBlockVariationPicker,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseGlobalStyles,\n} from '@wordpress/block-editor';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEffect,\n\tuseState,\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 * 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 = useGlobalStyles();\n\n\tconst { verticalAlignment, align } = attributes;\n\tconst { width } = sizes || {};\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\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\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 override 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\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 } =\n\t\t\t\tregistry.select( blockEditorStore );\n\n\t\t\tlet innerBlocks = getBlocks( clientId );\n\t\t\tconst hasExplicitWidths =\n\t\t\t\thasExplicitPercentColumnWidths( innerBlocks );\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...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\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...Array.from( {\n\t\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t\t} ).map( () => {\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 = innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\t-( previousColumns - 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 } =\n\t\t\t\tdispatch( blockEditorStore );\n\t\t\tconst { getBlocks, getBlockAttributes } =\n\t\t\t\tregistry.select( blockEditorStore );\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\tinnerBlocks,\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\n\t\t\tconst innerBlocksList = getBlocks( clientId );\n\n\t\t\tconst isContentEmpty = innerBlocksList.every(\n\t\t\t\t( innerBlock ) => innerBlock.innerBlocks.length === 0\n\t\t\t);\n\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: isContentEmpty,\n\t\t\t\tinnerBlocks: innerBlocksList,\n\t\t\t\thasParents: parents.length > 0,\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 innerWidths = useMemo(\n\t\t() =>\n\t\t\tinnerBlocks.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[ innerBlocks ]\n\t);\n\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( isSelected && isDefaultColumns ) {\n\t\t\tconst revealTimeout = setTimeout( () => setIsVisible( true ), 100 );\n\n\t\t\treturn () => clearTimeout( revealTimeout );\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={ innerWidths }\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"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["createBlock","createBlocksFromInnerBlocksTemplate","MAXIMUM_SELECTED_BLOCKS","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","columnWidth","length","toFixed","innerBlocksTemplate","map","name","attributes","innerBlocks","width","isMatch","selectedBlocksLength","priority","transform","align","backgroundColor","textColor","style","mediaAlt","alt","mediaId","id","mediaPosition","mediaSizeSlug","sizeSlug","mediaType","mediaUrl","url","mediaWidth","verticalAlignment","media","imageAttrs","linkAttrs","href","linkClass","linkDestination","linkTarget","rel","src","reverse","ungroup","flatMap","innerBlock"],"sources":["@wordpress/block-library/src/columns/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nconst MAXIMUM_SELECTED_BLOCKS = 6;\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert: ( blocks ) => {\n\t\t\t\tconst columnWidth = +( 100 / blocks.length ).toFixed( 2 );\n\t\t\t\tconst innerBlocksTemplate = blocks.map(\n\t\t\t\t\t( { name, attributes, innerBlocks } ) => [\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ columnWidth }%` },\n\t\t\t\t\t\t[ [ name, { ...attributes }, innerBlocks ] ],\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { length: selectedBlocksLength }, blocks ) => {\n\t\t\t\t// If a user is trying to transform a single Columns block, skip\n\t\t\t\t// the transformation. Enabling this functiontionality creates\n\t\t\t\t// nested Columns blocks resulting in an unintuitive user experience.\n\t\t\t\t// Multiple Columns blocks can still be transformed.\n\t\t\t\tif (\n\t\t\t\t\tblocks.length === 1 &&\n\t\t\t\t\tblocks[ 0 ].name === 'core/columns'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tselectedBlocksLength &&\n\t\t\t\t\tselectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/media-text' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\talign,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaPosition,\n\t\t\t\t\tmediaSizeSlug: sizeSlug,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaWidth,\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} = attributes;\n\t\t\t\tlet media;\n\t\t\t\tif ( mediaType === 'image' || ! mediaType ) {\n\t\t\t\t\tconst imageAttrs = { id, alt, url, sizeSlug };\n\t\t\t\t\tconst linkAttrs = {\n\t\t\t\t\t\thref: attributes.href,\n\t\t\t\t\t\tlinkClass: attributes.linkClass,\n\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\tlinkTarget: attributes.linkTarget,\n\t\t\t\t\t\trel: attributes.rel,\n\t\t\t\t\t};\n\t\t\t\t\tmedia = [ 'core/image', { ...imageAttrs, ...linkAttrs } ];\n\t\t\t\t} else {\n\t\t\t\t\tmedia = [ 'core/video', { id, src: url } ];\n\t\t\t\t}\n\t\t\t\tconst innerBlocksTemplate = [\n\t\t\t\t\t[ 'core/column', { width: `${ mediaWidth }%` }, [ media ] ],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ 100 - mediaWidth }%` },\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tif ( mediaPosition === 'right' ) {\n\t\t\t\t\tinnerBlocksTemplate.reverse();\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tungroup: ( attributes, innerBlocks ) =>\n\t\tinnerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createBlock","createBlocksFromInnerBlocksTemplate","MAXIMUM_SELECTED_BLOCKS","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","columnWidth","length","toFixed","innerBlocksTemplate","map","name","attributes","innerBlocks","width","isMatch","selectedBlocksLength","priority","transform","align","backgroundColor","textColor","style","mediaAlt","alt","mediaId","id","mediaPosition","mediaSizeSlug","sizeSlug","mediaType","mediaUrl","url","mediaWidth","verticalAlignment","media","imageAttrs","linkAttrs","href","linkClass","linkDestination","linkTarget","rel","src","reverse","ungroup","flatMap","innerBlock"],"sources":["@wordpress/block-library/src/columns/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nconst MAXIMUM_SELECTED_BLOCKS = 6;\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert: ( blocks ) => {\n\t\t\t\tconst columnWidth = +( 100 / blocks.length ).toFixed( 2 );\n\t\t\t\tconst innerBlocksTemplate = blocks.map(\n\t\t\t\t\t( { name, attributes, innerBlocks } ) => [\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ columnWidth }%` },\n\t\t\t\t\t\t[ [ name, { ...attributes }, innerBlocks ] ],\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { length: selectedBlocksLength }, blocks ) => {\n\t\t\t\t// If a user is trying to transform a single Columns block, skip\n\t\t\t\t// the transformation. Enabling this functiontionality creates\n\t\t\t\t// nested Columns blocks resulting in an unintuitive user experience.\n\t\t\t\t// Multiple Columns blocks can still be transformed.\n\t\t\t\tif (\n\t\t\t\t\tblocks.length === 1 &&\n\t\t\t\t\tblocks[ 0 ].name === 'core/columns'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tselectedBlocksLength &&\n\t\t\t\t\tselectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/media-text' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\talign,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaPosition,\n\t\t\t\t\tmediaSizeSlug: sizeSlug,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaWidth,\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} = attributes;\n\t\t\t\tlet media;\n\t\t\t\tif ( mediaType === 'image' || ! mediaType ) {\n\t\t\t\t\tconst imageAttrs = { id, alt, url, sizeSlug };\n\t\t\t\t\tconst linkAttrs = {\n\t\t\t\t\t\thref: attributes.href,\n\t\t\t\t\t\tlinkClass: attributes.linkClass,\n\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\tlinkTarget: attributes.linkTarget,\n\t\t\t\t\t\trel: attributes.rel,\n\t\t\t\t\t};\n\t\t\t\t\tmedia = [ 'core/image', { ...imageAttrs, ...linkAttrs } ];\n\t\t\t\t} else {\n\t\t\t\t\tmedia = [ 'core/video', { id, src: url } ];\n\t\t\t\t}\n\t\t\t\tconst innerBlocksTemplate = [\n\t\t\t\t\t[ 'core/column', { width: `${ mediaWidth }%` }, [ media ] ],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ 100 - mediaWidth }%` },\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tif ( mediaPosition === 'right' ) {\n\t\t\t\t\tinnerBlocksTemplate.reverse();\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tungroup: ( attributes, innerBlocks ) =>\n\t\tinnerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * Returns a column width attribute value rounded to standard precision.
4
3
  * Returns `undefined` if the value is not a valid finite number.
@@ -1 +1 @@
1
- {"version":3,"names":["toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","fromEntries","entries","map","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"sources":["@wordpress/block-library/src/columns/utils.js"],"sourcesContent":["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["toWidthPrecision","value","unitlessValue","parseFloat","Number","isFinite","toFixed","undefined","getEffectiveColumnWidth","block","totalBlockCount","width","attributes","getTotalColumnsWidth","blocks","length","reduce","sum","getColumnWidths","accumulator","Object","assign","clientId","getRedistributedColumnWidths","availableWidth","totalWidth","fromEntries","entries","map","newWidth","hasExplicitPercentColumnWidths","every","blockWidth","endsWith","getMappedColumnWidths","widths","getWidths","withParsing","innerColumn","innerColumnWidth","getWidthWithUnit","unit","isPercentageUnit","Math","min"],"sources":["@wordpress/block-library/src/columns/utils.js"],"sourcesContent":["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useState","memo","useSelect","__","BlockContextProvider","useBlockProps","useInnerBlocksProps","store","blockEditorStore","__experimentalUseBlockPreview","useBlockPreview","Spinner","coreStore","useCommentQueryArgs","useCommentTree","jsx","_jsx","jsxs","_jsxs","TEMPLATE","getCommentsPlaceholder","perPage","pageComments","threadComments","threadCommentsDepth","commentsDepth","Math","min","buildChildrenComment","commentsLevel","nextLevel","commentId","children","placeholderComments","push","CommentTemplateInnerBlocks","comment","activeCommentId","setActiveCommentId","firstCommentId","blocks","innerBlocksProps","template","MemoizedCommentTemplatePreview","isHidden","length","CommentsList","comments","CommentTemplatePreview","blockPreviewProps","handleOnClick","style","display","undefined","tabIndex","role","onClick","onKeyPress","blockProps","map","index","value","CommentTemplateEdit","clientId","context","postId","commentOrder","commentsPerPage","select","getSettings","__experimentalDiscussionSettings","commentQuery","topLevelComments","getEntityRecords","getBlocks","commentTree","reverse"],"sources":["@wordpress/block-library/src/comment-template/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCommentQueryArgs, useCommentTree } from './hooks';\n\nconst TEMPLATE = [\n\t[ 'core/avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\n/**\n * Function that returns a comment structure that will be rendered with default placehoders.\n *\n * Each comment has a `commentId` property that is always a negative number in\n * case of the placeholders. This is to ensure that the comment does not\n * conflict with the actual (real) comments.\n *\n * @param {Object} settings Discussion Settings.\n * @param {number} [settings.perPage] - Comments per page setting or block attribute.\n * @param {boolean} [settings.pageComments] - Enable break comments into pages setting.\n * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.\n * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments.\n *\n * @typedef {{id: null, children: EmptyComment[]}} EmptyComment\n * @return {EmptyComment[]} \t\tInner blocks of the Comment Template\n */\nconst getCommentsPlaceholder = ( {\n\tperPage,\n\tpageComments,\n\tthreadComments,\n\tthreadCommentsDepth,\n} ) => {\n\t// Limit commentsDepth to 3\n\tconst commentsDepth = ! threadComments\n\t\t? 1\n\t\t: Math.min( threadCommentsDepth, 3 );\n\n\tconst buildChildrenComment = ( commentsLevel ) => {\n\t\t// Render children comments until commentsDepth is reached\n\t\tif ( commentsLevel < commentsDepth ) {\n\t\t\tconst nextLevel = commentsLevel + 1;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcommentId: -( commentsLevel + 3 ),\n\t\t\t\t\tchildren: buildChildrenComment( nextLevel ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [];\n\t};\n\n\t// Add the first comment and its children\n\tconst placeholderComments = [\n\t\t{ commentId: -1, children: buildChildrenComment( 1 ) },\n\t];\n\n\t// Add a second comment unless the break comments setting is active and set to less than 2, and there is one nested comment max\n\tif ( ( ! pageComments || perPage >= 2 ) && commentsDepth < 3 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -2,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// Add a third comment unless the break comments setting is active and set to less than 3, and there aren't nested comments\n\tif ( ( ! pageComments || perPage >= 3 ) && commentsDepth < 2 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -3,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\treturn placeholderComments;\n};\n\n/**\n * Component which renders the inner blocks of the Comment Template.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comment] - A comment object.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.firstCommentId] - ID of the first comment in the array.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {Element} \t\tInner blocks of the Comment Template\n */\nfunction CommentTemplateInnerBlocks( {\n\tcomment,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tfirstCommentId,\n\tblocks,\n} ) {\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps(\n\t\t{},\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<li { ...innerBlocksProps }>\n\t\t\t{ comment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t? children\n\t\t\t\t: null }\n\n\t\t\t{ /* To avoid flicker when switching active block contexts, a preview\n\t\t\t is ALWAYS rendered and the preview for the active block is hidden.\n\t\t\t This ensures that when switching the active block, the component is not\n\t\t\t mounted again but rather it only toggles the `isHidden` prop.\n\t\t\t The same strategy is used for preventing the flicker in the Post Template\n\t\t\t block. */ }\n\t\t\t<MemoizedCommentTemplatePreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tcommentId={ comment.commentId }\n\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\tisHidden={\n\t\t\t\t\tcomment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{ comment?.children?.length > 0 ? (\n\t\t\t\t<CommentsList\n\t\t\t\t\tcomments={ comment.children }\n\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t</li>\n\t);\n}\n\nconst CommentTemplatePreview = ( {\n\tblocks,\n\tcommentId,\n\tsetActiveCommentId,\n\tisHidden,\n} ) => {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveCommentId( commentId );\n\t};\n\n\t// We have to hide the preview block if the `comment` props points to\n\t// the currently active block!\n\n\t// Or, to put it differently, every preview block is visible unless it is the\n\t// currently active block - in this case we render its inner blocks.\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tstyle={ style }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t/>\n\t);\n};\n\nconst MemoizedCommentTemplatePreview = memo( CommentTemplatePreview );\n\n/**\n * Component that renders a list of (nested) comments. It is called recursively.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comments] - Array of comment objects.\n * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent.\n * @param {Object} [props.firstCommentId] - The ID of the first comment in the array of\n * comment objects.\n * @return {Element} \t\tList of comments.\n */\nconst CommentsList = ( {\n\tcomments,\n\tblockProps,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tblocks,\n\tfirstCommentId,\n} ) => (\n\t<ol { ...blockProps }>\n\t\t{ comments &&\n\t\t\tcomments.map( ( { commentId, ...comment }, index ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId || index }\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t// If the commentId is negative it means that this comment is a\n\t\t\t\t\t\t// \"placeholder\" and that the block is most likely being used in the\n\t\t\t\t\t\t// site editor. In this case, we have to set the commentId to `null`\n\t\t\t\t\t\t// because otherwise the (non-existent) comment with a negative ID\n\t\t\t\t\t\t// would be requested from the REST API.\n\t\t\t\t\t\tcommentId: commentId < 0 ? null : commentId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<CommentTemplateInnerBlocks\n\t\t\t\t\t\tcomment={ { commentId, ...comment } }\n\t\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t) ) }\n\t</ol>\n);\n\nexport default function CommentTemplateEdit( {\n\tclientId,\n\tcontext: { postId },\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeCommentId, setActiveCommentId ] = useState();\n\tconst {\n\t\tcommentOrder,\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings;\n\t} );\n\n\tconst commentQuery = useCommentQueryArgs( {\n\t\tpostId,\n\t} );\n\n\tconst { topLevelComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\t// Request only top-level comments. Replies are embedded.\n\t\t\t\ttopLevelComments: commentQuery\n\t\t\t\t\t? getEntityRecords( 'root', 'comment', commentQuery )\n\t\t\t\t\t: null,\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, commentQuery ]\n\t);\n\n\t// Generate a tree structure of comment IDs.\n\tlet commentTree = useCommentTree(\n\t\t// Reverse the order of top comments if needed.\n\t\tcommentOrder === 'desc' && topLevelComments\n\t\t\t? [ ...topLevelComments ].reverse()\n\t\t\t: topLevelComments\n\t);\n\n\tif ( ! topLevelComments ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! postId ) {\n\t\tcommentTree = getCommentsPlaceholder( {\n\t\t\tperPage: commentsPerPage,\n\t\t\tpageComments,\n\t\t\tthreadComments,\n\t\t\tthreadCommentsDepth,\n\t\t} );\n\t}\n\n\tif ( ! commentTree.length ) {\n\t\treturn <p { ...blockProps }>{ __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ commentTree }\n\t\t\tblockProps={ blockProps }\n\t\t\tblocks={ blocks }\n\t\t\tactiveCommentId={ activeCommentId }\n\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\tfirstCommentId={ commentTree[ 0 ]?.commentId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","memo","useSelect","__","BlockContextProvider","useBlockProps","useInnerBlocksProps","store","blockEditorStore","__experimentalUseBlockPreview","useBlockPreview","Spinner","coreStore","useCommentQueryArgs","useCommentTree","jsx","_jsx","jsxs","_jsxs","TEMPLATE","getCommentsPlaceholder","perPage","pageComments","threadComments","threadCommentsDepth","commentsDepth","Math","min","buildChildrenComment","commentsLevel","nextLevel","commentId","children","placeholderComments","push","CommentTemplateInnerBlocks","comment","activeCommentId","setActiveCommentId","firstCommentId","blocks","innerBlocksProps","template","MemoizedCommentTemplatePreview","isHidden","length","CommentsList","comments","CommentTemplatePreview","blockPreviewProps","handleOnClick","style","display","undefined","tabIndex","role","onClick","onKeyPress","blockProps","map","index","value","CommentTemplateEdit","clientId","context","postId","commentOrder","commentsPerPage","select","getSettings","__experimentalDiscussionSettings","commentQuery","topLevelComments","getEntityRecords","getBlocks","commentTree","reverse"],"sources":["@wordpress/block-library/src/comment-template/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCommentQueryArgs, useCommentTree } from './hooks';\n\nconst TEMPLATE = [\n\t[ 'core/avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\n/**\n * Function that returns a comment structure that will be rendered with default placehoders.\n *\n * Each comment has a `commentId` property that is always a negative number in\n * case of the placeholders. This is to ensure that the comment does not\n * conflict with the actual (real) comments.\n *\n * @param {Object} settings Discussion Settings.\n * @param {number} [settings.perPage] - Comments per page setting or block attribute.\n * @param {boolean} [settings.pageComments] - Enable break comments into pages setting.\n * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.\n * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments.\n *\n * @typedef {{id: null, children: EmptyComment[]}} EmptyComment\n * @return {EmptyComment[]} \t\tInner blocks of the Comment Template\n */\nconst getCommentsPlaceholder = ( {\n\tperPage,\n\tpageComments,\n\tthreadComments,\n\tthreadCommentsDepth,\n} ) => {\n\t// Limit commentsDepth to 3\n\tconst commentsDepth = ! threadComments\n\t\t? 1\n\t\t: Math.min( threadCommentsDepth, 3 );\n\n\tconst buildChildrenComment = ( commentsLevel ) => {\n\t\t// Render children comments until commentsDepth is reached\n\t\tif ( commentsLevel < commentsDepth ) {\n\t\t\tconst nextLevel = commentsLevel + 1;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcommentId: -( commentsLevel + 3 ),\n\t\t\t\t\tchildren: buildChildrenComment( nextLevel ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [];\n\t};\n\n\t// Add the first comment and its children\n\tconst placeholderComments = [\n\t\t{ commentId: -1, children: buildChildrenComment( 1 ) },\n\t];\n\n\t// Add a second comment unless the break comments setting is active and set to less than 2, and there is one nested comment max\n\tif ( ( ! pageComments || perPage >= 2 ) && commentsDepth < 3 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -2,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// Add a third comment unless the break comments setting is active and set to less than 3, and there aren't nested comments\n\tif ( ( ! pageComments || perPage >= 3 ) && commentsDepth < 2 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -3,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\treturn placeholderComments;\n};\n\n/**\n * Component which renders the inner blocks of the Comment Template.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comment] - A comment object.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.firstCommentId] - ID of the first comment in the array.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {Element} \t\tInner blocks of the Comment Template\n */\nfunction CommentTemplateInnerBlocks( {\n\tcomment,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tfirstCommentId,\n\tblocks,\n} ) {\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps(\n\t\t{},\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<li { ...innerBlocksProps }>\n\t\t\t{ comment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t? children\n\t\t\t\t: null }\n\n\t\t\t{ /* To avoid flicker when switching active block contexts, a preview\n\t\t\t is ALWAYS rendered and the preview for the active block is hidden.\n\t\t\t This ensures that when switching the active block, the component is not\n\t\t\t mounted again but rather it only toggles the `isHidden` prop.\n\t\t\t The same strategy is used for preventing the flicker in the Post Template\n\t\t\t block. */ }\n\t\t\t<MemoizedCommentTemplatePreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tcommentId={ comment.commentId }\n\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\tisHidden={\n\t\t\t\t\tcomment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{ comment?.children?.length > 0 ? (\n\t\t\t\t<CommentsList\n\t\t\t\t\tcomments={ comment.children }\n\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t</li>\n\t);\n}\n\nconst CommentTemplatePreview = ( {\n\tblocks,\n\tcommentId,\n\tsetActiveCommentId,\n\tisHidden,\n} ) => {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveCommentId( commentId );\n\t};\n\n\t// We have to hide the preview block if the `comment` props points to\n\t// the currently active block!\n\n\t// Or, to put it differently, every preview block is visible unless it is the\n\t// currently active block - in this case we render its inner blocks.\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tstyle={ style }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t/>\n\t);\n};\n\nconst MemoizedCommentTemplatePreview = memo( CommentTemplatePreview );\n\n/**\n * Component that renders a list of (nested) comments. It is called recursively.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comments] - Array of comment objects.\n * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent.\n * @param {Object} [props.firstCommentId] - The ID of the first comment in the array of\n * comment objects.\n * @return {Element} \t\tList of comments.\n */\nconst CommentsList = ( {\n\tcomments,\n\tblockProps,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tblocks,\n\tfirstCommentId,\n} ) => (\n\t<ol { ...blockProps }>\n\t\t{ comments &&\n\t\t\tcomments.map( ( { commentId, ...comment }, index ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId || index }\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t// If the commentId is negative it means that this comment is a\n\t\t\t\t\t\t// \"placeholder\" and that the block is most likely being used in the\n\t\t\t\t\t\t// site editor. In this case, we have to set the commentId to `null`\n\t\t\t\t\t\t// because otherwise the (non-existent) comment with a negative ID\n\t\t\t\t\t\t// would be requested from the REST API.\n\t\t\t\t\t\tcommentId: commentId < 0 ? null : commentId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<CommentTemplateInnerBlocks\n\t\t\t\t\t\tcomment={ { commentId, ...comment } }\n\t\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t) ) }\n\t</ol>\n);\n\nexport default function CommentTemplateEdit( {\n\tclientId,\n\tcontext: { postId },\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeCommentId, setActiveCommentId ] = useState();\n\tconst {\n\t\tcommentOrder,\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings;\n\t} );\n\n\tconst commentQuery = useCommentQueryArgs( {\n\t\tpostId,\n\t} );\n\n\tconst { topLevelComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\t// Request only top-level comments. Replies are embedded.\n\t\t\t\ttopLevelComments: commentQuery\n\t\t\t\t\t? getEntityRecords( 'root', 'comment', commentQuery )\n\t\t\t\t\t: null,\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, commentQuery ]\n\t);\n\n\t// Generate a tree structure of comment IDs.\n\tlet commentTree = useCommentTree(\n\t\t// Reverse the order of top comments if needed.\n\t\tcommentOrder === 'desc' && topLevelComments\n\t\t\t? [ ...topLevelComments ].reverse()\n\t\t\t: topLevelComments\n\t);\n\n\tif ( ! topLevelComments ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! postId ) {\n\t\tcommentTree = getCommentsPlaceholder( {\n\t\t\tperPage: commentsPerPage,\n\t\t\tpageComments,\n\t\t\tthreadComments,\n\t\t\tthreadCommentsDepth,\n\t\t} );\n\t}\n\n\tif ( ! commentTree.length ) {\n\t\treturn <p { ...blockProps }>{ __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ commentTree }\n\t\t\tblockProps={ blockProps }\n\t\t\tblocks={ blocks }\n\t\t\tactiveCommentId={ activeCommentId }\n\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\tfirstCommentId={ commentTree[ 0 ]?.commentId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useMemo","useSelect","store","blockEditorStore","addQueryArgs","apiFetch","MAX_COMMENTS_PER_PAGE","useCommentQueryArgs","postId","queryArgs","status","order","context","parent","_embed","pageComments","commentsPerPage","defaultCommentsPage","defaultPage","select","getSettings","__experimentalDiscussionSettings","perPage","Math","min","page","useDefaultPageIndex","post","per_page","defaultPages","setDefaultPages","key","path","_fields","method","parse","then","res","pages","parseInt","headers","get","useCommentTree","topLevelComments","commentTree","map","id","_embedded","children","commentId","child"],"sources":["@wordpress/block-library/src/comment-template/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n// This is limited by WP REST API\nconst MAX_COMMENTS_PER_PAGE = 100;\n\n/**\n * Return an object with the query args needed to fetch the default page of\n * comments.\n *\n * @param {Object} props Hook props.\n * @param {number} props.postId ID of the post that contains the comments.\n * discussion settings.\n *\n * @return {Object} Query args to retrieve the comments.\n */\nexport const useCommentQueryArgs = ( { postId } ) => {\n\t// Initialize the query args that are not going to change.\n\tconst queryArgs = {\n\t\tstatus: 'approve',\n\t\torder: 'asc',\n\t\tcontext: 'embed',\n\t\tparent: 0,\n\t\t_embed: 'children',\n\t};\n\n\t// Get the Discussion settings that may be needed to query the comments.\n\tconst {\n\t\tpageComments,\n\t\tcommentsPerPage,\n\t\tdefaultCommentsPage: defaultPage,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings;\n\t} );\n\n\t// WP REST API doesn't allow fetching more than max items limit set per single page of data.\n\t// As for the editor performance is more important than completeness of data and fetching only the\n\t// max allowed for single page should be enough for the purpose of design and laying out the page.\n\t// Fetching over the limit would return an error here but would work with backend query.\n\tconst perPage = pageComments\n\t\t? Math.min( commentsPerPage, MAX_COMMENTS_PER_PAGE )\n\t\t: MAX_COMMENTS_PER_PAGE;\n\n\t// Get the number of the default page.\n\tconst page = useDefaultPageIndex( {\n\t\tdefaultPage,\n\t\tpostId,\n\t\tperPage,\n\t\tqueryArgs,\n\t} );\n\n\t// Merge, memoize and return all query arguments, unless the default page's\n\t// number is not known yet.\n\treturn useMemo( () => {\n\t\treturn page\n\t\t\t? {\n\t\t\t\t\t...queryArgs,\n\t\t\t\t\tpost: postId,\n\t\t\t\t\tper_page: perPage,\n\t\t\t\t\tpage,\n\t\t\t }\n\t\t\t: null;\n\t}, [ postId, perPage, page ] );\n};\n\n/**\n * Return the index of the default page, depending on whether `defaultPage` is\n * `newest` or `oldest`. In the first case, the only way to know the page's\n * index is by using the `X-WP-TotalPages` header, which forces to make an\n * additional request.\n *\n * @param {Object} props Hook props.\n * @param {string} props.defaultPage Page shown by default (newest/oldest).\n * @param {number} props.postId ID of the post that contains the comments.\n * @param {number} props.perPage The number of comments included per page.\n * @param {Object} props.queryArgs Other query args.\n *\n * @return {number} Index of the default comments page.\n */\nconst useDefaultPageIndex = ( { defaultPage, postId, perPage, queryArgs } ) => {\n\t// Store the default page indices.\n\tconst [ defaultPages, setDefaultPages ] = useState( {} );\n\tconst key = `${ postId }_${ perPage }`;\n\tconst page = defaultPages[ key ] || 0;\n\n\tuseEffect( () => {\n\t\t// Do nothing if the page is already known or not the newest page.\n\t\tif ( page || defaultPage !== 'newest' ) {\n\t\t\treturn;\n\t\t}\n\t\t// We need to fetch comments to know the index. Use HEAD and limit\n\t\t// fields just to ID, to make this call as light as possible.\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\t...queryArgs,\n\t\t\t\tpost: postId,\n\t\t\t\tper_page: perPage,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} ).then( ( res ) => {\n\t\t\tconst pages = parseInt( res.headers.get( 'X-WP-TotalPages' ) );\n\t\t\tsetDefaultPages( {\n\t\t\t\t...defaultPages,\n\t\t\t\t[ key ]: pages <= 1 ? 1 : pages, // If there are 0 pages, it means that there are no comments, but there is no 0th page.\n\t\t\t} );\n\t\t} );\n\t}, [ defaultPage, postId, perPage, setDefaultPages ] );\n\n\t// The oldest one is always the first one.\n\treturn defaultPage === 'newest' ? page : 1;\n};\n\n/**\n * Generate a tree structure of comment IDs from a list of comment entities. The\n * children of each comment are obtained from `_embedded`.\n *\n * @typedef {{ commentId: number, children: CommentNode }} CommentNode\n *\n * @param {Object[]} topLevelComments List of comment entities.\n * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.\n */\nexport const useCommentTree = ( topLevelComments ) => {\n\tconst commentTree = useMemo(\n\t\t() =>\n\t\t\ttopLevelComments?.map( ( { id, _embedded } ) => {\n\t\t\t\tconst [ children ] = _embedded?.children || [ [] ];\n\t\t\t\treturn {\n\t\t\t\t\tcommentId: id,\n\t\t\t\t\tchildren: children.map( ( child ) => ( {\n\t\t\t\t\t\tcommentId: child.id,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t} ),\n\t\t[ topLevelComments ]\n\t);\n\n\treturn commentTree;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","useMemo","useSelect","store","blockEditorStore","addQueryArgs","apiFetch","MAX_COMMENTS_PER_PAGE","useCommentQueryArgs","postId","queryArgs","status","order","context","parent","_embed","pageComments","commentsPerPage","defaultCommentsPage","defaultPage","select","getSettings","__experimentalDiscussionSettings","perPage","Math","min","page","useDefaultPageIndex","post","per_page","defaultPages","setDefaultPages","key","path","_fields","method","parse","then","res","pages","parseInt","headers","get","useCommentTree","topLevelComments","commentTree","map","id","_embedded","children","commentId","child"],"sources":["@wordpress/block-library/src/comment-template/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n// This is limited by WP REST API\nconst MAX_COMMENTS_PER_PAGE = 100;\n\n/**\n * Return an object with the query args needed to fetch the default page of\n * comments.\n *\n * @param {Object} props Hook props.\n * @param {number} props.postId ID of the post that contains the comments.\n * discussion settings.\n *\n * @return {Object} Query args to retrieve the comments.\n */\nexport const useCommentQueryArgs = ( { postId } ) => {\n\t// Initialize the query args that are not going to change.\n\tconst queryArgs = {\n\t\tstatus: 'approve',\n\t\torder: 'asc',\n\t\tcontext: 'embed',\n\t\tparent: 0,\n\t\t_embed: 'children',\n\t};\n\n\t// Get the Discussion settings that may be needed to query the comments.\n\tconst {\n\t\tpageComments,\n\t\tcommentsPerPage,\n\t\tdefaultCommentsPage: defaultPage,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings;\n\t} );\n\n\t// WP REST API doesn't allow fetching more than max items limit set per single page of data.\n\t// As for the editor performance is more important than completeness of data and fetching only the\n\t// max allowed for single page should be enough for the purpose of design and laying out the page.\n\t// Fetching over the limit would return an error here but would work with backend query.\n\tconst perPage = pageComments\n\t\t? Math.min( commentsPerPage, MAX_COMMENTS_PER_PAGE )\n\t\t: MAX_COMMENTS_PER_PAGE;\n\n\t// Get the number of the default page.\n\tconst page = useDefaultPageIndex( {\n\t\tdefaultPage,\n\t\tpostId,\n\t\tperPage,\n\t\tqueryArgs,\n\t} );\n\n\t// Merge, memoize and return all query arguments, unless the default page's\n\t// number is not known yet.\n\treturn useMemo( () => {\n\t\treturn page\n\t\t\t? {\n\t\t\t\t\t...queryArgs,\n\t\t\t\t\tpost: postId,\n\t\t\t\t\tper_page: perPage,\n\t\t\t\t\tpage,\n\t\t\t }\n\t\t\t: null;\n\t}, [ postId, perPage, page ] );\n};\n\n/**\n * Return the index of the default page, depending on whether `defaultPage` is\n * `newest` or `oldest`. In the first case, the only way to know the page's\n * index is by using the `X-WP-TotalPages` header, which forces to make an\n * additional request.\n *\n * @param {Object} props Hook props.\n * @param {string} props.defaultPage Page shown by default (newest/oldest).\n * @param {number} props.postId ID of the post that contains the comments.\n * @param {number} props.perPage The number of comments included per page.\n * @param {Object} props.queryArgs Other query args.\n *\n * @return {number} Index of the default comments page.\n */\nconst useDefaultPageIndex = ( { defaultPage, postId, perPage, queryArgs } ) => {\n\t// Store the default page indices.\n\tconst [ defaultPages, setDefaultPages ] = useState( {} );\n\tconst key = `${ postId }_${ perPage }`;\n\tconst page = defaultPages[ key ] || 0;\n\n\tuseEffect( () => {\n\t\t// Do nothing if the page is already known or not the newest page.\n\t\tif ( page || defaultPage !== 'newest' ) {\n\t\t\treturn;\n\t\t}\n\t\t// We need to fetch comments to know the index. Use HEAD and limit\n\t\t// fields just to ID, to make this call as light as possible.\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\t...queryArgs,\n\t\t\t\tpost: postId,\n\t\t\t\tper_page: perPage,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} ).then( ( res ) => {\n\t\t\tconst pages = parseInt( res.headers.get( 'X-WP-TotalPages' ) );\n\t\t\tsetDefaultPages( {\n\t\t\t\t...defaultPages,\n\t\t\t\t[ key ]: pages <= 1 ? 1 : pages, // If there are 0 pages, it means that there are no comments, but there is no 0th page.\n\t\t\t} );\n\t\t} );\n\t}, [ defaultPage, postId, perPage, setDefaultPages ] );\n\n\t// The oldest one is always the first one.\n\treturn defaultPage === 'newest' ? page : 1;\n};\n\n/**\n * Generate a tree structure of comment IDs from a list of comment entities. The\n * children of each comment are obtained from `_embedded`.\n *\n * @typedef {{ commentId: number, children: CommentNode }} CommentNode\n *\n * @param {Object[]} topLevelComments List of comment entities.\n * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.\n */\nexport const useCommentTree = ( topLevelComments ) => {\n\tconst commentTree = useMemo(\n\t\t() =>\n\t\t\ttopLevelComments?.map( ( { id, _embedded } ) => {\n\t\t\t\tconst [ children ] = _embedded?.children || [ [] ];\n\t\t\t\treturn {\n\t\t\t\t\tcommentId: id,\n\t\t\t\t\tchildren: children.map( ( child ) => ( {\n\t\t\t\t\t\tcommentId: child.id,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t} ),\n\t\t[ topLevelComments ]\n\t);\n\n\treturn commentTree;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACjE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,OAAOC,QAAQ,MAAM,sBAAsB;;AAE3C;AACA,MAAMC,qBAAqB,GAAG,GAAG;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAE;EAAEC;AAAO,CAAC,KAAM;EACpD;EACA,MAAMC,SAAS,GAAG;IACjBC,MAAM,EAAE,SAAS;IACjBC,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE,OAAO;IAChBC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE;EACT,CAAC;;EAED;EACA,MAAM;IACLC,YAAY;IACZC,eAAe;IACfC,mBAAmB,EAAEC;EACtB,CAAC,GAAGjB,SAAS,CAAIkB,MAAM,IAAM;IAC5B,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEhB,gBAAiB,CAAC;IAClD,MAAM;MAAEkB;IAAiC,CAAC,GAAGD,WAAW,CAAC,CAAC;IAC1D,OAAOC,gCAAgC;EACxC,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAMC,OAAO,GAAGP,YAAY,GACzBQ,IAAI,CAACC,GAAG,CAAER,eAAe,EAAEV,qBAAsB,CAAC,GAClDA,qBAAqB;;EAExB;EACA,MAAMmB,IAAI,GAAGC,mBAAmB,CAAE;IACjCR,WAAW;IACXV,MAAM;IACNc,OAAO;IACPb;EACD,CAAE,CAAC;;EAEH;EACA;EACA,OAAOT,OAAO,CAAE,MAAM;IACrB,OAAOyB,IAAI,GACR;MACA,GAAGhB,SAAS;MACZkB,IAAI,EAAEnB,MAAM;MACZoB,QAAQ,EAAEN,OAAO;MACjBG;IACA,CAAC,GACD,IAAI;EACR,CAAC,EAAE,CAAEjB,MAAM,EAAEc,OAAO,EAAEG,IAAI,CAAG,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAGA,CAAE;EAAER,WAAW;EAAEV,MAAM;EAAEc,OAAO;EAAEb;AAAU,CAAC,KAAM;EAC9E;EACA,MAAM,CAAEoB,YAAY,EAAEC,eAAe,CAAE,GAAGhC,QAAQ,CAAE,CAAC,CAAE,CAAC;EACxD,MAAMiC,GAAG,GAAG,GAAIvB,MAAM,IAAMc,OAAO,EAAG;EACtC,MAAMG,IAAI,GAAGI,YAAY,CAAEE,GAAG,CAAE,IAAI,CAAC;EAErChC,SAAS,CAAE,MAAM;IAChB;IACA,IAAK0B,IAAI,IAAIP,WAAW,KAAK,QAAQ,EAAG;MACvC;IACD;IACA;IACA;IACAb,QAAQ,CAAE;MACT2B,IAAI,EAAE5B,YAAY,CAAE,iBAAiB,EAAE;QACtC,GAAGK,SAAS;QACZkB,IAAI,EAAEnB,MAAM;QACZoB,QAAQ,EAAEN,OAAO;QACjBW,OAAO,EAAE;MACV,CAAE,CAAC;MACHC,MAAM,EAAE,MAAM;MACdC,KAAK,EAAE;IACR,CAAE,CAAC,CAACC,IAAI,CAAIC,GAAG,IAAM;MACpB,MAAMC,KAAK,GAAGC,QAAQ,CAAEF,GAAG,CAACG,OAAO,CAACC,GAAG,CAAE,iBAAkB,CAAE,CAAC;MAC9DX,eAAe,CAAE;QAChB,GAAGD,YAAY;QACf,CAAEE,GAAG,GAAIO,KAAK,IAAI,CAAC,GAAG,CAAC,GAAGA,KAAK,CAAE;MAClC,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEpB,WAAW,EAAEV,MAAM,EAAEc,OAAO,EAAEQ,eAAe,CAAG,CAAC;;EAEtD;EACA,OAAOZ,WAAW,KAAK,QAAQ,GAAGO,IAAI,GAAG,CAAC;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMiB,cAAc,GAAKC,gBAAgB,IAAM;EACrD,MAAMC,WAAW,GAAG5C,OAAO,CAC1B,MACC2C,gBAAgB,EAAEE,GAAG,CAAE,CAAE;IAAEC,EAAE;IAAEC;EAAU,CAAC,KAAM;IAC/C,MAAM,CAAEC,QAAQ,CAAE,GAAGD,SAAS,EAAEC,QAAQ,IAAI,CAAE,EAAE,CAAE;IAClD,OAAO;MACNC,SAAS,EAAEH,EAAE;MACbE,QAAQ,EAAEA,QAAQ,CAACH,GAAG,CAAIK,KAAK,KAAQ;QACtCD,SAAS,EAAEC,KAAK,CAACJ;MAClB,CAAC,CAAG;IACL,CAAC;EACF,CAAE,CAAC,EACJ,CAAEH,gBAAgB,CACnB,CAAC;EAED,OAAOC,WAAW;AACnB,CAAC","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  *
4
3
  * This function converts a flat list of comment objects with a `parent` property
@@ -1 +1 @@
1
- {"version":3,"names":["convertToTree","data","table","forEach","item","id","commentId","children","tree","parent","push"],"sources":["@wordpress/block-library/src/comment-template/util.js"],"sourcesContent":["/**\n *\n * This function converts a flat list of comment objects with a `parent` property\n * to a nested list of comment objects with a `children` property. The `children`\n * property is itself a list of comment objects.\n *\n * @example\n * ```\n * const comments = [\n * \t{ id: 1, parent: 0 },\n * \t{ id: 2, parent: 1 },\n * \t{ id: 3, parent: 2 },\n * \t{ id: 4, parent: 1 },\n * ];\n * expect( convertToTree( comments ) ).toEqual( [\n * \t{\n * \t\tcommentId: 1,\n * \t\tchildren: [\n * \t\t\t{ commentId: 2, children: [ { commentId: 3, children: [] } ] },\n * \t\t\t{ commentId: 4, children: [] },\n * \t\t],\n * \t},\n * ] );\n * ```\n * @typedef {{id: number, parent: number}} Comment\n * @param {Comment[]} data - List of comment objects.\n *\n * @return {Object[]} Nested list of comment objects with a `children` property.\n */\nexport const convertToTree = ( data ) => {\n\tconst table = {};\n\n\tif ( ! data ) {\n\t\treturn [];\n\t}\n\n\t// First create a hash table of { [id]: { ...comment, children: [] }}\n\tdata.forEach( ( item ) => {\n\t\ttable[ item.id ] = { commentId: item.id, children: [] };\n\t} );\n\n\tconst tree = [];\n\n\t// Iterate over the original comments again\n\tdata.forEach( ( item ) => {\n\t\tif ( item.parent ) {\n\t\t\t// If the comment has a \"parent\", then find that parent in the table that\n\t\t\t// we have created above and push the current comment to the array of its\n\t\t\t// children.\n\t\t\ttable[ item.parent ]?.children.push( table[ item.id ] );\n\t\t} else {\n\t\t\t// Otherwise, if the comment has no parent (also works if parent is 0)\n\t\t\t// that means that it's a top-level comment so we can find it in the table\n\t\t\t// and push it to the final tree.\n\t\t\ttree.push( table[ item.id ] );\n\t\t}\n\t} );\n\treturn tree;\n};\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAKC,IAAI,IAAM;EACxC,MAAMC,KAAK,GAAG,CAAC,CAAC;EAEhB,IAAK,CAAED,IAAI,EAAG;IACb,OAAO,EAAE;EACV;;EAEA;EACAA,IAAI,CAACE,OAAO,CAAIC,IAAI,IAAM;IACzBF,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAE,GAAG;MAAEC,SAAS,EAAEF,IAAI,CAACC,EAAE;MAAEE,QAAQ,EAAE;IAAG,CAAC;EACxD,CAAE,CAAC;EAEH,MAAMC,IAAI,GAAG,EAAE;;EAEf;EACAP,IAAI,CAACE,OAAO,CAAIC,IAAI,IAAM;IACzB,IAAKA,IAAI,CAACK,MAAM,EAAG;MAClB;MACA;MACA;MACAP,KAAK,CAAEE,IAAI,CAACK,MAAM,CAAE,EAAEF,QAAQ,CAACG,IAAI,CAAER,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAG,CAAC;IACxD,CAAC,MAAM;MACN;MACA;MACA;MACAG,IAAI,CAACE,IAAI,CAAER,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAG,CAAC;IAC9B;EACD,CAAE,CAAC;EACH,OAAOG,IAAI;AACZ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["convertToTree","data","table","forEach","item","id","commentId","children","tree","parent","push"],"sources":["@wordpress/block-library/src/comment-template/util.js"],"sourcesContent":["/**\n *\n * This function converts a flat list of comment objects with a `parent` property\n * to a nested list of comment objects with a `children` property. The `children`\n * property is itself a list of comment objects.\n *\n * @example\n * ```\n * const comments = [\n * \t{ id: 1, parent: 0 },\n * \t{ id: 2, parent: 1 },\n * \t{ id: 3, parent: 2 },\n * \t{ id: 4, parent: 1 },\n * ];\n * expect( convertToTree( comments ) ).toEqual( [\n * \t{\n * \t\tcommentId: 1,\n * \t\tchildren: [\n * \t\t\t{ commentId: 2, children: [ { commentId: 3, children: [] } ] },\n * \t\t\t{ commentId: 4, children: [] },\n * \t\t],\n * \t},\n * ] );\n * ```\n * @typedef {{id: number, parent: number}} Comment\n * @param {Comment[]} data - List of comment objects.\n *\n * @return {Object[]} Nested list of comment objects with a `children` property.\n */\nexport const convertToTree = ( data ) => {\n\tconst table = {};\n\n\tif ( ! data ) {\n\t\treturn [];\n\t}\n\n\t// First create a hash table of { [id]: { ...comment, children: [] }}\n\tdata.forEach( ( item ) => {\n\t\ttable[ item.id ] = { commentId: item.id, children: [] };\n\t} );\n\n\tconst tree = [];\n\n\t// Iterate over the original comments again\n\tdata.forEach( ( item ) => {\n\t\tif ( item.parent ) {\n\t\t\t// If the comment has a \"parent\", then find that parent in the table that\n\t\t\t// we have created above and push the current comment to the array of its\n\t\t\t// children.\n\t\t\ttable[ item.parent ]?.children.push( table[ item.id ] );\n\t\t} else {\n\t\t\t// Otherwise, if the comment has no parent (also works if parent is 0)\n\t\t\t// that means that it's a top-level comment so we can find it in the table\n\t\t\t// and push it to the final tree.\n\t\t\ttree.push( table[ item.id ] );\n\t\t}\n\t} );\n\treturn tree;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAKC,IAAI,IAAM;EACxC,MAAMC,KAAK,GAAG,CAAC,CAAC;EAEhB,IAAK,CAAED,IAAI,EAAG;IACb,OAAO,EAAE;EACV;;EAEA;EACAA,IAAI,CAACE,OAAO,CAAIC,IAAI,IAAM;IACzBF,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAE,GAAG;MAAEC,SAAS,EAAEF,IAAI,CAACC,EAAE;MAAEE,QAAQ,EAAE;IAAG,CAAC;EACxD,CAAE,CAAC;EAEH,MAAMC,IAAI,GAAG,EAAE;;EAEf;EACAP,IAAI,CAACE,OAAO,CAAIC,IAAI,IAAM;IACzB,IAAKA,IAAI,CAACK,MAAM,EAAG;MAClB;MACA;MACA;MACAP,KAAK,CAAEE,IAAI,CAACK,MAAM,CAAE,EAAEF,QAAQ,CAACG,IAAI,CAAER,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAG,CAAC;IACxD,CAAC,MAAM;MACN;MACA;MACA;MACAG,IAAI,CAACE,IAAI,CAAER,KAAK,CAAEE,IAAI,CAACC,EAAE,CAAG,CAAC;IAC9B;EACD,CAAE,CAAC;EACH,OAAOG,IAAI;AACZ,CAAC","ignoreList":[]}