@wordpress/block-library 8.18.1-next.5a1d1283.0 → 8.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 (381) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/block/edit.js +53 -2
  4. package/build/block/edit.js.map +1 -1
  5. package/build/button/edit.js +7 -4
  6. package/build/button/edit.js.map +1 -1
  7. package/build/button/index.js +11 -2
  8. package/build/button/index.js.map +1 -1
  9. package/build/button/save.js +10 -4
  10. package/build/button/save.js.map +1 -1
  11. package/build/buttons/edit.js +12 -3
  12. package/build/buttons/edit.js.map +1 -1
  13. package/build/code/edit.js +8 -2
  14. package/build/code/edit.js.map +1 -1
  15. package/build/code/index.js +7 -1
  16. package/build/code/index.js.map +1 -1
  17. package/build/column/index.js +1 -0
  18. package/build/column/index.js.map +1 -1
  19. package/build/columns/index.js +2 -0
  20. package/build/columns/index.js.map +1 -1
  21. package/build/file/edit.native.js +1 -1
  22. package/build/file/edit.native.js.map +1 -1
  23. package/build/file/index.js +2 -1
  24. package/build/file/index.js.map +1 -1
  25. package/build/file/utils/index.js +1 -15
  26. package/build/file/utils/index.js.map +1 -1
  27. package/build/file/view.js +14 -1
  28. package/build/file/view.js.map +1 -1
  29. package/build/footnotes/edit.js +12 -2
  30. package/build/footnotes/edit.js.map +1 -1
  31. package/build/gallery/edit.js +1 -1
  32. package/build/gallery/edit.js.map +1 -1
  33. package/build/group/edit.js +0 -1
  34. package/build/group/edit.js.map +1 -1
  35. package/build/group/index.js +4 -0
  36. package/build/group/index.js.map +1 -1
  37. package/build/heading/edit.js +0 -1
  38. package/build/heading/edit.js.map +1 -1
  39. package/build/heading/index.js +2 -0
  40. package/build/heading/index.js.map +1 -1
  41. package/build/heading/transforms.js +3 -6
  42. package/build/heading/transforms.js.map +1 -1
  43. package/build/image/deprecated.js +191 -7
  44. package/build/image/deprecated.js.map +1 -1
  45. package/build/image/edit.js +27 -12
  46. package/build/image/edit.js.map +1 -1
  47. package/build/image/image.js +75 -40
  48. package/build/image/image.js.map +1 -1
  49. package/build/image/index.js +7 -4
  50. package/build/image/index.js.map +1 -1
  51. package/build/image/{view-interactivity.js → view.js} +1 -1
  52. package/build/image/view.js.map +1 -0
  53. package/build/list/deprecated.js +93 -1
  54. package/build/list/deprecated.js.map +1 -1
  55. package/build/list/edit.js +10 -10
  56. package/build/list/edit.js.map +1 -1
  57. package/build/list/ordered-list-settings.js +10 -10
  58. package/build/list/ordered-list-settings.js.map +1 -1
  59. package/build/list/save.js +4 -2
  60. package/build/list/save.js.map +1 -1
  61. package/build/list/utils.js +21 -2
  62. package/build/list/utils.js.map +1 -1
  63. package/build/navigation/constants.js +1 -1
  64. package/build/navigation/constants.js.map +1 -1
  65. package/build/navigation/index.js +4 -2
  66. package/build/navigation/index.js.map +1 -1
  67. package/build/navigation/view.js +168 -82
  68. package/build/navigation/view.js.map +1 -1
  69. package/build/navigation-link/edit.js +3 -9
  70. package/build/navigation-link/edit.js.map +1 -1
  71. package/build/navigation-link/transforms.js +24 -0
  72. package/build/navigation-link/transforms.js.map +1 -1
  73. package/build/page-list/edit.js +2 -1
  74. package/build/page-list/edit.js.map +1 -1
  75. package/build/post-comments-form/edit.js +10 -2
  76. package/build/post-comments-form/edit.js.map +1 -1
  77. package/build/post-comments-form/form.js +5 -3
  78. package/build/post-comments-form/form.js.map +1 -1
  79. package/build/post-content/edit.js +8 -7
  80. package/build/post-content/edit.js.map +1 -1
  81. package/build/post-content/index.js +3 -0
  82. package/build/post-content/index.js.map +1 -1
  83. package/build/post-featured-image/overlay.js +2 -1
  84. package/build/post-featured-image/overlay.js.map +1 -1
  85. package/build/preformatted/edit.js +4 -1
  86. package/build/preformatted/edit.js.map +1 -1
  87. package/build/preformatted/index.js +1 -1
  88. package/build/preformatted/index.js.map +1 -1
  89. package/build/pullquote/deprecated.js +6 -7
  90. package/build/pullquote/deprecated.js.map +1 -1
  91. package/build/query/edit/enhanced-pagination-modal.js +56 -0
  92. package/build/query/edit/enhanced-pagination-modal.js.map +1 -0
  93. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +42 -0
  94. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  95. package/build/query/edit/inspector-controls/index.js +8 -25
  96. package/build/query/edit/inspector-controls/index.js.map +1 -1
  97. package/build/query/edit/query-content.js +8 -2
  98. package/build/query/edit/query-content.js.map +1 -1
  99. package/build/query/utils.js +19 -0
  100. package/build/query/utils.js.map +1 -1
  101. package/build/query/view.js +4 -5
  102. package/build/query/view.js.map +1 -1
  103. package/build/search/index.js +1 -0
  104. package/build/search/index.js.map +1 -1
  105. package/build/search/view.js +81 -150
  106. package/build/search/view.js.map +1 -1
  107. package/build/social-link/edit.native.js +3 -1
  108. package/build/social-link/edit.native.js.map +1 -1
  109. package/build/table/edit.js +7 -7
  110. package/build/table/edit.js.map +1 -1
  111. package/build/table-of-contents/edit.js +2 -130
  112. package/build/table-of-contents/edit.js.map +1 -1
  113. package/build/table-of-contents/hooks.js +145 -0
  114. package/build/table-of-contents/hooks.js.map +1 -0
  115. package/build/table-of-contents/index.js +2 -1
  116. package/build/table-of-contents/index.js.map +1 -1
  117. package/build/verse/edit.js +4 -1
  118. package/build/verse/edit.js.map +1 -1
  119. package/build/verse/index.js +1 -1
  120. package/build/verse/index.js.map +1 -1
  121. package/build-module/block/edit.js +54 -3
  122. package/build-module/block/edit.js.map +1 -1
  123. package/build-module/button/edit.js +7 -4
  124. package/build-module/button/edit.js.map +1 -1
  125. package/build-module/button/index.js +11 -2
  126. package/build-module/button/index.js.map +1 -1
  127. package/build-module/button/save.js +10 -4
  128. package/build-module/button/save.js.map +1 -1
  129. package/build-module/buttons/edit.js +12 -3
  130. package/build-module/buttons/edit.js.map +1 -1
  131. package/build-module/code/edit.js +8 -2
  132. package/build-module/code/edit.js.map +1 -1
  133. package/build-module/code/index.js +7 -1
  134. package/build-module/code/index.js.map +1 -1
  135. package/build-module/column/index.js +1 -0
  136. package/build-module/column/index.js.map +1 -1
  137. package/build-module/columns/index.js +2 -0
  138. package/build-module/columns/index.js.map +1 -1
  139. package/build-module/file/edit.native.js +1 -1
  140. package/build-module/file/edit.native.js.map +1 -1
  141. package/build-module/file/index.js +2 -1
  142. package/build-module/file/index.js.map +1 -1
  143. package/build-module/file/utils/index.js +0 -13
  144. package/build-module/file/utils/index.js.map +1 -1
  145. package/build-module/file/view.js +14 -2
  146. package/build-module/file/view.js.map +1 -1
  147. package/build-module/footnotes/edit.js +12 -2
  148. package/build-module/footnotes/edit.js.map +1 -1
  149. package/build-module/gallery/edit.js +1 -1
  150. package/build-module/gallery/edit.js.map +1 -1
  151. package/build-module/group/edit.js +0 -1
  152. package/build-module/group/edit.js.map +1 -1
  153. package/build-module/group/index.js +4 -0
  154. package/build-module/group/index.js.map +1 -1
  155. package/build-module/heading/edit.js +0 -1
  156. package/build-module/heading/edit.js.map +1 -1
  157. package/build-module/heading/index.js +2 -0
  158. package/build-module/heading/index.js.map +1 -1
  159. package/build-module/heading/transforms.js +3 -6
  160. package/build-module/heading/transforms.js.map +1 -1
  161. package/build-module/image/deprecated.js +191 -7
  162. package/build-module/image/deprecated.js.map +1 -1
  163. package/build-module/image/edit.js +27 -12
  164. package/build-module/image/edit.js.map +1 -1
  165. package/build-module/image/image.js +77 -42
  166. package/build-module/image/image.js.map +1 -1
  167. package/build-module/image/index.js +7 -4
  168. package/build-module/image/index.js.map +1 -1
  169. package/build-module/image/{view-interactivity.js → view.js} +1 -1
  170. package/build-module/image/view.js.map +1 -0
  171. package/build-module/list/deprecated.js +95 -3
  172. package/build-module/list/deprecated.js.map +1 -1
  173. package/build-module/list/edit.js +10 -10
  174. package/build-module/list/edit.js.map +1 -1
  175. package/build-module/list/ordered-list-settings.js +10 -10
  176. package/build-module/list/ordered-list-settings.js.map +1 -1
  177. package/build-module/list/save.js +4 -2
  178. package/build-module/list/save.js.map +1 -1
  179. package/build-module/list/utils.js +20 -2
  180. package/build-module/list/utils.js.map +1 -1
  181. package/build-module/navigation/constants.js +1 -1
  182. package/build-module/navigation/constants.js.map +1 -1
  183. package/build-module/navigation/index.js +4 -2
  184. package/build-module/navigation/index.js.map +1 -1
  185. package/build-module/navigation/view.js +168 -83
  186. package/build-module/navigation/view.js.map +1 -1
  187. package/build-module/navigation-link/edit.js +3 -9
  188. package/build-module/navigation-link/edit.js.map +1 -1
  189. package/build-module/navigation-link/transforms.js +24 -0
  190. package/build-module/navigation-link/transforms.js.map +1 -1
  191. package/build-module/page-list/edit.js +2 -1
  192. package/build-module/page-list/edit.js.map +1 -1
  193. package/build-module/post-comments-form/edit.js +10 -2
  194. package/build-module/post-comments-form/edit.js.map +1 -1
  195. package/build-module/post-comments-form/form.js +5 -3
  196. package/build-module/post-comments-form/form.js.map +1 -1
  197. package/build-module/post-content/edit.js +8 -7
  198. package/build-module/post-content/edit.js.map +1 -1
  199. package/build-module/post-content/index.js +3 -0
  200. package/build-module/post-content/index.js.map +1 -1
  201. package/build-module/post-featured-image/overlay.js +2 -1
  202. package/build-module/post-featured-image/overlay.js.map +1 -1
  203. package/build-module/preformatted/edit.js +4 -1
  204. package/build-module/preformatted/edit.js.map +1 -1
  205. package/build-module/preformatted/index.js +1 -1
  206. package/build-module/preformatted/index.js.map +1 -1
  207. package/build-module/pullquote/deprecated.js +6 -7
  208. package/build-module/pullquote/deprecated.js.map +1 -1
  209. package/build-module/query/edit/enhanced-pagination-modal.js +50 -0
  210. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -0
  211. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +35 -0
  212. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  213. package/build-module/query/edit/inspector-controls/index.js +9 -26
  214. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  215. package/build-module/query/edit/query-content.js +8 -2
  216. package/build-module/query/edit/query-content.js.map +1 -1
  217. package/build-module/query/utils.js +17 -0
  218. package/build-module/query/utils.js.map +1 -1
  219. package/build-module/query/view.js +4 -5
  220. package/build-module/query/view.js.map +1 -1
  221. package/build-module/search/index.js +1 -0
  222. package/build-module/search/index.js.map +1 -1
  223. package/build-module/search/view.js +81 -151
  224. package/build-module/search/view.js.map +1 -1
  225. package/build-module/social-link/edit.native.js +3 -1
  226. package/build-module/social-link/edit.native.js.map +1 -1
  227. package/build-module/table/edit.js +7 -7
  228. package/build-module/table/edit.js.map +1 -1
  229. package/build-module/table-of-contents/edit.js +3 -131
  230. package/build-module/table-of-contents/edit.js.map +1 -1
  231. package/build-module/table-of-contents/hooks.js +137 -0
  232. package/build-module/table-of-contents/hooks.js.map +1 -0
  233. package/build-module/table-of-contents/index.js +2 -1
  234. package/build-module/table-of-contents/index.js.map +1 -1
  235. package/build-module/verse/edit.js +4 -1
  236. package/build-module/verse/edit.js.map +1 -1
  237. package/build-module/verse/index.js +1 -1
  238. package/build-module/verse/index.js.map +1 -1
  239. package/build-style/cover/style-rtl.css +9 -0
  240. package/build-style/cover/style.css +9 -0
  241. package/build-style/editor-rtl.css +15 -9
  242. package/build-style/editor.css +15 -9
  243. package/build-style/file/style-rtl.css +5 -0
  244. package/build-style/file/style.css +5 -0
  245. package/build-style/heading/style-rtl.css +13 -0
  246. package/build-style/heading/style.css +13 -0
  247. package/build-style/navigation-link/editor-rtl.css +0 -9
  248. package/build-style/navigation-link/editor.css +0 -9
  249. package/build-style/paragraph/editor-rtl.css +5 -0
  250. package/build-style/paragraph/editor.css +5 -0
  251. package/build-style/paragraph/style-rtl.css +5 -0
  252. package/build-style/paragraph/style.css +5 -0
  253. package/build-style/post-navigation-link/style-rtl.css +3 -0
  254. package/build-style/post-navigation-link/style.css +3 -0
  255. package/build-style/query/editor-rtl.css +10 -0
  256. package/build-style/query/editor.css +10 -0
  257. package/build-style/query/style-rtl.css +1 -1
  258. package/build-style/query/style.css +1 -1
  259. package/build-style/reset-rtl.css +27 -27
  260. package/build-style/reset.css +27 -27
  261. package/build-style/style-rtl.css +35 -0
  262. package/build-style/style.css +35 -0
  263. package/package.json +32 -33
  264. package/src/audio/test/__snapshots__/edit.native.js.snap +78 -106
  265. package/src/avatar/index.php +2 -2
  266. package/src/block/edit.js +58 -2
  267. package/src/block/test/edit.native.js +2 -3
  268. package/src/button/block.json +11 -2
  269. package/src/button/edit.js +27 -11
  270. package/src/button/save.js +10 -4
  271. package/src/buttons/edit.js +13 -3
  272. package/src/buttons/test/edit.native.js +28 -24
  273. package/src/calendar/index.php +2 -2
  274. package/src/code/block.json +2 -1
  275. package/src/code/edit.js +13 -1
  276. package/src/code/index.js +5 -0
  277. package/src/column/block.json +1 -0
  278. package/src/columns/block.json +2 -0
  279. package/src/comment-template/index.php +1 -1
  280. package/src/comments-pagination-next/index.php +1 -1
  281. package/src/comments-pagination-previous/index.php +1 -1
  282. package/src/cover/style.scss +12 -1
  283. package/src/cover/test/edit.js +7 -7
  284. package/src/cover/test/edit.native.js +18 -27
  285. package/src/embed/test/index.native.js +30 -45
  286. package/src/file/block.json +2 -1
  287. package/src/file/edit.native.js +1 -1
  288. package/src/file/index.php +19 -21
  289. package/src/file/style.scss +6 -1
  290. package/src/file/test/__snapshots__/edit.native.js.snap +162 -218
  291. package/src/file/utils/index.js +0 -15
  292. package/src/file/view.js +14 -5
  293. package/src/footnotes/edit.js +13 -1
  294. package/src/gallery/edit.js +1 -1
  295. package/src/gallery/index.php +1 -1
  296. package/src/group/block.json +4 -0
  297. package/src/group/edit.js +0 -1
  298. package/src/heading/block.json +2 -0
  299. package/src/heading/edit.js +0 -1
  300. package/src/heading/style.scss +4 -0
  301. package/src/heading/transforms.js +1 -6
  302. package/src/image/block.json +7 -4
  303. package/src/image/deprecated.js +210 -7
  304. package/src/image/edit.js +43 -29
  305. package/src/image/image.js +86 -43
  306. package/src/image/index.php +251 -28
  307. package/src/latest-posts/index.php +1 -1
  308. package/src/list/deprecated.js +84 -3
  309. package/src/list/edit.js +6 -3
  310. package/src/list/ordered-list-settings.js +20 -5
  311. package/src/list/save.js +10 -1
  312. package/src/list/test/edit.native.js +2 -4
  313. package/src/list/utils.js +22 -1
  314. package/src/navigation/block.json +4 -2
  315. package/src/navigation/constants.js +1 -0
  316. package/src/navigation/index.php +85 -123
  317. package/src/navigation/view.js +192 -96
  318. package/src/navigation-link/edit.js +21 -36
  319. package/src/navigation-link/editor.scss +0 -8
  320. package/src/navigation-link/transforms.js +22 -0
  321. package/src/page-list/edit.js +2 -1
  322. package/src/paragraph/editor.scss +5 -0
  323. package/src/paragraph/style.scss +5 -0
  324. package/src/pattern/index.php +2 -2
  325. package/src/post-comments-form/edit.js +10 -0
  326. package/src/post-comments-form/form.js +7 -1
  327. package/src/post-content/block.json +3 -0
  328. package/src/post-content/edit.js +14 -6
  329. package/src/post-excerpt/index.php +2 -2
  330. package/src/post-featured-image/index.php +2 -2
  331. package/src/post-featured-image/overlay.js +1 -0
  332. package/src/post-navigation-link/index.php +0 -5
  333. package/src/post-navigation-link/style.scss +4 -0
  334. package/src/post-template/index.php +1 -1
  335. package/src/post-terms/index.php +5 -2
  336. package/src/preformatted/edit.js +5 -0
  337. package/src/preformatted/index.js +1 -1
  338. package/src/pullquote/deprecated.js +8 -13
  339. package/src/query/edit/enhanced-pagination-modal.js +65 -0
  340. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +49 -0
  341. package/src/query/edit/inspector-controls/index.js +9 -45
  342. package/src/query/edit/query-content.js +8 -0
  343. package/src/query/editor.scss +10 -0
  344. package/src/query/index.php +29 -16
  345. package/src/query/style.scss +2 -2
  346. package/src/query/utils.js +22 -0
  347. package/src/query/view.js +5 -5
  348. package/src/query-pagination-next/index.php +1 -1
  349. package/src/query-pagination-previous/index.php +1 -1
  350. package/src/reset.scss +1 -1
  351. package/src/search/block.json +1 -0
  352. package/src/search/index.php +45 -4
  353. package/src/search/test/__snapshots__/edit.native.js.snap +265 -363
  354. package/src/search/view.js +70 -169
  355. package/src/social-link/edit.native.js +1 -1
  356. package/src/social-link/editor.native.scss +4 -0
  357. package/src/table/edit.js +21 -19
  358. package/src/table-of-contents/block.json +2 -1
  359. package/src/table-of-contents/edit.js +5 -162
  360. package/src/table-of-contents/hooks.js +156 -0
  361. package/src/verse/edit.js +5 -0
  362. package/src/verse/index.js +1 -1
  363. package/src/verse/test/edit.native.js +2 -3
  364. package/build/file/view-interactivity.js +0 -22
  365. package/build/file/view-interactivity.js.map +0 -1
  366. package/build/image/view-interactivity.js.map +0 -1
  367. package/build/navigation/view-interactivity.js +0 -172
  368. package/build/navigation/view-interactivity.js.map +0 -1
  369. package/build/navigation/view-modal.js +0 -115
  370. package/build/navigation/view-modal.js.map +0 -1
  371. package/build-module/file/view-interactivity.js +0 -18
  372. package/build-module/file/view-interactivity.js.map +0 -1
  373. package/build-module/image/view-interactivity.js.map +0 -1
  374. package/build-module/navigation/view-interactivity.js +0 -169
  375. package/build-module/navigation/view-interactivity.js.map +0 -1
  376. package/build-module/navigation/view-modal.js +0 -112
  377. package/build-module/navigation/view-modal.js.map +0 -1
  378. package/src/file/view-interactivity.js +0 -18
  379. package/src/navigation/view-interactivity.js +0 -196
  380. package/src/navigation/view-modal.js +0 -127
  381. /package/src/image/{view-interactivity.js → view.js} +0 -0
@@ -1,156 +1,86 @@
1
- /*eslint-env browser*/
2
-
3
- /** @type {?HTMLFormElement} */
4
- let expandedSearchBlock = null;
5
- const hiddenClass = 'wp-block-search__searchfield-hidden';
6
-
7
1
  /**
8
- * Toggles aria-label with data-toggled-aria-label.
9
- *
10
- * @param {HTMLElement} element
2
+ * WordPress dependencies
11
3
  */
12
- function toggleAriaLabel(element) {
13
- if (!('toggledAriaLabel' in element.dataset)) {
14
- throw new Error('Element lacks toggledAriaLabel in dataset.');
4
+ import { store as wpStore } from '@wordpress/interactivity';
5
+ wpStore({
6
+ selectors: {
7
+ core: {
8
+ search: {
9
+ ariaLabel: ({
10
+ context
11
+ }) => {
12
+ const {
13
+ ariaLabelCollapsed,
14
+ ariaLabelExpanded
15
+ } = context.core.search;
16
+ return context.core.search.isSearchInputVisible ? ariaLabelExpanded : ariaLabelCollapsed;
17
+ },
18
+ ariaControls: ({
19
+ context
20
+ }) => {
21
+ return context.core.search.isSearchInputVisible ? null : context.core.search.inputId;
22
+ },
23
+ type: ({
24
+ context
25
+ }) => {
26
+ return context.core.search.isSearchInputVisible ? 'submit' : 'button';
27
+ },
28
+ tabindex: ({
29
+ context
30
+ }) => {
31
+ return context.core.search.isSearchInputVisible ? '0' : '-1';
32
+ }
33
+ }
34
+ }
35
+ },
36
+ actions: {
37
+ core: {
38
+ search: {
39
+ openSearchInput: ({
40
+ context,
41
+ event,
42
+ ref
43
+ }) => {
44
+ if (!context.core.search.isSearchInputVisible) {
45
+ event.preventDefault();
46
+ context.core.search.isSearchInputVisible = true;
47
+ ref.parentElement.querySelector('input').focus();
48
+ }
49
+ },
50
+ closeSearchInput: ({
51
+ context
52
+ }) => {
53
+ context.core.search.isSearchInputVisible = false;
54
+ },
55
+ handleSearchKeydown: store => {
56
+ const {
57
+ actions,
58
+ event,
59
+ ref
60
+ } = store;
61
+ // If Escape close the menu.
62
+ if (event?.key === 'Escape') {
63
+ actions.core.search.closeSearchInput(store);
64
+ ref.querySelector('button').focus();
65
+ }
66
+ },
67
+ handleSearchFocusout: store => {
68
+ const {
69
+ actions,
70
+ event,
71
+ ref
72
+ } = store;
73
+ // If focus is outside search form, and in the document, close menu
74
+ // event.target === The element losing focus
75
+ // event.relatedTarget === The element receiving focus (if any)
76
+ // When focusout is outside the document,
77
+ // `window.document.activeElement` doesn't change.
78
+ if (!ref.contains(event.relatedTarget) && event.target !== window.document.activeElement) {
79
+ actions.core.search.closeSearchInput(store);
80
+ }
81
+ }
82
+ }
83
+ }
15
84
  }
16
- const ariaLabel = element.dataset.toggledAriaLabel;
17
- element.dataset.toggledAriaLabel = element.ariaLabel;
18
- element.ariaLabel = ariaLabel;
19
- }
20
-
21
- /**
22
- * Gets search input.
23
- *
24
- * @param {HTMLFormElement} block Search block.
25
- * @return {HTMLInputElement} Search input.
26
- */
27
- function getSearchInput(block) {
28
- return block.querySelector('.wp-block-search__input');
29
- }
30
-
31
- /**
32
- * Gets search button.
33
- *
34
- * @param {HTMLFormElement} block Search block.
35
- * @return {HTMLButtonElement} Search button.
36
- */
37
- function getSearchButton(block) {
38
- return block.querySelector('.wp-block-search__button');
39
- }
40
-
41
- /**
42
- * Handles keydown event to collapse an expanded Search block (when pressing Escape key).
43
- *
44
- * @param {KeyboardEvent} event
45
- */
46
- function handleKeydownEvent(event) {
47
- if (!expandedSearchBlock) {
48
- // In case the event listener wasn't removed in time.
49
- return;
50
- }
51
- if (event.key === 'Escape') {
52
- const block = expandedSearchBlock; // This is nullified by collapseExpandedSearchBlock().
53
- collapseExpandedSearchBlock();
54
- getSearchButton(block).focus();
55
- }
56
- }
57
-
58
- /**
59
- * Handles keyup event to collapse an expanded Search block (e.g. when tabbing out of expanded Search block).
60
- *
61
- * @param {KeyboardEvent} event
62
- */
63
- function handleKeyupEvent(event) {
64
- if (!expandedSearchBlock) {
65
- // In case the event listener wasn't removed in time.
66
- return;
67
- }
68
- if (event.target.closest('.wp-block-search') !== expandedSearchBlock) {
69
- collapseExpandedSearchBlock();
70
- }
71
- }
72
-
73
- /**
74
- * Expands search block.
75
- *
76
- * Inverse of what is done in collapseExpandedSearchBlock().
77
- *
78
- * @param {HTMLFormElement} block Search block.
79
- */
80
- function expandSearchBlock(block) {
81
- // Make sure only one is open at a time.
82
- if (expandedSearchBlock) {
83
- collapseExpandedSearchBlock();
84
- }
85
- const searchField = getSearchInput(block);
86
- const searchButton = getSearchButton(block);
87
- searchButton.type = 'submit';
88
- searchField.ariaHidden = 'false';
89
- searchField.tabIndex = 0;
90
- searchButton.ariaExpanded = 'true';
91
- searchButton.removeAttribute('aria-controls'); // Note: Seemingly not reflected with searchButton.ariaControls.
92
- toggleAriaLabel(searchButton);
93
- block.classList.remove(hiddenClass);
94
- searchField.focus(); // Note that Chrome seems to do this automatically.
95
-
96
- // The following two must be inverse of what is done in collapseExpandedSearchBlock().
97
- document.addEventListener('keydown', handleKeydownEvent, {
98
- passive: true
99
- });
100
- document.addEventListener('keyup', handleKeyupEvent, {
101
- passive: true
102
- });
103
- expandedSearchBlock = block;
104
- }
105
-
106
- /**
107
- * Collapses the expanded search block.
108
- *
109
- * Inverse of what is done in expandSearchBlock().
110
- */
111
- function collapseExpandedSearchBlock() {
112
- if (!expandedSearchBlock) {
113
- throw new Error('Expected expandedSearchBlock to be defined.');
114
- }
115
- const block = expandedSearchBlock;
116
- const searchField = getSearchInput(block);
117
- const searchButton = getSearchButton(block);
118
- searchButton.type = 'button';
119
- searchField.ariaHidden = 'true';
120
- searchField.tabIndex = -1;
121
- searchButton.ariaExpanded = 'false';
122
- searchButton.setAttribute('aria-controls', searchField.id); // Note: Seemingly not reflected with searchButton.ariaControls.
123
- toggleAriaLabel(searchButton);
124
- block.classList.add(hiddenClass);
125
-
126
- // The following two must be inverse of what is done in expandSearchBlock().
127
- document.removeEventListener('keydown', handleKeydownEvent, {
128
- passive: true
129
- });
130
- document.removeEventListener('keyup', handleKeyupEvent, {
131
- passive: true
132
- });
133
- expandedSearchBlock = null;
134
- }
135
-
136
- // Listen for click events anywhere on the document so this script can be loaded asynchronously in the head.
137
- document.addEventListener('click', event => {
138
- // Get the ancestor expandable Search block of the clicked element.
139
- const block = event.target.closest('.wp-block-search__button-behavior-expand');
140
-
141
- /*
142
- * If there is already an expanded search block and either the current click was not for a Search block or it was
143
- * for another block, then collapse the currently-expanded block.
144
- */
145
- if (expandedSearchBlock && block !== expandedSearchBlock) {
146
- collapseExpandedSearchBlock();
147
- }
148
-
149
- // If the click was on or inside a collapsed Search block, expand it.
150
- if (block instanceof HTMLFormElement && block.classList.contains(hiddenClass)) {
151
- expandSearchBlock(block);
152
- }
153
- }, {
154
- passive: true
155
85
  });
156
86
  //# sourceMappingURL=view.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["expandedSearchBlock","hiddenClass","toggleAriaLabel","element","dataset","Error","ariaLabel","toggledAriaLabel","getSearchInput","block","querySelector","getSearchButton","handleKeydownEvent","event","key","collapseExpandedSearchBlock","focus","handleKeyupEvent","target","closest","expandSearchBlock","searchField","searchButton","type","ariaHidden","tabIndex","ariaExpanded","removeAttribute","classList","remove","document","addEventListener","passive","setAttribute","id","add","removeEventListener","HTMLFormElement","contains"],"sources":["@wordpress/block-library/src/search/view.js"],"sourcesContent":["/*eslint-env browser*/\n\n/** @type {?HTMLFormElement} */\nlet expandedSearchBlock = null;\n\nconst hiddenClass = 'wp-block-search__searchfield-hidden';\n\n/**\n * Toggles aria-label with data-toggled-aria-label.\n *\n * @param {HTMLElement} element\n */\nfunction toggleAriaLabel( element ) {\n\tif ( ! ( 'toggledAriaLabel' in element.dataset ) ) {\n\t\tthrow new Error( 'Element lacks toggledAriaLabel in dataset.' );\n\t}\n\n\tconst ariaLabel = element.dataset.toggledAriaLabel;\n\telement.dataset.toggledAriaLabel = element.ariaLabel;\n\telement.ariaLabel = ariaLabel;\n}\n\n/**\n * Gets search input.\n *\n * @param {HTMLFormElement} block Search block.\n * @return {HTMLInputElement} Search input.\n */\nfunction getSearchInput( block ) {\n\treturn block.querySelector( '.wp-block-search__input' );\n}\n\n/**\n * Gets search button.\n *\n * @param {HTMLFormElement} block Search block.\n * @return {HTMLButtonElement} Search button.\n */\nfunction getSearchButton( block ) {\n\treturn block.querySelector( '.wp-block-search__button' );\n}\n\n/**\n * Handles keydown event to collapse an expanded Search block (when pressing Escape key).\n *\n * @param {KeyboardEvent} event\n */\nfunction handleKeydownEvent( event ) {\n\tif ( ! expandedSearchBlock ) {\n\t\t// In case the event listener wasn't removed in time.\n\t\treturn;\n\t}\n\n\tif ( event.key === 'Escape' ) {\n\t\tconst block = expandedSearchBlock; // This is nullified by collapseExpandedSearchBlock().\n\t\tcollapseExpandedSearchBlock();\n\t\tgetSearchButton( block ).focus();\n\t}\n}\n\n/**\n * Handles keyup event to collapse an expanded Search block (e.g. when tabbing out of expanded Search block).\n *\n * @param {KeyboardEvent} event\n */\nfunction handleKeyupEvent( event ) {\n\tif ( ! expandedSearchBlock ) {\n\t\t// In case the event listener wasn't removed in time.\n\t\treturn;\n\t}\n\n\tif ( event.target.closest( '.wp-block-search' ) !== expandedSearchBlock ) {\n\t\tcollapseExpandedSearchBlock();\n\t}\n}\n\n/**\n * Expands search block.\n *\n * Inverse of what is done in collapseExpandedSearchBlock().\n *\n * @param {HTMLFormElement} block Search block.\n */\nfunction expandSearchBlock( block ) {\n\t// Make sure only one is open at a time.\n\tif ( expandedSearchBlock ) {\n\t\tcollapseExpandedSearchBlock();\n\t}\n\n\tconst searchField = getSearchInput( block );\n\tconst searchButton = getSearchButton( block );\n\n\tsearchButton.type = 'submit';\n\tsearchField.ariaHidden = 'false';\n\tsearchField.tabIndex = 0;\n\tsearchButton.ariaExpanded = 'true';\n\tsearchButton.removeAttribute( 'aria-controls' ); // Note: Seemingly not reflected with searchButton.ariaControls.\n\ttoggleAriaLabel( searchButton );\n\tblock.classList.remove( hiddenClass );\n\n\tsearchField.focus(); // Note that Chrome seems to do this automatically.\n\n\t// The following two must be inverse of what is done in collapseExpandedSearchBlock().\n\tdocument.addEventListener( 'keydown', handleKeydownEvent, {\n\t\tpassive: true,\n\t} );\n\tdocument.addEventListener( 'keyup', handleKeyupEvent, {\n\t\tpassive: true,\n\t} );\n\n\texpandedSearchBlock = block;\n}\n\n/**\n * Collapses the expanded search block.\n *\n * Inverse of what is done in expandSearchBlock().\n */\nfunction collapseExpandedSearchBlock() {\n\tif ( ! expandedSearchBlock ) {\n\t\tthrow new Error( 'Expected expandedSearchBlock to be defined.' );\n\t}\n\tconst block = expandedSearchBlock;\n\tconst searchField = getSearchInput( block );\n\tconst searchButton = getSearchButton( block );\n\n\tsearchButton.type = 'button';\n\tsearchField.ariaHidden = 'true';\n\tsearchField.tabIndex = -1;\n\tsearchButton.ariaExpanded = 'false';\n\tsearchButton.setAttribute( 'aria-controls', searchField.id ); // Note: Seemingly not reflected with searchButton.ariaControls.\n\ttoggleAriaLabel( searchButton );\n\tblock.classList.add( hiddenClass );\n\n\t// The following two must be inverse of what is done in expandSearchBlock().\n\tdocument.removeEventListener( 'keydown', handleKeydownEvent, {\n\t\tpassive: true,\n\t} );\n\tdocument.removeEventListener( 'keyup', handleKeyupEvent, {\n\t\tpassive: true,\n\t} );\n\n\texpandedSearchBlock = null;\n}\n\n// Listen for click events anywhere on the document so this script can be loaded asynchronously in the head.\ndocument.addEventListener(\n\t'click',\n\t( event ) => {\n\t\t// Get the ancestor expandable Search block of the clicked element.\n\t\tconst block = event.target.closest(\n\t\t\t'.wp-block-search__button-behavior-expand'\n\t\t);\n\n\t\t/*\n\t\t * If there is already an expanded search block and either the current click was not for a Search block or it was\n\t\t * for another block, then collapse the currently-expanded block.\n\t\t */\n\t\tif ( expandedSearchBlock && block !== expandedSearchBlock ) {\n\t\t\tcollapseExpandedSearchBlock();\n\t\t}\n\n\t\t// If the click was on or inside a collapsed Search block, expand it.\n\t\tif (\n\t\t\tblock instanceof HTMLFormElement &&\n\t\t\tblock.classList.contains( hiddenClass )\n\t\t) {\n\t\t\texpandSearchBlock( block );\n\t\t}\n\t},\n\t{ passive: true }\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["store","wpStore","selectors","core","search","ariaLabel","context","ariaLabelCollapsed","ariaLabelExpanded","isSearchInputVisible","ariaControls","inputId","type","tabindex","actions","openSearchInput","event","ref","preventDefault","parentElement","querySelector","focus","closeSearchInput","handleSearchKeydown","key","handleSearchFocusout","contains","relatedTarget","target","window","document","activeElement"],"sources":["@wordpress/block-library/src/search/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as wpStore } from '@wordpress/interactivity';\n\nwpStore( {\n\tselectors: {\n\t\tcore: {\n\t\t\tsearch: {\n\t\t\t\tariaLabel: ( { context } ) => {\n\t\t\t\t\tconst { ariaLabelCollapsed, ariaLabelExpanded } =\n\t\t\t\t\t\tcontext.core.search;\n\t\t\t\t\treturn context.core.search.isSearchInputVisible\n\t\t\t\t\t\t? ariaLabelExpanded\n\t\t\t\t\t\t: ariaLabelCollapsed;\n\t\t\t\t},\n\t\t\t\tariaControls: ( { context } ) => {\n\t\t\t\t\treturn context.core.search.isSearchInputVisible\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: context.core.search.inputId;\n\t\t\t\t},\n\t\t\t\ttype: ( { context } ) => {\n\t\t\t\t\treturn context.core.search.isSearchInputVisible\n\t\t\t\t\t\t? 'submit'\n\t\t\t\t\t\t: 'button';\n\t\t\t\t},\n\t\t\t\ttabindex: ( { context } ) => {\n\t\t\t\t\treturn context.core.search.isSearchInputVisible\n\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t: '-1';\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tactions: {\n\t\tcore: {\n\t\t\tsearch: {\n\t\t\t\topenSearchInput: ( { context, event, ref } ) => {\n\t\t\t\t\tif ( ! context.core.search.isSearchInputVisible ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tcontext.core.search.isSearchInputVisible = true;\n\t\t\t\t\t\tref.parentElement.querySelector( 'input' ).focus();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcloseSearchInput: ( { context } ) => {\n\t\t\t\t\tcontext.core.search.isSearchInputVisible = false;\n\t\t\t\t},\n\t\t\t\thandleSearchKeydown: ( store ) => {\n\t\t\t\t\tconst { actions, event, ref } = store;\n\t\t\t\t\t// If Escape close the menu.\n\t\t\t\t\tif ( event?.key === 'Escape' ) {\n\t\t\t\t\t\tactions.core.search.closeSearchInput( store );\n\t\t\t\t\t\tref.querySelector( 'button' ).focus();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\thandleSearchFocusout: ( store ) => {\n\t\t\t\t\tconst { actions, event, ref } = store;\n\t\t\t\t\t// If focus is outside search form, and in the document, close menu\n\t\t\t\t\t// event.target === The element losing focus\n\t\t\t\t\t// event.relatedTarget === The element receiving focus (if any)\n\t\t\t\t\t// When focusout is outside the document,\n\t\t\t\t\t// `window.document.activeElement` doesn't change.\n\t\t\t\t\tif (\n\t\t\t\t\t\t! ref.contains( event.relatedTarget ) &&\n\t\t\t\t\t\tevent.target !== window.document.activeElement\n\t\t\t\t\t) {\n\t\t\t\t\t\tactions.core.search.closeSearchInput( store );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,OAAO,QAAQ,0BAA0B;AAE3DA,OAAO,CAAE;EACRC,SAAS,EAAE;IACVC,IAAI,EAAE;MACLC,MAAM,EAAE;QACPC,SAAS,EAAEA,CAAE;UAAEC;QAAQ,CAAC,KAAM;UAC7B,MAAM;YAAEC,kBAAkB;YAAEC;UAAkB,CAAC,GAC9CF,OAAO,CAACH,IAAI,CAACC,MAAM;UACpB,OAAOE,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAC5CD,iBAAiB,GACjBD,kBAAkB;QACtB,CAAC;QACDG,YAAY,EAAEA,CAAE;UAAEJ;QAAQ,CAAC,KAAM;UAChC,OAAOA,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAC5C,IAAI,GACJH,OAAO,CAACH,IAAI,CAACC,MAAM,CAACO,OAAO;QAC/B,CAAC;QACDC,IAAI,EAAEA,CAAE;UAAEN;QAAQ,CAAC,KAAM;UACxB,OAAOA,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAC5C,QAAQ,GACR,QAAQ;QACZ,CAAC;QACDI,QAAQ,EAAEA,CAAE;UAAEP;QAAQ,CAAC,KAAM;UAC5B,OAAOA,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAC5C,GAAG,GACH,IAAI;QACR;MACD;IACD;EACD,CAAC;EACDK,OAAO,EAAE;IACRX,IAAI,EAAE;MACLC,MAAM,EAAE;QACPW,eAAe,EAAEA,CAAE;UAAET,OAAO;UAAEU,KAAK;UAAEC;QAAI,CAAC,KAAM;UAC/C,IAAK,CAAEX,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,EAAG;YACjDO,KAAK,CAACE,cAAc,CAAC,CAAC;YACtBZ,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAAG,IAAI;YAC/CQ,GAAG,CAACE,aAAa,CAACC,aAAa,CAAE,OAAQ,CAAC,CAACC,KAAK,CAAC,CAAC;UACnD;QACD,CAAC;QACDC,gBAAgB,EAAEA,CAAE;UAAEhB;QAAQ,CAAC,KAAM;UACpCA,OAAO,CAACH,IAAI,CAACC,MAAM,CAACK,oBAAoB,GAAG,KAAK;QACjD,CAAC;QACDc,mBAAmB,EAAIvB,KAAK,IAAM;UACjC,MAAM;YAAEc,OAAO;YAAEE,KAAK;YAAEC;UAAI,CAAC,GAAGjB,KAAK;UACrC;UACA,IAAKgB,KAAK,EAAEQ,GAAG,KAAK,QAAQ,EAAG;YAC9BV,OAAO,CAACX,IAAI,CAACC,MAAM,CAACkB,gBAAgB,CAAEtB,KAAM,CAAC;YAC7CiB,GAAG,CAACG,aAAa,CAAE,QAAS,CAAC,CAACC,KAAK,CAAC,CAAC;UACtC;QACD,CAAC;QACDI,oBAAoB,EAAIzB,KAAK,IAAM;UAClC,MAAM;YAAEc,OAAO;YAAEE,KAAK;YAAEC;UAAI,CAAC,GAAGjB,KAAK;UACrC;UACA;UACA;UACA;UACA;UACA,IACC,CAAEiB,GAAG,CAACS,QAAQ,CAAEV,KAAK,CAACW,aAAc,CAAC,IACrCX,KAAK,CAACY,MAAM,KAAKC,MAAM,CAACC,QAAQ,CAACC,aAAa,EAC7C;YACDjB,OAAO,CAACX,IAAI,CAACC,MAAM,CAACkB,gBAAgB,CAAEtB,KAAM,CAAC;UAC9C;QACD;MACD;IACD;EACD;AACD,CAAE,CAAC"}
@@ -122,7 +122,9 @@ const SocialLinkEdit = ({
122
122
  __('%s has URL set'), socialLinkName) : sprintf(
123
123
  // translators: %s: social link name e.g: "Instagram".
124
124
  __('%s has no URL set'), socialLinkName);
125
- return createElement(View, null, isSelected && createElement(Fragment, null, createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
125
+ return createElement(View, {
126
+ style: styles.container
127
+ }, isSelected && createElement(Fragment, null, createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
126
128
  title: sprintf(
127
129
  // translators: %s: social link name e.g: "Instagram".
128
130
  __('Add link to %s'), socialLinkName),
@@ -1 +1 @@
1
- {"version":3,"names":["View","Animated","Easing","TouchableWithoutFeedback","BlockControls","store","blockEditorStore","useEffect","useState","useRef","useCallback","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","compose","usePreferredColorSchemeStyle","__","sprintf","link","Icon","withSelect","getIconBySite","getNameBySite","styles","DEFAULT_ACTIVE_ICON_STYLES","backgroundColor","color","DEFAULT_INACTIVE_ICON_STYLES","ANIMATION_DELAY","ANIMATION_DURATION","linkSettingsOptions","url","label","placeholder","autoFocus","linkLabel","footer","SocialLinkEdit","attributes","setAttributes","isSelected","onFocus","name","service","isLinkSheetVisible","setIsLinkSheetVisible","hasUrl","setHasUrl","activeIcon","inactiveIcon","inactiveIconDark","animatedValue","Value","current","IconComponent","socialLinkName","setValue","animateColors","interpolationColors","interpolate","inputRange","outputRange","stroke","sequence","delay","timing","toValue","duration","easing","circle","useNativeDriver","start","onCloseSettingsSheet","onOpenSettingsSheet","onEmptyURL","onIconPress","accessibilityHint","createElement","Fragment","title","icon","onClick","isActive","isVisible","rel","onClose","options","withBottomSheet","onPress","accessibilityRole","accessibilityLabel","style","iconContainer","animated","select","clientId","getBlock","block","substring"],"sources":["@wordpress/block-library/src/social-link/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Animated, Easing, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect, useState, useRef, useCallback } from '@wordpress/element';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n} from '@wordpress/components';\nimport { compose, usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { link, Icon } from '@wordpress/icons';\nimport { withSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\nimport styles from './editor.scss';\n\nconst DEFAULT_ACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#f0f0f0',\n\tcolor: '#444',\n};\nconst DEFAULT_INACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#0000003f',\n\tcolor: '#fff',\n};\nconst ANIMATION_DELAY = 300;\nconst ANIMATION_DURATION = 400;\n\nconst linkSettingsOptions = {\n\turl: {\n\t\tlabel: __( 'URL' ),\n\t\tplaceholder: __( 'Add URL' ),\n\t\tautoFocus: true,\n\t},\n\tlinkLabel: {\n\t\tlabel: __( 'Link label' ),\n\t\tplaceholder: __( 'None' ),\n\t},\n\tfooter: {\n\t\tlabel: __( 'Briefly describe the link to help screen reader user' ),\n\t},\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tonFocus,\n\tname,\n} ) => {\n\tconst { url, service = name } = attributes;\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ hasUrl, setHasUrl ] = useState( !! url );\n\tconst activeIcon =\n\t\tstyles[ `wp-social-link-${ service }` ] ||\n\t\tstyles[ `wp-social-link` ] ||\n\t\tDEFAULT_ACTIVE_ICON_STYLES;\n\tconst inactiveIcon =\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.inactiveIcon,\n\t\t\tstyles.inactiveIconDark\n\t\t) || DEFAULT_INACTIVE_ICON_STYLES;\n\n\tconst animatedValue = useRef( new Animated.Value( 0 ) ).current;\n\n\tconst IconComponent = getIconBySite( service )();\n\tconst socialLinkName = getNameBySite( service );\n\n\t// When new social icon is added link sheet is opened automatically.\n\tuseEffect( () => {\n\t\tif ( isSelected && ! url ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! url ) {\n\t\t\tsetHasUrl( false );\n\t\t\tanimatedValue.setValue( 0 );\n\t\t} else if ( url ) {\n\t\t\tanimateColors();\n\t\t}\n\t}, [ url ] );\n\n\tconst interpolationColors = {\n\t\tbackgroundColor: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [\n\t\t\t\tinactiveIcon.backgroundColor,\n\t\t\t\tactiveIcon.backgroundColor,\n\t\t\t],\n\t\t} ),\n\t\tcolor: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [ inactiveIcon.color, activeIcon.color ],\n\t\t} ),\n\t\tstroke: '',\n\t};\n\n\tconst { backgroundColor, color, stroke } = hasUrl\n\t\t? activeIcon\n\t\t: interpolationColors;\n\n\tfunction animateColors() {\n\t\tAnimated.sequence( [\n\t\t\tAnimated.delay( ANIMATION_DELAY ),\n\t\t\tAnimated.timing( animatedValue, {\n\t\t\t\ttoValue: 1,\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: Easing.circle,\n\t\t\t\tuseNativeDriver: false,\n\t\t\t} ),\n\t\t] ).start( () => setHasUrl( true ) );\n\t}\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( false );\n\t}, [] );\n\n\tconst onOpenSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( true );\n\t}, [] );\n\n\tconst onEmptyURL = useCallback( () => {\n\t\tanimatedValue.setValue( 0 );\n\t\tsetHasUrl( false );\n\t}, [ animatedValue ] );\n\n\tfunction onIconPress() {\n\t\tif ( isSelected ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tconst accessibilityHint = url\n\t\t? sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has URL set' ),\n\t\t\t\tsocialLinkName\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has no URL set' ),\n\t\t\t\tsocialLinkName\n\t\t );\n\n\treturn (\n\t\t<View>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t\t\t\t\t__( 'Add link to %s' ),\n\t\t\t\t\t\t\t\t\tsocialLinkName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onOpenSettingsSheet }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<LinkSettingsNavigation\n\t\t\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\t\t\turl={ attributes.url }\n\t\t\t\t\t\tlabel={ attributes.label }\n\t\t\t\t\t\trel={ attributes.rel }\n\t\t\t\t\t\tonEmptyURL={ onEmptyURL }\n\t\t\t\t\t\tonClose={ onCloseSettingsSheet }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\t\t\twithBottomSheet\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ onIconPress }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t__( '%s social icon' ),\n\t\t\t\t\tsocialLinkName\n\t\t\t\t) }\n\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [ styles.iconContainer, { backgroundColor } ] }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tanimated\n\t\t\t\t\t\ticon={ IconComponent }\n\t\t\t\t\t\tstyle={ { stroke, color } }\n\t\t\t\t\t/>\n\t\t\t\t</Animated.View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\n\t\tconst block = getBlock( clientId );\n\t\tconst name = block?.name.substring( 17 );\n\n\t\treturn {\n\t\t\tname,\n\t\t};\n\t} ),\n] )( SocialLinkEdit );\n"],"mappings":"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"}
1
+ {"version":3,"names":["View","Animated","Easing","TouchableWithoutFeedback","BlockControls","store","blockEditorStore","useEffect","useState","useRef","useCallback","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","compose","usePreferredColorSchemeStyle","__","sprintf","link","Icon","withSelect","getIconBySite","getNameBySite","styles","DEFAULT_ACTIVE_ICON_STYLES","backgroundColor","color","DEFAULT_INACTIVE_ICON_STYLES","ANIMATION_DELAY","ANIMATION_DURATION","linkSettingsOptions","url","label","placeholder","autoFocus","linkLabel","footer","SocialLinkEdit","attributes","setAttributes","isSelected","onFocus","name","service","isLinkSheetVisible","setIsLinkSheetVisible","hasUrl","setHasUrl","activeIcon","inactiveIcon","inactiveIconDark","animatedValue","Value","current","IconComponent","socialLinkName","setValue","animateColors","interpolationColors","interpolate","inputRange","outputRange","stroke","sequence","delay","timing","toValue","duration","easing","circle","useNativeDriver","start","onCloseSettingsSheet","onOpenSettingsSheet","onEmptyURL","onIconPress","accessibilityHint","createElement","style","container","Fragment","title","icon","onClick","isActive","isVisible","rel","onClose","options","withBottomSheet","onPress","accessibilityRole","accessibilityLabel","iconContainer","animated","select","clientId","getBlock","block","substring"],"sources":["@wordpress/block-library/src/social-link/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Animated, Easing, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect, useState, useRef, useCallback } from '@wordpress/element';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n} from '@wordpress/components';\nimport { compose, usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { link, Icon } from '@wordpress/icons';\nimport { withSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\nimport styles from './editor.scss';\n\nconst DEFAULT_ACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#f0f0f0',\n\tcolor: '#444',\n};\nconst DEFAULT_INACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#0000003f',\n\tcolor: '#fff',\n};\nconst ANIMATION_DELAY = 300;\nconst ANIMATION_DURATION = 400;\n\nconst linkSettingsOptions = {\n\turl: {\n\t\tlabel: __( 'URL' ),\n\t\tplaceholder: __( 'Add URL' ),\n\t\tautoFocus: true,\n\t},\n\tlinkLabel: {\n\t\tlabel: __( 'Link label' ),\n\t\tplaceholder: __( 'None' ),\n\t},\n\tfooter: {\n\t\tlabel: __( 'Briefly describe the link to help screen reader user' ),\n\t},\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tonFocus,\n\tname,\n} ) => {\n\tconst { url, service = name } = attributes;\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ hasUrl, setHasUrl ] = useState( !! url );\n\tconst activeIcon =\n\t\tstyles[ `wp-social-link-${ service }` ] ||\n\t\tstyles[ `wp-social-link` ] ||\n\t\tDEFAULT_ACTIVE_ICON_STYLES;\n\tconst inactiveIcon =\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.inactiveIcon,\n\t\t\tstyles.inactiveIconDark\n\t\t) || DEFAULT_INACTIVE_ICON_STYLES;\n\n\tconst animatedValue = useRef( new Animated.Value( 0 ) ).current;\n\n\tconst IconComponent = getIconBySite( service )();\n\tconst socialLinkName = getNameBySite( service );\n\n\t// When new social icon is added link sheet is opened automatically.\n\tuseEffect( () => {\n\t\tif ( isSelected && ! url ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! url ) {\n\t\t\tsetHasUrl( false );\n\t\t\tanimatedValue.setValue( 0 );\n\t\t} else if ( url ) {\n\t\t\tanimateColors();\n\t\t}\n\t}, [ url ] );\n\n\tconst interpolationColors = {\n\t\tbackgroundColor: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [\n\t\t\t\tinactiveIcon.backgroundColor,\n\t\t\t\tactiveIcon.backgroundColor,\n\t\t\t],\n\t\t} ),\n\t\tcolor: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [ inactiveIcon.color, activeIcon.color ],\n\t\t} ),\n\t\tstroke: '',\n\t};\n\n\tconst { backgroundColor, color, stroke } = hasUrl\n\t\t? activeIcon\n\t\t: interpolationColors;\n\n\tfunction animateColors() {\n\t\tAnimated.sequence( [\n\t\t\tAnimated.delay( ANIMATION_DELAY ),\n\t\t\tAnimated.timing( animatedValue, {\n\t\t\t\ttoValue: 1,\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: Easing.circle,\n\t\t\t\tuseNativeDriver: false,\n\t\t\t} ),\n\t\t] ).start( () => setHasUrl( true ) );\n\t}\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( false );\n\t}, [] );\n\n\tconst onOpenSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( true );\n\t}, [] );\n\n\tconst onEmptyURL = useCallback( () => {\n\t\tanimatedValue.setValue( 0 );\n\t\tsetHasUrl( false );\n\t}, [ animatedValue ] );\n\n\tfunction onIconPress() {\n\t\tif ( isSelected ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tconst accessibilityHint = url\n\t\t? sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has URL set' ),\n\t\t\t\tsocialLinkName\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has no URL set' ),\n\t\t\t\tsocialLinkName\n\t\t );\n\n\treturn (\n\t\t<View style={ styles.container }>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t\t\t\t\t__( 'Add link to %s' ),\n\t\t\t\t\t\t\t\t\tsocialLinkName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onOpenSettingsSheet }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<LinkSettingsNavigation\n\t\t\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\t\t\turl={ attributes.url }\n\t\t\t\t\t\tlabel={ attributes.label }\n\t\t\t\t\t\trel={ attributes.rel }\n\t\t\t\t\t\tonEmptyURL={ onEmptyURL }\n\t\t\t\t\t\tonClose={ onCloseSettingsSheet }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\t\t\twithBottomSheet\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ onIconPress }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t__( '%s social icon' ),\n\t\t\t\t\tsocialLinkName\n\t\t\t\t) }\n\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [ styles.iconContainer, { backgroundColor } ] }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tanimated\n\t\t\t\t\t\ticon={ IconComponent }\n\t\t\t\t\t\tstyle={ { stroke, color } }\n\t\t\t\t\t/>\n\t\t\t\t</Animated.View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\n\t\tconst block = getBlock( clientId );\n\t\tconst name = block?.name.substring( 17 );\n\n\t\treturn {\n\t\t\tname,\n\t\t};\n\t} ),\n] )( SocialLinkEdit );\n"],"mappings":"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"}
@@ -295,7 +295,7 @@ function TableEdit({
295
295
  }, [isSelected]);
296
296
  useEffect(() => {
297
297
  if (hasTableCreated) {
298
- tableRef?.current?.querySelector('td[contentEditable="true"]')?.focus();
298
+ tableRef?.current?.querySelector('td div[contentEditable="true"]')?.focus();
299
299
  setHasTableCreated(false);
300
300
  }
301
301
  }, [hasTableCreated]);
@@ -345,15 +345,15 @@ function TableEdit({
345
345
  align,
346
346
  colspan,
347
347
  rowspan
348
- }, columnIndex) => createElement(RichText, {
349
- tagName: CellTag,
348
+ }, columnIndex) => createElement(CellTag, {
350
349
  key: columnIndex,
351
- className: classnames({
352
- [`has-text-align-${align}`]: align
353
- }, 'wp-block-table__cell-content'),
354
350
  scope: CellTag === 'th' ? scope : undefined,
355
351
  colSpan: colspan,
356
352
  rowSpan: rowspan,
353
+ className: classnames({
354
+ [`has-text-align-${align}`]: align
355
+ }, 'wp-block-table__cell-content')
356
+ }, createElement(RichText, {
357
357
  value: content,
358
358
  onChange: onChange,
359
359
  onFocus: () => {
@@ -366,7 +366,7 @@ function TableEdit({
366
366
  },
367
367
  "aria-label": cellAriaLabel[name],
368
368
  placeholder: placeholder[name]
369
- }))))));
369
+ })))))));
370
370
  const isEmpty = !sections.length;
371
371
  return createElement("figure", {
372
372
  ...useBlockProps({
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useEffect","useRef","useState","InspectorControls","BlockControls","RichText","BlockIcon","AlignmentControl","useBlockProps","__experimentalUseColorProps","useColorProps","__experimentalUseBorderProps","useBorderProps","__experimentalGetElementClassName","__","Button","PanelBody","Placeholder","TextControl","ToggleControl","ToolbarDropdownMenu","__experimentalHasSplitBorders","hasSplitBorders","alignLeft","alignRight","alignCenter","blockTable","icon","tableColumnAfter","tableColumnBefore","tableColumnDelete","tableRowAfter","tableRowBefore","tableRowDelete","table","createBlock","getDefaultBlockName","createTable","updateSelectedCell","getCellAttribute","insertRow","deleteRow","insertColumn","deleteColumn","toggleSection","isEmptyTableSection","ALIGNMENT_CONTROLS","title","align","cellAriaLabel","head","body","foot","placeholder","TSection","name","props","TagName","createElement","TableEdit","attributes","setAttributes","insertBlocksAfter","isSelected","hasFixedLayout","caption","initialRowCount","setInitialRowCount","initialColumnCount","setInitialColumnCount","selectedCell","setSelectedCell","colorProps","borderProps","tableRef","hasTableCreated","setHasTableCreated","onChangeInitialColumnCount","count","onChangeInitialRowCount","onCreateTable","event","preventDefault","rowCount","parseInt","columnCount","onChangeFixedLayout","onChange","content","cellAttributes","onChangeColumnAlignment","columnSelection","type","columnIndex","newAttributes","getCellAlignment","onToggleHeaderSection","onToggleFooterSection","onInsertRow","delta","sectionName","rowIndex","newRowIndex","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","newColumnIndex","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","current","querySelector","focus","sections","filter","tableControls","isDisabled","onClick","renderedSections","map","key","cells","tag","CellTag","scope","colspan","rowspan","tagName","className","undefined","colSpan","rowSpan","value","onFocus","isEmpty","length","ref","Fragment","group","label","alignmentControls","nextAlign","hasArrowIndicator","controls","__nextHasNoMarginBottom","checked","style","border","identifier","__unstableOnSplitAtEnd","showColors","instructions","onSubmit","min","variant"],"sources":["@wordpress/block-library/src/table/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tBlockIcon,\n\tAlignmentControl,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPanelBody,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport {\n\talignLeft,\n\talignRight,\n\talignCenter,\n\tblockTable as icon,\n\ttableColumnAfter,\n\ttableColumnBefore,\n\ttableColumnDelete,\n\ttableRowAfter,\n\ttableRowBefore,\n\ttableRowDelete,\n\ttable,\n} from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateSelectedCell,\n\tgetCellAttribute,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n\ttoggleSection,\n\tisEmptyTableSection,\n} from './state';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align column left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align column center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align column right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst cellAriaLabel = {\n\thead: __( 'Header cell text' ),\n\tbody: __( 'Body cell text' ),\n\tfoot: __( 'Footer cell text' ),\n};\n\nconst placeholder = {\n\thead: __( 'Header label' ),\n\tfoot: __( 'Footer label' ),\n};\n\nfunction TSection( { name, ...props } ) {\n\tconst TagName = `t${ name }`;\n\treturn <TagName { ...props } />;\n}\n\nfunction TableEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tisSelected,\n} ) {\n\tconst { hasFixedLayout, caption, head, foot } = attributes;\n\tconst [ initialRowCount, setInitialRowCount ] = useState( 2 );\n\tconst [ initialColumnCount, setInitialColumnCount ] = useState( 2 );\n\tconst [ selectedCell, setSelectedCell ] = useState();\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} count New initial column count.\n\t */\n\tfunction onChangeInitialColumnCount( count ) {\n\t\tsetInitialColumnCount( count );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} count New initial row count.\n\t */\n\tfunction onChangeInitialRowCount( count ) {\n\t\tsetInitialRowCount( count );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tfunction onCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tsetAttributes(\n\t\t\tcreateTable( {\n\t\t\t\trowCount: parseInt( initialRowCount, 10 ) || 2,\n\t\t\t\tcolumnCount: parseInt( initialColumnCount, 10 ) || 2,\n\t\t\t} )\n\t\t);\n\t\tsetHasTableCreated( true );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tfunction onChangeFixedLayout() {\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tfunction onChange( content ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes(\n\t\t\tupdateSelectedCell(\n\t\t\t\tattributes,\n\t\t\t\tselectedCell,\n\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t...cellAttributes,\n\t\t\t\t\tcontent,\n\t\t\t\t} )\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Align text within the a column.\n\t *\n\t * @param {string} align The new alignment to apply to the column.\n\t */\n\tfunction onChangeColumnAlignment( align ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the cell selection to a column selection so that alignment\n\t\t// is applied to the entire column.\n\t\tconst columnSelection = {\n\t\t\ttype: 'column',\n\t\t\tcolumnIndex: selectedCell.columnIndex,\n\t\t};\n\n\t\tconst newAttributes = updateSelectedCell(\n\t\t\tattributes,\n\t\t\tcolumnSelection,\n\t\t\t( cellAttributes ) => ( {\n\t\t\t\t...cellAttributes,\n\t\t\t\talign,\n\t\t\t} )\n\t\t);\n\t\tsetAttributes( newAttributes );\n\t}\n\n\t/**\n\t * Get the alignment of the currently selected cell.\n\t *\n\t * @return {string | undefined} The new alignment to apply to the column.\n\t */\n\tfunction getCellAlignment() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getCellAttribute( attributes, selectedCell, 'align' );\n\t}\n\n\t/**\n\t * Add or remove a `head` table section.\n\t */\n\tfunction onToggleHeaderSection() {\n\t\tsetAttributes( toggleSection( attributes, 'head' ) );\n\t}\n\n\t/**\n\t * Add or remove a `foot` table section.\n\t */\n\tfunction onToggleFooterSection() {\n\t\tsetAttributes( toggleSection( attributes, 'foot' ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tfunction onInsertRow( delta ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\t\tconst newRowIndex = rowIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertRow( attributes, {\n\t\t\t\tsectionName,\n\t\t\t\trowIndex: newRowIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new row.\n\t\tsetSelectedCell( {\n\t\t\tsectionName,\n\t\t\trowIndex: newRowIndex,\n\t\t\tcolumnIndex: 0,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tfunction onInsertRowBefore() {\n\t\tonInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tfunction onInsertRowAfter() {\n\t\tonInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tfunction onDeleteRow() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes( deleteRow( attributes, { sectionName, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tfunction onInsertColumn( delta = 0 ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { columnIndex } = selectedCell;\n\t\tconst newColumnIndex = columnIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertColumn( attributes, {\n\t\t\t\tcolumnIndex: newColumnIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new column.\n\t\tsetSelectedCell( {\n\t\t\trowIndex: 0,\n\t\t\tcolumnIndex: newColumnIndex,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tfunction onInsertColumnBefore() {\n\t\tonInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tfunction onInsertColumnAfter() {\n\t\tonInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tfunction onDeleteColumn() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, columnIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes(\n\t\t\tdeleteColumn( attributes, { sectionName, columnIndex } )\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tif ( hasTableCreated ) {\n\t\t\ttableRef?.current\n\t\t\t\t?.querySelector( 'td[contentEditable=\"true\"]' )\n\t\t\t\t?.focus();\n\t\t\tsetHasTableCreated( false );\n\t\t}\n\t}, [ hasTableCreated ] );\n\n\tconst sections = [ 'head', 'body', 'foot' ].filter(\n\t\t( name ) => ! isEmptyTableSection( attributes[ name ] )\n\t);\n\n\tconst tableControls = [\n\t\t{\n\t\t\ticon: tableRowBefore,\n\t\t\ttitle: __( 'Insert row before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowAfter,\n\t\t\ttitle: __( 'Insert row after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowDelete,\n\t\t\ttitle: __( 'Delete row' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteRow,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnBefore,\n\t\t\ttitle: __( 'Insert column before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnAfter,\n\t\t\ttitle: __( 'Insert column after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnDelete,\n\t\t\ttitle: __( 'Delete column' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteColumn,\n\t\t},\n\t];\n\n\tconst renderedSections = sections.map( ( name ) => (\n\t\t<TSection name={ name } key={ name }>\n\t\t\t{ attributes[ name ].map( ( { cells }, rowIndex ) => (\n\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\ttag: CellTag,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcolumnIndex\n\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName={ CellTag }\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t{\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\t\t\t\t\t\t\t\t\t'wp-block-table__cell-content'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\t\ttype: 'cell',\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\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\t\t\t\t\tplaceholder={ placeholder[ name ] }\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</tr>\n\t\t\t) ) }\n\t\t</TSection>\n\t) );\n\n\tconst isEmpty = ! sections.length;\n\n\treturn (\n\t\t<figure { ...useBlockProps( { ref: tableRef } ) }>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tlabel={ __( 'Change column alignment' ) }\n\t\t\t\t\t\t\talignmentControls={ ALIGNMENT_CONTROLS }\n\t\t\t\t\t\t\tvalue={ getCellAlignment() }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) =>\n\t\t\t\t\t\t\t\tonChangeColumnAlignment( nextAlign )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\thasArrowIndicator\n\t\t\t\t\t\t\ticon={ table }\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ tableControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\t\tclassName=\"blocks-table-settings\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t\t\t\t\t// This is required in the editor only to overcome\n\t\t\t\t\t\t\t// the fact the editor rewrites individual border\n\t\t\t\t\t\t\t// widths into a shorthand format.\n\t\t\t\t\t\t\t'has-individual-borders': hasSplitBorders(\n\t\t\t\t\t\t\t\tattributes?.style?.border\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\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t{ renderedSections }\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\taria-label={ __( 'Table caption text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\t// Deselect the selected table cell when the caption is focused.\n\t\t\t\t\tonFocus={ () => setSelectedCell() }\n\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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{ isEmpty && (\n\t\t\t\t<Placeholder\n\t\t\t\t\tlabel={ __( 'Table' ) }\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tinstructions={ __( 'Insert a table for sharing data.' ) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"blocks-table__placeholder-form\"\n\t\t\t\t\t\tonSubmit={ onCreateTable }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Column count' ) }\n\t\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialColumnCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Row count' ) }\n\t\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialRowCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create Table' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nexport default TableEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useEffect","useRef","useState","InspectorControls","BlockControls","RichText","BlockIcon","AlignmentControl","useBlockProps","__experimentalUseColorProps","useColorProps","__experimentalUseBorderProps","useBorderProps","__experimentalGetElementClassName","__","Button","PanelBody","Placeholder","TextControl","ToggleControl","ToolbarDropdownMenu","__experimentalHasSplitBorders","hasSplitBorders","alignLeft","alignRight","alignCenter","blockTable","icon","tableColumnAfter","tableColumnBefore","tableColumnDelete","tableRowAfter","tableRowBefore","tableRowDelete","table","createBlock","getDefaultBlockName","createTable","updateSelectedCell","getCellAttribute","insertRow","deleteRow","insertColumn","deleteColumn","toggleSection","isEmptyTableSection","ALIGNMENT_CONTROLS","title","align","cellAriaLabel","head","body","foot","placeholder","TSection","name","props","TagName","createElement","TableEdit","attributes","setAttributes","insertBlocksAfter","isSelected","hasFixedLayout","caption","initialRowCount","setInitialRowCount","initialColumnCount","setInitialColumnCount","selectedCell","setSelectedCell","colorProps","borderProps","tableRef","hasTableCreated","setHasTableCreated","onChangeInitialColumnCount","count","onChangeInitialRowCount","onCreateTable","event","preventDefault","rowCount","parseInt","columnCount","onChangeFixedLayout","onChange","content","cellAttributes","onChangeColumnAlignment","columnSelection","type","columnIndex","newAttributes","getCellAlignment","onToggleHeaderSection","onToggleFooterSection","onInsertRow","delta","sectionName","rowIndex","newRowIndex","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","newColumnIndex","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","current","querySelector","focus","sections","filter","tableControls","isDisabled","onClick","renderedSections","map","key","cells","tag","CellTag","scope","colspan","rowspan","undefined","colSpan","rowSpan","className","value","onFocus","isEmpty","length","ref","Fragment","group","label","alignmentControls","nextAlign","hasArrowIndicator","controls","__nextHasNoMarginBottom","checked","style","border","identifier","tagName","__unstableOnSplitAtEnd","showColors","instructions","onSubmit","min","variant"],"sources":["@wordpress/block-library/src/table/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tBlockIcon,\n\tAlignmentControl,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPanelBody,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport {\n\talignLeft,\n\talignRight,\n\talignCenter,\n\tblockTable as icon,\n\ttableColumnAfter,\n\ttableColumnBefore,\n\ttableColumnDelete,\n\ttableRowAfter,\n\ttableRowBefore,\n\ttableRowDelete,\n\ttable,\n} from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateSelectedCell,\n\tgetCellAttribute,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n\ttoggleSection,\n\tisEmptyTableSection,\n} from './state';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align column left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align column center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align column right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst cellAriaLabel = {\n\thead: __( 'Header cell text' ),\n\tbody: __( 'Body cell text' ),\n\tfoot: __( 'Footer cell text' ),\n};\n\nconst placeholder = {\n\thead: __( 'Header label' ),\n\tfoot: __( 'Footer label' ),\n};\n\nfunction TSection( { name, ...props } ) {\n\tconst TagName = `t${ name }`;\n\treturn <TagName { ...props } />;\n}\n\nfunction TableEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tisSelected,\n} ) {\n\tconst { hasFixedLayout, caption, head, foot } = attributes;\n\tconst [ initialRowCount, setInitialRowCount ] = useState( 2 );\n\tconst [ initialColumnCount, setInitialColumnCount ] = useState( 2 );\n\tconst [ selectedCell, setSelectedCell ] = useState();\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} count New initial column count.\n\t */\n\tfunction onChangeInitialColumnCount( count ) {\n\t\tsetInitialColumnCount( count );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} count New initial row count.\n\t */\n\tfunction onChangeInitialRowCount( count ) {\n\t\tsetInitialRowCount( count );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tfunction onCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tsetAttributes(\n\t\t\tcreateTable( {\n\t\t\t\trowCount: parseInt( initialRowCount, 10 ) || 2,\n\t\t\t\tcolumnCount: parseInt( initialColumnCount, 10 ) || 2,\n\t\t\t} )\n\t\t);\n\t\tsetHasTableCreated( true );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tfunction onChangeFixedLayout() {\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tfunction onChange( content ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes(\n\t\t\tupdateSelectedCell(\n\t\t\t\tattributes,\n\t\t\t\tselectedCell,\n\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t...cellAttributes,\n\t\t\t\t\tcontent,\n\t\t\t\t} )\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Align text within the a column.\n\t *\n\t * @param {string} align The new alignment to apply to the column.\n\t */\n\tfunction onChangeColumnAlignment( align ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the cell selection to a column selection so that alignment\n\t\t// is applied to the entire column.\n\t\tconst columnSelection = {\n\t\t\ttype: 'column',\n\t\t\tcolumnIndex: selectedCell.columnIndex,\n\t\t};\n\n\t\tconst newAttributes = updateSelectedCell(\n\t\t\tattributes,\n\t\t\tcolumnSelection,\n\t\t\t( cellAttributes ) => ( {\n\t\t\t\t...cellAttributes,\n\t\t\t\talign,\n\t\t\t} )\n\t\t);\n\t\tsetAttributes( newAttributes );\n\t}\n\n\t/**\n\t * Get the alignment of the currently selected cell.\n\t *\n\t * @return {string | undefined} The new alignment to apply to the column.\n\t */\n\tfunction getCellAlignment() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getCellAttribute( attributes, selectedCell, 'align' );\n\t}\n\n\t/**\n\t * Add or remove a `head` table section.\n\t */\n\tfunction onToggleHeaderSection() {\n\t\tsetAttributes( toggleSection( attributes, 'head' ) );\n\t}\n\n\t/**\n\t * Add or remove a `foot` table section.\n\t */\n\tfunction onToggleFooterSection() {\n\t\tsetAttributes( toggleSection( attributes, 'foot' ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tfunction onInsertRow( delta ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\t\tconst newRowIndex = rowIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertRow( attributes, {\n\t\t\t\tsectionName,\n\t\t\t\trowIndex: newRowIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new row.\n\t\tsetSelectedCell( {\n\t\t\tsectionName,\n\t\t\trowIndex: newRowIndex,\n\t\t\tcolumnIndex: 0,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tfunction onInsertRowBefore() {\n\t\tonInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tfunction onInsertRowAfter() {\n\t\tonInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tfunction onDeleteRow() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes( deleteRow( attributes, { sectionName, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tfunction onInsertColumn( delta = 0 ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { columnIndex } = selectedCell;\n\t\tconst newColumnIndex = columnIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertColumn( attributes, {\n\t\t\t\tcolumnIndex: newColumnIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new column.\n\t\tsetSelectedCell( {\n\t\t\trowIndex: 0,\n\t\t\tcolumnIndex: newColumnIndex,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tfunction onInsertColumnBefore() {\n\t\tonInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tfunction onInsertColumnAfter() {\n\t\tonInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tfunction onDeleteColumn() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, columnIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes(\n\t\t\tdeleteColumn( attributes, { sectionName, columnIndex } )\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tif ( hasTableCreated ) {\n\t\t\ttableRef?.current\n\t\t\t\t?.querySelector( 'td div[contentEditable=\"true\"]' )\n\t\t\t\t?.focus();\n\t\t\tsetHasTableCreated( false );\n\t\t}\n\t}, [ hasTableCreated ] );\n\n\tconst sections = [ 'head', 'body', 'foot' ].filter(\n\t\t( name ) => ! isEmptyTableSection( attributes[ name ] )\n\t);\n\n\tconst tableControls = [\n\t\t{\n\t\t\ticon: tableRowBefore,\n\t\t\ttitle: __( 'Insert row before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowAfter,\n\t\t\ttitle: __( 'Insert row after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowDelete,\n\t\t\ttitle: __( 'Delete row' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteRow,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnBefore,\n\t\t\ttitle: __( 'Insert column before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnAfter,\n\t\t\ttitle: __( 'Insert column after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnDelete,\n\t\t\ttitle: __( 'Delete column' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteColumn,\n\t\t},\n\t];\n\n\tconst renderedSections = sections.map( ( name ) => (\n\t\t<TSection name={ name } key={ name }>\n\t\t\t{ attributes[ name ].map( ( { cells }, rowIndex ) => (\n\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\ttag: CellTag,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcolumnIndex\n\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t<CellTag\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t{\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\t\t\t\t\t\t\t\t\t'wp-block-table__cell-content'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\t\t\ttype: 'cell',\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\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\t\t\t\t\t\tplaceholder={ placeholder[ name ] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</CellTag>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</tr>\n\t\t\t) ) }\n\t\t</TSection>\n\t) );\n\n\tconst isEmpty = ! sections.length;\n\n\treturn (\n\t\t<figure { ...useBlockProps( { ref: tableRef } ) }>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tlabel={ __( 'Change column alignment' ) }\n\t\t\t\t\t\t\talignmentControls={ ALIGNMENT_CONTROLS }\n\t\t\t\t\t\t\tvalue={ getCellAlignment() }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) =>\n\t\t\t\t\t\t\t\tonChangeColumnAlignment( nextAlign )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\thasArrowIndicator\n\t\t\t\t\t\t\ticon={ table }\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ tableControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\t\tclassName=\"blocks-table-settings\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t\t\t\t\t// This is required in the editor only to overcome\n\t\t\t\t\t\t\t// the fact the editor rewrites individual border\n\t\t\t\t\t\t\t// widths into a shorthand format.\n\t\t\t\t\t\t\t'has-individual-borders': hasSplitBorders(\n\t\t\t\t\t\t\t\tattributes?.style?.border\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\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t{ renderedSections }\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\taria-label={ __( 'Table caption text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\t// Deselect the selected table cell when the caption is focused.\n\t\t\t\t\tonFocus={ () => setSelectedCell() }\n\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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{ isEmpty && (\n\t\t\t\t<Placeholder\n\t\t\t\t\tlabel={ __( 'Table' ) }\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tinstructions={ __( 'Insert a table for sharing data.' ) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"blocks-table__placeholder-form\"\n\t\t\t\t\t\tonSubmit={ onCreateTable }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Column count' ) }\n\t\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialColumnCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Row count' ) }\n\t\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialRowCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create Table' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nexport default TableEdit;\n"],"mappings":"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"}