@wordpress/block-editor 11.0.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +2 -1
  3. package/build/components/alignment-control/ui.js +1 -7
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/use-available-alignments.js +4 -3
  6. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  7. package/build/components/block-icon/index.js +4 -2
  8. package/build/components/block-icon/index.js.map +1 -1
  9. package/build/components/block-inspector/index.js +55 -4
  10. package/build/components/block-inspector/index.js.map +1 -1
  11. package/build/components/block-list-appender/index.js +46 -34
  12. package/build/components/block-list-appender/index.js.map +1 -1
  13. package/build/components/block-list-appender/index.native.js +39 -34
  14. package/build/components/block-list-appender/index.native.js.map +1 -1
  15. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
  16. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  17. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  18. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  19. package/build/components/block-pattern-setup/index.js +14 -7
  20. package/build/components/block-pattern-setup/index.js.map +1 -1
  21. package/build/components/block-styles/index.native.js +1 -3
  22. package/build/components/block-styles/index.native.js.map +1 -1
  23. package/build/components/block-styles/utils.js +7 -10
  24. package/build/components/block-styles/utils.js.map +1 -1
  25. package/build/components/block-toolbar/index.native.js +6 -8
  26. package/build/components/block-toolbar/index.native.js.map +1 -1
  27. package/build/components/block-tools/selected-block-popover.js +1 -3
  28. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  29. package/build/components/block-variation-picker/index.js +1 -1
  30. package/build/components/block-variation-picker/index.js.map +1 -1
  31. package/build/components/colors/utils.js +2 -6
  32. package/build/components/colors/utils.js.map +1 -1
  33. package/build/components/colors-gradients/control.js +0 -3
  34. package/build/components/colors-gradients/control.js.map +1 -1
  35. package/build/components/colors-gradients/dropdown.js +0 -2
  36. package/build/components/colors-gradients/dropdown.js.map +1 -1
  37. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -19
  38. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  39. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -3
  40. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  41. package/build/components/copy-handler/index.js +37 -9
  42. package/build/components/copy-handler/index.js.map +1 -1
  43. package/build/components/font-sizes/fluid-utils.js +5 -2
  44. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  45. package/build/components/font-sizes/utils.js +10 -4
  46. package/build/components/font-sizes/utils.js.map +1 -1
  47. package/build/components/font-sizes/with-font-sizes.js +11 -6
  48. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  49. package/build/components/gradients/use-gradient.js +2 -8
  50. package/build/components/gradients/use-gradient.js.map +1 -1
  51. package/build/components/iframe/index.js +13 -95
  52. package/build/components/iframe/index.js.map +1 -1
  53. package/build/components/iframe/use-compatibility-styles.js +93 -0
  54. package/build/components/iframe/use-compatibility-styles.js.map +1 -0
  55. package/build/components/inner-blocks/index.js +6 -2
  56. package/build/components/inner-blocks/index.js.map +1 -1
  57. package/build/components/inserter/hooks/use-insertion-point.js +4 -3
  58. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  59. package/build/components/inserter/index.js +13 -4
  60. package/build/components/inserter/index.js.map +1 -1
  61. package/build/components/inserter/media-tab/hooks.js +8 -5
  62. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  63. package/build/components/inserter/quick-inserter.js +6 -3
  64. package/build/components/inserter/quick-inserter.js.map +1 -1
  65. package/build/components/inserter/search-items.js +15 -14
  66. package/build/components/inserter/search-items.js.map +1 -1
  67. package/build/components/inserter/search-results.js +4 -2
  68. package/build/components/inserter/search-results.js.map +1 -1
  69. package/build/components/list-view/block-select-button.js +1 -1
  70. package/build/components/list-view/block-select-button.js.map +1 -1
  71. package/build/components/off-canvas-editor/appender.js +21 -26
  72. package/build/components/off-canvas-editor/appender.js.map +1 -1
  73. package/build/components/off-canvas-editor/block-select-button.js +3 -2
  74. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  75. package/build/components/off-canvas-editor/block.js +57 -45
  76. package/build/components/off-canvas-editor/block.js.map +1 -1
  77. package/build/components/off-canvas-editor/index.js +5 -1
  78. package/build/components/off-canvas-editor/index.js.map +1 -1
  79. package/build/components/off-canvas-editor/use-inserted-block.js +58 -0
  80. package/build/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  81. package/build/components/responsive-block-control/label.js.map +1 -1
  82. package/build/components/rich-text/format-edit.js +12 -10
  83. package/build/components/rich-text/format-edit.js.map +1 -1
  84. package/build/components/rich-text/index.js.map +1 -1
  85. package/build/components/rich-text/use-paste-handler.js +21 -12
  86. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  87. package/build/components/spacing-sizes-control/index.js +0 -1
  88. package/build/components/spacing-sizes-control/index.js.map +1 -1
  89. package/build/components/spacing-sizes-control/utils.js +1 -1
  90. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  91. package/build/components/typewriter/index.js +1 -1
  92. package/build/components/typewriter/index.js.map +1 -1
  93. package/build/components/url-popover/image-url-input-ui.js +2 -2
  94. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  95. package/build/components/writing-flow/index.js +1 -1
  96. package/build/components/writing-flow/index.js.map +1 -1
  97. package/build/hooks/border.js +0 -1
  98. package/build/hooks/border.js.map +1 -1
  99. package/build/hooks/color-panel.js +0 -1
  100. package/build/hooks/color-panel.js.map +1 -1
  101. package/build/hooks/color.js +1 -2
  102. package/build/hooks/color.js.map +1 -1
  103. package/build/hooks/font-family.js +4 -4
  104. package/build/hooks/font-family.js.map +1 -1
  105. package/build/hooks/font-size.js +5 -3
  106. package/build/hooks/font-size.js.map +1 -1
  107. package/build/hooks/use-typography-props.js +11 -8
  108. package/build/hooks/use-typography-props.js.map +1 -1
  109. package/build/store/reducer.js +21 -7
  110. package/build/store/reducer.js.map +1 -1
  111. package/build/store/selectors.js +1 -1
  112. package/build/store/selectors.js.map +1 -1
  113. package/build/utils/pasting.js +6 -11
  114. package/build/utils/pasting.js.map +1 -1
  115. package/build-module/components/alignment-control/ui.js +1 -6
  116. package/build-module/components/alignment-control/ui.js.map +1 -1
  117. package/build-module/components/block-alignment-control/use-available-alignments.js +4 -3
  118. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  119. package/build-module/components/block-icon/index.js +4 -2
  120. package/build-module/components/block-icon/index.js.map +1 -1
  121. package/build-module/components/block-inspector/index.js +56 -5
  122. package/build-module/components/block-inspector/index.js.map +1 -1
  123. package/build-module/components/block-list-appender/index.js +46 -34
  124. package/build-module/components/block-list-appender/index.js.map +1 -1
  125. package/build-module/components/block-list-appender/index.native.js +39 -32
  126. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  127. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
  128. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  129. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  130. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  131. package/build-module/components/block-pattern-setup/index.js +14 -7
  132. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  133. package/build-module/components/block-styles/index.native.js +1 -2
  134. package/build-module/components/block-styles/index.native.js.map +1 -1
  135. package/build-module/components/block-styles/utils.js +7 -9
  136. package/build-module/components/block-styles/utils.js.map +1 -1
  137. package/build-module/components/block-toolbar/index.native.js +6 -8
  138. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  139. package/build-module/components/block-tools/selected-block-popover.js +1 -2
  140. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  141. package/build-module/components/block-variation-picker/index.js +1 -1
  142. package/build-module/components/block-variation-picker/index.js.map +1 -1
  143. package/build-module/components/colors/utils.js +3 -7
  144. package/build-module/components/colors/utils.js.map +1 -1
  145. package/build-module/components/colors-gradients/control.js +0 -3
  146. package/build-module/components/colors-gradients/control.js.map +1 -1
  147. package/build-module/components/colors-gradients/dropdown.js +0 -2
  148. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  149. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +4 -19
  150. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  151. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  152. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  153. package/build-module/components/copy-handler/index.js +38 -10
  154. package/build-module/components/copy-handler/index.js.map +1 -1
  155. package/build-module/components/font-sizes/fluid-utils.js +5 -2
  156. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  157. package/build-module/components/font-sizes/utils.js +11 -5
  158. package/build-module/components/font-sizes/utils.js.map +1 -1
  159. package/build-module/components/font-sizes/with-font-sizes.js +12 -7
  160. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  161. package/build-module/components/gradients/use-gradient.js +2 -7
  162. package/build-module/components/gradients/use-gradient.js.map +1 -1
  163. package/build-module/components/iframe/index.js +12 -95
  164. package/build-module/components/iframe/index.js.map +1 -1
  165. package/build-module/components/iframe/use-compatibility-styles.js +85 -0
  166. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -0
  167. package/build-module/components/inner-blocks/index.js +6 -2
  168. package/build-module/components/inner-blocks/index.js.map +1 -1
  169. package/build-module/components/inserter/hooks/use-insertion-point.js +4 -3
  170. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  171. package/build-module/components/inserter/index.js +13 -4
  172. package/build-module/components/inserter/index.js.map +1 -1
  173. package/build-module/components/inserter/media-tab/hooks.js +8 -5
  174. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  175. package/build-module/components/inserter/quick-inserter.js +6 -3
  176. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  177. package/build-module/components/inserter/search-items.js +15 -13
  178. package/build-module/components/inserter/search-items.js.map +1 -1
  179. package/build-module/components/inserter/search-results.js +4 -2
  180. package/build-module/components/inserter/search-results.js.map +1 -1
  181. package/build-module/components/list-view/block-select-button.js +1 -1
  182. package/build-module/components/list-view/block-select-button.js.map +1 -1
  183. package/build-module/components/off-canvas-editor/appender.js +21 -27
  184. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  185. package/build-module/components/off-canvas-editor/block-select-button.js +3 -2
  186. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  187. package/build-module/components/off-canvas-editor/block.js +58 -46
  188. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  189. package/build-module/components/off-canvas-editor/index.js +5 -1
  190. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  191. package/build-module/components/off-canvas-editor/use-inserted-block.js +47 -0
  192. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +1 -0
  193. package/build-module/components/responsive-block-control/label.js +1 -2
  194. package/build-module/components/responsive-block-control/label.js.map +1 -1
  195. package/build-module/components/rich-text/format-edit.js +12 -9
  196. package/build-module/components/rich-text/format-edit.js.map +1 -1
  197. package/build-module/components/rich-text/index.js.map +1 -1
  198. package/build-module/components/rich-text/use-paste-handler.js +22 -12
  199. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  200. package/build-module/components/spacing-sizes-control/index.js +0 -1
  201. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  202. package/build-module/components/spacing-sizes-control/utils.js +1 -1
  203. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  204. package/build-module/components/typewriter/index.js +1 -1
  205. package/build-module/components/typewriter/index.js.map +1 -1
  206. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  207. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  208. package/build-module/components/writing-flow/index.js +1 -1
  209. package/build-module/components/writing-flow/index.js.map +1 -1
  210. package/build-module/hooks/border.js +0 -1
  211. package/build-module/hooks/border.js.map +1 -1
  212. package/build-module/hooks/color-panel.js +0 -1
  213. package/build-module/hooks/color-panel.js.map +1 -1
  214. package/build-module/hooks/color.js +1 -2
  215. package/build-module/hooks/color.js.map +1 -1
  216. package/build-module/hooks/font-family.js +5 -5
  217. package/build-module/hooks/font-family.js.map +1 -1
  218. package/build-module/hooks/font-size.js +5 -3
  219. package/build-module/hooks/font-size.js.map +1 -1
  220. package/build-module/hooks/use-typography-props.js +11 -8
  221. package/build-module/hooks/use-typography-props.js.map +1 -1
  222. package/build-module/store/reducer.js +21 -6
  223. package/build-module/store/reducer.js.map +1 -1
  224. package/build-module/store/selectors.js +2 -2
  225. package/build-module/store/selectors.js.map +1 -1
  226. package/build-module/utils/pasting.js +6 -10
  227. package/build-module/utils/pasting.js.map +1 -1
  228. package/build-style/content-rtl.css +3 -3
  229. package/build-style/content.css +3 -3
  230. package/build-style/default-editor-styles-rtl.css +3 -3
  231. package/build-style/default-editor-styles.css +3 -3
  232. package/build-style/style-rtl.css +35 -11
  233. package/build-style/style.css +35 -11
  234. package/package.json +29 -29
  235. package/src/components/alignment-control/test/index.js +2 -0
  236. package/src/components/alignment-control/ui.js +1 -7
  237. package/src/components/block-alignment-control/test/index.js +2 -0
  238. package/src/components/block-alignment-control/use-available-alignments.js +4 -3
  239. package/src/components/block-icon/index.js +4 -2
  240. package/src/components/block-icon/test/index.js +9 -5
  241. package/src/components/block-inspector/index.js +77 -4
  242. package/src/components/block-inspector/style.scss +7 -0
  243. package/src/components/block-list-appender/index.js +65 -54
  244. package/src/components/block-list-appender/index.native.js +45 -34
  245. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +18 -22
  246. package/src/components/block-mobile-toolbar/index.native.js +1 -1
  247. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +125 -0
  248. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +439 -0
  249. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +42 -0
  250. package/src/components/block-mover/test/index.native.js +157 -1
  251. package/src/components/block-pattern-setup/index.js +15 -6
  252. package/src/components/block-pattern-setup/style.scss +29 -1
  253. package/src/components/block-styles/index.native.js +1 -2
  254. package/src/components/block-styles/utils.js +5 -7
  255. package/src/components/block-switcher/test/index.js +3 -2
  256. package/src/components/block-toolbar/index.native.js +8 -11
  257. package/src/components/block-tools/selected-block-popover.js +1 -3
  258. package/src/components/block-variation-picker/index.js +5 -1
  259. package/src/components/block-vertical-alignment-control/test/index.js +2 -0
  260. package/src/components/colors/test/with-colors.js +2 -0
  261. package/src/components/colors/utils.js +5 -3
  262. package/src/components/colors-gradients/control.js +0 -7
  263. package/src/components/colors-gradients/dropdown.js +0 -2
  264. package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -22
  265. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
  266. package/src/components/copy-handler/index.js +53 -7
  267. package/src/components/default-block-appender/test/index.js +2 -0
  268. package/src/components/font-sizes/fluid-utils.js +7 -1
  269. package/src/components/font-sizes/utils.js +5 -3
  270. package/src/components/font-sizes/with-font-sizes.js +4 -4
  271. package/src/components/gradients/use-gradient.js +2 -7
  272. package/src/components/iframe/index.js +8 -103
  273. package/src/components/iframe/use-compatibility-styles.js +95 -0
  274. package/src/components/image-size-control/test/index.js +147 -79
  275. package/src/components/inner-blocks/index.js +4 -2
  276. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  277. package/src/components/inserter/index.js +15 -2
  278. package/src/components/inserter/media-tab/hooks.js +5 -4
  279. package/src/components/inserter/quick-inserter.js +3 -0
  280. package/src/components/inserter/search-items.js +1 -2
  281. package/src/components/inserter/search-results.js +2 -0
  282. package/src/components/link-control/test/index.js +18 -4
  283. package/src/components/list-view/block-select-button.js +1 -1
  284. package/src/components/list-view/style.scss +1 -7
  285. package/src/components/media-replace-flow/test/index.js +2 -0
  286. package/src/components/off-canvas-editor/appender.js +30 -25
  287. package/src/components/off-canvas-editor/block-select-button.js +6 -2
  288. package/src/components/off-canvas-editor/block.js +93 -76
  289. package/src/components/off-canvas-editor/index.js +9 -0
  290. package/src/components/off-canvas-editor/style.scss +5 -1
  291. package/src/components/off-canvas-editor/test/use-inserted-block.js +108 -0
  292. package/src/components/off-canvas-editor/use-inserted-block.js +47 -0
  293. package/src/components/responsive-block-control/label.js +2 -3
  294. package/src/components/responsive-block-control/test/index.js +4 -2
  295. package/src/components/rich-text/format-edit.js +6 -10
  296. package/src/components/rich-text/index.js +1 -0
  297. package/src/components/rich-text/use-paste-handler.js +33 -14
  298. package/src/components/spacing-sizes-control/index.js +0 -1
  299. package/src/components/spacing-sizes-control/utils.js +1 -1
  300. package/src/components/typewriter/index.js +3 -1
  301. package/src/components/url-input/test/button.js +2 -0
  302. package/src/components/url-popover/image-url-input-ui.js +5 -4
  303. package/src/components/url-popover/test/index.js +21 -5
  304. package/src/components/warning/test/index.js +2 -0
  305. package/src/components/writing-flow/index.js +1 -1
  306. package/src/hooks/border.js +0 -1
  307. package/src/hooks/color-panel.js +0 -1
  308. package/src/hooks/color.js +0 -2
  309. package/src/hooks/font-family.js +3 -5
  310. package/src/hooks/font-size.js +13 -4
  311. package/src/hooks/test/use-typography-props.js +26 -0
  312. package/src/hooks/use-typography-props.js +15 -7
  313. package/src/store/reducer.js +13 -6
  314. package/src/store/selectors.js +2 -3
  315. package/src/utils/pasting.js +3 -9
  316. package/tsconfig.tsbuildinfo +1 -1
  317. package/build/components/colors-gradients/use-common-single-multiple-selects.js +0 -21
  318. package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  319. package/build/components/rich-text/file-paste-handler.js +0 -21
  320. package/build/components/rich-text/file-paste-handler.js.map +0 -1
  321. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  322. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
  323. package/build-module/components/rich-text/file-paste-handler.js +0 -13
  324. package/build-module/components/rich-text/file-paste-handler.js.map +0 -1
  325. package/src/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
  326. package/src/components/rich-text/file-paste-handler.js +0 -13
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.native.js"],"names":["BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","showSeparator","length","styles","blockListAppender","select","getBlockOrder","canInsertBlockType","getTemplateLock","blockEditorStore"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,iBAAT,OAOI;AAAA,MAPwB;AAC3BC,IAAAA,cAD2B;AAE3BC,IAAAA,YAF2B;AAG3BC,IAAAA,qBAH2B;AAI3BC,IAAAA,QAJ2B;AAK3BC,IAAAA,cAAc,EAAEC,cALW;AAM3BC,IAAAA;AAN2B,GAOxB;;AACH,MAAKH,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,MAAKE,cAAL,EAAsB;AACrB,WAAO,4BAAC,cAAD;AAAgB,MAAA,aAAa,EAAGC;AAAhC,MAAP;AACA;;AAED,MAAKJ,qBAAL,EAA6B;AAC5B,WACC,4BAAC,6BAAD;AACC,MAAA,YAAY,EAAGD,YADhB;AAEC,MAAA,iBAAiB,EAChBD,cAAc,CAAEA,cAAc,CAACO,MAAf,GAAwB,CAA1B,CAHhB;AAKC,MAAA,cAAc,EAAGC,eAAOC,iBALzB;AAMC,MAAA,WAAW,EAAGT,cAAc,CAACO,MAAf,GAAwB,CAAxB,GAA4B,EAA5B,GAAiC,IANhD;AAOC,MAAA,aAAa,EAAGD;AAPjB,MADD;AAWA;;AAED,SAAO,IAAP;AACA;;eAEc,sBAAY,CAAEI,MAAF,YAAgC;AAAA,MAAtB;AAAET,IAAAA;AAAF,GAAsB;AAC1D,QAAM;AAAEU,IAAAA,aAAF;AAAiBC,IAAAA,kBAAjB;AAAqCC,IAAAA;AAArC,MACLH,MAAM,CAAEI,YAAF,CADP;AAGA,SAAO;AACNX,IAAAA,QAAQ,EAAE,CAAC,CAAEU,eAAe,CAAEZ,YAAF,CADtB;AAEND,IAAAA,cAAc,EAAEW,aAAa,CAAEV,YAAF,CAFvB;AAGNC,IAAAA,qBAAqB,EAAEU,kBAAkB,CACxC,kCADwC,EAExCX,YAFwC;AAHnC,GAAP;AAQA,CAZc,EAYVF,iBAZU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\tblockClientIds,\n\trootClientId,\n\tcanInsertDefaultBlock,\n\tisLocked,\n\trenderAppender: CustomAppender,\n\tshowSeparator,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\treturn <CustomAppender showSeparator={ showSeparator } />;\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\treturn (\n\t\t\t<DefaultBlockAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tlastBlockClientId={\n\t\t\t\t\tblockClientIds[ blockClientIds.length - 1 ]\n\t\t\t\t}\n\t\t\t\tcontainerStyle={ styles.blockListAppender }\n\t\t\t\tplaceholder={ blockClientIds.length > 0 ? '' : null }\n\t\t\t\tshowSeparator={ showSeparator }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nexport default withSelect( ( select, { rootClientId } ) => {\n\tconst { getBlockOrder, canInsertBlockType, getTemplateLock } =\n\t\tselect( blockEditorStore );\n\n\treturn {\n\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t),\n\t};\n} )( BlockListAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.native.js"],"names":["DefaultAppender","rootClientId","showSeparator","blockClientIds","canInsertDefaultBlock","select","getBlockOrder","canInsertBlockType","blockEditorStore","length","styles","blockListAppender","BlockListAppender","renderAppender","CustomAppender","isLocked","getTemplateLock"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,eAAT,OAA4D;AAAA,MAAlC;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAkC;AAC3D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAA4C,qBAC/CC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QACLF,MAAM,CAAEG,YAAF,CADP;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEG,aAAa,CAAEL,YAAF,CADvB;AAENG,MAAAA,qBAAqB,EAAEG,kBAAkB,CACxC,kCADwC,EAExCN,YAFwC;AAFnC,KAAP;AAOA,GAXgD,EAYjD,CAAEA,YAAF,CAZiD,CAAlD;;AAeA,MAAK,CAAEG,qBAAP,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,6BAAD;AACC,IAAA,YAAY,EAAGH,YADhB;AAEC,IAAA,iBAAiB,EAAGE,cAAc,CAAEA,cAAc,CAACM,MAAf,GAAwB,CAA1B,CAFnC;AAGC,IAAA,cAAc,EAAGC,eAAOC,iBAHzB;AAIC,IAAA,WAAW,EAAGR,cAAc,CAACM,MAAf,GAAwB,CAAxB,GAA4B,EAA5B,GAAiC,IAJhD;AAKC,IAAA,aAAa,EAAGP;AALjB,IADD;AASA;;AAEc,SAASU,iBAAT,QAIX;AAAA,MAJuC;AAC1CX,IAAAA,YAD0C;AAE1CY,IAAAA,cAAc,EAAEC,cAF0B;AAG1CZ,IAAAA;AAH0C,GAIvC;AACH,QAAMa,QAAQ,GAAG,qBACdV,MAAF,IACC,CAAC,CAAEA,MAAM,CAAEG,YAAF,CAAN,CAA2BQ,eAA3B,CAA4Cf,YAA5C,CAFY,EAGhB,CAAEA,YAAF,CAHgB,CAAjB;;AAMA,MAAKc,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,MAAKD,cAAL,EAAsB;AACrB,WAAO,4BAAC,cAAD;AAAgB,MAAA,aAAa,EAAGZ;AAAhC,MAAP;AACA;;AAED,SACC,4BAAC,eAAD;AACC,IAAA,YAAY,EAAGD,YADhB;AAEC,IAAA,aAAa,EAAGC;AAFjB,IADD;AAMA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId, showSeparator } ) {\n\tconst { blockClientIds, canInsertDefaultBlock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\t\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\t\t\tgetDefaultBlockName(),\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( ! canInsertDefaultBlock ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DefaultBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tlastBlockClientId={ blockClientIds[ blockClientIds.length - 1 ] }\n\t\t\tcontainerStyle={ styles.blockListAppender }\n\t\t\tplaceholder={ blockClientIds.length > 0 ? '' : null }\n\t\t\tshowSeparator={ showSeparator }\n\t\t/>\n\t);\n}\n\nexport default function BlockListAppender( {\n\trootClientId,\n\trenderAppender: CustomAppender,\n\tshowSeparator,\n} ) {\n\tconst isLocked = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t[ rootClientId ]\n\t);\n\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\treturn <CustomAppender showSeparator={ showSeparator } />;\n\t}\n\n\treturn (\n\t\t<DefaultAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tshowSeparator={ showSeparator }\n\t\t/>\n\t);\n}\n"]}
@@ -244,6 +244,7 @@ const BlockActionsMenu = _ref => {
244
244
  hint: accessibilityHint
245
245
  }
246
246
  }), (0, _element.createElement)(_components.Picker, {
247
+ testID: "block-actions-menu",
247
248
  ref: blockActionsMenuPickerRef,
248
249
  options: options,
249
250
  onChange: onPickerSelect,
@@ -268,7 +269,7 @@ const EMPTY_BLOCK_LIST = [];
268
269
 
269
270
  var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
270
271
  let {
271
- clientIds
272
+ clientId
272
273
  } = _ref2;
273
274
  const {
274
275
  getBlockIndex,
@@ -282,17 +283,16 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
282
283
  canInsertBlockType,
283
284
  getTemplateLock
284
285
  } = select(_store.store);
285
- const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
286
- const block = getBlock(normalizedClientIds);
287
- const blockName = getBlockName(normalizedClientIds);
286
+ const block = getBlock(clientId);
287
+ const blockName = getBlockName(clientId);
288
288
  const blockType = (0, _blocks.getBlockType)(blockName);
289
289
  const blockTitle = blockType === null || blockType === void 0 ? void 0 : blockType.title;
290
- const firstClientId = normalizedClientIds[0];
291
- const rootClientId = getBlockRootClientId(firstClientId);
290
+ const rootClientId = getBlockRootClientId(clientId);
292
291
  const blockOrder = getBlockOrder(rootClientId);
293
- const firstIndex = getBlockIndex(firstClientId);
294
- const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
295
- const innerBlocks = getBlocksByClientId(clientIds);
292
+ const currentBlockIndex = getBlockIndex(clientId);
293
+ const isFirst = currentBlockIndex === 0;
294
+ const isLast = currentBlockIndex === blockOrder.length - 1;
295
+ const innerBlocks = getBlocksByClientId(clientId);
296
296
  const canDuplicate = innerBlocks.every(innerBlock => {
297
297
  return !!innerBlock && (0, _blocks.hasBlockSupport)(innerBlock.name, 'multiple', true) && canInsertBlockType(innerBlock.name, rootClientId);
298
298
  });
@@ -309,13 +309,13 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
309
309
  return {
310
310
  blockTitle,
311
311
  canInsertBlockType,
312
- currentIndex: firstIndex,
312
+ currentIndex: currentBlockIndex,
313
313
  getBlocksByClientId,
314
314
  isEmptyDefaultBlock,
315
315
  isLocked,
316
316
  canDuplicate,
317
- isFirst: firstIndex === 0,
318
- isLast: lastIndex === blockOrder.length - 1,
317
+ isFirst,
318
+ isLast,
319
319
  isReusableBlockType,
320
320
  reusableBlock,
321
321
  rootClientId,
@@ -324,7 +324,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
324
324
  };
325
325
  }), (0, _data.withDispatch)((dispatch, _ref3, _ref4) => {
326
326
  let {
327
- clientIds,
327
+ clientId,
328
328
  rootClientId,
329
329
  currentIndex,
330
330
  selectedBlockClientId
@@ -338,7 +338,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
338
338
  duplicateBlocks,
339
339
  removeBlocks,
340
340
  insertBlock,
341
- replaceBlocks,
341
+ replaceBlock,
342
342
  clearSelectedBlock
343
343
  } = dispatch(_store.store);
344
344
  const {
@@ -365,7 +365,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
365
365
  },
366
366
 
367
367
  duplicateBlock() {
368
- return duplicateBlocks(clientIds);
368
+ return duplicateBlocks([clientId]);
369
369
  },
370
370
 
371
371
  onMoveDown: function () {
@@ -373,14 +373,14 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
373
373
  args[_key] = arguments[_key];
374
374
  }
375
375
 
376
- return moveBlocksDown(clientIds, rootClientId, ...args);
376
+ return moveBlocksDown([clientId], rootClientId, ...args);
377
377
  },
378
378
  onMoveUp: function () {
379
379
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
380
380
  args[_key2] = arguments[_key2];
381
381
  }
382
382
 
383
- return moveBlocksUp(clientIds, rootClientId, ...args);
383
+ return moveBlocksUp([clientId], rootClientId, ...args);
384
384
  },
385
385
  openGeneralSidebar: () => openGeneralSidebar('edit-post/block'),
386
386
  pasteBlock: clipboardBlock => {
@@ -390,7 +390,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
390
390
  const insertedBlock = (0, _blocks.createBlock)(clipboardBlock.name, clipboardBlock.attributes, clipboardBlock.innerBlocks);
391
391
  insertBlock(insertedBlock, currentIndex + 1, rootClientId);
392
392
  } else {
393
- replaceBlocks(clientIds, clipboardBlock);
393
+ replaceBlock(clientId, clipboardBlock);
394
394
  }
395
395
  },
396
396
  removeBlocks
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","innerBlockCount","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","title","raw","options","length","filter","Boolean","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","undefined","hint","EMPTY_BLOCK_LIST","clientIds","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","normalizedClientIds","Array","isArray","block","blockName","blockType","firstClientId","blockOrder","firstIndex","lastIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlocks","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t: __( 'Convert to regular block' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst successNotice =\n\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular block' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst block = getBlock( normalizedClientIds );\n\t\tconst blockName = getBlockName( normalizedClientIds );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\tconst innerBlocks = getBlocksByClientId( clientIds );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: firstIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientIds, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlocks,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( clientIds );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlocks( clientIds, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","innerBlockCount","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","title","raw","options","length","filter","Boolean","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","undefined","hint","EMPTY_BLOCK_LIST","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t: __( 'Convert to regular block' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst successNotice =\n\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular block' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\ttestID=\"block-actions-menu\"\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlock,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlock( clientId, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
@@ -106,7 +106,7 @@ const BlockMobileToolbar = _ref => {
106
106
  }, wrapBlockSettings ? null : fills[0])
107
107
  );
108
108
  }), (0, _element.createElement)(_blockActionsMenu.default, {
109
- clientIds: [clientId],
109
+ clientId: clientId,
110
110
  wrapBlockMover: wrapBlockMover,
111
111
  wrapBlockSettings: wrapBlockSettings && fillsLength,
112
112
  isStackedHorizontally: isStackedHorizontally,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/index.native.js"],"names":["BREAKPOINTS","wrapSettings","wrapMover","BlockMobileToolbar","clientId","onDelete","isStackedHorizontally","blockWidth","anchorNodeRef","isFullWidth","draggingClientId","fillsLength","setFillsLength","appenderWidth","setAppenderWidth","spacingValue","styles","toolbar","marginLeft","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","wrapBlockSettings","wrapBlockMover","BlockSettingsButtonFill","fillProps","onChangeFillsLength","children","toolbarFullWidth","spacer","fills","length","select","getBlockIndex","blockEditorStore","order","dispatch","rootClientId","removeBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockMover from '../block-mover';\nimport BlockDraggable from '../block-draggable';\nimport BlockActionsMenu from './block-actions-menu';\nimport { BlockSettingsButton } from '../block-settings';\nimport { store as blockEditorStore } from '../../store';\n\n// Defined breakpoints are used to get a point when\n// `settings` and `mover` controls should be wrapped into `BlockActionsMenu`\n// and accessed through `BottomSheet`(Android)/`ActionSheet`(iOS).\nconst BREAKPOINTS = {\n\twrapSettings: 65,\n\twrapMover: 150,\n};\nconst BlockMobileToolbar = ( {\n\tclientId,\n\tonDelete,\n\tisStackedHorizontally,\n\tblockWidth,\n\tanchorNodeRef,\n\tisFullWidth,\n\tdraggingClientId,\n} ) => {\n\tconst [ fillsLength, setFillsLength ] = useState( null );\n\tconst [ appenderWidth, setAppenderWidth ] = useState( 0 );\n\tconst spacingValue = styles.toolbar.marginLeft * 2;\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( layoutWidth !== appenderWidth ) {\n\t\t\tsetAppenderWidth( nativeEvent.layout.width );\n\t\t}\n\t}\n\n\tconst wrapBlockSettings =\n\t\tblockWidth < BREAKPOINTS.wrapSettings ||\n\t\tappenderWidth - spacingValue < BREAKPOINTS.wrapSettings;\n\tconst wrapBlockMover =\n\t\tblockWidth <= BREAKPOINTS.wrapMover ||\n\t\tappenderWidth - spacingValue <= BREAKPOINTS.wrapMover;\n\n\tconst BlockSettingsButtonFill = ( fillProps ) => {\n\t\tuseEffect(\n\t\t\t() => fillProps.onChangeFillsLength( fillProps.fillsLength ),\n\t\t\t[ fillProps.fillsLength ]\n\t\t);\n\t\treturn fillProps.children ?? null;\n\t};\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [ styles.toolbar, isFullWidth && styles.toolbarFullWidth ] }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t{ ! wrapBlockMover && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\ttestID=\"draggable-trigger-mobile-toolbar\"\n\t\t\t>\n\t\t\t\t{ () => <View style={ styles.spacer } /> }\n\t\t\t</BlockDraggable>\n\n\t\t\t<BlockSettingsButton.Slot>\n\t\t\t\t{ /* Render only one settings icon even if we have more than one fill - need for hooks with controls. */ }\n\t\t\t\t{ ( fills = [ null ] ) => (\n\t\t\t\t\t// The purpose of BlockSettingsButtonFill component is only to provide a way\n\t\t\t\t\t// to pass data upstream from the slot rendering.\n\t\t\t\t\t<BlockSettingsButtonFill\n\t\t\t\t\t\tfillsLength={ fills.length }\n\t\t\t\t\t\tonChangeFillsLength={ setFillsLength }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ wrapBlockSettings ? null : fills[ 0 ] }\n\t\t\t\t\t</BlockSettingsButtonFill>\n\t\t\t\t) }\n\t\t\t</BlockSettingsButton.Slot>\n\n\t\t\t<BlockActionsMenu\n\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\twrapBlockMover={ wrapBlockMover }\n\t\t\t\twrapBlockSettings={ wrapBlockSettings && fillsLength }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\tonDelete={ onDelete }\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockIndex } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\torder: getBlockIndex( clientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientId, rootClientId, onDelete } ) => {\n\t\tconst { removeBlock } = dispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonDelete:\n\t\t\t\tonDelete || ( () => removeBlock( clientId, rootClientId ) ),\n\t\t};\n\t} )\n)( BlockMobileToolbar );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/index.native.js"],"names":["BREAKPOINTS","wrapSettings","wrapMover","BlockMobileToolbar","clientId","onDelete","isStackedHorizontally","blockWidth","anchorNodeRef","isFullWidth","draggingClientId","fillsLength","setFillsLength","appenderWidth","setAppenderWidth","spacingValue","styles","toolbar","marginLeft","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","wrapBlockSettings","wrapBlockMover","BlockSettingsButtonFill","fillProps","onChangeFillsLength","children","toolbarFullWidth","spacer","fills","length","select","getBlockIndex","blockEditorStore","order","dispatch","rootClientId","removeBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockMover from '../block-mover';\nimport BlockDraggable from '../block-draggable';\nimport BlockActionsMenu from './block-actions-menu';\nimport { BlockSettingsButton } from '../block-settings';\nimport { store as blockEditorStore } from '../../store';\n\n// Defined breakpoints are used to get a point when\n// `settings` and `mover` controls should be wrapped into `BlockActionsMenu`\n// and accessed through `BottomSheet`(Android)/`ActionSheet`(iOS).\nconst BREAKPOINTS = {\n\twrapSettings: 65,\n\twrapMover: 150,\n};\nconst BlockMobileToolbar = ( {\n\tclientId,\n\tonDelete,\n\tisStackedHorizontally,\n\tblockWidth,\n\tanchorNodeRef,\n\tisFullWidth,\n\tdraggingClientId,\n} ) => {\n\tconst [ fillsLength, setFillsLength ] = useState( null );\n\tconst [ appenderWidth, setAppenderWidth ] = useState( 0 );\n\tconst spacingValue = styles.toolbar.marginLeft * 2;\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( layoutWidth !== appenderWidth ) {\n\t\t\tsetAppenderWidth( nativeEvent.layout.width );\n\t\t}\n\t}\n\n\tconst wrapBlockSettings =\n\t\tblockWidth < BREAKPOINTS.wrapSettings ||\n\t\tappenderWidth - spacingValue < BREAKPOINTS.wrapSettings;\n\tconst wrapBlockMover =\n\t\tblockWidth <= BREAKPOINTS.wrapMover ||\n\t\tappenderWidth - spacingValue <= BREAKPOINTS.wrapMover;\n\n\tconst BlockSettingsButtonFill = ( fillProps ) => {\n\t\tuseEffect(\n\t\t\t() => fillProps.onChangeFillsLength( fillProps.fillsLength ),\n\t\t\t[ fillProps.fillsLength ]\n\t\t);\n\t\treturn fillProps.children ?? null;\n\t};\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [ styles.toolbar, isFullWidth && styles.toolbarFullWidth ] }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t{ ! wrapBlockMover && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\ttestID=\"draggable-trigger-mobile-toolbar\"\n\t\t\t>\n\t\t\t\t{ () => <View style={ styles.spacer } /> }\n\t\t\t</BlockDraggable>\n\n\t\t\t<BlockSettingsButton.Slot>\n\t\t\t\t{ /* Render only one settings icon even if we have more than one fill - need for hooks with controls. */ }\n\t\t\t\t{ ( fills = [ null ] ) => (\n\t\t\t\t\t// The purpose of BlockSettingsButtonFill component is only to provide a way\n\t\t\t\t\t// to pass data upstream from the slot rendering.\n\t\t\t\t\t<BlockSettingsButtonFill\n\t\t\t\t\t\tfillsLength={ fills.length }\n\t\t\t\t\t\tonChangeFillsLength={ setFillsLength }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ wrapBlockSettings ? null : fills[ 0 ] }\n\t\t\t\t\t</BlockSettingsButtonFill>\n\t\t\t\t) }\n\t\t\t</BlockSettingsButton.Slot>\n\n\t\t\t<BlockActionsMenu\n\t\t\t\tclientId={ clientId }\n\t\t\t\twrapBlockMover={ wrapBlockMover }\n\t\t\t\twrapBlockSettings={ wrapBlockSettings && fillsLength }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\tonDelete={ onDelete }\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockIndex } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\torder: getBlockIndex( clientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientId, rootClientId, onDelete } ) => {\n\t\tconst { removeBlock } = dispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonDelete:\n\t\t\t\tonDelete || ( () => removeBlock( clientId, rootClientId ) ),\n\t\t};\n\t} )\n)( BlockMobileToolbar );\n"]}
@@ -43,7 +43,8 @@ const SetupContent = _ref => {
43
43
  viewMode,
44
44
  activeSlide,
45
45
  patterns,
46
- onBlockPatternSelect
46
+ onBlockPatternSelect,
47
+ showTitles
47
48
  } = _ref;
48
49
  const composite = (0, _components.__unstableUseCompositeState)();
49
50
  const containerClass = 'block-editor-block-pattern-setup__container';
@@ -73,7 +74,8 @@ const SetupContent = _ref => {
73
74
  key: pattern.name,
74
75
  pattern: pattern,
75
76
  onSelect: onBlockPatternSelect,
76
- composite: composite
77
+ composite: composite,
78
+ showTitles: showTitles
77
79
  }))));
78
80
  };
79
81
 
@@ -81,7 +83,8 @@ function BlockPattern(_ref2) {
81
83
  let {
82
84
  pattern,
83
85
  onSelect,
84
- composite
86
+ composite,
87
+ showTitles
85
88
  } = _ref2;
86
89
  const baseClassName = 'block-editor-block-pattern-setup-list';
87
90
  const {
@@ -103,9 +106,11 @@ function BlockPattern(_ref2) {
103
106
  }), (0, _element.createElement)(_blockPreview.default, {
104
107
  blocks: blocks,
105
108
  viewportWidth: viewportWidth
106
- })), !!description && (0, _element.createElement)(_components.VisuallyHidden, {
109
+ }), showTitles && (0, _element.createElement)("div", {
110
+ className: `${baseClassName}__item-title`
111
+ }, pattern.title), !!description && (0, _element.createElement)(_components.VisuallyHidden, {
107
112
  id: descriptionId
108
- }, description));
113
+ }, description)));
109
114
  }
110
115
 
111
116
  function BlockPatternSlide(_ref3) {
@@ -138,7 +143,8 @@ const BlockPatternSetup = _ref4 => {
138
143
  blockName,
139
144
  filterPatternsFn,
140
145
  onBlockPatternSelect,
141
- initialViewMode = _constants.VIEWMODES.carousel
146
+ initialViewMode = _constants.VIEWMODES.carousel,
147
+ showTitles = false
142
148
  } = _ref4;
143
149
  const [viewMode, setViewMode] = (0, _element.useState)(initialViewMode);
144
150
  const [activeSlide, setActiveSlide] = (0, _element.useState)(0);
@@ -163,7 +169,8 @@ const BlockPatternSetup = _ref4 => {
163
169
  viewMode: viewMode,
164
170
  activeSlide: activeSlide,
165
171
  patterns: patterns,
166
- onBlockPatternSelect: onPatternSelectCallback
172
+ onBlockPatternSelect: onPatternSelectCallback,
173
+ showTitles: showTitles
167
174
  }), (0, _element.createElement)(_setupToolbar.default, {
168
175
  viewMode: viewMode,
169
176
  setViewMode: setViewMode,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","composite","containerClass","VIEWMODES","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","initialViewMode","setViewMode","setActiveSlide","replaceBlock","blockEditorStore","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n\tinitialViewMode = VIEWMODES.carousel,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( initialViewMode );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","showTitles","composite","containerClass","VIEWMODES","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","initialViewMode","setViewMode","setActiveSlide","replaceBlock","blockEditorStore","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n\tshowTitles,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite, showTitles } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t\t{ showTitles && (\n\t\t\t\t\t<div className={ `${ baseClassName }__item-title` }>\n\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ !! description && (\n\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</CompositeItem>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n\tinitialViewMode = VIEWMODES.carousel,\n\tshowTitles = false,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( initialViewMode );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _blocks = require("@wordpress/blocks");
17
15
 
18
16
  var _data = require("@wordpress/data");
@@ -65,7 +63,7 @@ function BlockStyles(_ref) {
65
63
  const {
66
64
  updateBlockAttributes
67
65
  } = (0, _data.useDispatch)(_store.store);
68
- const renderedStyles = (0, _lodash.find)(styles, 'isDefault') ? styles : [{
66
+ const renderedStyles = styles !== null && styles !== void 0 && styles.find(style => style.isDefault) ? styles : [{
69
67
  name: 'default',
70
68
  label: (0, _i18n._x)('Default', 'block style'),
71
69
  isDefault: true
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/index.native.js"],"names":["BlockStyles","clientId","url","selector","select","getBlock","blockEditorStore","getBlockStyles","blocksStore","block","styles","name","className","attributes","updateBlockAttributes","renderedStyles","label","isDefault","mappedRenderedStyles","activeStyle","map","style","styleClassName","isActive","onStylePress","length","containerStyles","content"],"mappings":";;;;;;;;;AAWA;;AARA;;AACA;;AAKA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;AApBA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA;AACA;AAMA,SAASA,WAAT,OAA0C;AAAA,MAApB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAoB;;AACzC,QAAMC,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEE,YAAF,CAA3B;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAqBH,MAAM,CAAEI,aAAF,CAAjC;AACA,UAAMC,KAAK,GAAGJ,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNS,MAAAA,MAAM,EAAEH,cAAc,CAAEE,KAAK,CAACE,IAAR,CADhB;AAENC,MAAAA,SAAS,EAAEH,KAAK,CAACI,UAAN,CAAiBD,SAAjB,IAA8B;AAFnC,KAAP;AAIA,GARD;;AAUA,QAAM;AAAEF,IAAAA,MAAF;AAAUE,IAAAA;AAAV,MAAwB,qBAAWT,QAAX,EAAqB,CAAEF,QAAF,CAArB,CAA9B;AAEA,QAAM;AAAEa,IAAAA;AAAF,MAA4B,uBAAaR,YAAb,CAAlC;AAEA,QAAMS,cAAc,GAAG,kBAAML,MAAN,EAAc,WAAd,IACpBA,MADoB,GAEpB,CACA;AACCC,IAAAA,IAAI,EAAE,SADP;AAECK,IAAAA,KAAK,EAAE,cAAI,SAAJ,EAAe,aAAf,CAFR;AAGCC,IAAAA,SAAS,EAAE;AAHZ,GADA,EAMA,GAAGP,MANH,CAFH;AAWA,QAAMQ,oBAAoB,GAAG,sBAAS,MAAM;AAC3C,UAAMC,WAAW,GAAG,2BAAgBJ,cAAhB,EAAgCH,SAAhC,CAApB;AAEA,WAAOG,cAAc,CAACK,GAAf,CAAsBC,KAAF,IAAa;AACvC,YAAMC,cAAc,GAAG,+BACtBV,SADsB,EAEtBO,WAFsB,EAGtBE,KAHsB,CAAvB;AAKA,YAAME,QAAQ,GAAGJ,WAAW,KAAKE,KAAjC;;AAEA,YAAMG,YAAY,GAAG,MAAM;AAC1BV,QAAAA,qBAAqB,CAAEb,QAAF,EAAY;AAChCW,UAAAA,SAAS,EAAEU;AADqB,SAAZ,CAArB;AAGA,OAJD;;AAMA,aACC,4BAAC,gBAAD;AACC,QAAA,OAAO,EAAGE,YADX;AAEC,QAAA,QAAQ,EAAGD,QAFZ;AAGC,QAAA,GAAG,EAAGF,KAAK,CAACV,IAHb;AAIC,QAAA,KAAK,EAAGU,KAJT;AAKC,QAAA,GAAG,EAAGnB;AALP,QADD;AASA,KAvBM,CAAP;AAwBA,GA3B4B,EA2B1B,CAAEa,cAAF,EAAkBH,SAAlB,EAA6BX,QAA7B,CA3B0B,CAA7B;;AA6BA,MAAK,CAAES,MAAF,IAAYA,MAAM,CAACe,MAAP,KAAkB,CAAnC,EAAuC;AACtC,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,uBAAD;AACC,IAAA,UAAU,MADX;AAEC,IAAA,8BAA8B,EAAG,KAFlC;AAGC,IAAA,qBAAqB,EAAGC,eAAgBC;AAHzC,KAKGT,oBALH,CADD;AASA;;eAEclB,W","sourcesContent":["/**\n * External dependencies\n */\nimport { ScrollView } from 'react-native';\nimport { find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getActiveStyle, replaceActiveStyle } from './utils';\nimport StylePreview from './preview';\nimport containerStyles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockStyles( { clientId, url } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst block = getBlock( clientId );\n\t\treturn {\n\t\t\tstyles: getBlockStyles( block.name ),\n\t\t\tclassName: block.attributes.className || '',\n\t\t};\n\t};\n\n\tconst { styles, className } = useSelect( selector, [ clientId ] );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst renderedStyles = find( styles, 'isDefault' )\n\t\t? styles\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tname: 'default',\n\t\t\t\t\tlabel: _x( 'Default', 'block style' ),\n\t\t\t\t\tisDefault: true,\n\t\t\t\t},\n\t\t\t\t...styles,\n\t\t ];\n\n\tconst mappedRenderedStyles = useMemo( () => {\n\t\tconst activeStyle = getActiveStyle( renderedStyles, className );\n\n\t\treturn renderedStyles.map( ( style ) => {\n\t\t\tconst styleClassName = replaceActiveStyle(\n\t\t\t\tclassName,\n\t\t\t\tactiveStyle,\n\t\t\t\tstyle\n\t\t\t);\n\t\t\tconst isActive = activeStyle === style;\n\n\t\t\tconst onStylePress = () => {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tclassName: styleClassName,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<StylePreview\n\t\t\t\t\tonPress={ onStylePress }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tkey={ style.name }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\turl={ url }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ renderedStyles, className, clientId ] );\n\n\tif ( ! styles || styles.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ScrollView\n\t\t\thorizontal\n\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\tcontentContainerStyle={ containerStyles.content }\n\t\t>\n\t\t\t{ mappedRenderedStyles }\n\t\t</ScrollView>\n\t);\n}\n\nexport default BlockStyles;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/index.native.js"],"names":["BlockStyles","clientId","url","selector","select","getBlock","blockEditorStore","getBlockStyles","blocksStore","block","styles","name","className","attributes","updateBlockAttributes","renderedStyles","find","style","isDefault","label","mappedRenderedStyles","activeStyle","map","styleClassName","isActive","onStylePress","length","containerStyles","content"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAKA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;AAnBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAMA,SAASA,WAAT,OAA0C;AAAA,MAApB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAoB;;AACzC,QAAMC,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEE,YAAF,CAA3B;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAqBH,MAAM,CAAEI,aAAF,CAAjC;AACA,UAAMC,KAAK,GAAGJ,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNS,MAAAA,MAAM,EAAEH,cAAc,CAAEE,KAAK,CAACE,IAAR,CADhB;AAENC,MAAAA,SAAS,EAAEH,KAAK,CAACI,UAAN,CAAiBD,SAAjB,IAA8B;AAFnC,KAAP;AAIA,GARD;;AAUA,QAAM;AAAEF,IAAAA,MAAF;AAAUE,IAAAA;AAAV,MAAwB,qBAAWT,QAAX,EAAqB,CAAEF,QAAF,CAArB,CAA9B;AAEA,QAAM;AAAEa,IAAAA;AAAF,MAA4B,uBAAaR,YAAb,CAAlC;AAEA,QAAMS,cAAc,GAAGL,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEM,IAAR,CAAgBC,KAAF,IAAaA,KAAK,CAACC,SAAjC,IACpBR,MADoB,GAEpB,CACA;AACCC,IAAAA,IAAI,EAAE,SADP;AAECQ,IAAAA,KAAK,EAAE,cAAI,SAAJ,EAAe,aAAf,CAFR;AAGCD,IAAAA,SAAS,EAAE;AAHZ,GADA,EAMA,GAAGR,MANH,CAFH;AAWA,QAAMU,oBAAoB,GAAG,sBAAS,MAAM;AAC3C,UAAMC,WAAW,GAAG,2BAAgBN,cAAhB,EAAgCH,SAAhC,CAApB;AAEA,WAAOG,cAAc,CAACO,GAAf,CAAsBL,KAAF,IAAa;AACvC,YAAMM,cAAc,GAAG,+BACtBX,SADsB,EAEtBS,WAFsB,EAGtBJ,KAHsB,CAAvB;AAKA,YAAMO,QAAQ,GAAGH,WAAW,KAAKJ,KAAjC;;AAEA,YAAMQ,YAAY,GAAG,MAAM;AAC1BX,QAAAA,qBAAqB,CAAEb,QAAF,EAAY;AAChCW,UAAAA,SAAS,EAAEW;AADqB,SAAZ,CAArB;AAGA,OAJD;;AAMA,aACC,4BAAC,gBAAD;AACC,QAAA,OAAO,EAAGE,YADX;AAEC,QAAA,QAAQ,EAAGD,QAFZ;AAGC,QAAA,GAAG,EAAGP,KAAK,CAACN,IAHb;AAIC,QAAA,KAAK,EAAGM,KAJT;AAKC,QAAA,GAAG,EAAGf;AALP,QADD;AASA,KAvBM,CAAP;AAwBA,GA3B4B,EA2B1B,CAAEa,cAAF,EAAkBH,SAAlB,EAA6BX,QAA7B,CA3B0B,CAA7B;;AA6BA,MAAK,CAAES,MAAF,IAAYA,MAAM,CAACgB,MAAP,KAAkB,CAAnC,EAAuC;AACtC,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,uBAAD;AACC,IAAA,UAAU,MADX;AAEC,IAAA,8BAA8B,EAAG,KAFlC;AAGC,IAAA,qBAAqB,EAAGC,eAAgBC;AAHzC,KAKGR,oBALH,CADD;AASA;;eAEcpB,W","sourcesContent":["/**\n * External dependencies\n */\nimport { ScrollView } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getActiveStyle, replaceActiveStyle } from './utils';\nimport StylePreview from './preview';\nimport containerStyles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockStyles( { clientId, url } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst block = getBlock( clientId );\n\t\treturn {\n\t\t\tstyles: getBlockStyles( block.name ),\n\t\t\tclassName: block.attributes.className || '',\n\t\t};\n\t};\n\n\tconst { styles, className } = useSelect( selector, [ clientId ] );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst renderedStyles = styles?.find( ( style ) => style.isDefault )\n\t\t? styles\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tname: 'default',\n\t\t\t\t\tlabel: _x( 'Default', 'block style' ),\n\t\t\t\t\tisDefault: true,\n\t\t\t\t},\n\t\t\t\t...styles,\n\t\t ];\n\n\tconst mappedRenderedStyles = useMemo( () => {\n\t\tconst activeStyle = getActiveStyle( renderedStyles, className );\n\n\t\treturn renderedStyles.map( ( style ) => {\n\t\t\tconst styleClassName = replaceActiveStyle(\n\t\t\t\tclassName,\n\t\t\t\tactiveStyle,\n\t\t\t\tstyle\n\t\t\t);\n\t\t\tconst isActive = activeStyle === style;\n\n\t\t\tconst onStylePress = () => {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tclassName: styleClassName,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<StylePreview\n\t\t\t\t\tonPress={ onStylePress }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tkey={ style.name }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\turl={ url }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ renderedStyles, className, clientId ] );\n\n\tif ( ! styles || styles.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ScrollView\n\t\t\thorizontal\n\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\tcontentContainerStyle={ containerStyles.content }\n\t\t>\n\t\t\t{ mappedRenderedStyles }\n\t\t</ScrollView>\n\t);\n}\n\nexport default BlockStyles;\n"]}
@@ -10,16 +10,10 @@ exports.getDefaultStyle = getDefaultStyle;
10
10
  exports.getRenderedStyles = getRenderedStyles;
11
11
  exports.replaceActiveStyle = replaceActiveStyle;
12
12
 
13
- var _lodash = require("lodash");
14
-
15
13
  var _tokenList = _interopRequireDefault(require("@wordpress/token-list"));
16
14
 
17
15
  var _i18n = require("@wordpress/i18n");
18
16
 
19
- /**
20
- * External dependencies
21
- */
22
-
23
17
  /**
24
18
  * WordPress dependencies
25
19
  */
@@ -39,8 +33,11 @@ function getActiveStyle(styles, className) {
39
33
  }
40
34
 
41
35
  const potentialStyleName = style.substring(9);
42
- const activeStyle = (0, _lodash.find)(styles, {
43
- name: potentialStyleName
36
+ const activeStyle = styles === null || styles === void 0 ? void 0 : styles.find(_ref => {
37
+ let {
38
+ name
39
+ } = _ref;
40
+ return name === potentialStyleName;
44
41
  });
45
42
 
46
43
  if (activeStyle) {
@@ -48,7 +45,7 @@ function getActiveStyle(styles, className) {
48
45
  }
49
46
  }
50
47
 
51
- return (0, _lodash.find)(styles, 'isDefault');
48
+ return getDefaultStyle(styles);
52
49
  }
53
50
  /**
54
51
  * Replaces the active style in the block's className.
@@ -104,6 +101,6 @@ function getRenderedStyles(styles) {
104
101
 
105
102
 
106
103
  function getDefaultStyle(styles) {
107
- return (0, _lodash.find)(styles, 'isDefault');
104
+ return styles === null || styles === void 0 ? void 0 : styles.find(style => style.isDefault);
108
105
  }
109
106
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/utils.js"],"names":["getActiveStyle","styles","className","style","TokenList","values","indexOf","potentialStyleName","substring","activeStyle","name","replaceActiveStyle","newStyle","list","remove","add","value","getRenderedStyles","length","getDefaultStyle","label","isDefault"],"mappings":";;;;;;;;;;;;AAGA;;AAIA;;AACA;;AARA;AACA;AACA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAT,CAAyBC,MAAzB,EAAiCC,SAAjC,EAA6C;AACnD,OAAM,MAAMC,KAAZ,IAAqB,IAAIC,kBAAJ,CAAeF,SAAf,EAA2BG,MAA3B,EAArB,EAA2D;AAC1D,QAAKF,KAAK,CAACG,OAAN,CAAe,WAAf,MAAiC,CAAC,CAAvC,EAA2C;AAC1C;AACA;;AAED,UAAMC,kBAAkB,GAAGJ,KAAK,CAACK,SAAN,CAAiB,CAAjB,CAA3B;AACA,UAAMC,WAAW,GAAG,kBAAMR,MAAN,EAAc;AAAES,MAAAA,IAAI,EAAEH;AAAR,KAAd,CAApB;;AACA,QAAKE,WAAL,EAAmB;AAClB,aAAOA,WAAP;AACA;AACD;;AAED,SAAO,kBAAMR,MAAN,EAAc,WAAd,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASU,kBAAT,CAA6BT,SAA7B,EAAwCO,WAAxC,EAAqDG,QAArD,EAAgE;AACtE,QAAMC,IAAI,GAAG,IAAIT,kBAAJ,CAAeF,SAAf,CAAb;;AAEA,MAAKO,WAAL,EAAmB;AAClBI,IAAAA,IAAI,CAACC,MAAL,CAAa,cAAcL,WAAW,CAACC,IAAvC;AACA;;AAEDG,EAAAA,IAAI,CAACE,GAAL,CAAU,cAAcH,QAAQ,CAACF,IAAjC;AAEA,SAAOG,IAAI,CAACG,KAAZ;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,iBAAT,CAA4BhB,MAA5B,EAAqC;AAC3C,MAAK,CAAEA,MAAF,IAAYA,MAAM,CAACiB,MAAP,KAAkB,CAAnC,EAAuC;AACtC,WAAO,EAAP;AACA;;AAED,SAAOC,eAAe,CAAElB,MAAF,CAAf,GACJA,MADI,GAEJ,CACA;AACCS,IAAAA,IAAI,EAAE,SADP;AAECU,IAAAA,KAAK,EAAE,cAAI,SAAJ,EAAe,aAAf,CAFR;AAGCC,IAAAA,SAAS,EAAE;AAHZ,GADA,EAMA,GAAGpB,MANH,CAFH;AAUA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASkB,eAAT,CAA0BlB,MAA1B,EAAmC;AACzC,SAAO,kBAAMA,MAAN,EAAc,WAAd,CAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport TokenList from '@wordpress/token-list';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Returns the active style from the given className.\n *\n * @param {Array} styles Block styles.\n * @param {string} className Class name\n *\n * @return {Object?} The active style.\n */\nexport function getActiveStyle( styles, className ) {\n\tfor ( const style of new TokenList( className ).values() ) {\n\t\tif ( style.indexOf( 'is-style-' ) === -1 ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst potentialStyleName = style.substring( 9 );\n\t\tconst activeStyle = find( styles, { name: potentialStyleName } );\n\t\tif ( activeStyle ) {\n\t\t\treturn activeStyle;\n\t\t}\n\t}\n\n\treturn find( styles, 'isDefault' );\n}\n\n/**\n * Replaces the active style in the block's className.\n *\n * @param {string} className Class name.\n * @param {Object?} activeStyle The replaced style.\n * @param {Object} newStyle The replacing style.\n *\n * @return {string} The updated className.\n */\nexport function replaceActiveStyle( className, activeStyle, newStyle ) {\n\tconst list = new TokenList( className );\n\n\tif ( activeStyle ) {\n\t\tlist.remove( 'is-style-' + activeStyle.name );\n\t}\n\n\tlist.add( 'is-style-' + newStyle.name );\n\n\treturn list.value;\n}\n\n/**\n * Returns a collection of styles that can be represented on the frontend.\n * The function checks a style collection for a default style. If none is found, it adds one to\n * act as a fallback for when there is no active style applied to a block. The default item also serves\n * as a switch on the frontend to deactivate non-default styles.\n *\n * @param {Array} styles Block styles.\n *\n * @return {Array<Object?>} The style collection.\n */\nexport function getRenderedStyles( styles ) {\n\tif ( ! styles || styles.length === 0 ) {\n\t\treturn [];\n\t}\n\n\treturn getDefaultStyle( styles )\n\t\t? styles\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tname: 'default',\n\t\t\t\t\tlabel: _x( 'Default', 'block style' ),\n\t\t\t\t\tisDefault: true,\n\t\t\t\t},\n\t\t\t\t...styles,\n\t\t ];\n}\n\n/**\n * Returns a style object from a collection of styles where that style object is the default block style.\n *\n * @param {Array} styles Block styles.\n *\n * @return {Object?} The default style object, if found.\n */\nexport function getDefaultStyle( styles ) {\n\treturn find( styles, 'isDefault' );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/utils.js"],"names":["getActiveStyle","styles","className","style","TokenList","values","indexOf","potentialStyleName","substring","activeStyle","find","name","getDefaultStyle","replaceActiveStyle","newStyle","list","remove","add","value","getRenderedStyles","length","label","isDefault"],"mappings":";;;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAT,CAAyBC,MAAzB,EAAiCC,SAAjC,EAA6C;AACnD,OAAM,MAAMC,KAAZ,IAAqB,IAAIC,kBAAJ,CAAeF,SAAf,EAA2BG,MAA3B,EAArB,EAA2D;AAC1D,QAAKF,KAAK,CAACG,OAAN,CAAe,WAAf,MAAiC,CAAC,CAAvC,EAA2C;AAC1C;AACA;;AAED,UAAMC,kBAAkB,GAAGJ,KAAK,CAACK,SAAN,CAAiB,CAAjB,CAA3B;AACA,UAAMC,WAAW,GAAGR,MAAH,aAAGA,MAAH,uBAAGA,MAAM,CAAES,IAAR,CACnB;AAAA,UAAE;AAAEC,QAAAA;AAAF,OAAF;AAAA,aAAgBA,IAAI,KAAKJ,kBAAzB;AAAA,KADmB,CAApB;;AAGA,QAAKE,WAAL,EAAmB;AAClB,aAAOA,WAAP;AACA;AACD;;AAED,SAAOG,eAAe,CAAEX,MAAF,CAAtB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASY,kBAAT,CAA6BX,SAA7B,EAAwCO,WAAxC,EAAqDK,QAArD,EAAgE;AACtE,QAAMC,IAAI,GAAG,IAAIX,kBAAJ,CAAeF,SAAf,CAAb;;AAEA,MAAKO,WAAL,EAAmB;AAClBM,IAAAA,IAAI,CAACC,MAAL,CAAa,cAAcP,WAAW,CAACE,IAAvC;AACA;;AAEDI,EAAAA,IAAI,CAACE,GAAL,CAAU,cAAcH,QAAQ,CAACH,IAAjC;AAEA,SAAOI,IAAI,CAACG,KAAZ;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,iBAAT,CAA4BlB,MAA5B,EAAqC;AAC3C,MAAK,CAAEA,MAAF,IAAYA,MAAM,CAACmB,MAAP,KAAkB,CAAnC,EAAuC;AACtC,WAAO,EAAP;AACA;;AAED,SAAOR,eAAe,CAAEX,MAAF,CAAf,GACJA,MADI,GAEJ,CACA;AACCU,IAAAA,IAAI,EAAE,SADP;AAECU,IAAAA,KAAK,EAAE,cAAI,SAAJ,EAAe,aAAf,CAFR;AAGCC,IAAAA,SAAS,EAAE;AAHZ,GADA,EAMA,GAAGrB,MANH,CAFH;AAUA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASW,eAAT,CAA0BX,MAA1B,EAAmC;AACzC,SAAOA,MAAP,aAAOA,MAAP,uBAAOA,MAAM,CAAES,IAAR,CAAgBP,KAAF,IAAaA,KAAK,CAACmB,SAAjC,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport TokenList from '@wordpress/token-list';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Returns the active style from the given className.\n *\n * @param {Array} styles Block styles.\n * @param {string} className Class name\n *\n * @return {Object?} The active style.\n */\nexport function getActiveStyle( styles, className ) {\n\tfor ( const style of new TokenList( className ).values() ) {\n\t\tif ( style.indexOf( 'is-style-' ) === -1 ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst potentialStyleName = style.substring( 9 );\n\t\tconst activeStyle = styles?.find(\n\t\t\t( { name } ) => name === potentialStyleName\n\t\t);\n\t\tif ( activeStyle ) {\n\t\t\treturn activeStyle;\n\t\t}\n\t}\n\n\treturn getDefaultStyle( styles );\n}\n\n/**\n * Replaces the active style in the block's className.\n *\n * @param {string} className Class name.\n * @param {Object?} activeStyle The replaced style.\n * @param {Object} newStyle The replacing style.\n *\n * @return {string} The updated className.\n */\nexport function replaceActiveStyle( className, activeStyle, newStyle ) {\n\tconst list = new TokenList( className );\n\n\tif ( activeStyle ) {\n\t\tlist.remove( 'is-style-' + activeStyle.name );\n\t}\n\n\tlist.add( 'is-style-' + newStyle.name );\n\n\treturn list.value;\n}\n\n/**\n * Returns a collection of styles that can be represented on the frontend.\n * The function checks a style collection for a default style. If none is found, it adds one to\n * act as a fallback for when there is no active style applied to a block. The default item also serves\n * as a switch on the frontend to deactivate non-default styles.\n *\n * @param {Array} styles Block styles.\n *\n * @return {Array<Object?>} The style collection.\n */\nexport function getRenderedStyles( styles ) {\n\tif ( ! styles || styles.length === 0 ) {\n\t\treturn [];\n\t}\n\n\treturn getDefaultStyle( styles )\n\t\t? styles\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tname: 'default',\n\t\t\t\t\tlabel: _x( 'Default', 'block style' ),\n\t\t\t\t\tisDefault: true,\n\t\t\t\t},\n\t\t\t\t...styles,\n\t\t ];\n}\n\n/**\n * Returns a style object from a collection of styles where that style object is the default block style.\n *\n * @param {Array} styles Block styles.\n *\n * @return {Object?} The default style object, if found.\n */\nexport function getDefaultStyle( styles ) {\n\treturn styles?.find( ( style ) => style.isDefault );\n}\n"]}
@@ -26,9 +26,8 @@ var _store = require("../../store");
26
26
  */
27
27
  function BlockToolbar() {
28
28
  const {
29
- blockClientIds,
30
- isValid,
31
- mode
29
+ isSelected,
30
+ isValidAndVisual
32
31
  } = (0, _data.useSelect)(select => {
33
32
  const {
34
33
  getBlockMode,
@@ -37,17 +36,16 @@ function BlockToolbar() {
37
36
  } = select(_store.store);
38
37
  const selectedBlockClientIds = getSelectedBlockClientIds();
39
38
  return {
40
- blockClientIds: selectedBlockClientIds,
41
- isValid: selectedBlockClientIds.length === 1 ? isBlockValid(selectedBlockClientIds[0]) : null,
42
- mode: selectedBlockClientIds.length === 1 ? getBlockMode(selectedBlockClientIds[0]) : null
39
+ isSelected: selectedBlockClientIds.length > 0,
40
+ isValidAndVisual: selectedBlockClientIds.length === 1 ? isBlockValid(selectedBlockClientIds[0]) && getBlockMode(selectedBlockClientIds[0]) === 'visual' : false
43
41
  };
44
42
  }, []);
45
43
 
46
- if (blockClientIds.length === 0) {
44
+ if (!isSelected) {
47
45
  return null;
48
46
  }
49
47
 
50
- return (0, _element.createElement)(_element.Fragment, null, mode === 'visual' && isValid && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_ungroupButton.default, null), (0, _element.createElement)(_blockControls.default.Slot, {
48
+ return (0, _element.createElement)(_element.Fragment, null, isValidAndVisual && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_ungroupButton.default, null), (0, _element.createElement)(_blockControls.default.Slot, {
51
49
  group: "block"
52
50
  }), (0, _element.createElement)(_blockControls.default.Slot, null), (0, _element.createElement)(_blockControls.default.Slot, {
53
51
  group: "inline"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.native.js"],"names":["BlockToolbar","blockClientIds","isValid","mode","select","getBlockMode","getSelectedBlockClientIds","isBlockValid","blockEditorStore","selectedBlockClientIds","length"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKe,SAASA,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAoC,qBAAaC,MAAF,IAAc;AAClE,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA,yBAAhB;AAA2CC,MAAAA;AAA3C,QACLH,MAAM,CAAEI,YAAF,CADP;AAEA,UAAMC,sBAAsB,GAAGH,yBAAyB,EAAxD;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEQ,sBADV;AAENP,MAAAA,OAAO,EACNO,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGH,YAAY,CAAEE,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG,IALE;AAMNN,MAAAA,IAAI,EACHM,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGL,YAAY,CAAEI,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG;AATE,KAAP;AAWA,GAhByC,EAgBvC,EAhBuC,CAA1C;;AAkBA,MAAKR,cAAc,CAACS,MAAf,KAA0B,CAA/B,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,SACC,qDACGP,IAAI,KAAK,QAAT,IAAqBD,OAArB,IACD,qDACC,4BAAC,sBAAD,OADD,EAEC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAFD,EAGC,4BAAC,sBAAD,CAAe,IAAf,OAHD,EAIC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAJD,EAKC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IALD,CAFF,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport UngroupButton from '../ungroup-button';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockToolbar() {\n\tconst { blockClientIds, isValid, mode } = useSelect( ( select ) => {\n\t\tconst { getBlockMode, getSelectedBlockClientIds, isBlockValid } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisValid:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? isBlockValid( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t\tmode:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? getBlockMode( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t};\n\t}, [] );\n\n\tif ( blockClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ mode === 'visual' && isValid && (\n\t\t\t\t<>\n\t\t\t\t\t<UngroupButton />\n\t\t\t\t\t<BlockControls.Slot group=\"block\" />\n\t\t\t\t\t<BlockControls.Slot />\n\t\t\t\t\t<BlockControls.Slot group=\"inline\" />\n\t\t\t\t\t<BlockControls.Slot group=\"other\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.native.js"],"names":["BlockToolbar","isSelected","isValidAndVisual","select","getBlockMode","getSelectedBlockClientIds","isBlockValid","blockEditorStore","selectedBlockClientIds","length"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKe,SAASA,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAAmC,qBAAaC,MAAF,IAAc;AACjE,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA,yBAAhB;AAA2CC,MAAAA;AAA3C,QACLH,MAAM,CAAEI,YAAF,CADP;AAEA,UAAMC,sBAAsB,GAAGH,yBAAyB,EAAxD;AAEA,WAAO;AACNJ,MAAAA,UAAU,EAAEO,sBAAsB,CAACC,MAAvB,GAAgC,CADtC;AAENP,MAAAA,gBAAgB,EACfM,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGH,YAAY,CAAEE,sBAAsB,CAAE,CAAF,CAAxB,CAAZ,IACAJ,YAAY,CAAEI,sBAAsB,CAAE,CAAF,CAAxB,CAAZ,KAAgD,QAFnD,GAGG;AANE,KAAP;AAQA,GAbwC,EAatC,EAbsC,CAAzC;;AAeA,MAAK,CAAEP,UAAP,EAAoB;AACnB,WAAO,IAAP;AACA;;AAED,SACC,qDACGC,gBAAgB,IACjB,qDACC,4BAAC,sBAAD,OADD,EAEC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAFD,EAGC,4BAAC,sBAAD,CAAe,IAAf,OAHD,EAIC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAJD,EAKC,4BAAC,sBAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IALD,CAFF,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport UngroupButton from '../ungroup-button';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockToolbar() {\n\tconst { isSelected, isValidAndVisual } = useSelect( ( select ) => {\n\t\tconst { getBlockMode, getSelectedBlockClientIds, isBlockValid } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tisSelected: selectedBlockClientIds.length > 0,\n\t\t\tisValidAndVisual:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? isBlockValid( selectedBlockClientIds[ 0 ] ) &&\n\t\t\t\t\t getBlockMode( selectedBlockClientIds[ 0 ] ) === 'visual'\n\t\t\t\t\t: false,\n\t\t};\n\t}, [] );\n\n\tif ( ! isSelected ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isValidAndVisual && (\n\t\t\t\t<>\n\t\t\t\t\t<UngroupButton />\n\t\t\t\t\t<BlockControls.Slot group=\"block\" />\n\t\t\t\t\t<BlockControls.Slot />\n\t\t\t\t\t<BlockControls.Slot group=\"inline\" />\n\t\t\t\t\t<BlockControls.Slot group=\"other\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}