@wordpress/block-library 7.17.0 → 7.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 (374) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +44 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/button/deprecated.js +16 -2
  5. package/build/button/deprecated.js.map +1 -1
  6. package/build/button/edit.js +14 -8
  7. package/build/button/edit.js.map +1 -1
  8. package/build/button/index.js +4 -1
  9. package/build/button/index.js.map +1 -1
  10. package/build/button/save.js +2 -0
  11. package/build/button/save.js.map +1 -1
  12. package/build/buttons/edit.native.js +1 -1
  13. package/build/buttons/edit.native.js.map +1 -1
  14. package/build/columns/transforms.js +5 -0
  15. package/build/columns/transforms.js.map +1 -1
  16. package/build/comment-template/index.js +6 -2
  17. package/build/comment-template/index.js.map +1 -1
  18. package/build/cover/edit/index.js +3 -1
  19. package/build/cover/edit/index.js.map +1 -1
  20. package/build/cover/edit/inspector-controls.js +3 -7
  21. package/build/cover/edit/inspector-controls.js.map +1 -1
  22. package/build/embed/deprecated.js +43 -4
  23. package/build/embed/deprecated.js.map +1 -1
  24. package/build/file/deprecated.js +108 -4
  25. package/build/file/deprecated.js.map +1 -1
  26. package/build/file/transforms.js +3 -9
  27. package/build/file/transforms.js.map +1 -1
  28. package/build/gallery/deprecated.js +148 -23
  29. package/build/gallery/deprecated.js.map +1 -1
  30. package/build/gallery/gallery.js +3 -2
  31. package/build/gallery/gallery.js.map +1 -1
  32. package/build/gallery/use-image-sizes.js +2 -1
  33. package/build/gallery/use-image-sizes.js.map +1 -1
  34. package/build/gallery/v1/edit.js +6 -3
  35. package/build/gallery/v1/edit.js.map +1 -1
  36. package/build/group/edit.js +105 -48
  37. package/build/group/edit.js.map +1 -1
  38. package/build/group/index.js +3 -0
  39. package/build/group/index.js.map +1 -1
  40. package/build/group/placeholder.js +168 -0
  41. package/build/group/placeholder.js.map +1 -0
  42. package/build/group/variations.js +3 -3
  43. package/build/group/variations.js.map +1 -1
  44. package/build/image/edit.native.js +1 -1
  45. package/build/image/edit.native.js.map +1 -1
  46. package/build/image/image.js +6 -9
  47. package/build/image/image.js.map +1 -1
  48. package/build/latest-comments/edit.js +2 -1
  49. package/build/latest-comments/edit.js.map +1 -1
  50. package/build/latest-comments/index.js +5 -1
  51. package/build/latest-comments/index.js.map +1 -1
  52. package/build/latest-posts/deprecated.js +13 -0
  53. package/build/latest-posts/deprecated.js.map +1 -1
  54. package/build/latest-posts/edit.js +1 -1
  55. package/build/latest-posts/edit.js.map +1 -1
  56. package/build/latest-posts/index.js +13 -0
  57. package/build/latest-posts/index.js.map +1 -1
  58. package/build/list/utils.js +4 -8
  59. package/build/list/utils.js.map +1 -1
  60. package/build/list-item/edit.js +2 -1
  61. package/build/list-item/edit.js.map +1 -1
  62. package/build/list-item/hooks/use-outdent-list-item.js +5 -7
  63. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  64. package/build/navigation/edit/index.js +94 -103
  65. package/build/navigation/edit/index.js.map +1 -1
  66. package/build/navigation/edit/manage-menus-button.js +36 -0
  67. package/build/navigation/edit/manage-menus-button.js.map +1 -0
  68. package/build/navigation/edit/navigation-menu-selector.js +12 -5
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/responsive-wrapper.js +2 -6
  71. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  72. package/build/navigation/edit/unsaved-inner-blocks.js +5 -17
  73. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  74. package/build/navigation-link/edit.js +14 -3
  75. package/build/navigation-link/edit.js.map +1 -1
  76. package/build/navigation-submenu/edit.js +4 -4
  77. package/build/navigation-submenu/edit.js.map +1 -1
  78. package/build/page-list/edit.js +29 -10
  79. package/build/page-list/edit.js.map +1 -1
  80. package/build/post-author/edit.js +35 -20
  81. package/build/post-author/edit.js.map +1 -1
  82. package/build/post-comments-count/index.js +4 -0
  83. package/build/post-comments-count/index.js.map +1 -1
  84. package/build/post-comments-form/index.js +4 -0
  85. package/build/post-comments-form/index.js.map +1 -1
  86. package/build/post-comments-link/index.js +4 -0
  87. package/build/post-comments-link/index.js.map +1 -1
  88. package/build/post-content/edit.js +14 -6
  89. package/build/post-content/edit.js.map +1 -1
  90. package/build/post-content/index.js +3 -0
  91. package/build/post-content/index.js.map +1 -1
  92. package/build/pullquote/deprecated.js +6 -6
  93. package/build/pullquote/deprecated.js.map +1 -1
  94. package/build/search/edit.js +1 -3
  95. package/build/search/edit.js.map +1 -1
  96. package/build/site-logo/edit.js +2 -2
  97. package/build/site-logo/edit.js.map +1 -1
  98. package/build/site-tagline/edit.js +21 -9
  99. package/build/site-tagline/edit.js.map +1 -1
  100. package/build/site-title/edit/index.js +20 -8
  101. package/build/site-title/edit/index.js.map +1 -1
  102. package/build/social-link/edit.js +11 -2
  103. package/build/social-link/edit.js.map +1 -1
  104. package/build/social-link/index.js +3 -0
  105. package/build/social-link/index.js.map +1 -1
  106. package/build/spacer/controls.js +3 -7
  107. package/build/spacer/controls.js.map +1 -1
  108. package/build/table/deprecated.js +282 -27
  109. package/build/table/deprecated.js.map +1 -1
  110. package/build/table/state.js +1 -1
  111. package/build/table/state.js.map +1 -1
  112. package/build/template-part/variations.js +5 -0
  113. package/build/template-part/variations.js.map +1 -1
  114. package/build/utils/clean-empty-object.js +5 -4
  115. package/build/utils/clean-empty-object.js.map +1 -1
  116. package/build/video/deprecated.js +159 -0
  117. package/build/video/deprecated.js.map +1 -0
  118. package/build/video/edit.js +41 -5
  119. package/build/video/edit.js.map +1 -1
  120. package/build/video/index.js +3 -0
  121. package/build/video/index.js.map +1 -1
  122. package/build/video/tracks-editor.js +3 -28
  123. package/build/video/tracks-editor.js.map +1 -1
  124. package/build-module/audio/edit.js +46 -7
  125. package/build-module/audio/edit.js.map +1 -1
  126. package/build-module/button/deprecated.js +16 -2
  127. package/build-module/button/deprecated.js.map +1 -1
  128. package/build-module/button/edit.js +16 -10
  129. package/build-module/button/edit.js.map +1 -1
  130. package/build-module/button/index.js +4 -1
  131. package/build-module/button/index.js.map +1 -1
  132. package/build-module/button/save.js +2 -0
  133. package/build-module/button/save.js.map +1 -1
  134. package/build-module/buttons/edit.native.js +1 -1
  135. package/build-module/buttons/edit.native.js.map +1 -1
  136. package/build-module/columns/transforms.js +5 -0
  137. package/build-module/columns/transforms.js.map +1 -1
  138. package/build-module/comment-template/index.js +6 -2
  139. package/build-module/comment-template/index.js.map +1 -1
  140. package/build-module/cover/edit/index.js +3 -1
  141. package/build-module/cover/edit/index.js.map +1 -1
  142. package/build-module/cover/edit/inspector-controls.js +4 -8
  143. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  144. package/build-module/embed/deprecated.js +44 -5
  145. package/build-module/embed/deprecated.js.map +1 -1
  146. package/build-module/file/deprecated.js +108 -4
  147. package/build-module/file/deprecated.js.map +1 -1
  148. package/build-module/file/transforms.js +3 -8
  149. package/build-module/file/transforms.js.map +1 -1
  150. package/build-module/gallery/deprecated.js +147 -25
  151. package/build-module/gallery/deprecated.js.map +1 -1
  152. package/build-module/gallery/gallery.js +3 -2
  153. package/build-module/gallery/gallery.js.map +1 -1
  154. package/build-module/gallery/use-image-sizes.js +3 -2
  155. package/build-module/gallery/use-image-sizes.js.map +1 -1
  156. package/build-module/gallery/v1/edit.js +7 -4
  157. package/build-module/gallery/v1/edit.js.map +1 -1
  158. package/build-module/group/edit.js +101 -48
  159. package/build-module/group/edit.js.map +1 -1
  160. package/build-module/group/index.js +3 -0
  161. package/build-module/group/index.js.map +1 -1
  162. package/build-module/group/placeholder.js +154 -0
  163. package/build-module/group/placeholder.js.map +1 -0
  164. package/build-module/group/variations.js +3 -3
  165. package/build-module/group/variations.js.map +1 -1
  166. package/build-module/image/edit.native.js +1 -1
  167. package/build-module/image/edit.native.js.map +1 -1
  168. package/build-module/image/image.js +8 -11
  169. package/build-module/image/image.js.map +1 -1
  170. package/build-module/latest-comments/edit.js +2 -1
  171. package/build-module/latest-comments/edit.js.map +1 -1
  172. package/build-module/latest-comments/index.js +5 -1
  173. package/build-module/latest-comments/index.js.map +1 -1
  174. package/build-module/latest-posts/deprecated.js +13 -0
  175. package/build-module/latest-posts/deprecated.js.map +1 -1
  176. package/build-module/latest-posts/edit.js +2 -2
  177. package/build-module/latest-posts/edit.js.map +1 -1
  178. package/build-module/latest-posts/index.js +13 -0
  179. package/build-module/latest-posts/index.js.map +1 -1
  180. package/build-module/list/utils.js +5 -9
  181. package/build-module/list/utils.js.map +1 -1
  182. package/build-module/list-item/edit.js +2 -1
  183. package/build-module/list-item/edit.js.map +1 -1
  184. package/build-module/list-item/hooks/use-outdent-list-item.js +5 -6
  185. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  186. package/build-module/navigation/edit/index.js +96 -105
  187. package/build-module/navigation/edit/index.js.map +1 -1
  188. package/build-module/navigation/edit/manage-menus-button.js +26 -0
  189. package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
  190. package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
  191. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  192. package/build-module/navigation/edit/responsive-wrapper.js +2 -6
  193. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  194. package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -18
  195. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  196. package/build-module/navigation-link/edit.js +14 -4
  197. package/build-module/navigation-link/edit.js.map +1 -1
  198. package/build-module/navigation-submenu/edit.js +4 -4
  199. package/build-module/navigation-submenu/edit.js.map +1 -1
  200. package/build-module/page-list/edit.js +29 -10
  201. package/build-module/page-list/edit.js.map +1 -1
  202. package/build-module/post-author/edit.js +35 -21
  203. package/build-module/post-author/edit.js.map +1 -1
  204. package/build-module/post-comments-count/index.js +4 -0
  205. package/build-module/post-comments-count/index.js.map +1 -1
  206. package/build-module/post-comments-form/index.js +4 -0
  207. package/build-module/post-comments-form/index.js.map +1 -1
  208. package/build-module/post-comments-link/index.js +4 -0
  209. package/build-module/post-comments-link/index.js.map +1 -1
  210. package/build-module/post-content/edit.js +14 -6
  211. package/build-module/post-content/edit.js.map +1 -1
  212. package/build-module/post-content/index.js +3 -0
  213. package/build-module/post-content/index.js.map +1 -1
  214. package/build-module/pullquote/deprecated.js +7 -7
  215. package/build-module/pullquote/deprecated.js.map +1 -1
  216. package/build-module/search/edit.js +1 -3
  217. package/build-module/search/edit.js.map +1 -1
  218. package/build-module/site-logo/edit.js +3 -3
  219. package/build-module/site-logo/edit.js.map +1 -1
  220. package/build-module/site-tagline/edit.js +23 -11
  221. package/build-module/site-tagline/edit.js.map +1 -1
  222. package/build-module/site-title/edit/index.js +22 -10
  223. package/build-module/site-title/edit/index.js.map +1 -1
  224. package/build-module/social-link/edit.js +11 -2
  225. package/build-module/social-link/edit.js.map +1 -1
  226. package/build-module/social-link/index.js +3 -0
  227. package/build-module/social-link/index.js.map +1 -1
  228. package/build-module/spacer/controls.js +4 -8
  229. package/build-module/spacer/controls.js.map +1 -1
  230. package/build-module/table/deprecated.js +282 -27
  231. package/build-module/table/deprecated.js.map +1 -1
  232. package/build-module/table/state.js +1 -1
  233. package/build-module/table/state.js.map +1 -1
  234. package/build-module/template-part/variations.js +5 -0
  235. package/build-module/template-part/variations.js.map +1 -1
  236. package/build-module/utils/clean-empty-object.js +5 -5
  237. package/build-module/utils/clean-empty-object.js.map +1 -1
  238. package/build-module/video/deprecated.js +147 -0
  239. package/build-module/video/deprecated.js.map +1 -0
  240. package/build-module/video/edit.js +45 -9
  241. package/build-module/video/edit.js.map +1 -1
  242. package/build-module/video/index.js +2 -0
  243. package/build-module/video/index.js.map +1 -1
  244. package/build-module/video/tracks-editor.js +4 -29
  245. package/build-module/video/tracks-editor.js.map +1 -1
  246. package/build-style/button/style-rtl.css +1 -0
  247. package/build-style/button/style.css +1 -0
  248. package/build-style/comment-template/style-rtl.css +1 -0
  249. package/build-style/comment-template/style.css +1 -0
  250. package/build-style/editor-rtl.css +80 -5
  251. package/build-style/editor.css +80 -5
  252. package/build-style/group/editor-rtl.css +44 -0
  253. package/build-style/group/editor.css +44 -0
  254. package/build-style/latest-comments/style-rtl.css +1 -0
  255. package/build-style/latest-comments/style.css +1 -0
  256. package/build-style/latest-posts/style-rtl.css +3 -0
  257. package/build-style/latest-posts/style.css +3 -0
  258. package/build-style/navigation/editor-rtl.css +27 -4
  259. package/build-style/navigation/editor.css +27 -4
  260. package/build-style/navigation/style-rtl.css +13 -1
  261. package/build-style/navigation/style.css +13 -1
  262. package/build-style/navigation-link/editor-rtl.css +8 -1
  263. package/build-style/navigation-link/editor.css +8 -1
  264. package/build-style/post-comments-form/style-rtl.css +3 -0
  265. package/build-style/post-comments-form/style.css +3 -0
  266. package/build-style/query/editor-rtl.css +1 -1
  267. package/build-style/query/editor.css +1 -1
  268. package/build-style/query-pagination/style-rtl.css +1 -1
  269. package/build-style/query-pagination/style.css +1 -1
  270. package/build-style/style-rtl.css +28 -2
  271. package/build-style/style.css +28 -2
  272. package/build-style/table/editor-rtl.css +1 -0
  273. package/build-style/table/editor.css +1 -0
  274. package/build-style/table/style-rtl.css +5 -0
  275. package/build-style/table/style.css +5 -0
  276. package/build-style/table/theme-rtl.css +1 -3
  277. package/build-style/table/theme.css +1 -3
  278. package/build-style/theme-rtl.css +1 -3
  279. package/build-style/theme.css +1 -3
  280. package/package.json +29 -28
  281. package/src/audio/edit.js +79 -24
  282. package/src/avatar/index.php +1 -1
  283. package/src/block/test/edit.native.js +8 -8
  284. package/src/button/block.json +4 -1
  285. package/src/button/deprecated.js +18 -2
  286. package/src/button/edit.js +12 -10
  287. package/src/button/save.js +12 -2
  288. package/src/button/style.scss +2 -0
  289. package/src/buttons/edit.native.js +1 -1
  290. package/src/buttons/test/edit.native.js +19 -19
  291. package/src/columns/test/edit.native.js +32 -32
  292. package/src/columns/transforms.js +8 -0
  293. package/src/comment-template/block.json +6 -2
  294. package/src/comment-template/style.scss +2 -0
  295. package/src/cover/edit/index.js +3 -1
  296. package/src/cover/edit/inspector-controls.js +11 -13
  297. package/src/cover/test/edit.native.js +26 -26
  298. package/src/embed/deprecated.js +53 -26
  299. package/src/embed/test/index.native.js +43 -43
  300. package/src/file/deprecated.js +130 -2
  301. package/src/file/transforms.js +3 -8
  302. package/src/gallery/deprecated.js +129 -4
  303. package/src/gallery/gallery.js +2 -0
  304. package/src/gallery/index.php +19 -10
  305. package/src/gallery/test/index.native.js +11 -11
  306. package/src/gallery/use-image-sizes.js +3 -2
  307. package/src/gallery/v1/edit.js +21 -25
  308. package/src/group/block.json +3 -0
  309. package/src/group/edit.js +105 -46
  310. package/src/group/editor.scss +48 -0
  311. package/src/group/placeholder.js +187 -0
  312. package/src/group/test/edit.native.js +3 -3
  313. package/src/group/test/placeholder.js +78 -0
  314. package/src/group/variations.js +3 -3
  315. package/src/image/edit.native.js +1 -1
  316. package/src/image/image.js +22 -10
  317. package/src/image/test/edit.native.js +17 -17
  318. package/src/latest-comments/block.json +5 -1
  319. package/src/latest-comments/edit.js +1 -0
  320. package/src/latest-comments/style.scss +3 -0
  321. package/src/latest-posts/block.json +13 -0
  322. package/src/latest-posts/edit.js +2 -2
  323. package/src/latest-posts/style.scss +3 -0
  324. package/src/list/test/edit.native.js +36 -36
  325. package/src/list/utils.js +3 -11
  326. package/src/list-item/edit.js +1 -0
  327. package/src/list-item/hooks/use-outdent-list-item.js +3 -6
  328. package/src/missing/test/edit-integration.native.js +5 -5
  329. package/src/navigation/edit/index.js +186 -161
  330. package/src/navigation/edit/manage-menus-button.js +21 -0
  331. package/src/navigation/edit/navigation-menu-selector.js +20 -5
  332. package/src/navigation/edit/responsive-wrapper.js +2 -10
  333. package/src/navigation/edit/unsaved-inner-blocks.js +5 -22
  334. package/src/navigation/editor.scss +29 -4
  335. package/src/navigation/style.scss +19 -1
  336. package/src/navigation-link/edit.js +13 -4
  337. package/src/navigation-link/editor.scss +8 -0
  338. package/src/navigation-submenu/edit.js +7 -5
  339. package/src/page-list/edit.js +36 -22
  340. package/src/post-author/edit.js +44 -20
  341. package/src/post-comments-count/block.json +4 -0
  342. package/src/post-comments-form/block.json +4 -0
  343. package/src/post-comments-form/style.scss +3 -0
  344. package/src/post-comments-link/block.json +4 -0
  345. package/src/post-content/block.json +3 -0
  346. package/src/post-content/edit.js +8 -4
  347. package/src/pullquote/deprecated.js +7 -7
  348. package/src/query/editor.scss +1 -1
  349. package/src/query-pagination/style.scss +1 -1
  350. package/src/read-more/index.php +9 -2
  351. package/src/search/edit.js +1 -1
  352. package/src/shortcode/test/edit.native.js +5 -5
  353. package/src/site-logo/edit.js +3 -3
  354. package/src/site-tagline/edit.js +25 -18
  355. package/src/site-title/edit/index.js +26 -12
  356. package/src/social-link/block.json +3 -0
  357. package/src/social-link/edit.js +8 -1
  358. package/src/social-link/index.php +11 -7
  359. package/src/social-link/test/index.native.js +10 -10
  360. package/src/social-links/test/edit.native.js +4 -4
  361. package/src/spacer/controls.js +10 -12
  362. package/src/spacer/test/index.native.js +17 -17
  363. package/src/table/deprecated.js +587 -348
  364. package/src/table/editor.scss +1 -0
  365. package/src/table/state.js +1 -1
  366. package/src/table/style.scss +7 -0
  367. package/src/table/theme.scss +1 -3
  368. package/src/template-part/index.php +5 -0
  369. package/src/template-part/variations.js +4 -0
  370. package/src/utils/clean-empty-object.js +5 -6
  371. package/src/video/deprecated.js +57 -0
  372. package/src/video/edit.js +71 -23
  373. package/src/video/index.js +2 -0
  374. package/src/video/tracks-editor.js +12 -28
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/table/deprecated.js"],"names":["classnames","RichText","getColorClassName","useBlockProps","supports","align","oldColors","deprecated","attributes","hasFixedLayout","type","default","backgroundColor","caption","source","selector","head","query","cells","content","tag","scope","attribute","body","foot","anchor","__experimentalSelector","save","isEmpty","length","backgroundClass","classes","hasCaption","Section","rows","Tag","map","rowIndex","cellIndex","cellClasses","undefined","isEligible","style","migrate","color","background"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tgetColorClassName,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\nconst supports = {\n\talign: true,\n};\n\n// As the previous arbitrary colors won't match theme color palettes, the hex\n// value will be mapped to the style.color.background attribute as if it was\n// a custom color selection.\nconst oldColors = {\n\t'subtle-light-gray': '#f3f4f5',\n\t'subtle-pale-green': '#e9fbe5',\n\t'subtle-pale-blue': '#e7f5fe',\n\t'subtle-pale-pink': '#fcf0ef',\n};\n\nconst deprecated = [\n\t// Deprecation migrating table block to use colors block support feature.\n\t{\n\t\tattributes: {\n\t\t\thasFixedLayout: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcaption: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'figcaption',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\thead: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'thead tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'data-align',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tbody: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'tbody tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'data-align',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tfoot: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'tfoot tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'data-align',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\tanchor: true,\n\t\t\talign: true,\n\t\t\t__experimentalSelector: '.wp-block-table > table',\n\t\t},\n\t\tsave: ( { attributes } ) => {\n\t\t\tconst {\n\t\t\t\thasFixedLayout,\n\t\t\t\thead,\n\t\t\t\tbody,\n\t\t\t\tfoot,\n\t\t\t\tbackgroundColor,\n\t\t\t\tcaption,\n\t\t\t} = attributes;\n\t\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\t\tif ( isEmpty ) {\n\t\t\t\treturn null;\n\t\t\t}\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 classes = classnames( backgroundClass, {\n\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t\t'has-background': !! backgroundClass,\n\t\t\t} );\n\n\t\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\t\tconst Section = ( { type, rows } ) => {\n\t\t\t\tif ( ! rows.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst Tag = `t${ type }`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Tag>\n\t\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t{ content, tag, scope, align },\n\t\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tconst cellClasses = classnames( {\n\t\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]:\n\t\t\t\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? scope\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tag>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t\t<table className={ classes === '' ? undefined : classes }>\n\t\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t\t</table>\n\t\t\t\t\t{ hasCaption && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t\tisEligible: ( attributes ) => {\n\t\t\treturn (\n\t\t\t\tattributes.backgroundColor &&\n\t\t\t\tattributes.backgroundColor in oldColors &&\n\t\t\t\t! attributes.style\n\t\t\t);\n\t\t},\n\n\t\t// This version is the first to introduce the style attribute to the\n\t\t// table block. As a result, we'll explicitly override that.\n\t\tmigrate: ( attributes ) => {\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tbackgroundColor: undefined,\n\t\t\t\tstyle: {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tbackground: oldColors[ attributes.backgroundColor ],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\thasFixedLayout: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\thead: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'thead tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tbody: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'tbody tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tfoot: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'tfoot tr',\n\t\t\t\tquery: {\n\t\t\t\t\tcells: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tsource: 'query',\n\t\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tsupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst { hasFixedLayout, head, body, foot, backgroundColor } =\n\t\t\t\tattributes;\n\t\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\t\tif ( isEmpty ) {\n\t\t\t\treturn null;\n\t\t\t}\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 classes = classnames( backgroundClass, {\n\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t\t'has-background': !! backgroundClass,\n\t\t\t} );\n\n\t\t\tconst Section = ( { type, rows } ) => {\n\t\t\t\tif ( ! rows.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst Tag = `t${ type }`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Tag>\n\t\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t\t( { content, tag, scope }, cellIndex ) => (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tag>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<table className={ classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/table/deprecated.js"],"names":["classnames","RichText","getColorClassName","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","oldColors","v3","attributes","hasFixedLayout","type","default","caption","source","selector","head","query","cells","content","tag","scope","attribute","align","body","foot","supports","anchor","color","__experimentalSkipSerialization","gradients","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","__experimentalTextTransform","__experimentalTextDecoration","__experimentalBorder","style","width","__experimentalSelector","save","isEmpty","length","colorProps","borderProps","classes","className","hasCaption","Section","rows","Tag","map","rowIndex","cellIndex","cellClasses","undefined","v2","backgroundColor","backgroundClass","isEligible","migrate","v1"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,QADD,EAECC,iBAFD,EAGCC,aAHD,EAICC,uCAAuC,IAAIC,yBAJ5C,EAKCC,sCAAsC,IAAIC,wBAL3C,QAMO,yBANP,C,CAQA;AACA;AACA;;AACA,MAAMC,SAAS,GAAG;AACjB,uBAAqB,SADJ;AAEjB,uBAAqB,SAFJ;AAGjB,sBAAoB,SAHH;AAIjB,sBAAoB;AAJH,CAAlB,C,CAOA;AACA;;AACA,MAAMC,EAAE,GAAG;AACVC,EAAAA,UAAU,EAAE;AACXC,IAAAA,cAAc,EAAE;AACfC,MAAAA,IAAI,EAAE,SADS;AAEfC,MAAAA,OAAO,EAAE;AAFM,KADL;AAKXC,IAAAA,OAAO,EAAE;AACRF,MAAAA,IAAI,EAAE,QADE;AAERG,MAAAA,MAAM,EAAE,MAFA;AAGRC,MAAAA,QAAQ,EAAE,YAHF;AAIRH,MAAAA,OAAO,EAAE;AAJD,KALE;AAWXI,IAAAA,IAAI,EAAE;AACLL,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF,KAXK;AA8CXE,IAAAA,IAAI,EAAE;AACLb,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF,KA9CK;AAiFXG,IAAAA,IAAI,EAAE;AACLd,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF;AAjFK,GADF;AAsHVI,EAAAA,QAAQ,EAAE;AACTC,IAAAA,MAAM,EAAE,IADC;AAETJ,IAAAA,KAAK,EAAE,IAFE;AAGTK,IAAAA,KAAK,EAAE;AACNC,MAAAA,+BAA+B,EAAE,IAD3B;AAENC,MAAAA,SAAS,EAAE,IAFL;AAGNC,MAAAA,6BAA6B,EAAE;AAC9BC,QAAAA,UAAU,EAAE,IADkB;AAE9BC,QAAAA,IAAI,EAAE;AAFwB;AAHzB,KAHE;AAWTC,IAAAA,OAAO,EAAE;AACRC,MAAAA,MAAM,EAAE,IADA;AAERC,MAAAA,OAAO,EAAE;AAFD,KAXA;AAeTC,IAAAA,UAAU,EAAE;AACXC,MAAAA,QAAQ,EAAE,IADC;AAEXC,MAAAA,UAAU,EAAE,IAFD;AAGXC,MAAAA,wBAAwB,EAAE,IAHf;AAIXC,MAAAA,uBAAuB,EAAE,IAJd;AAKXC,MAAAA,wBAAwB,EAAE,IALf;AAMXC,MAAAA,2BAA2B,EAAE,IANlB;AAOXC,MAAAA,2BAA2B,EAAE,IAPlB;AAQXC,MAAAA,4BAA4B,EAAE,IARnB;AASXd,MAAAA,6BAA6B,EAAE;AAC9BO,QAAAA,QAAQ,EAAE;AADoB;AATpB,KAfH;AA4BTQ,IAAAA,oBAAoB,EAAE;AACrBjB,MAAAA,+BAA+B,EAAE,IADZ;AAErBD,MAAAA,KAAK,EAAE,IAFc;AAGrBmB,MAAAA,KAAK,EAAE,IAHc;AAIrBC,MAAAA,KAAK,EAAE,IAJc;AAKrBjB,MAAAA,6BAA6B,EAAE;AAC9BH,QAAAA,KAAK,EAAE,IADuB;AAE9BmB,QAAAA,KAAK,EAAE,IAFuB;AAG9BC,QAAAA,KAAK,EAAE;AAHuB;AALV,KA5Bb;AAuCTC,IAAAA,sBAAsB,EAAE;AAvCf,GAtHA;;AA+JVC,EAAAA,IAAI,OAAmB;AAAA,QAAjB;AAAEzC,MAAAA;AAAF,KAAiB;AACtB,UAAM;AAAEC,MAAAA,cAAF;AAAkBM,MAAAA,IAAlB;AAAwBQ,MAAAA,IAAxB;AAA8BC,MAAAA,IAA9B;AAAoCZ,MAAAA;AAApC,QAAgDJ,UAAtD;AACA,UAAM0C,OAAO,GAAG,CAAEnC,IAAI,CAACoC,MAAP,IAAiB,CAAE5B,IAAI,CAAC4B,MAAxB,IAAkC,CAAE3B,IAAI,CAAC2B,MAAzD;;AAEA,QAAKD,OAAL,EAAe;AACd,aAAO,IAAP;AACA;;AAED,UAAME,UAAU,GAAG/C,wBAAwB,CAAEG,UAAF,CAA3C;AACA,UAAM6C,WAAW,GAAGlD,yBAAyB,CAAEK,UAAF,CAA7C;AAEA,UAAM8C,OAAO,GAAGxD,UAAU,CACzBsD,UAAU,CAACG,SADc,EAEzBF,WAAW,CAACE,SAFa,EAGzB;AACC,0BAAoB9C;AADrB,KAHyB,CAA1B;AAQA,UAAM+C,UAAU,GAAG,CAAEzD,QAAQ,CAACmD,OAAT,CAAkBtC,OAAlB,CAArB;;AAEA,UAAM6C,OAAO,GAAG,SAAsB;AAAA,UAApB;AAAE/C,QAAAA,IAAF;AAAQgD,QAAAA;AAAR,OAAoB;;AACrC,UAAK,CAAEA,IAAI,CAACP,MAAZ,EAAqB;AACpB,eAAO,IAAP;AACA;;AAED,YAAMQ,GAAG,GAAI,IAAIjD,IAAM,EAAvB;AAEA,aACC,cAAC,GAAD,QACGgD,IAAI,CAACE,GAAL,CAAU,QAAaC,QAAb;AAAA,YAAE;AAAE5C,UAAAA;AAAF,SAAF;AAAA,eACX;AAAI,UAAA,GAAG,EAAG4C;AAAV,WACG5C,KAAK,CAAC2C,GAAN,CACD,QAECE,SAFD,KAGK;AAAA,cAFJ;AAAE5C,YAAAA,OAAF;AAAWC,YAAAA,GAAX;AAAgBC,YAAAA,KAAhB;AAAuBE,YAAAA;AAAvB,WAEI;AACJ,gBAAMyC,WAAW,GAAGjE,UAAU,CAAE;AAC/B,aAAG,kBAAkBwB,KAAO,EAA5B,GAAiCA;AADF,WAAF,CAA9B;AAIA,iBACC,cAAC,QAAD,CAAU,OAAV;AACC,YAAA,SAAS,EACRyC,WAAW,GACRA,WADQ,GAERC,SAJL;AAMC,0BAAa1C,KANd;AAOC,YAAA,OAAO,EAAGH,GAPX;AAQC,YAAA,KAAK,EAAGD,OART;AASC,YAAA,GAAG,EAAG4C,SATP;AAUC,YAAA,KAAK,EACJ3C,GAAG,KAAK,IAAR,GAAeC,KAAf,GAAuB4C;AAXzB,YADD;AAgBA,SAzBA,CADH,CADW;AAAA,OAAV,CADH,CADD;AAmCA,KA1CD;;AA4CA,WACC,wBAAa/D,aAAa,CAACgD,IAAd,EAAb,EACC;AACC,MAAA,SAAS,EAAGK,OAAO,KAAK,EAAZ,GAAiBU,SAAjB,GAA6BV,OAD1C;AAEC,MAAA,KAAK,EAAG,EAAE,GAAGF,UAAU,CAACN,KAAhB;AAAuB,WAAGO,WAAW,CAACP;AAAtC;AAFT,OAIC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAG/B;AAA5B,MAJD,EAKC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGQ;AAA5B,MALD,EAMC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGC;AAA5B,MAND,CADD,EASGgC,UAAU,IACX,cAAC,QAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAG5C;AAA/C,MAVF,CADD;AAeA;;AA/OS,CAAX,C,CAkPA;;AACA,MAAMqD,EAAE,GAAG;AACVzD,EAAAA,UAAU,EAAE;AACXC,IAAAA,cAAc,EAAE;AACfC,MAAAA,IAAI,EAAE,SADS;AAEfC,MAAAA,OAAO,EAAE;AAFM,KADL;AAKXuD,IAAAA,eAAe,EAAE;AAChBxD,MAAAA,IAAI,EAAE;AADU,KALN;AAQXE,IAAAA,OAAO,EAAE;AACRF,MAAAA,IAAI,EAAE,QADE;AAERG,MAAAA,MAAM,EAAE,MAFA;AAGRC,MAAAA,QAAQ,EAAE,YAHF;AAIRH,MAAAA,OAAO,EAAE;AAJD,KARE;AAcXI,IAAAA,IAAI,EAAE;AACLL,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF,KAdK;AAiDXE,IAAAA,IAAI,EAAE;AACLb,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF,KAjDK;AAoFXG,IAAAA,IAAI,EAAE;AACLd,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL,aAVD;AAeNC,YAAAA,KAAK,EAAE;AACNZ,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAfD;AALD;AADD;AALF;AApFK,GADF;AAyHVI,EAAAA,QAAQ,EAAE;AACTC,IAAAA,MAAM,EAAE,IADC;AAETJ,IAAAA,KAAK,EAAE,IAFE;AAGT0B,IAAAA,sBAAsB,EAAE;AAHf,GAzHA;AA8HVC,EAAAA,IAAI,EAAE,SAAsB;AAAA,QAApB;AAAEzC,MAAAA;AAAF,KAAoB;AAC3B,UAAM;AAAEC,MAAAA,cAAF;AAAkBM,MAAAA,IAAlB;AAAwBQ,MAAAA,IAAxB;AAA8BC,MAAAA,IAA9B;AAAoC0C,MAAAA,eAApC;AAAqDtD,MAAAA;AAArD,QACLJ,UADD;AAEA,UAAM0C,OAAO,GAAG,CAAEnC,IAAI,CAACoC,MAAP,IAAiB,CAAE5B,IAAI,CAAC4B,MAAxB,IAAkC,CAAE3B,IAAI,CAAC2B,MAAzD;;AAEA,QAAKD,OAAL,EAAe;AACd,aAAO,IAAP;AACA;;AAED,UAAMiB,eAAe,GAAGnE,iBAAiB,CACxC,kBADwC,EAExCkE,eAFwC,CAAzC;AAKA,UAAMZ,OAAO,GAAGxD,UAAU,CAAEqE,eAAF,EAAmB;AAC5C,0BAAoB1D,cADwB;AAE5C,wBAAkB,CAAC,CAAE0D;AAFuB,KAAnB,CAA1B;AAKA,UAAMX,UAAU,GAAG,CAAEzD,QAAQ,CAACmD,OAAT,CAAkBtC,OAAlB,CAArB;;AAEA,UAAM6C,OAAO,GAAG,SAAsB;AAAA,UAApB;AAAE/C,QAAAA,IAAF;AAAQgD,QAAAA;AAAR,OAAoB;;AACrC,UAAK,CAAEA,IAAI,CAACP,MAAZ,EAAqB;AACpB,eAAO,IAAP;AACA;;AAED,YAAMQ,GAAG,GAAI,IAAIjD,IAAM,EAAvB;AAEA,aACC,cAAC,GAAD,QACGgD,IAAI,CAACE,GAAL,CAAU,QAAaC,QAAb;AAAA,YAAE;AAAE5C,UAAAA;AAAF,SAAF;AAAA,eACX;AAAI,UAAA,GAAG,EAAG4C;AAAV,WACG5C,KAAK,CAAC2C,GAAN,CACD,QAECE,SAFD,KAGK;AAAA,cAFJ;AAAE5C,YAAAA,OAAF;AAAWC,YAAAA,GAAX;AAAgBC,YAAAA,KAAhB;AAAuBE,YAAAA;AAAvB,WAEI;AACJ,gBAAMyC,WAAW,GAAGjE,UAAU,CAAE;AAC/B,aAAG,kBAAkBwB,KAAO,EAA5B,GAAiCA;AADF,WAAF,CAA9B;AAIA,iBACC,cAAC,QAAD,CAAU,OAAV;AACC,YAAA,SAAS,EACRyC,WAAW,GACRA,WADQ,GAERC,SAJL;AAMC,0BAAa1C,KANd;AAOC,YAAA,OAAO,EAAGH,GAPX;AAQC,YAAA,KAAK,EAAGD,OART;AASC,YAAA,GAAG,EAAG4C,SATP;AAUC,YAAA,KAAK,EACJ3C,GAAG,KAAK,IAAR,GAAeC,KAAf,GAAuB4C;AAXzB,YADD;AAgBA,SAzBA,CADH,CADW;AAAA,OAAV,CADH,CADD;AAmCA,KA1CD;;AA4CA,WACC,wBAAa/D,aAAa,CAACgD,IAAd,EAAb,EACC;AAAO,MAAA,SAAS,EAAGK,OAAO,KAAK,EAAZ,GAAiBU,SAAjB,GAA6BV;AAAhD,OACC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGvC;AAA5B,MADD,EAEC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGQ;AAA5B,MAFD,EAGC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGC;AAA5B,MAHD,CADD,EAMGgC,UAAU,IACX,cAAC,QAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAG5C;AAA/C,MAPF,CADD;AAYA,GA3MS;AA4MVwD,EAAAA,UAAU,EAAI5D,UAAF,IAAkB;AAC7B,WACCA,UAAU,CAAC0D,eAAX,IACA1D,UAAU,CAAC0D,eAAX,IAA8B5D,SAD9B,IAEA,CAAEE,UAAU,CAACsC,KAHd;AAKA,GAlNS;AAoNV;AACA;AACAuB,EAAAA,OAAO,EAAI7D,UAAF,IAAkB;AAC1B,WAAO,EACN,GAAGA,UADG;AAEN0D,MAAAA,eAAe,EAAEF,SAFX;AAGNlB,MAAAA,KAAK,EAAE;AACNnB,QAAAA,KAAK,EAAE;AACNI,UAAAA,UAAU,EAAEzB,SAAS,CAAEE,UAAU,CAAC0D,eAAb;AADf;AADD;AAHD,KAAP;AASA;AAhOS,CAAX;AAmOA,MAAMI,EAAE,GAAG;AACV9D,EAAAA,UAAU,EAAE;AACXC,IAAAA,cAAc,EAAE;AACfC,MAAAA,IAAI,EAAE,SADS;AAEfC,MAAAA,OAAO,EAAE;AAFM,KADL;AAKXuD,IAAAA,eAAe,EAAE;AAChBxD,MAAAA,IAAI,EAAE;AADU,KALN;AAQXK,IAAAA,IAAI,EAAE;AACLL,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAVD;AALD;AADD;AALF,KARK;AAsCXE,IAAAA,IAAI,EAAE;AACLb,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAVD;AALD;AADD;AALF,KAtCK;AAoEXG,IAAAA,IAAI,EAAE;AACLd,MAAAA,IAAI,EAAE,OADD;AAELC,MAAAA,OAAO,EAAE,EAFJ;AAGLE,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLE,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNP,UAAAA,IAAI,EAAE,OADA;AAENC,UAAAA,OAAO,EAAE,EAFH;AAGNE,UAAAA,MAAM,EAAE,OAHF;AAINC,UAAAA,QAAQ,EAAE,OAJJ;AAKNE,UAAAA,KAAK,EAAE;AACNE,YAAAA,OAAO,EAAE;AACRR,cAAAA,IAAI,EAAE,QADE;AAERG,cAAAA,MAAM,EAAE;AAFA,aADH;AAKNM,YAAAA,GAAG,EAAE;AACJT,cAAAA,IAAI,EAAE,QADF;AAEJC,cAAAA,OAAO,EAAE,IAFL;AAGJE,cAAAA,MAAM,EAAE;AAHJ,aALC;AAUNO,YAAAA,KAAK,EAAE;AACNV,cAAAA,IAAI,EAAE,QADA;AAENG,cAAAA,MAAM,EAAE,WAFF;AAGNQ,cAAAA,SAAS,EAAE;AAHL;AAVD;AALD;AADD;AALF;AApEK,GADF;AAoGVI,EAAAA,QAAQ,EAAE;AACTH,IAAAA,KAAK,EAAE;AADE,GApGA;;AAuGV2B,EAAAA,IAAI,QAAmB;AAAA,QAAjB;AAAEzC,MAAAA;AAAF,KAAiB;AACtB,UAAM;AAAEC,MAAAA,cAAF;AAAkBM,MAAAA,IAAlB;AAAwBQ,MAAAA,IAAxB;AAA8BC,MAAAA,IAA9B;AAAoC0C,MAAAA;AAApC,QACL1D,UADD;AAEA,UAAM0C,OAAO,GAAG,CAAEnC,IAAI,CAACoC,MAAP,IAAiB,CAAE5B,IAAI,CAAC4B,MAAxB,IAAkC,CAAE3B,IAAI,CAAC2B,MAAzD;;AAEA,QAAKD,OAAL,EAAe;AACd,aAAO,IAAP;AACA;;AAED,UAAMiB,eAAe,GAAGnE,iBAAiB,CACxC,kBADwC,EAExCkE,eAFwC,CAAzC;AAKA,UAAMZ,OAAO,GAAGxD,UAAU,CAAEqE,eAAF,EAAmB;AAC5C,0BAAoB1D,cADwB;AAE5C,wBAAkB,CAAC,CAAE0D;AAFuB,KAAnB,CAA1B;;AAKA,UAAMV,OAAO,GAAG,UAAsB;AAAA,UAApB;AAAE/C,QAAAA,IAAF;AAAQgD,QAAAA;AAAR,OAAoB;;AACrC,UAAK,CAAEA,IAAI,CAACP,MAAZ,EAAqB;AACpB,eAAO,IAAP;AACA;;AAED,YAAMQ,GAAG,GAAI,IAAIjD,IAAM,EAAvB;AAEA,aACC,cAAC,GAAD,QACGgD,IAAI,CAACE,GAAL,CAAU,SAAaC,QAAb;AAAA,YAAE;AAAE5C,UAAAA;AAAF,SAAF;AAAA,eACX;AAAI,UAAA,GAAG,EAAG4C;AAAV,WACG5C,KAAK,CAAC2C,GAAN,CACD,SAA2BE,SAA3B;AAAA,cAAE;AAAE5C,YAAAA,OAAF;AAAWC,YAAAA,GAAX;AAAgBC,YAAAA;AAAhB,WAAF;AAAA,iBACC,cAAC,QAAD,CAAU,OAAV;AACC,YAAA,OAAO,EAAGD,GADX;AAEC,YAAA,KAAK,EAAGD,OAFT;AAGC,YAAA,GAAG,EAAG4C,SAHP;AAIC,YAAA,KAAK,EACJ3C,GAAG,KAAK,IAAR,GAAeC,KAAf,GAAuB4C;AALzB,YADD;AAAA,SADC,CADH,CADW;AAAA,OAAV,CADH,CADD;AAoBA,KA3BD;;AA6BA,WACC;AAAO,MAAA,SAAS,EAAGV;AAAnB,OACC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGvC;AAA5B,MADD,EAEC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGQ;AAA5B,MAFD,EAGC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAC,MAAd;AAAqB,MAAA,IAAI,EAAGC;AAA5B,MAHD,CADD;AAOA;;AA9JS,CAAX;AAiKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,CAAEjB,EAAF,EAAM0D,EAAN,EAAUK,EAAV,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tgetColorClassName,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\n// As the previous arbitrary colors won't match theme color palettes, the hex\n// value will be mapped to the style.color.background attribute as if it was\n// a custom color selection.\nconst oldColors = {\n\t'subtle-light-gray': '#f3f4f5',\n\t'subtle-pale-green': '#e9fbe5',\n\t'subtle-pale-blue': '#e7f5fe',\n\t'subtle-pale-pink': '#fcf0ef',\n};\n\n// In #41140 support was added to global styles for caption elements which\n// added a `wp-element-caption` classname to the embed figcaption element.\nconst v3 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\tdefault: '',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tcolor: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: '.wp-block-table > table',\n\t},\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot, caption } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames(\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className,\n\t\t\t{\n\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t}\n\t\t);\n\n\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{ content, tag, scope, align },\n\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst cellClasses = classnames( {\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classes === '' ? undefined : classes }\n\t\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t\t{ hasCaption && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n// Deprecation migrating table block to use colors block support feature.\nconst v2 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\tdefault: '',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\n\t\t\t\t\t\t},\n\t\t\t\t\t\talign: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'data-align',\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},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\t__experimentalSelector: '.wp-block-table > table',\n\t},\n\tsave: ( { attributes } ) => {\n\t\tconst { hasFixedLayout, head, body, foot, backgroundColor, caption } =\n\t\t\tattributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tconst classes = classnames( backgroundClass, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t'has-background': !! backgroundClass,\n\t\t} );\n\n\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{ content, tag, scope, align },\n\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst cellClasses = classnames( {\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<table className={ classes === '' ? undefined : classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t\t{ hasCaption && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n\tisEligible: ( attributes ) => {\n\t\treturn (\n\t\t\tattributes.backgroundColor &&\n\t\t\tattributes.backgroundColor in oldColors &&\n\t\t\t! attributes.style\n\t\t);\n\t},\n\n\t// This version is the first to introduce the style attribute to the\n\t// table block. As a result, we'll explicitly override that.\n\tmigrate: ( attributes ) => {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tbackgroundColor: undefined,\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\tbackground: oldColors[ attributes.backgroundColor ],\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\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\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\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\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscope: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\t\tattribute: 'scope',\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},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot, backgroundColor } =\n\t\t\tattributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tconst classes = classnames( backgroundClass, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t'has-background': !! backgroundClass,\n\t\t} );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t( { content, tag, scope }, cellIndex ) => (\n\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<table className={ classes }>\n\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t</table>\n\t\t);\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v3, v2, v1 ];\n"]}
@@ -264,7 +264,7 @@ export function deleteColumn(state, _ref5) {
264
264
  });
265
265
  }
266
266
  /**
267
- * Toggles the existance of a section.
267
+ * Toggles the existence of a section.
268
268
  *
269
269
  * @param {Object} state Current table state.
270
270
  * @param {string} sectionName Name of the section to toggle.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/table/state.js"],"names":["get","mapValues","pick","INHERITED_COLUMN_ATTRIBUTES","createTable","rowCount","columnCount","body","Array","from","length","map","cells","content","tag","getFirstRow","state","isEmptyTableSection","head","foot","getCellAttribute","cellLocation","attributeName","sectionName","rowIndex","columnIndex","updateSelectedCell","selection","updateCell","tableSections","selectionSectionName","selectionRowIndex","section","row","cellAttributes","isCellSelected","type","insertRow","firstRow","cellCount","undefined","slice","_","index","firstCellInColumn","inheritedAttributes","deleteRow","filter","insertColumn","isEmptyRow","deleteColumn","cell","toggleSection","every"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, mapValues, pick } from 'lodash';\n\nconst INHERITED_COLUMN_ATTRIBUTES = [ 'align' ];\n\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( { rowCount, columnCount } ) {\n\treturn {\n\t\tbody: Array.from( { length: rowCount } ).map( () => ( {\n\t\t\tcells: Array.from( { length: columnCount } ).map( () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object} The first table row.\n */\nexport function getFirstRow( state ) {\n\tif ( ! isEmptyTableSection( state.head ) ) {\n\t\treturn state.head[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.body ) ) {\n\t\treturn state.body[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.foot ) ) {\n\t\treturn state.foot[ 0 ];\n\t}\n}\n\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state Current table state.\n * @param {Object} cellLocation The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\nexport function getCellAttribute( state, cellLocation, attributeName ) {\n\tconst { sectionName, rowIndex, columnIndex } = cellLocation;\n\treturn get( state, [\n\t\tsectionName,\n\t\trowIndex,\n\t\t'cells',\n\t\tcolumnIndex,\n\t\tattributeName,\n\t] );\n}\n\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object} state The block attributes.\n * @param {Object} selection The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\nexport function updateSelectedCell( state, selection, updateCell ) {\n\tif ( ! selection ) {\n\t\treturn state;\n\t}\n\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\tconst { sectionName: selectionSectionName, rowIndex: selectionRowIndex } =\n\t\tselection;\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\tif ( selectionSectionName && selectionSectionName !== sectionName ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row, rowIndex ) => {\n\t\t\tif ( selectionRowIndex && selectionRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cellAttributes, columnIndex ) => {\n\t\t\t\t\tconst cellLocation = {\n\t\t\t\t\t\tsectionName,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( ! isCellSelected( cellLocation, selection ) ) {\n\t\t\t\t\t\treturn cellAttributes;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn updateCell( cellAttributes );\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\nexport function isCellSelected( cellLocation, selection ) {\n\tif ( ! cellLocation || ! selection ) {\n\t\treturn false;\n\t}\n\n\tswitch ( selection.type ) {\n\t\tcase 'column':\n\t\t\treturn (\n\t\t\t\tselection.type === 'column' &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex\n\t\t\t);\n\t\tcase 'cell':\n\t\t\treturn (\n\t\t\t\tselection.type === 'cell' &&\n\t\t\t\tcellLocation.sectionName === selection.sectionName &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex &&\n\t\t\t\tcellLocation.rowIndex === selection.rowIndex\n\t\t\t);\n\t}\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, { sectionName, rowIndex, columnCount } ) {\n\tconst firstRow = getFirstRow( state );\n\tconst cellCount =\n\t\tcolumnCount === undefined\n\t\t\t? get( firstRow, [ 'cells', 'length' ] )\n\t\t\t: columnCount;\n\n\t// Bail early if the function cannot determine how many cells to add.\n\tif ( ! cellCount ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t[ sectionName ]: [\n\t\t\t...state[ sectionName ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: Array.from( { length: cellCount } ).map(\n\t\t\t\t\t( _, index ) => {\n\t\t\t\t\t\tconst firstCellInColumn = get(\n\t\t\t\t\t\t\tfirstRow,\n\t\t\t\t\t\t\t[ 'cells', index ],\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst inheritedAttributes = pick(\n\t\t\t\t\t\t\tfirstCellInColumn,\n\t\t\t\t\t\t\tINHERITED_COLUMN_ATTRIBUTES\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...inheritedAttributes,\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t},\n\t\t\t...state[ sectionName ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, { sectionName, rowIndex } ) {\n\treturn {\n\t\t[ sectionName ]: state[ sectionName ].filter(\n\t\t\t( row, index ) => index !== rowIndex\n\t\t),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, { columnIndex } ) {\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row ) => {\n\t\t\t// Bail early if the row is empty or it's an attempt to insert past\n\t\t\t// the last possible index of the array.\n\t\t\tif ( isEmptyRow( row ) || row.cells.length < columnIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: [\n\t\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t},\n\t\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t\t],\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, { columnIndex } ) {\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\n\treturn mapValues( tableSections, ( section ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section\n\t\t\t.map( ( row ) => ( {\n\t\t\t\tcells:\n\t\t\t\t\trow.cells.length >= columnIndex\n\t\t\t\t\t\t? row.cells.filter(\n\t\t\t\t\t\t\t\t( cell, index ) => index !== columnIndex\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: row.cells,\n\t\t\t} ) )\n\t\t\t.filter( ( row ) => row.cells.length );\n\t} );\n}\n\n/**\n * Toggles the existance of a section.\n *\n * @param {Object} state Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\nexport function toggleSection( state, sectionName ) {\n\t// Section exists, replace it with an empty row to remove it.\n\tif ( ! isEmptyTableSection( state[ sectionName ] ) ) {\n\t\treturn { [ sectionName ]: [] };\n\t}\n\n\t// Get the length of the first row of the body to use when creating the header.\n\tconst columnCount = get( state, [ 'body', 0, 'cells', 'length' ], 1 );\n\n\t// Section doesn't exist, insert an empty row to create the section.\n\treturn insertRow( state, { sectionName, rowIndex: 0, columnCount } );\n}\n\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyTableSection( section ) {\n\treturn ! section || ! section.length || section.every( isEmptyRow );\n}\n\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyRow( row ) {\n\treturn ! ( row.cells && row.cells.length );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/table/state.js"],"names":["get","mapValues","pick","INHERITED_COLUMN_ATTRIBUTES","createTable","rowCount","columnCount","body","Array","from","length","map","cells","content","tag","getFirstRow","state","isEmptyTableSection","head","foot","getCellAttribute","cellLocation","attributeName","sectionName","rowIndex","columnIndex","updateSelectedCell","selection","updateCell","tableSections","selectionSectionName","selectionRowIndex","section","row","cellAttributes","isCellSelected","type","insertRow","firstRow","cellCount","undefined","slice","_","index","firstCellInColumn","inheritedAttributes","deleteRow","filter","insertColumn","isEmptyRow","deleteColumn","cell","toggleSection","every"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, mapValues, pick } from 'lodash';\n\nconst INHERITED_COLUMN_ATTRIBUTES = [ 'align' ];\n\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( { rowCount, columnCount } ) {\n\treturn {\n\t\tbody: Array.from( { length: rowCount } ).map( () => ( {\n\t\t\tcells: Array.from( { length: columnCount } ).map( () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object} The first table row.\n */\nexport function getFirstRow( state ) {\n\tif ( ! isEmptyTableSection( state.head ) ) {\n\t\treturn state.head[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.body ) ) {\n\t\treturn state.body[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.foot ) ) {\n\t\treturn state.foot[ 0 ];\n\t}\n}\n\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state Current table state.\n * @param {Object} cellLocation The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\nexport function getCellAttribute( state, cellLocation, attributeName ) {\n\tconst { sectionName, rowIndex, columnIndex } = cellLocation;\n\treturn get( state, [\n\t\tsectionName,\n\t\trowIndex,\n\t\t'cells',\n\t\tcolumnIndex,\n\t\tattributeName,\n\t] );\n}\n\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object} state The block attributes.\n * @param {Object} selection The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\nexport function updateSelectedCell( state, selection, updateCell ) {\n\tif ( ! selection ) {\n\t\treturn state;\n\t}\n\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\tconst { sectionName: selectionSectionName, rowIndex: selectionRowIndex } =\n\t\tselection;\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\tif ( selectionSectionName && selectionSectionName !== sectionName ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row, rowIndex ) => {\n\t\t\tif ( selectionRowIndex && selectionRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cellAttributes, columnIndex ) => {\n\t\t\t\t\tconst cellLocation = {\n\t\t\t\t\t\tsectionName,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( ! isCellSelected( cellLocation, selection ) ) {\n\t\t\t\t\t\treturn cellAttributes;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn updateCell( cellAttributes );\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\nexport function isCellSelected( cellLocation, selection ) {\n\tif ( ! cellLocation || ! selection ) {\n\t\treturn false;\n\t}\n\n\tswitch ( selection.type ) {\n\t\tcase 'column':\n\t\t\treturn (\n\t\t\t\tselection.type === 'column' &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex\n\t\t\t);\n\t\tcase 'cell':\n\t\t\treturn (\n\t\t\t\tselection.type === 'cell' &&\n\t\t\t\tcellLocation.sectionName === selection.sectionName &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex &&\n\t\t\t\tcellLocation.rowIndex === selection.rowIndex\n\t\t\t);\n\t}\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, { sectionName, rowIndex, columnCount } ) {\n\tconst firstRow = getFirstRow( state );\n\tconst cellCount =\n\t\tcolumnCount === undefined\n\t\t\t? get( firstRow, [ 'cells', 'length' ] )\n\t\t\t: columnCount;\n\n\t// Bail early if the function cannot determine how many cells to add.\n\tif ( ! cellCount ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t[ sectionName ]: [\n\t\t\t...state[ sectionName ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: Array.from( { length: cellCount } ).map(\n\t\t\t\t\t( _, index ) => {\n\t\t\t\t\t\tconst firstCellInColumn = get(\n\t\t\t\t\t\t\tfirstRow,\n\t\t\t\t\t\t\t[ 'cells', index ],\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst inheritedAttributes = pick(\n\t\t\t\t\t\t\tfirstCellInColumn,\n\t\t\t\t\t\t\tINHERITED_COLUMN_ATTRIBUTES\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...inheritedAttributes,\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t},\n\t\t\t...state[ sectionName ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, { sectionName, rowIndex } ) {\n\treturn {\n\t\t[ sectionName ]: state[ sectionName ].filter(\n\t\t\t( row, index ) => index !== rowIndex\n\t\t),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, { columnIndex } ) {\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\n\treturn mapValues( tableSections, ( section, sectionName ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section.map( ( row ) => {\n\t\t\t// Bail early if the row is empty or it's an attempt to insert past\n\t\t\t// the last possible index of the array.\n\t\t\tif ( isEmptyRow( row ) || row.cells.length < columnIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: [\n\t\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t},\n\t\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t\t],\n\t\t\t};\n\t\t} );\n\t} );\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, { columnIndex } ) {\n\tconst tableSections = pick( state, [ 'head', 'body', 'foot' ] );\n\n\treturn mapValues( tableSections, ( section ) => {\n\t\t// Bail early if the table section is empty.\n\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\treturn section;\n\t\t}\n\n\t\treturn section\n\t\t\t.map( ( row ) => ( {\n\t\t\t\tcells:\n\t\t\t\t\trow.cells.length >= columnIndex\n\t\t\t\t\t\t? row.cells.filter(\n\t\t\t\t\t\t\t\t( cell, index ) => index !== columnIndex\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: row.cells,\n\t\t\t} ) )\n\t\t\t.filter( ( row ) => row.cells.length );\n\t} );\n}\n\n/**\n * Toggles the existence of a section.\n *\n * @param {Object} state Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\nexport function toggleSection( state, sectionName ) {\n\t// Section exists, replace it with an empty row to remove it.\n\tif ( ! isEmptyTableSection( state[ sectionName ] ) ) {\n\t\treturn { [ sectionName ]: [] };\n\t}\n\n\t// Get the length of the first row of the body to use when creating the header.\n\tconst columnCount = get( state, [ 'body', 0, 'cells', 'length' ], 1 );\n\n\t// Section doesn't exist, insert an empty row to create the section.\n\treturn insertRow( state, { sectionName, rowIndex: 0, columnCount } );\n}\n\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyTableSection( section ) {\n\treturn ! section || ! section.length || section.every( isEmptyRow );\n}\n\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyRow( row ) {\n\treturn ! ( row.cells && row.cells.length );\n}\n"]}
@@ -36,6 +36,11 @@ export function enhanceTemplatePartVariations(settings, name) {
36
36
 
37
37
  if (!slug) return false;
38
38
  const entity = select(coreDataStore).getEntityRecord('postType', 'wp_template_part', `${theme}//${slug}`);
39
+
40
+ if (entity !== null && entity !== void 0 && entity.slug) {
41
+ return entity.slug === variationAttributes.slug;
42
+ }
43
+
39
44
  return (entity === null || entity === void 0 ? void 0 : entity.area) === variationAttributes.area;
40
45
  };
41
46
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/variations.js"],"names":["store","coreDataStore","select","header","headerIcon","footer","footerIcon","sidebar","sidebarIcon","symbolFilled","symbolFilledIcon","getTemplatePartIcon","iconName","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","entity","getEntityRecord","map","variation","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AACA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SACCC,MAAM,IAAIC,UADX,EAECC,MAAM,IAAIC,UAFX,EAGCC,OAAO,IAAIC,WAHZ,EAICC,YAAY,IAAIC,gBAJjB,QAKO,kBALP;;AAOA,SAASC,mBAAT,CAA8BC,QAA9B,EAAyC;AACxC,MAAK,aAAaA,QAAlB,EAA6B;AAC5B,WAAOR,UAAP;AACA,GAFD,MAEO,IAAK,aAAaQ,QAAlB,EAA6B;AACnC,WAAON,UAAP;AACA,GAFM,MAEA,IAAK,cAAcM,QAAnB,EAA8B;AACpC,WAAOJ,WAAP;AACA;;AACD,SAAOE,gBAAP;AACA;;AAED,OAAO,SAASG,6BAAT,CAAwCC,QAAxC,EAAkDC,IAAlD,EAAyD;AAC/D,MAAKA,IAAI,KAAK,oBAAd,EAAqC;AACpC,WAAOD,QAAP;AACA;;AAED,MAAKA,QAAQ,CAACE,UAAd,EAA2B;AAC1B,UAAMC,QAAQ,GAAG,CAAEC,eAAF,EAAmBC,mBAAnB,KAA4C;AAC5D,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,KAAR;AAAeC,QAAAA;AAAf,UAAwBJ,eAA9B,CAD4D,CAE5D;AACA;;AACA,UAAKE,IAAL,EAAY,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAApC,CAJgD,CAK5D;AACA;;AACA,UAAK,CAAEE,IAAP,EAAc,OAAO,KAAP;AACd,YAAMC,MAAM,GAAGrB,MAAM,CAAED,aAAF,CAAN,CAAwBuB,eAAxB,CACd,UADc,EAEd,kBAFc,EAGb,GAAGH,KAAO,KAAKC,IAAM,EAHR,CAAf;AAKA,aAAO,CAAAC,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEH,IAAR,MAAiBD,mBAAmB,CAACC,IAA5C;AACA,KAdD;;AAgBA,UAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAT,CAAoBS,GAApB,CAA2BC,SAAF,IAAiB;AAC5D,aAAO,EACN,GAAGA,SADG;AAEN,YAAK,CAAEA,SAAS,CAACT,QAAZ,IAAwB;AAAEA,UAAAA;AAAF,SAA7B,CAFM;AAGN,YAAK,OAAOS,SAAS,CAACC,IAAjB,KAA0B,QAA1B,IAAsC;AAC1CA,UAAAA,IAAI,EAAEhB,mBAAmB,CAAEe,SAAS,CAACC,IAAZ;AADiB,SAA3C;AAHM,OAAP;AAOA,KARkB,CAAnB;AAUA,WAAO,EACN,GAAGb,QADG;AAENE,MAAAA;AAFM,KAAP;AAIA;;AACD,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) return area === variationAttributes.area;\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) return false;\n\t\t\tconst entity = select( coreDataStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme }//${ slug }`\n\t\t\t);\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/variations.js"],"names":["store","coreDataStore","select","header","headerIcon","footer","footerIcon","sidebar","sidebarIcon","symbolFilled","symbolFilledIcon","getTemplatePartIcon","iconName","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","entity","getEntityRecord","map","variation","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AACA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SACCC,MAAM,IAAIC,UADX,EAECC,MAAM,IAAIC,UAFX,EAGCC,OAAO,IAAIC,WAHZ,EAICC,YAAY,IAAIC,gBAJjB,QAKO,kBALP;;AAOA,SAASC,mBAAT,CAA8BC,QAA9B,EAAyC;AACxC,MAAK,aAAaA,QAAlB,EAA6B;AAC5B,WAAOR,UAAP;AACA,GAFD,MAEO,IAAK,aAAaQ,QAAlB,EAA6B;AACnC,WAAON,UAAP;AACA,GAFM,MAEA,IAAK,cAAcM,QAAnB,EAA8B;AACpC,WAAOJ,WAAP;AACA;;AACD,SAAOE,gBAAP;AACA;;AAED,OAAO,SAASG,6BAAT,CAAwCC,QAAxC,EAAkDC,IAAlD,EAAyD;AAC/D,MAAKA,IAAI,KAAK,oBAAd,EAAqC;AACpC,WAAOD,QAAP;AACA;;AAED,MAAKA,QAAQ,CAACE,UAAd,EAA2B;AAC1B,UAAMC,QAAQ,GAAG,CAAEC,eAAF,EAAmBC,mBAAnB,KAA4C;AAC5D,YAAM;AAAEC,QAAAA,IAAF;AAAQC,QAAAA,KAAR;AAAeC,QAAAA;AAAf,UAAwBJ,eAA9B,CAD4D,CAE5D;AACA;;AACA,UAAKE,IAAL,EAAY,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAApC,CAJgD,CAK5D;AACA;;AACA,UAAK,CAAEE,IAAP,EAAc,OAAO,KAAP;AACd,YAAMC,MAAM,GAAGrB,MAAM,CAAED,aAAF,CAAN,CAAwBuB,eAAxB,CACd,UADc,EAEd,kBAFc,EAGb,GAAGH,KAAO,KAAKC,IAAM,EAHR,CAAf;;AAMA,UAAKC,MAAL,aAAKA,MAAL,eAAKA,MAAM,CAAED,IAAb,EAAoB;AACnB,eAAOC,MAAM,CAACD,IAAP,KAAgBH,mBAAmB,CAACG,IAA3C;AACA;;AACD,aAAO,CAAAC,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEH,IAAR,MAAiBD,mBAAmB,CAACC,IAA5C;AACA,KAlBD;;AAoBA,UAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAT,CAAoBS,GAApB,CAA2BC,SAAF,IAAiB;AAC5D,aAAO,EACN,GAAGA,SADG;AAEN,YAAK,CAAEA,SAAS,CAACT,QAAZ,IAAwB;AAAEA,UAAAA;AAAF,SAA7B,CAFM;AAGN,YAAK,OAAOS,SAAS,CAACC,IAAjB,KAA0B,QAA1B,IAAsC;AAC1CA,UAAAA,IAAI,EAAEhB,mBAAmB,CAAEe,SAAS,CAACC,IAAZ;AADiB,SAA3C;AAHM,OAAP;AAOA,KARkB,CAAnB;AAUA,WAAO,EACN,GAAGb,QADG;AAENE,MAAAA;AAFM,KAAP;AAIA;;AACD,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) return area === variationAttributes.area;\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) return false;\n\t\t\tconst entity = select( coreDataStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"]}
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { isEmpty, mapValues, pickBy } from 'lodash';
5
-
6
- const identity = x => x;
4
+ import { isEmpty, mapValues } from 'lodash';
7
5
  /**
8
6
  * Removed empty nodes from nested objects.
9
7
  *
@@ -11,13 +9,15 @@ const identity = x => x;
11
9
  * @return {Object} Object cleaned from empty nodes.
12
10
  */
13
11
 
14
-
15
12
  const cleanEmptyObject = object => {
16
13
  if (object === null || typeof object !== 'object' || Array.isArray(object)) {
17
14
  return object;
18
15
  }
19
16
 
20
- const cleanedNestedObjects = pickBy(mapValues(object, cleanEmptyObject), identity);
17
+ const cleanedNestedObjects = Object.fromEntries(Object.entries(mapValues(object, cleanEmptyObject)).filter(_ref => {
18
+ let [, value] = _ref;
19
+ return Boolean(value);
20
+ }));
21
21
  return isEmpty(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
22
22
  };
23
23
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/utils/clean-empty-object.js"],"names":["isEmpty","mapValues","pickBy","identity","x","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,SAAlB,EAA6BC,MAA7B,QAA2C,QAA3C;;AAEA,MAAMC,QAAQ,GAAKC,CAAF,IAASA,CAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAgB,GAAKC,MAAF,IAAc;AACtC,MACCA,MAAM,KAAK,IAAX,IACA,OAAOA,MAAP,KAAkB,QADlB,IAEAC,KAAK,CAACC,OAAN,CAAeF,MAAf,CAHD,EAIE;AACD,WAAOA,MAAP;AACA;;AACD,QAAMG,oBAAoB,GAAGP,MAAM,CAClCD,SAAS,CAAEK,MAAF,EAAUD,gBAAV,CADyB,EAElCF,QAFkC,CAAnC;AAIA,SAAOH,OAAO,CAAES,oBAAF,CAAP,GAAkCC,SAAlC,GAA8CD,oBAArD;AACA,CAbD;;AAeA,eAAeJ,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, mapValues, pickBy } from 'lodash';\n\nconst identity = ( x ) => x;\n\n/**\n * Removed empty nodes from nested objects.\n *\n * @param {Object} object\n * @return {Object} Object cleaned from empty nodes.\n */\nconst cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nexport default cleanEmptyObject;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/utils/clean-empty-object.js"],"names":["isEmpty","mapValues","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","Object","fromEntries","entries","filter","value","Boolean","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,SAAlB,QAAmC,QAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAKC,MAAF,IAAc;AACtC,MACCA,MAAM,KAAK,IAAX,IACA,OAAOA,MAAP,KAAkB,QADlB,IAEAC,KAAK,CAACC,OAAN,CAAeF,MAAf,CAHD,EAIE;AACD,WAAOA,MAAP;AACA;;AACD,QAAMG,oBAAoB,GAAGC,MAAM,CAACC,WAAP,CAC5BD,MAAM,CAACE,OAAP,CAAgBR,SAAS,CAAEE,MAAF,EAAUD,gBAAV,CAAzB,EAAwDQ,MAAxD,CACC;AAAA,QAAE,GAAIC,KAAJ,CAAF;AAAA,WAAmBC,OAAO,CAAED,KAAF,CAA1B;AAAA,GADD,CAD4B,CAA7B;AAKA,SAAOX,OAAO,CAAEM,oBAAF,CAAP,GAAkCO,SAAlC,GAA8CP,oBAArD;AACA,CAdD;;AAgBA,eAAeJ,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, mapValues } from 'lodash';\n\n/**\n * Removed empty nodes from nested objects.\n *\n * @param {Object} object\n * @return {Object} Object cleaned from empty nodes.\n */\nconst cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = Object.fromEntries(\n\t\tObject.entries( mapValues( object, cleanEmptyObject ) ).filter(\n\t\t\t( [ , value ] ) => Boolean( value )\n\t\t)\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nexport default cleanEmptyObject;\n"]}
@@ -0,0 +1,147 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { RichText, useBlockProps } from '@wordpress/block-editor';
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+
11
+ const metadata = {
12
+ $schema: "https://schemas.wp.org/trunk/block.json",
13
+ apiVersion: 2,
14
+ name: "core/video",
15
+ title: "Video",
16
+ category: "media",
17
+ description: "Embed a video from your media library or upload a new one.",
18
+ keywords: ["movie"],
19
+ textdomain: "default",
20
+ attributes: {
21
+ autoplay: {
22
+ type: "boolean",
23
+ source: "attribute",
24
+ selector: "video",
25
+ attribute: "autoplay"
26
+ },
27
+ caption: {
28
+ type: "string",
29
+ source: "html",
30
+ selector: "figcaption",
31
+ __experimentalRole: "content"
32
+ },
33
+ controls: {
34
+ type: "boolean",
35
+ source: "attribute",
36
+ selector: "video",
37
+ attribute: "controls",
38
+ "default": true
39
+ },
40
+ id: {
41
+ type: "number",
42
+ __experimentalRole: "content"
43
+ },
44
+ loop: {
45
+ type: "boolean",
46
+ source: "attribute",
47
+ selector: "video",
48
+ attribute: "loop"
49
+ },
50
+ muted: {
51
+ type: "boolean",
52
+ source: "attribute",
53
+ selector: "video",
54
+ attribute: "muted"
55
+ },
56
+ poster: {
57
+ type: "string",
58
+ source: "attribute",
59
+ selector: "video",
60
+ attribute: "poster"
61
+ },
62
+ preload: {
63
+ type: "string",
64
+ source: "attribute",
65
+ selector: "video",
66
+ attribute: "preload",
67
+ "default": "metadata"
68
+ },
69
+ src: {
70
+ type: "string",
71
+ source: "attribute",
72
+ selector: "video",
73
+ attribute: "src",
74
+ __experimentalRole: "content"
75
+ },
76
+ playsInline: {
77
+ type: "boolean",
78
+ source: "attribute",
79
+ selector: "video",
80
+ attribute: "playsinline"
81
+ },
82
+ tracks: {
83
+ __experimentalRole: "content",
84
+ type: "array",
85
+ items: {
86
+ type: "object"
87
+ },
88
+ "default": []
89
+ }
90
+ },
91
+ supports: {
92
+ anchor: true,
93
+ align: true,
94
+ spacing: {
95
+ margin: true,
96
+ padding: true
97
+ }
98
+ },
99
+ editorStyle: "wp-block-video-editor",
100
+ style: "wp-block-video"
101
+ };
102
+ import Tracks from './tracks';
103
+ const {
104
+ attributes: blockAttributes
105
+ } = metadata; // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
106
+ // to the video figcaption element.
107
+
108
+ const v1 = {
109
+ attributes: blockAttributes,
110
+
111
+ save(_ref) {
112
+ let {
113
+ attributes
114
+ } = _ref;
115
+ const {
116
+ autoplay,
117
+ caption,
118
+ controls,
119
+ loop,
120
+ muted,
121
+ poster,
122
+ preload,
123
+ src,
124
+ playsInline,
125
+ tracks
126
+ } = attributes;
127
+ return createElement("figure", useBlockProps.save(), src && createElement("video", {
128
+ autoPlay: autoplay,
129
+ controls: controls,
130
+ loop: loop,
131
+ muted: muted,
132
+ poster: poster,
133
+ preload: preload !== 'metadata' ? preload : undefined,
134
+ src: src,
135
+ playsInline: playsInline
136
+ }, createElement(Tracks, {
137
+ tracks: tracks
138
+ })), !RichText.isEmpty(caption) && createElement(RichText.Content, {
139
+ tagName: "figcaption",
140
+ value: caption
141
+ }));
142
+ }
143
+
144
+ };
145
+ const deprecated = [v1];
146
+ export default deprecated;
147
+ //# sourceMappingURL=deprecated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/video/deprecated.js"],"names":["RichText","useBlockProps","Tracks","attributes","blockAttributes","metadata","v1","save","autoplay","caption","controls","loop","muted","poster","preload","src","playsInline","tracks","undefined","isEmpty","deprecated"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,EAAmBC,aAAnB,QAAwC,yBAAxC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,MAAM;AAAEC,EAAAA,UAAU,EAAEC;AAAd,IAAkCC,QAAxC,C,CAEA;AACA;;AACA,MAAMC,EAAE,GAAG;AACVH,EAAAA,UAAU,EAAEC,eADF;;AAEVG,EAAAA,IAAI,OAAmB;AAAA,QAAjB;AAAEJ,MAAAA;AAAF,KAAiB;AACtB,UAAM;AACLK,MAAAA,QADK;AAELC,MAAAA,OAFK;AAGLC,MAAAA,QAHK;AAILC,MAAAA,IAJK;AAKLC,MAAAA,KALK;AAMLC,MAAAA,MANK;AAOLC,MAAAA,OAPK;AAQLC,MAAAA,GARK;AASLC,MAAAA,WATK;AAULC,MAAAA;AAVK,QAWFd,UAXJ;AAYA,WACC,wBAAaF,aAAa,CAACM,IAAd,EAAb,EACGQ,GAAG,IACJ;AACC,MAAA,QAAQ,EAAGP,QADZ;AAEC,MAAA,QAAQ,EAAGE,QAFZ;AAGC,MAAA,IAAI,EAAGC,IAHR;AAIC,MAAA,KAAK,EAAGC,KAJT;AAKC,MAAA,MAAM,EAAGC,MALV;AAMC,MAAA,OAAO,EAAGC,OAAO,KAAK,UAAZ,GAAyBA,OAAzB,GAAmCI,SAN9C;AAOC,MAAA,GAAG,EAAGH,GAPP;AAQC,MAAA,WAAW,EAAGC;AARf,OAUC,cAAC,MAAD;AAAQ,MAAA,MAAM,EAAGC;AAAjB,MAVD,CAFF,EAeG,CAAEjB,QAAQ,CAACmB,OAAT,CAAkBV,OAAlB,CAAF,IACD,cAAC,QAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAhBF,CADD;AAqBA;;AApCS,CAAX;AAuCA,MAAMW,UAAU,GAAG,CAAEd,EAAF,CAAnB;AAEA,eAAec,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport Tracks from './tracks';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the video figcaption element.\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tautoplay,\n\t\t\tcaption,\n\t\t\tcontrols,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tposter,\n\t\t\tpreload,\n\t\t\tsrc,\n\t\t\tplaysInline,\n\t\t\ttracks,\n\t\t} = attributes;\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t{ src && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tloop={ loop }\n\t\t\t\t\t\tmuted={ muted }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tplaysInline={ playsInline }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n"]}
@@ -9,13 +9,13 @@ import classnames from 'classnames';
9
9
  */
10
10
 
11
11
  import { getBlobByURL, isBlobURL } from '@wordpress/blob';
12
- import { BaseControl, Button, Disabled, PanelBody, Spinner, Placeholder } from '@wordpress/components';
12
+ import { BaseControl, Button, Disabled, PanelBody, Spinner, Placeholder, ToolbarButton } from '@wordpress/components';
13
13
  import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaUpload, MediaUploadCheck, MediaReplaceFlow, RichText, useBlockProps, store as blockEditorStore, __experimentalGetElementClassName } from '@wordpress/block-editor';
14
- import { useRef, useEffect } from '@wordpress/element';
14
+ import { useRef, useEffect, useState, useCallback } from '@wordpress/element';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
- import { useInstanceId } from '@wordpress/compose';
16
+ import { useInstanceId, usePrevious } from '@wordpress/compose';
17
17
  import { useDispatch, useSelect } from '@wordpress/data';
18
- import { video as icon } from '@wordpress/icons';
18
+ import { video as icon, caption as captionIcon } from '@wordpress/icons';
19
19
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
20
20
  import { store as noticesStore } from '@wordpress/notices';
21
21
  /**
@@ -60,6 +60,8 @@ function VideoEdit(_ref) {
60
60
  src,
61
61
  tracks
62
62
  } = attributes;
63
+ const prevCaption = usePrevious(caption);
64
+ const [showCaption, setShowCaption] = useState(!!caption);
63
65
  const isTemporaryVideo = !id && isBlobURL(src);
64
66
  const mediaUpload = useSelect(select => select(blockEditorStore).getSettings().mediaUpload, []);
65
67
  useEffect(() => {
@@ -84,7 +86,25 @@ function VideoEdit(_ref) {
84
86
  if (videoPlayer.current) {
85
87
  videoPlayer.current.load();
86
88
  }
87
- }, [poster]);
89
+ }, [poster]); // We need to show the caption when changes come from
90
+ // history navigation(undo/redo).
91
+
92
+ useEffect(() => {
93
+ if (caption && !prevCaption) {
94
+ setShowCaption(true);
95
+ }
96
+ }, [caption, prevCaption]); // Focus the caption when we click to add one.
97
+
98
+ const captionRef = useCallback(node => {
99
+ if (node && !caption) {
100
+ node.focus();
101
+ }
102
+ }, [caption]);
103
+ useEffect(() => {
104
+ if (!isSelected && !caption) {
105
+ setShowCaption(false);
106
+ }
107
+ }, [isSelected, caption]);
88
108
 
89
109
  function onSelectVideo(media) {
90
110
  var _media$image, _media$image2;
@@ -96,7 +116,8 @@ function VideoEdit(_ref) {
96
116
  setAttributes({
97
117
  src: undefined,
98
118
  id: undefined,
99
- poster: undefined
119
+ poster: undefined,
120
+ caption: undefined
100
121
  });
101
122
  return;
102
123
  } // Sets the block's attribute and updates the edit component from the
@@ -106,7 +127,8 @@ function VideoEdit(_ref) {
106
127
  setAttributes({
107
128
  src: media.url,
108
129
  id: media.id,
109
- poster: ((_media$image = media.image) === null || _media$image === void 0 ? void 0 : _media$image.src) !== media.icon ? (_media$image2 = media.image) === null || _media$image2 === void 0 ? void 0 : _media$image2.src : undefined
130
+ poster: ((_media$image = media.image) === null || _media$image === void 0 ? void 0 : _media$image.src) !== media.icon ? (_media$image2 = media.image) === null || _media$image2 === void 0 ? void 0 : _media$image2.src : undefined,
131
+ caption: media.caption
110
132
  });
111
133
  }
112
134
 
@@ -181,7 +203,20 @@ function VideoEdit(_ref) {
181
203
  const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
182
204
  return createElement(Fragment, null, createElement(BlockControls, {
183
205
  group: "block"
184
- }, createElement(TracksEditor, {
206
+ }, createElement(ToolbarButton, {
207
+ onClick: () => {
208
+ setShowCaption(!showCaption);
209
+
210
+ if (showCaption && caption) {
211
+ setAttributes({
212
+ caption: undefined
213
+ });
214
+ }
215
+ },
216
+ icon: captionIcon,
217
+ isPressed: showCaption,
218
+ label: showCaption ? __('Remove caption') : __('Add caption')
219
+ })), createElement(BlockControls, null, createElement(TracksEditor, {
185
220
  tracks: tracks,
186
221
  onChange: newTracks => {
187
222
  setAttributes({
@@ -237,10 +272,11 @@ function VideoEdit(_ref) {
237
272
  ref: videoPlayer
238
273
  }, createElement(Tracks, {
239
274
  tracks: tracks
240
- }))), isTemporaryVideo && createElement(Spinner, null), (!RichText.isEmpty(caption) || isSelected) && createElement(RichText, {
275
+ }))), isTemporaryVideo && createElement(Spinner, null), showCaption && (!RichText.isEmpty(caption) || isSelected) && createElement(RichText, {
241
276
  tagName: "figcaption",
242
277
  className: __experimentalGetElementClassName('caption'),
243
278
  "aria-label": __('Video caption text'),
279
+ ref: captionRef,
244
280
  placeholder: __('Add caption'),
245
281
  value: caption,
246
282
  onChange: value => setAttributes({