@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/off-canvas-editor/appender.js"],"names":["useSelect","useDispatch","forwardRef","useState","store","blockEditorStore","Inserter","LinkUI","updateAttributes","Appender","props","ref","insertedBlock","setInsertedBlock","hideInserter","clientId","select","getTemplateLock","__unstableGetEditorMode","getSelectedBlockClientId","_clientId","insertedBlockAttributes","getBlockAttributes","updateBlockAttributes","setAttributes","insertedBlockClientId","_updatedAttributes","maybeLinkUI","updatedValue","insertedBlockId"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,UAAT,EAAqBC,QAArB,QAAqC,oBAArC;AACA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AAEA,OAAO,MAAMC,QAAQ,GAAGP,UAAU,CAAE,CAAEQ,KAAF,EAASC,GAAT,KAAkB;AACrD,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsCV,QAAQ,EAApD;AAEA,QAAM;AAAEW,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA6Bf,SAAS,CAAIgB,MAAF,IAAc;AAC3D,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,uBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEX,gBAAF,CAJV;;AAMA,UAAMe,SAAS,GAAGD,wBAAwB,EAA1C;;AAEA,WAAO;AACNJ,MAAAA,QAAQ,EAAEI,wBAAwB,EAD5B;AAENL,MAAAA,YAAY,EACX,CAAC,CAAEG,eAAe,CAAEG,SAAF,CAAlB,IACAF,uBAAuB,OAAO;AAJzB,KAAP;AAMA,GAf2C,EAezC,EAfyC,CAA5C;AAiBA,QAAM;AAAEG,IAAAA;AAAF,MAA8BrB,SAAS,CAC1CgB,MAAF,IAAc;AACb,UAAM;AAAEM,MAAAA;AAAF,QAAyBN,MAAM,CAAEX,gBAAF,CAArC;AAEA,WAAO;AACNgB,MAAAA,uBAAuB,EAAEC,kBAAkB,CAAEV,aAAF;AADrC,KAAP;AAGA,GAP2C,EAQ5C,CAAEA,aAAF,CAR4C,CAA7C;AAWA,QAAM;AAAEW,IAAAA;AAAF,MAA4BtB,WAAW,CAAEI,gBAAF,CAA7C;;AAEA,QAAMmB,aAAa,GAChBC,qBAAF,IAA+BC,kBAAF,IAA0B;AACtDH,IAAAA,qBAAqB,CAAEE,qBAAF,EAAyBC,kBAAzB,CAArB;AACA,GAHF;;AAKA,MAAIC,WAAJ;;AAEA,MAAKf,aAAL,EAAqB;AACpBe,IAAAA,WAAW,GACV,cAAC,MAAD;AACC,MAAA,QAAQ,EAAGf,aADZ;AAEC,MAAA,IAAI,EAAGS,uBAFR;AAGC,MAAA,OAAO,EAAG,MAAMR,gBAAgB,CAAE,IAAF,CAHjC;AAIC,MAAA,mBAAmB,EAAG,KAJvB;AAKC,MAAA,QAAQ,EAAKe,YAAF,IAAoB;AAC9BpB,QAAAA,gBAAgB,CACfoB,YADe,EAEfJ,aAAa,CAAEZ,aAAF,CAFE,EAGfS,uBAHe,CAAhB;AAKAR,QAAAA,gBAAgB,CAAE,IAAF,CAAhB;AACA;AAZF,MADD;AAgBA;;AAED,MAAKC,YAAL,EAAoB;AACnB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGa,WADH,EAEC,cAAC,QAAD;AACC,IAAA,GAAG,EAAGhB,GADP;AAEC,IAAA,YAAY,EAAGI,QAFhB;AAGC,IAAA,QAAQ,EAAC,cAHV;AAIC,IAAA,UAAU,EAAG,IAJd;AAKC,IAAA,mBAAmB,EAAG,KALvB;AAMC,IAAA,eAAe,EAAG,QAA2B;AAAA,UAAzB;AAAEc,QAAAA;AAAF,OAAyB;AAC5ChB,MAAAA,gBAAgB,CAAEgB,eAAF,CAAhB;AACA;AARF,KASMnB,KATN,EAFD,CADD;AAgBA,CA/EiC,CAA3B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef, useState } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport Inserter from '../inserter';\nimport { LinkUI } from './link-ui';\nimport { updateAttributes } from './update-attributes';\n\nexport const Appender = forwardRef( ( props, ref ) => {\n\tconst [ insertedBlock, setInsertedBlock ] = useState();\n\n\tconst { hideInserter, clientId } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetTemplateLock,\n\t\t\t__unstableGetEditorMode,\n\t\t\tgetSelectedBlockClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _clientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tclientId: getSelectedBlockClientId(),\n\t\t\thideInserter:\n\t\t\t\t!! getTemplateLock( _clientId ) ||\n\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\n\tconst { insertedBlockAttributes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinsertedBlockAttributes: getBlockAttributes( insertedBlock ),\n\t\t\t};\n\t\t},\n\t\t[ insertedBlock ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst setAttributes =\n\t\t( insertedBlockClientId ) => ( _updatedAttributes ) => {\n\t\t\tupdateBlockAttributes( insertedBlockClientId, _updatedAttributes );\n\t\t};\n\n\tlet maybeLinkUI;\n\n\tif ( insertedBlock ) {\n\t\tmaybeLinkUI = (\n\t\t\t<LinkUI\n\t\t\t\tclientId={ insertedBlock }\n\t\t\t\tlink={ insertedBlockAttributes }\n\t\t\t\tonClose={ () => setInsertedBlock( null ) }\n\t\t\t\thasCreateSuggestion={ false }\n\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\tsetAttributes( insertedBlock ),\n\t\t\t\t\t\tinsertedBlockAttributes\n\t\t\t\t\t);\n\t\t\t\t\tsetInsertedBlock( null );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( hideInserter ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"offcanvas-editor__appender\">\n\t\t\t{ maybeLinkUI }\n\t\t\t<Inserter\n\t\t\t\tref={ ref }\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender={ true }\n\t\t\t\tselectBlockOnInsert={ false }\n\t\t\t\tonSelectOrClose={ ( { insertedBlockId } ) => {\n\t\t\t\t\tsetInsertedBlock( insertedBlockId );\n\t\t\t\t} }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</div>\n\t);\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/appender.js"],"names":["useSelect","forwardRef","useState","store","blockEditorStore","Inserter","LinkUI","updateAttributes","useInsertedBlock","BLOCKS_WITH_LINK_UI_SUPPORT","Appender","props","ref","insertedBlockClientId","setInsertedBlockClientId","hideInserter","clientId","select","getTemplateLock","__unstableGetEditorMode","getSelectedBlockClientId","_clientId","insertedBlockAttributes","insertedBlockName","setInsertedBlockAttributes","maybeSetInsertedBlockOnInsertion","_insertedBlock","maybeLinkUI","includes","updatedValue"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,UAAT,EAAqBC,QAArB,QAAqC,oBAArC;AACA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AAEA,MAAMC,2BAA2B,GAAG,CACnC,sBADmC,EAEnC,yBAFmC,CAApC;AAKA,OAAO,MAAMC,QAAQ,GAAGT,UAAU,CAAE,CAAEU,KAAF,EAASC,GAAT,KAAkB;AACrD,QAAM,CAAEC,qBAAF,EAAyBC,wBAAzB,IAAsDZ,QAAQ,EAApE;AAEA,QAAM;AAAEa,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA6BhB,SAAS,CAAIiB,MAAF,IAAc;AAC3D,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,uBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEb,gBAAF,CAJV;;AAMA,UAAMiB,SAAS,GAAGD,wBAAwB,EAA1C;;AAEA,WAAO;AACNJ,MAAAA,QAAQ,EAAEI,wBAAwB,EAD5B;AAENL,MAAAA,YAAY,EACX,CAAC,CAAEG,eAAe,CAAEG,SAAF,CAAlB,IACAF,uBAAuB,OAAO;AAJzB,KAAP;AAMA,GAf2C,EAezC,EAfyC,CAA5C;AAiBA,QAAM;AACLG,IAAAA,uBADK;AAELC,IAAAA,iBAFK;AAGLC,IAAAA;AAHK,MAIFhB,gBAAgB,CAAEK,qBAAF,CAJpB;;AAMA,QAAMY,gCAAgC,GAAKC,cAAF,IAAsB;AAC9D,QAAK,EAAEA,cAAF,aAAEA,cAAF,eAAEA,cAAc,CAAEV,QAAlB,CAAL,EAAkC;AACjC;AACA;;AAEDF,IAAAA,wBAAwB,CAAEY,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEV,QAAlB,CAAxB;AACA,GAND;;AAQA,MAAIW,WAAJ;;AAEA,MACCd,qBAAqB,IACrBJ,2BADqB,aACrBA,2BADqB,eACrBA,2BAA2B,CAAEmB,QAA7B,CAAuCL,iBAAvC,CAFD,EAGE;AACDI,IAAAA,WAAW,GACV,cAAC,MAAD;AACC,MAAA,QAAQ,EAAGd,qBADZ;AAEC,MAAA,IAAI,EAAGS,uBAFR;AAGC,MAAA,OAAO,EAAG,MAAMR,wBAAwB,CAAE,IAAF,CAHzC;AAIC,MAAA,mBAAmB,EAAG,KAJvB;AAKC,MAAA,QAAQ,EAAKe,YAAF,IAAoB;AAC9BtB,QAAAA,gBAAgB,CACfsB,YADe,EAEfL,0BAFe,EAGfF,uBAHe,CAAhB;AAKAR,QAAAA,wBAAwB,CAAE,IAAF,CAAxB;AACA;AAZF,MADD;AAgBA;;AAED,MAAKC,YAAL,EAAoB;AACnB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGY,WADH,EAGC,cAAC,QAAD;AACC,IAAA,GAAG,EAAGf,GADP;AAEC,IAAA,YAAY,EAAGI,QAFhB;AAGC,IAAA,QAAQ,EAAC,cAHV;AAIC,IAAA,UAAU,EAAG,IAJd;AAKC,IAAA,mBAAmB,EAAG,KALvB;AAMC,IAAA,eAAe,EAAGS,gCANnB;AAOC,IAAA,qBAAqB;AAPtB,KAQMd,KARN,EAHD,CADD;AAgBA,CA9EiC,CAA3B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef, useState } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport Inserter from '../inserter';\nimport { LinkUI } from './link-ui';\nimport { updateAttributes } from './update-attributes';\nimport { useInsertedBlock } from './use-inserted-block';\n\nconst BLOCKS_WITH_LINK_UI_SUPPORT = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\n\nexport const Appender = forwardRef( ( props, ref ) => {\n\tconst [ insertedBlockClientId, setInsertedBlockClientId ] = useState();\n\n\tconst { hideInserter, clientId } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetTemplateLock,\n\t\t\t__unstableGetEditorMode,\n\t\t\tgetSelectedBlockClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _clientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tclientId: getSelectedBlockClientId(),\n\t\t\thideInserter:\n\t\t\t\t!! getTemplateLock( _clientId ) ||\n\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\tinsertedBlockAttributes,\n\t\tinsertedBlockName,\n\t\tsetInsertedBlockAttributes,\n\t} = useInsertedBlock( insertedBlockClientId );\n\n\tconst maybeSetInsertedBlockOnInsertion = ( _insertedBlock ) => {\n\t\tif ( ! _insertedBlock?.clientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetInsertedBlockClientId( _insertedBlock?.clientId );\n\t};\n\n\tlet maybeLinkUI;\n\n\tif (\n\t\tinsertedBlockClientId &&\n\t\tBLOCKS_WITH_LINK_UI_SUPPORT?.includes( insertedBlockName )\n\t) {\n\t\tmaybeLinkUI = (\n\t\t\t<LinkUI\n\t\t\t\tclientId={ insertedBlockClientId }\n\t\t\t\tlink={ insertedBlockAttributes }\n\t\t\t\tonClose={ () => setInsertedBlockClientId( null ) }\n\t\t\t\thasCreateSuggestion={ false }\n\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\tsetInsertedBlockAttributes,\n\t\t\t\t\t\tinsertedBlockAttributes\n\t\t\t\t\t);\n\t\t\t\t\tsetInsertedBlockClientId( null );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( hideInserter ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"offcanvas-editor__appender\">\n\t\t\t{ maybeLinkUI }\n\n\t\t\t<Inserter\n\t\t\t\tref={ ref }\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender={ true }\n\t\t\t\tselectBlockOnInsert={ false }\n\t\t\t\tonSelectOrClose={ maybeSetInsertedBlockOnInsertion }\n\t\t\t\t__experimentalIsQuick\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</div>\n\t);\n} );\n"]}
@@ -10,7 +10,7 @@ import classnames from 'classnames';
10
10
 
11
11
  import { Button, __experimentalHStack as HStack, __experimentalTruncate as Truncate } from '@wordpress/components';
12
12
  import { forwardRef } from '@wordpress/element';
13
- import { Icon, lock } from '@wordpress/icons';
13
+ import { Icon, lockSmall as lock } from '@wordpress/icons';
14
14
  import { SPACE, ENTER } from '@wordpress/keycodes';
15
15
  /**
16
16
  * Internal dependencies
@@ -75,7 +75,8 @@ function ListViewBlockSelectButton(_ref, ref) {
75
75
  onClick: onToggleExpanded
76
76
  }), createElement(BlockIcon, {
77
77
  icon: blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.icon,
78
- showColors: true
78
+ showColors: true,
79
+ context: "list-view"
79
80
  }), createElement(HStack, {
80
81
  alignment: "center",
81
82
  className: "block-editor-list-view-block-select-button__label-wrapper",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block-select-button.js"],"names":["classnames","Button","__experimentalHStack","HStack","__experimentalTruncate","Truncate","forwardRef","Icon","lock","SPACE","ENTER","BlockIcon","useBlockDisplayInformation","useBlockDisplayTitle","ListViewExpander","useBlockLock","ListViewBlockSelectButton","ref","className","block","clientId","onClick","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","blockInformation","blockTitle","context","isLocked","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lock } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-hidden={ true }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block-select-button.js"],"names":["classnames","Button","__experimentalHStack","HStack","__experimentalTruncate","Truncate","forwardRef","Icon","lockSmall","lock","SPACE","ENTER","BlockIcon","useBlockDisplayInformation","useBlockDisplayTitle","ListViewExpander","useBlockLock","ListViewBlockSelectButton","ref","className","block","clientId","onClick","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","blockInformation","blockTitle","context","isLocked","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lockSmall as lock } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-hidden={ true }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon\n\t\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\t\tshowColors\n\t\t\t\t\tcontext=\"list-view\"\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
@@ -33,7 +33,9 @@ import { useBlockLock } from '../block-lock';
33
33
 
34
34
  function ListViewBlock(_ref) {
35
35
  let {
36
- block,
36
+ block: {
37
+ clientId
38
+ },
37
39
  isDragged,
38
40
  isSelected,
39
41
  isBranchSelected,
@@ -51,10 +53,6 @@ function ListViewBlock(_ref) {
51
53
  } = _ref;
52
54
  const cellRef = useRef(null);
53
55
  const [isHovered, setIsHovered] = useState(false);
54
- const {
55
- clientId,
56
- attributes
57
- } = block;
58
56
  const {
59
57
  isLocked,
60
58
  isContentLocked
@@ -73,48 +71,12 @@ function ListViewBlock(_ref) {
73
71
  const isFirstSelectedBlock = forceSelectionContentLock || isSelected && selectedClientIds[0] === clientId;
74
72
  const isLastSelectedBlock = forceSelectionContentLock || isSelected && selectedClientIds[selectedClientIds.length - 1] === clientId;
75
73
  const {
74
+ insertBlock,
76
75
  replaceBlock,
77
76
  toggleBlockHighlight
78
77
  } = useDispatch(blockEditorStore);
79
78
  const blockInformation = useBlockDisplayInformation(clientId);
80
- const blockName = useSelect(select => select(blockEditorStore).getBlockName(clientId), [clientId]); // When a block hides its toolbar it also hides the block settings menu,
81
- // since that menu is part of the toolbar in the editor canvas.
82
- // List View respects this by also hiding the block settings menu.
83
-
84
- const showBlockActions = hasBlockSupport(blockName, '__experimentalToolbar', true);
85
- const instanceId = useInstanceId(ListViewBlock);
86
- const descriptionId = `list-view-block-select-button__${instanceId}`;
87
- const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level);
88
-
89
- let blockAriaLabel = __('Link');
90
-
91
- if (blockInformation) {
92
- blockAriaLabel = isLocked ? sprintf( // translators: %s: The title of the block. This string indicates a link to select the locked block.
93
- __('%s link (locked)'), blockInformation.title) : sprintf( // translators: %s: The title of the block. This string indicates a link to select the block.
94
- __('%s link'), blockInformation.title);
95
- }
96
-
97
- const settingsAriaLabel = blockInformation ? sprintf( // translators: %s: The title of the block.
98
- __('Options for %s block'), blockInformation.title) : __('Options');
99
- const editAriaLabel = blockInformation ? sprintf( // translators: %s: The title of the block.
100
- __('Edit %s block'), blockInformation.title) : __('Edit');
101
- const {
102
- isTreeGridMounted,
103
- expand,
104
- collapse
105
- } = useListViewContext();
106
- const isEditable = block.name !== 'core/page-list-item';
107
- const hasSiblings = siblingBlockCount > 0;
108
- const hasRenderedMovers = showBlockMovers && hasSiblings;
109
- const moverCellClassName = classnames('block-editor-list-view-block__mover-cell', {
110
- 'is-visible': isHovered || isSelected
111
- });
112
- const listViewBlockSettingsClassName = classnames('block-editor-list-view-block__menu-cell', {
113
- 'is-visible': isHovered || isFirstSelectedBlock
114
- });
115
- const listViewBlockEditClassName = classnames('block-editor-list-view-block__menu-cell', {
116
- 'is-visible': isHovered || isFirstSelectedBlock
117
- }); // If ListView has experimental features related to the Persistent List View,
79
+ const block = useSelect(select => select(blockEditorStore).getBlock(clientId), [clientId]); // If ListView has experimental features related to the Persistent List View,
118
80
  // only focus the selected list item on mount; otherwise the list would always
119
81
  // try to steal the focus from the editor canvas.
120
82
 
@@ -138,6 +100,11 @@ function ListViewBlock(_ref) {
138
100
  const updateSelection = useCallback(newClientId => {
139
101
  selectBlock(undefined, newClientId);
140
102
  }, [selectBlock]);
103
+ const {
104
+ isTreeGridMounted,
105
+ expand,
106
+ collapse
107
+ } = useListViewContext();
141
108
  const toggleExpanded = useCallback(event => {
142
109
  // Prevent shift+click from opening link in a new window when toggling.
143
110
  event.preventDefault();
@@ -149,6 +116,43 @@ function ListViewBlock(_ref) {
149
116
  expand(clientId);
150
117
  }
151
118
  }, [clientId, expand, collapse, isExpanded]);
119
+ const instanceId = useInstanceId(ListViewBlock);
120
+
121
+ if (!block) {
122
+ return null;
123
+ } // When a block hides its toolbar it also hides the block settings menu,
124
+ // since that menu is part of the toolbar in the editor canvas.
125
+ // List View respects this by also hiding the block settings menu.
126
+
127
+
128
+ const showBlockActions = !!block && hasBlockSupport(block.name, '__experimentalToolbar', true);
129
+ const descriptionId = `list-view-block-select-button__${instanceId}`;
130
+ const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level);
131
+
132
+ let blockAriaLabel = __('Link');
133
+
134
+ if (blockInformation) {
135
+ blockAriaLabel = isLocked ? sprintf( // translators: %s: The title of the block. This string indicates a link to select the locked block.
136
+ __('%s link (locked)'), blockInformation.title) : sprintf( // translators: %s: The title of the block. This string indicates a link to select the block.
137
+ __('%s link'), blockInformation.title);
138
+ }
139
+
140
+ const settingsAriaLabel = blockInformation ? sprintf( // translators: %s: The title of the block.
141
+ __('Options for %s block'), blockInformation.title) : __('Options');
142
+ const editAriaLabel = blockInformation ? sprintf( // translators: %s: The title of the block.
143
+ __('Edit %s block'), blockInformation.title) : __('Edit');
144
+ const isEditable = !!block && block.name !== 'core/page-list-item';
145
+ const hasSiblings = siblingBlockCount > 0;
146
+ const hasRenderedMovers = showBlockMovers && hasSiblings;
147
+ const moverCellClassName = classnames('block-editor-list-view-block__mover-cell', {
148
+ 'is-visible': isHovered || isSelected
149
+ });
150
+ const listViewBlockSettingsClassName = classnames('block-editor-list-view-block__menu-cell', {
151
+ 'is-visible': isHovered || isFirstSelectedBlock
152
+ });
153
+ const listViewBlockEditClassName = classnames('block-editor-list-view-block__menu-cell', {
154
+ 'is-visible': isHovered || isFirstSelectedBlock
155
+ });
152
156
  let colSpan;
153
157
 
154
158
  if (hasRenderedMovers) {
@@ -285,11 +289,19 @@ function ListViewBlock(_ref) {
285
289
  return createElement(MenuItem, {
286
290
  onClick: () => {
287
291
  const newLink = createBlock('core/navigation-link');
288
- const newSubmenu = createBlock('core/navigation-submenu', attributes, block.innerBlocks ? [...block.innerBlocks, newLink] : [newLink]);
289
- replaceBlock(clientId, newSubmenu);
292
+
293
+ if (block.name === 'core/navigation-submenu') {
294
+ const updateSelectionOnInsert = false;
295
+ insertBlock(newLink, block.innerBlocks.length, clientId, updateSelectionOnInsert);
296
+ } else {
297
+ // Convert to a submenu if the block currently isn't one.
298
+ const newSubmenu = createBlock('core/navigation-submenu', block.attributes, block.innerBlocks ? [...block.innerBlocks, newLink] : [newLink]);
299
+ replaceBlock(clientId, newSubmenu);
300
+ }
301
+
290
302
  onClose();
291
303
  }
292
- }, __('Add a submenu item'));
304
+ }, __('Add submenu item'));
293
305
  });
294
306
  })));
295
307
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block.js"],"names":["classnames","createBlock","hasBlockSupport","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","MenuItem","useInstanceId","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","useSelect","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","BlockEditButton","useListViewContext","getBlockPositionDescription","store","blockEditorStore","useBlockDisplayInformation","useBlockLock","ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","selectBlockInCanvas","cellRef","isHovered","setIsHovered","clientId","attributes","isLocked","isContentLocked","forceSelectionContentLock","select","hasSelectedInnerBlock","isFirstSelectedBlock","isLastSelectedBlock","length","replaceBlock","toggleBlockHighlight","blockInformation","blockName","getBlockName","showBlockActions","instanceId","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","editAriaLabel","isTreeGridMounted","expand","collapse","isEditable","name","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","listViewBlockEditClassName","current","focus","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","toggleExpanded","stopPropagation","colSpan","classes","dropdownClientIds","includes","ref","tabIndex","onFocus","props","className","onClose","newLink","newSubmenu","innerBlocks"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,EAAsBC,eAAtB,QAA6C,mBAA7C;AACA,SACCC,0BAA0B,IAAIC,YAD/B,EAECC,0BAA0B,IAAIC,YAF/B,EAGCC,QAHD,QAIO,uBAJP;AAKA,SAASC,aAAT,QAA8B,oBAA9B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,SACCC,QADD,EAECC,MAFD,EAGCC,SAHD,EAICC,WAJD,EAKCC,IALD,QAMO,oBANP;AAOA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,OAAT,EAAkBC,EAAlB,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,QAAzB;AACA,SACCC,kBADD,EAECC,oBAFD,QAGO,uBAHP;AAIA,OAAOC,qBAAP,MAAkC,kBAAlC;AACA,OAAOC,qBAAP,MAAkC,gDAAlC;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,SAASC,kBAAT,QAAmC,WAAnC;AACA,SAASC,2BAAT,QAA4C,SAA5C;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,YAAT,QAA6B,eAA7B;;AAEA,SAASC,aAAT,OAgBI;AAAA,MAhBoB;AACvBC,IAAAA,KADuB;AAEvBC,IAAAA,SAFuB;AAGvBC,IAAAA,UAHuB;AAIvBC,IAAAA,gBAJuB;AAKvBC,IAAAA,WALuB;AAMvBC,IAAAA,QANuB;AAOvBC,IAAAA,KAPuB;AAQvBC,IAAAA,QARuB;AASvBC,IAAAA,iBATuB;AAUvBC,IAAAA,eAVuB;AAWvBC,IAAAA,IAXuB;AAYvBC,IAAAA,UAZuB;AAavBC,IAAAA,iBAbuB;AAcvBC,IAAAA,mBAduB;AAevBC,IAAAA;AAfuB,GAgBpB;AACH,QAAMC,OAAO,GAAGpC,MAAM,CAAE,IAAF,CAAtB;AACA,QAAM,CAAEqC,SAAF,EAAaC,YAAb,IAA8BvC,QAAQ,CAAE,KAAF,CAA5C;AACA,QAAM;AAAEwC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA2BnB,KAAjC;AAEA,QAAM;AAAEoB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAgCvB,YAAY,CAAEoB,QAAF,CAAlD;AACA,QAAMI,yBAAyB,GAAGtC,SAAS,CACxCuC,MAAF,IAAc;AACb,QAAKrB,UAAL,EAAkB;AACjB,aAAO,KAAP;AACA;;AACD,QAAK,CAAEmB,eAAP,EAAyB;AACxB,aAAO,KAAP;AACA;;AACD,WAAOE,MAAM,CAAE3B,gBAAF,CAAN,CAA2B4B,qBAA3B,CACNN,QADM,EAEN,IAFM,CAAP;AAIA,GAZyC,EAa1C,CAAEG,eAAF,EAAmBH,QAAnB,EAA6BhB,UAA7B,CAb0C,CAA3C;AAgBA,QAAMuB,oBAAoB,GACzBH,yBAAyB,IACvBpB,UAAU,IAAIU,iBAAiB,CAAE,CAAF,CAAjB,KAA2BM,QAF5C;AAGA,QAAMQ,mBAAmB,GACxBJ,yBAAyB,IACvBpB,UAAU,IACXU,iBAAiB,CAAEA,iBAAiB,CAACe,MAAlB,GAA2B,CAA7B,CAAjB,KAAsDT,QAHxD;AAKA,QAAM;AAAEU,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MACL9C,WAAW,CAAEa,gBAAF,CADZ;AAGA,QAAMkC,gBAAgB,GAAGjC,0BAA0B,CAAEqB,QAAF,CAAnD;AACA,QAAMa,SAAS,GAAG/C,SAAS,CACxBuC,MAAF,IAAcA,MAAM,CAAE3B,gBAAF,CAAN,CAA2BoC,YAA3B,CAAyCd,QAAzC,CADY,EAE1B,CAAEA,QAAF,CAF0B,CAA3B,CAlCG,CAuCH;AACA;AACA;;AACA,QAAMe,gBAAgB,GAAG/D,eAAe,CACvC6D,SADuC,EAEvC,uBAFuC,EAGvC,IAHuC,CAAxC;AAKA,QAAMG,UAAU,GAAG1D,aAAa,CAAEuB,aAAF,CAAhC;AACA,QAAMoC,aAAa,GAAI,kCAAkCD,UAAY,EAArE;AACA,QAAME,wBAAwB,GAAG1C,2BAA2B,CAC3DW,QAD2D,EAE3DG,iBAF2D,EAG3DF,KAH2D,CAA5D;;AAMA,MAAI+B,cAAc,GAAGnD,EAAE,CAAE,MAAF,CAAvB;;AACA,MAAK4C,gBAAL,EAAwB;AACvBO,IAAAA,cAAc,GAAGjB,QAAQ,GACtBnC,OAAO,EACP;AACAC,IAAAA,EAAE,CAAE,kBAAF,CAFK,EAGP4C,gBAAgB,CAACQ,KAHV,CADe,GAMtBrD,OAAO,EACP;AACAC,IAAAA,EAAE,CAAE,SAAF,CAFK,EAGP4C,gBAAgB,CAACQ,KAHV,CANV;AAWA;;AAED,QAAMC,iBAAiB,GAAGT,gBAAgB,GACvC7C,OAAO,EACP;AACAC,EAAAA,EAAE,CAAE,sBAAF,CAFK,EAGP4C,gBAAgB,CAACQ,KAHV,CADgC,GAMvCpD,EAAE,CAAE,SAAF,CANL;AAQA,QAAMsD,aAAa,GAAGV,gBAAgB,GACnC7C,OAAO,EACP;AACAC,EAAAA,EAAE,CAAE,eAAF,CAFK,EAGP4C,gBAAgB,CAACQ,KAHV,CAD4B,GAMnCpD,EAAE,CAAE,MAAF,CANL;AAQA,QAAM;AAAEuD,IAAAA,iBAAF;AAAqBC,IAAAA,MAArB;AAA6BC,IAAAA;AAA7B,MAA0ClD,kBAAkB,EAAlE;AAEA,QAAMmD,UAAU,GAAG5C,KAAK,CAAC6C,IAAN,KAAe,qBAAlC;AACA,QAAMC,WAAW,GAAGtC,iBAAiB,GAAG,CAAxC;AACA,QAAMuC,iBAAiB,GAAGtC,eAAe,IAAIqC,WAA7C;AACA,QAAME,kBAAkB,GAAGhF,UAAU,CACpC,0CADoC,EAEpC;AAAE,kBAAcgD,SAAS,IAAId;AAA7B,GAFoC,CAArC;AAKA,QAAM+C,8BAA8B,GAAGjF,UAAU,CAChD,yCADgD,EAEhD;AAAE,kBAAcgD,SAAS,IAAIS;AAA7B,GAFgD,CAAjD;AAKA,QAAMyB,0BAA0B,GAAGlF,UAAU,CAC5C,yCAD4C,EAE5C;AAAE,kBAAcgD,SAAS,IAAIS;AAA7B,GAF4C,CAA7C,CArGG,CA0GH;AACA;AACA;;AACA7C,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE6D,iBAAF,IAAuBvC,UAA5B,EAAyC;AACxCa,MAAAA,OAAO,CAACoC,OAAR,CAAgBC,KAAhB;AACA;AACD,GAJQ,EAIN,EAJM,CAAT;AAMA,QAAMC,YAAY,GAAGxE,WAAW,CAAE,MAAM;AACvCoC,IAAAA,YAAY,CAAE,IAAF,CAAZ;AACAY,IAAAA,oBAAoB,CAAEX,QAAF,EAAY,IAAZ,CAApB;AACA,GAH+B,EAG7B,CAAEA,QAAF,EAAYD,YAAZ,EAA0BY,oBAA1B,CAH6B,CAAhC;AAIA,QAAMyB,YAAY,GAAGzE,WAAW,CAAE,MAAM;AACvCoC,IAAAA,YAAY,CAAE,KAAF,CAAZ;AACAY,IAAAA,oBAAoB,CAAEX,QAAF,EAAY,KAAZ,CAApB;AACA,GAH+B,EAG7B,CAAEA,QAAF,EAAYD,YAAZ,EAA0BY,oBAA1B,CAH6B,CAAhC;AAKA,QAAM0B,iBAAiB,GAAG1E,WAAW,CAClC2E,KAAF,IAAa;AACZpD,IAAAA,WAAW,CAAEoD,KAAF,EAAStC,QAAT,CAAX;AACAsC,IAAAA,KAAK,CAACC,cAAN;AACA,GAJmC,EAKpC,CAAEvC,QAAF,EAAYd,WAAZ,CALoC,CAArC;AAQA,QAAMsD,eAAe,GAAG7E,WAAW,CAChC8E,WAAF,IAAmB;AAClBvD,IAAAA,WAAW,CAAEwD,SAAF,EAAaD,WAAb,CAAX;AACA,GAHiC,EAIlC,CAAEvD,WAAF,CAJkC,CAAnC;AAOA,QAAMyD,cAAc,GAAGhF,WAAW,CAC/B2E,KAAF,IAAa;AACZ;AACAA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACM,eAAN;;AACA,QAAKnD,UAAU,KAAK,IAApB,EAA2B;AAC1BgC,MAAAA,QAAQ,CAAEzB,QAAF,CAAR;AACA,KAFD,MAEO,IAAKP,UAAU,KAAK,KAApB,EAA4B;AAClC+B,MAAAA,MAAM,CAAExB,QAAF,CAAN;AACA;AACD,GAVgC,EAWjC,CAAEA,QAAF,EAAYwB,MAAZ,EAAoBC,QAApB,EAA8BhC,UAA9B,CAXiC,CAAlC;AAcA,MAAIoD,OAAJ;;AACA,MAAKhB,iBAAL,EAAyB;AACxBgB,IAAAA,OAAO,GAAG,CAAV;AACA,GAFD,MAEO,IAAK,CAAE9B,gBAAP,EAA0B;AAChC8B,IAAAA,OAAO,GAAG,CAAV;AACA;;AAED,QAAMC,OAAO,GAAGhG,UAAU,CAAE;AAC3B,mBAAekC,UAAU,IAAIoB,yBADF;AAE3B,yBAAqBG,oBAFM;AAG3B,wBAAoBC,mBAHO;AAI3B,0BAAsBvB,gBAJK;AAK3B,mBAAeF,SALY;AAM3B,uBAAmB,CAAEgC;AANM,GAAF,CAA1B,CAhKG,CAyKH;AACA;AACA;AACA;;AACA,QAAMgC,iBAAiB,GAAGrD,iBAAiB,CAACsD,QAAlB,CAA4BhD,QAA5B,IACvBN,iBADuB,GAEvB,CAAEM,QAAF,CAFH;AAIA,SACC,cAAC,YAAD;AACC,IAAA,SAAS,EAAG8C,OADb;AAEC,IAAA,YAAY,EAAGX,YAFhB;AAGC,IAAA,YAAY,EAAGC,YAHhB;AAIC,IAAA,OAAO,EAAGD,YAJX;AAKC,IAAA,MAAM,EAAGC,YALV;AAMC,IAAA,KAAK,EAAGhD,KANT;AAOC,IAAA,QAAQ,EAAGD,QAPZ;AAQC,IAAA,QAAQ,EAAGE,QARZ;AASC,IAAA,IAAI,EAAGG,IATR;AAUC,IAAA,EAAE,EAAI,mBAAmBQ,QAAU,EAVpC;AAWC,kBAAaA,QAXd;AAYC,IAAA,UAAU,EAAGG,eAAe,GAAGuC,SAAH,GAAejD,UAZ5C;AAaC,qBAAgB,CAAC,CAAET,UAAH,IAAiBoB;AAblC,KAeC,cAAC,YAAD;AACC,IAAA,SAAS,EAAC,6CADX;AAEC,IAAA,OAAO,EAAGyC,OAFX;AAGC,IAAA,GAAG,EAAGhD,OAHP;AAIC,kBAAasB,cAJd;AAKC,qBAAgB,CAAC,CAAEnC,UAAH,IAAiBoB,yBALlC;AAMC,qBAAgBD,eAAe,GAAGuC,SAAH,GAAejD,UAN/C;AAOC,wBAAmBwB;AAPpB,KASG;AAAA,QAAE;AAAEgC,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,qBAAD;AACC,MAAA,KAAK,EAAGrE,KADT;AAEC,MAAA,OAAO,EACNc,mBAAmB,GAChByC,iBADgB,GAEdC,KAAF,IAAa;AACbA,QAAAA,KAAK,CAACC,cAAN;AACC,OAPN;AASC,MAAA,gBAAgB,EAAGI,cATpB;AAUC,MAAA,UAAU,EAAG3D,UAVd;AAWC,MAAA,QAAQ,EAAGG,QAXZ;AAYC,MAAA,iBAAiB,EAAGG,iBAZrB;AAaC,MAAA,KAAK,EAAGF,KAbT;AAcC,MAAA,GAAG,EAAG6D,GAdP;AAeC,MAAA,QAAQ,EAAGC,QAfZ;AAgBC,MAAA,OAAO,EAAGC,OAhBX;AAiBC,MAAA,UAAU,EAAG1D,UAjBd;AAkBC,MAAA,iBAAiB,EAAGC,iBAlBrB;AAmBC,MAAA,mBAAmB,EAAGC;AAnBvB,MADD,EAsBC;AACC,MAAA,SAAS,EAAC,yDADX;AAEC,MAAA,EAAE,EAAGsB;AAFN,OAIGC,wBAJH,CAtBD,CADC;AAAA,GATH,CAfD,EAwDGW,iBAAiB,IAClB,8BACC,cAAC,YAAD;AACC,IAAA,SAAS,EAAGC,kBADb;AAEC,IAAA,eAAe;AAFhB,KAIC,cAAC,YAAD,QACG;AAAA,QAAE;AAAEmB,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,cAAC,kBAAD;AACC,MAAA,WAAW,EAAC,UADb;AAEC,MAAA,SAAS,EAAG,CAAEnD,QAAF,CAFb;AAGC,MAAA,GAAG,EAAGiD,GAHP;AAIC,MAAA,QAAQ,EAAGC,QAJZ;AAKC,MAAA,OAAO,EAAGC;AALX,MADC;AAAA,GADH,CAJD,EAeC,cAAC,YAAD,QACG;AAAA,QAAE;AAAEF,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,cAAC,oBAAD;AACC,MAAA,WAAW,EAAC,UADb;AAEC,MAAA,SAAS,EAAG,CAAEnD,QAAF,CAFb;AAGC,MAAA,GAAG,EAAGiD,GAHP;AAIC,MAAA,QAAQ,EAAGC,QAJZ;AAKC,MAAA,OAAO,EAAGC;AALX,MADC;AAAA,GADH,CAfD,CADD,CAzDF,EAwFGpC,gBAAgB,IACjB,8BACGW,UAAU,IACX,cAAC,YAAD;AACC,IAAA,SAAS,EAAGM,0BADb;AAEC,qBACC,CAAC,CAAEhD,UAAH,IAAiBoB;AAHnB,KAMKgD,KAAF,IACD,cAAC,eAAD,eACMA,KADN;AAEC,IAAA,KAAK,EAAG9B,aAFT;AAGC,IAAA,QAAQ,EAAGtB;AAHZ,KAPF,CAFF,EAiBC,cAAC,YAAD;AACC,IAAA,SAAS,EAAG+B,8BADb;AAEC,qBACC,CAAC,CAAE/C,UAAH,IAAiBoB,yBAHnB;AAKC,IAAA,OAAO,EAAGsB,UAAU,GAAG,CAAH,GAAO,CAL5B,CAKgC;;AALhC,KAOG;AAAA,QAAE;AAAEuB,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,cAAC,qBAAD;AACC,MAAA,SAAS,EAAGJ,iBADb;AAEC,MAAA,IAAI,EAAGxF,YAFR;AAGC,MAAA,KAAK,EAAG8D,iBAHT;AAIC,MAAA,WAAW,EAAG;AACb4B,QAAAA,GADa;AAEbI,QAAAA,SAAS,EACR,oCAHY;AAIbH,QAAAA,QAJa;AAKbC,QAAAA;AALa,OAJf;AAWC,MAAA,sBAAsB,MAXvB;AAYC,MAAA,yBAAyB,EAAGX;AAZ7B,OAcG;AAAA,UAAE;AAAEc,QAAAA;AAAF,OAAF;AAAA,aACD,cAAC,QAAD;AACC,QAAA,OAAO,EAAG,MAAM;AACf,gBAAMC,OAAO,GAAGxG,WAAW,CAC1B,sBAD0B,CAA3B;AAGA,gBAAMyG,UAAU,GAAGzG,WAAW,CAC7B,yBAD6B,EAE7BkD,UAF6B,EAG7BnB,KAAK,CAAC2E,WAAN,GACG,CACA,GAAG3E,KAAK,CAAC2E,WADT,EAEAF,OAFA,CADH,GAKG,CAAEA,OAAF,CAR0B,CAA9B;AAUA7C,UAAAA,YAAY,CACXV,QADW,EAEXwD,UAFW,CAAZ;AAIAF,UAAAA,OAAO;AACP;AApBF,SAsBGtF,EAAE,CAAE,oBAAF,CAtBL,CADC;AAAA,KAdH,CADC;AAAA,GAPH,CAjBD,CAzFF,CADD;AAkKA;;AAED,eAAeJ,IAAI,CAAEiB,aAAF,CAAnB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n\tMenuItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport BlockEditButton from './block-edit-button';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n\tselectBlockInCanvas,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId, attributes } = block;\n\n\tconst { isLocked, isContentLocked } = useBlockLock( clientId );\n\tconst forceSelectionContentLock = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ( ! isContentLocked ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ isContentLocked, clientId, isSelected ]\n\t);\n\n\tconst isFirstSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected && selectedClientIds[ 0 ] === clientId );\n\tconst isLastSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected &&\n\t\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId );\n\n\tconst { replaceBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockName = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockName( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// When a block hides its toolbar it also hides the block settings menu,\n\t// since that menu is part of the toolbar in the editor canvas.\n\t// List View respects this by also hiding the block settings menu.\n\tconst showBlockActions = hasBlockSupport(\n\t\tblockName,\n\t\t'__experimentalToolbar',\n\t\ttrue\n\t);\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst editAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Edit %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Edit' );\n\n\tconst { isTreeGridMounted, expand, collapse } = useListViewContext();\n\n\tconst isEditable = block.name !== 'core/page-list-item';\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tconst listViewBlockEditClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif ( ! isTreeGridMounted && isSelected ) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected || forceSelectionContentLock,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isContentLocked ? undefined : isExpanded }\n\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t\t\taria-expanded={ isContentLocked ? undefined : isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tselectBlockInCanvas\n\t\t\t\t\t\t\t\t\t? selectEditorBlock\n\t\t\t\t\t\t\t\t\t: ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditable && (\n\t\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\t\tclassName={ listViewBlockEditClassName }\n\t\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( props ) => (\n\t\t\t\t\t\t\t\t<BlockEditButton\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tlabel={ editAriaLabel }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t) }\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcolSpan={ isEditable ? 1 : 2 } // When an item is not editable then we don't output the cell for the edit button, so we need to adjust the colspan so that the HTML is valid.\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t\t__experimentalSelectBlock={ updateSelection }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tconst newLink = createBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tconst newSubmenu = createBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...block.innerBlocks,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: [ newLink ]\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\t\t\tnewSubmenu\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add a submenu item' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</BlockSettingsDropdown>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block.js"],"names":["classnames","createBlock","hasBlockSupport","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","MenuItem","useInstanceId","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","useSelect","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","BlockEditButton","useListViewContext","getBlockPositionDescription","store","blockEditorStore","useBlockDisplayInformation","useBlockLock","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","selectBlockInCanvas","cellRef","isHovered","setIsHovered","isLocked","isContentLocked","forceSelectionContentLock","select","hasSelectedInnerBlock","isFirstSelectedBlock","isLastSelectedBlock","length","insertBlock","replaceBlock","toggleBlockHighlight","blockInformation","getBlock","isTreeGridMounted","current","focus","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","expand","collapse","toggleExpanded","stopPropagation","instanceId","showBlockActions","name","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","editAriaLabel","isEditable","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","listViewBlockEditClassName","colSpan","classes","dropdownClientIds","includes","ref","tabIndex","onFocus","props","className","onClose","newLink","updateSelectionOnInsert","innerBlocks","newSubmenu","attributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n\tMenuItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport BlockEditButton from './block-edit-button';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n\tselectBlockInCanvas,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst { isLocked, isContentLocked } = useBlockLock( clientId );\n\tconst forceSelectionContentLock = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ( ! isContentLocked ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ isContentLocked, clientId, isSelected ]\n\t);\n\n\tconst isFirstSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected && selectedClientIds[ 0 ] === clientId );\n\tconst isLastSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected &&\n\t\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId );\n\n\tconst { insertBlock, replaceBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif ( ! isTreeGridMounted && isSelected ) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst { isTreeGridMounted, expand, collapse } = useListViewContext();\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst instanceId = useInstanceId( ListViewBlock );\n\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\t// When a block hides its toolbar it also hides the block settings menu,\n\t// since that menu is part of the toolbar in the editor canvas.\n\t// List View respects this by also hiding the block settings menu.\n\tconst showBlockActions =\n\t\t!! block &&\n\t\thasBlockSupport( block.name, '__experimentalToolbar', true );\n\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst editAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Edit %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Edit' );\n\n\tconst isEditable = !! block && block.name !== 'core/page-list-item';\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tconst listViewBlockEditClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected || forceSelectionContentLock,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isContentLocked ? undefined : isExpanded }\n\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t\t\taria-expanded={ isContentLocked ? undefined : isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tselectBlockInCanvas\n\t\t\t\t\t\t\t\t\t? selectEditorBlock\n\t\t\t\t\t\t\t\t\t: ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditable && (\n\t\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\t\tclassName={ listViewBlockEditClassName }\n\t\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( props ) => (\n\t\t\t\t\t\t\t\t<BlockEditButton\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tlabel={ editAriaLabel }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t) }\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcolSpan={ isEditable ? 1 : 2 } // When an item is not editable then we don't output the cell for the edit button, so we need to adjust the colspan so that the HTML is valid.\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t\t__experimentalSelectBlock={ updateSelection }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tconst newLink = createBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tblock.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst updateSelectionOnInsert = false;\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.innerBlocks.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t// Convert to a submenu if the block currently isn't one.\n\t\t\t\t\t\t\t\t\t\t\t\tconst newSubmenu = createBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...block.innerBlocks,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: [ newLink ]\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewSubmenu\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add submenu item' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</BlockSettingsDropdown>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
@@ -182,7 +182,11 @@ function __ExperimentalOffCanvasEditor(_ref, ref) {
182
182
  setSize: 1,
183
183
  positionInSet: 1,
184
184
  isExpanded: true
185
- }, createElement(TreeGridCell, null, treeGridCellProps => createElement(Appender, treeGridCellProps)))))));
185
+ }, createElement(TreeGridCell, null, treeGridCellProps => createElement(Appender, treeGridCellProps)), !clientIdsTree.length && createElement(TreeGridCell, {
186
+ withoutGridItem: true
187
+ }, createElement("div", {
188
+ className: "offcanvas-editor-list-view-is-empty"
189
+ }, __('Your menu is currently empty. Add your first menu item to get started.'))))))));
186
190
  }
187
191
 
188
192
  export default forwardRef(__ExperimentalOffCanvasEditor);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","__experimentalTreeGridRow","TreeGridRow","__experimentalTreeGridCell","TreeGridCell","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","Appender","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","__ExperimentalOffCanvasEditor","ref","blocks","showBlockMovers","isExpanded","selectBlockInCanvas","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","shouldShowInnerBlocks","select","getGlobalBlockCount","getClientIdsOfDescendants","__unstableGetEditorMode","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","blockClientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted","treeGridCellProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\nimport { Appender } from './appender';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.\n * @param {boolean} props.selectBlockInCanvas Flag to determine whether the list view should be a block selection mechanism,.\n * @param {Object} ref Forwarded ref\n */\nfunction __ExperimentalOffCanvasEditor(\n\t{\n\t\tid,\n\t\tblocks,\n\t\tshowBlockMovers = false,\n\t\tisExpanded = false,\n\t\tselectBlockInCanvas = true,\n\t},\n\tref\n) {\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( blocks );\n\n\tconst { visibleBlockCount, shouldShowInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t\tshouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out',\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, blockClientId ) => {\n\t\t\tupdateBlockSelection( event, blockClientId );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'collapse',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[ isMounted.current, draggedClientIds, expandedState, expand, collapse ]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<div className=\"offcanvas-editor-list-view-tree-wrapper\">\n\t\t\t\t<TreeGrid\n\t\t\t\t\tid={ id }\n\t\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\t\tref={ treeGridRef }\n\t\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\t>\n\t\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tshouldShowInnerBlocks={ shouldShowInnerBlocks }\n\t\t\t\t\t\t\tselectBlockInCanvas={ selectBlockInCanvas }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TreeGridRow\n\t\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\t\tsetSize={ 1 }\n\t\t\t\t\t\t\tpositionInSet={ 1 }\n\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t\t\t<Appender { ...treeGridCellProps } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t</TreeGridRow>\n\t\t\t\t\t</ListViewContext.Provider>\n\t\t\t\t</TreeGrid>\n\t\t\t</div>\n\t\t</AsyncModeProvider>\n\t);\n}\n\nexport default forwardRef( __ExperimentalOffCanvasEditor );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","__experimentalTreeGridRow","TreeGridRow","__experimentalTreeGridCell","TreeGridCell","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","Appender","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","__ExperimentalOffCanvasEditor","ref","blocks","showBlockMovers","isExpanded","selectBlockInCanvas","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","shouldShowInnerBlocks","select","getGlobalBlockCount","getClientIdsOfDescendants","__unstableGetEditorMode","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","blockClientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted","treeGridCellProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\nimport { Appender } from './appender';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.\n * @param {boolean} props.selectBlockInCanvas Flag to determine whether the list view should be a block selection mechanism,.\n * @param {Object} ref Forwarded ref\n */\nfunction __ExperimentalOffCanvasEditor(\n\t{\n\t\tid,\n\t\tblocks,\n\t\tshowBlockMovers = false,\n\t\tisExpanded = false,\n\t\tselectBlockInCanvas = true,\n\t},\n\tref\n) {\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( blocks );\n\n\tconst { visibleBlockCount, shouldShowInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t\tshouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out',\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, blockClientId ) => {\n\t\t\tupdateBlockSelection( event, blockClientId );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'collapse',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[ isMounted.current, draggedClientIds, expandedState, expand, collapse ]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<div className=\"offcanvas-editor-list-view-tree-wrapper\">\n\t\t\t\t<TreeGrid\n\t\t\t\t\tid={ id }\n\t\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\t\tref={ treeGridRef }\n\t\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\t>\n\t\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tshouldShowInnerBlocks={ shouldShowInnerBlocks }\n\t\t\t\t\t\t\tselectBlockInCanvas={ selectBlockInCanvas }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TreeGridRow\n\t\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\t\tsetSize={ 1 }\n\t\t\t\t\t\t\tpositionInSet={ 1 }\n\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t\t\t<Appender { ...treeGridCellProps } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t\t{ ! clientIdsTree.length && (\n\t\t\t\t\t\t\t\t<TreeGridCell withoutGridItem>\n\t\t\t\t\t\t\t\t\t<div className=\"offcanvas-editor-list-view-is-empty\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Your menu is currently empty. Add your first menu item to get started.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridRow>\n\t\t\t\t\t</ListViewContext.Provider>\n\t\t\t\t</TreeGrid>\n\t\t\t</div>\n\t\t</AsyncModeProvider>\n\t);\n}\n\nexport default forwardRef( __ExperimentalOffCanvasEditor );\n"]}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+
9
+ import { store as blockEditorStore } from '../../store';
10
+ export const useInsertedBlock = insertedBlockClientId => {
11
+ const {
12
+ insertedBlockAttributes,
13
+ insertedBlockName
14
+ } = useSelect(select => {
15
+ const {
16
+ getBlockName,
17
+ getBlockAttributes
18
+ } = select(blockEditorStore);
19
+ return {
20
+ insertedBlockAttributes: getBlockAttributes(insertedBlockClientId),
21
+ insertedBlockName: getBlockName(insertedBlockClientId)
22
+ };
23
+ }, [insertedBlockClientId]);
24
+ const {
25
+ updateBlockAttributes
26
+ } = useDispatch(blockEditorStore);
27
+
28
+ const setInsertedBlockAttributes = _updatedAttributes => {
29
+ if (!insertedBlockClientId) return;
30
+ updateBlockAttributes(insertedBlockClientId, _updatedAttributes);
31
+ };
32
+
33
+ if (!insertedBlockClientId) {
34
+ return {
35
+ insertedBlockAttributes: undefined,
36
+ insertedBlockName: undefined,
37
+ setInsertedBlockAttributes
38
+ };
39
+ }
40
+
41
+ return {
42
+ insertedBlockAttributes,
43
+ insertedBlockName,
44
+ setInsertedBlockAttributes
45
+ };
46
+ };
47
+ //# sourceMappingURL=use-inserted-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/use-inserted-block.js"],"names":["useSelect","useDispatch","store","blockEditorStore","useInsertedBlock","insertedBlockClientId","insertedBlockAttributes","insertedBlockName","select","getBlockName","getBlockAttributes","updateBlockAttributes","setInsertedBlockAttributes","_updatedAttributes","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,MAAMC,gBAAgB,GAAKC,qBAAF,IAA6B;AAC5D,QAAM;AAAEC,IAAAA,uBAAF;AAA2BC,IAAAA;AAA3B,MAAiDP,SAAS,CAC7DQ,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLF,MAAM,CAAEL,gBAAF,CADP;AAGA,WAAO;AACNG,MAAAA,uBAAuB,EAAEI,kBAAkB,CAC1CL,qBAD0C,CADrC;AAINE,MAAAA,iBAAiB,EAAEE,YAAY,CAAEJ,qBAAF;AAJzB,KAAP;AAMA,GAX8D,EAY/D,CAAEA,qBAAF,CAZ+D,CAAhE;AAeA,QAAM;AAAEM,IAAAA;AAAF,MAA4BV,WAAW,CAAEE,gBAAF,CAA7C;;AAEA,QAAMS,0BAA0B,GAAKC,kBAAF,IAA0B;AAC5D,QAAK,CAAER,qBAAP,EAA+B;AAC/BM,IAAAA,qBAAqB,CAAEN,qBAAF,EAAyBQ,kBAAzB,CAArB;AACA,GAHD;;AAKA,MAAK,CAAER,qBAAP,EAA+B;AAC9B,WAAO;AACNC,MAAAA,uBAAuB,EAAEQ,SADnB;AAENP,MAAAA,iBAAiB,EAAEO,SAFb;AAGNF,MAAAA;AAHM,KAAP;AAKA;;AAED,SAAO;AACNN,IAAAA,uBADM;AAENC,IAAAA,iBAFM;AAGNK,IAAAA;AAHM,GAAP;AAKA,CApCM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport const useInsertedBlock = ( insertedBlockClientId ) => {\n\tconst { insertedBlockAttributes, insertedBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tinsertedBlockAttributes: getBlockAttributes(\n\t\t\t\t\tinsertedBlockClientId\n\t\t\t\t),\n\t\t\t\tinsertedBlockName: getBlockName( insertedBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ insertedBlockClientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst setInsertedBlockAttributes = ( _updatedAttributes ) => {\n\t\tif ( ! insertedBlockClientId ) return;\n\t\tupdateBlockAttributes( insertedBlockClientId, _updatedAttributes );\n\t};\n\n\tif ( ! insertedBlockClientId ) {\n\t\treturn {\n\t\t\tinsertedBlockAttributes: undefined,\n\t\t\tinsertedBlockName: undefined,\n\t\t\tsetInsertedBlockAttributes,\n\t\t};\n\t}\n\n\treturn {\n\t\tinsertedBlockAttributes,\n\t\tinsertedBlockName,\n\t\tsetInsertedBlockAttributes,\n\t};\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
3
  /**
4
4
  * WordPress dependencies
@@ -6,7 +6,6 @@ import { createElement } from "@wordpress/element";
6
6
  import { useInstanceId } from '@wordpress/compose';
7
7
  import { VisuallyHidden } from '@wordpress/components';
8
8
  import { _x, sprintf } from '@wordpress/i18n';
9
- import { Fragment } from '@wordpress/element';
10
9
  export default function ResponsiveBlockControlLabel(_ref) {
11
10
  let {
12
11
  property,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/responsive-block-control/label.js"],"names":["useInstanceId","VisuallyHidden","_x","sprintf","Fragment","ResponsiveBlockControlLabel","property","viewport","desc","instanceId","accessibleLabel","label"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,oBAA9B;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA,eAAe,SAASC,2BAAT,OAIX;AAAA,MAJiD;AACpDC,IAAAA,QADoD;AAEpDC,IAAAA,QAFoD;AAGpDC,IAAAA;AAHoD,GAIjD;AACH,QAAMC,UAAU,GAAGT,aAAa,CAAEK,2BAAF,CAAhC;AACA,QAAMK,eAAe,GACpBF,IAAI,IACJL,OAAO;AACN;AACAD,EAAAA,EAAE,CACD,gDADC,EAED,yGAFC,CAFI,EAMNI,QANM,EAONC,QAAQ,CAACI,KAPH,CAFR;AAWA,SACC,cAAC,QAAD,QACC;AAAM,wBAAoB,YAAYF,UAAY;AAAlD,KACGF,QAAQ,CAACI,KADZ,CADD,EAIC,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC,MAAnB;AAA0B,IAAA,EAAE,EAAI,YAAYF,UAAY;AAAxD,KACGC,eADH,CAJD,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { _x, sprintf } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\n\nexport default function ResponsiveBlockControlLabel( {\n\tproperty,\n\tviewport,\n\tdesc,\n} ) {\n\tconst instanceId = useInstanceId( ResponsiveBlockControlLabel );\n\tconst accessibleLabel =\n\t\tdesc ||\n\t\tsprintf(\n\t\t\t/* translators: 1: property name. 2: viewport name. */\n\t\t\t_x(\n\t\t\t\t'Controls the %1$s property for %2$s viewports.',\n\t\t\t\t'Text labelling a interface as controlling a given layout property (eg: margin) for a given screen size.'\n\t\t\t),\n\t\t\tproperty,\n\t\t\tviewport.label\n\t\t);\n\treturn (\n\t\t<Fragment>\n\t\t\t<span aria-describedby={ `rbc-desc-${ instanceId }` }>\n\t\t\t\t{ viewport.label }\n\t\t\t</span>\n\t\t\t<VisuallyHidden as=\"span\" id={ `rbc-desc-${ instanceId }` }>\n\t\t\t\t{ accessibleLabel }\n\t\t\t</VisuallyHidden>\n\t\t</Fragment>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/responsive-block-control/label.js"],"names":["useInstanceId","VisuallyHidden","_x","sprintf","ResponsiveBlockControlLabel","property","viewport","desc","instanceId","accessibleLabel","label"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,oBAA9B;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA,eAAe,SAASC,2BAAT,OAIX;AAAA,MAJiD;AACpDC,IAAAA,QADoD;AAEpDC,IAAAA,QAFoD;AAGpDC,IAAAA;AAHoD,GAIjD;AACH,QAAMC,UAAU,GAAGR,aAAa,CAAEI,2BAAF,CAAhC;AACA,QAAMK,eAAe,GACpBF,IAAI,IACJJ,OAAO;AACN;AACAD,EAAAA,EAAE,CACD,gDADC,EAED,yGAFC,CAFI,EAMNG,QANM,EAONC,QAAQ,CAACI,KAPH,CAFR;AAWA,SACC,8BACC;AAAM,wBAAoB,YAAYF,UAAY;AAAlD,KACGF,QAAQ,CAACI,KADZ,CADD,EAIC,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC,MAAnB;AAA0B,IAAA,EAAE,EAAI,YAAYF,UAAY;AAAxD,KACGC,eADH,CAJD,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { _x, sprintf } from '@wordpress/i18n';\n\nexport default function ResponsiveBlockControlLabel( {\n\tproperty,\n\tviewport,\n\tdesc,\n} ) {\n\tconst instanceId = useInstanceId( ResponsiveBlockControlLabel );\n\tconst accessibleLabel =\n\t\tdesc ||\n\t\tsprintf(\n\t\t\t/* translators: 1: property name. 2: viewport name. */\n\t\t\t_x(\n\t\t\t\t'Controls the %1$s property for %2$s viewports.',\n\t\t\t\t'Text labelling a interface as controlling a given layout property (eg: margin) for a given screen size.'\n\t\t\t),\n\t\t\tproperty,\n\t\t\tviewport.label\n\t\t);\n\treturn (\n\t\t<>\n\t\t\t<span aria-describedby={ `rbc-desc-${ instanceId }` }>\n\t\t\t\t{ viewport.label }\n\t\t\t</span>\n\t\t\t<VisuallyHidden as=\"span\" id={ `rbc-desc-${ instanceId }` }>\n\t\t\t\t{ accessibleLabel }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n}\n"]}
@@ -4,11 +4,6 @@ import { createElement } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { getActiveFormat, getActiveObject, isCollapsed } from '@wordpress/rich-text';
7
- /**
8
- * External dependencies
9
- */
10
-
11
- import { find } from 'lodash';
12
7
  export default function FormatEdit(_ref) {
13
8
  let {
14
9
  formatTypes,
@@ -38,12 +33,20 @@ export default function FormatEdit(_ref) {
38
33
  // links so we should not allow the link to be modified over the top.
39
34
 
40
35
  if (name === 'core/link' && !isCollapsed(value)) {
36
+ var _formats$value$start, _formats;
37
+
41
38
  const formats = value.formats;
42
- const linkFormatAtStart = find(formats[value.start], {
43
- type: 'core/link'
39
+ const linkFormatAtStart = (_formats$value$start = formats[value.start]) === null || _formats$value$start === void 0 ? void 0 : _formats$value$start.find(_ref2 => {
40
+ let {
41
+ type
42
+ } = _ref2;
43
+ return type === 'core/link';
44
44
  });
45
- const linkFormatAtEnd = find(formats[value.end - 1], {
46
- type: 'core/link'
45
+ const linkFormatAtEnd = (_formats = formats[value.end - 1]) === null || _formats === void 0 ? void 0 : _formats.find(_ref3 => {
46
+ let {
47
+ type
48
+ } = _ref3;
49
+ return type === 'core/link';
47
50
  });
48
51
 
49
52
  if (!linkFormatAtStart || !linkFormatAtEnd || linkFormatAtStart !== linkFormatAtEnd) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-edit.js"],"names":["getActiveFormat","getActiveObject","isCollapsed","find","FormatEdit","formatTypes","onChange","onFocus","value","forwardedRef","map","settings","name","edit","Edit","activeFormat","isActive","undefined","activeObject","isObjectActive","type","formats","linkFormatAtStart","start","linkFormatAtEnd","end","attributes"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,eADD,EAECC,eAFD,EAGCC,WAHD,QAIO,sBAJP;AAKA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,QAArB;AAEA,eAAe,SAASC,UAAT,OAMX;AAAA,MANgC;AACnCC,IAAAA,WADmC;AAEnCC,IAAAA,QAFmC;AAGnCC,IAAAA,OAHmC;AAInCC,IAAAA,KAJmC;AAKnCC,IAAAA;AALmC,GAMhC;AACH,SAAOJ,WAAW,CAACK,GAAZ,CAAmBC,QAAF,IAAgB;AACvC,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,IAAI,EAAEC;AAAd,QAAuBH,QAA7B;;AAEA,QAAK,CAAEG,IAAP,EAAc;AACb,aAAO,IAAP;AACA;;AAED,UAAMC,YAAY,GAAGf,eAAe,CAAEQ,KAAF,EAASI,IAAT,CAApC;AACA,QAAII,QAAQ,GAAGD,YAAY,KAAKE,SAAhC;AACA,UAAMC,YAAY,GAAGjB,eAAe,CAAEO,KAAF,CAApC;AACA,UAAMW,cAAc,GACnBD,YAAY,KAAKD,SAAjB,IAA8BC,YAAY,CAACE,IAAb,KAAsBR,IADrD,CAVuC,CAavC;AACA;AACA;AACA;AACA;AACA;;AACA,QAAKA,IAAI,KAAK,WAAT,IAAwB,CAAEV,WAAW,CAAEM,KAAF,CAA1C,EAAsD;AACrD,YAAMa,OAAO,GAAGb,KAAK,CAACa,OAAtB;AAEA,YAAMC,iBAAiB,GAAGnB,IAAI,CAAEkB,OAAO,CAAEb,KAAK,CAACe,KAAR,CAAT,EAA0B;AACvDH,QAAAA,IAAI,EAAE;AADiD,OAA1B,CAA9B;AAIA,YAAMI,eAAe,GAAGrB,IAAI,CAAEkB,OAAO,CAAEb,KAAK,CAACiB,GAAN,GAAY,CAAd,CAAT,EAA4B;AACvDL,QAAAA,IAAI,EAAE;AADiD,OAA5B,CAA5B;;AAIA,UACC,CAAEE,iBAAF,IACA,CAAEE,eADF,IAEAF,iBAAiB,KAAKE,eAHvB,EAIE;AACDR,QAAAA,QAAQ,GAAG,KAAX;AACA;AACD;;AAED,WACC,cAAC,IAAD;AACC,MAAA,GAAG,EAAGJ,IADP;AAEC,MAAA,QAAQ,EAAGI,QAFZ;AAGC,MAAA,gBAAgB,EACfA,QAAQ,GAAGD,YAAY,CAACW,UAAb,IAA2B,EAA9B,GAAmC,EAJ7C;AAMC,MAAA,cAAc,EAAGP,cANlB;AAOC,MAAA,sBAAsB,EACrBA,cAAc,GAAGD,YAAY,CAACQ,UAAb,IAA2B,EAA9B,GAAmC,EARnD;AAUC,MAAA,KAAK,EAAGlB,KAVT;AAWC,MAAA,QAAQ,EAAGF,QAXZ;AAYC,MAAA,OAAO,EAAGC,OAZX;AAaC,MAAA,UAAU,EAAGE;AAbd,MADD;AAiBA,GAxDM,CAAP;AAyDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetActiveFormat,\n\tgetActiveObject,\n\tisCollapsed,\n} from '@wordpress/rich-text';\n/**\n * External dependencies\n */\nimport { find } from 'lodash';\n\nexport default function FormatEdit( {\n\tformatTypes,\n\tonChange,\n\tonFocus,\n\tvalue,\n\tforwardedRef,\n} ) {\n\treturn formatTypes.map( ( settings ) => {\n\t\tconst { name, edit: Edit } = settings;\n\n\t\tif ( ! Edit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeFormat = getActiveFormat( value, name );\n\t\tlet isActive = activeFormat !== undefined;\n\t\tconst activeObject = getActiveObject( value );\n\t\tconst isObjectActive =\n\t\t\tactiveObject !== undefined && activeObject.type === name;\n\n\t\t// Edge case: un-collapsed link formats.\n\t\t// If there is a missing link format at either end of the selection\n\t\t// then we shouldn't show the Edit UI because the selection has exceeded\n\t\t// the bounds of the link format.\n\t\t// Also if the format objects don't match then we're dealing with two separate\n\t\t// links so we should not allow the link to be modified over the top.\n\t\tif ( name === 'core/link' && ! isCollapsed( value ) ) {\n\t\t\tconst formats = value.formats;\n\n\t\t\tconst linkFormatAtStart = find( formats[ value.start ], {\n\t\t\t\ttype: 'core/link',\n\t\t\t} );\n\n\t\t\tconst linkFormatAtEnd = find( formats[ value.end - 1 ], {\n\t\t\t\ttype: 'core/link',\n\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t! linkFormatAtStart ||\n\t\t\t\t! linkFormatAtEnd ||\n\t\t\t\tlinkFormatAtStart !== linkFormatAtEnd\n\t\t\t) {\n\t\t\t\tisActive = false;\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<Edit\n\t\t\t\tkey={ name }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tactiveAttributes={\n\t\t\t\t\tisActive ? activeFormat.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tisObjectActive={ isObjectActive }\n\t\t\t\tactiveObjectAttributes={\n\t\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tcontentRef={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-edit.js"],"names":["getActiveFormat","getActiveObject","isCollapsed","FormatEdit","formatTypes","onChange","onFocus","value","forwardedRef","map","settings","name","edit","Edit","activeFormat","isActive","undefined","activeObject","isObjectActive","type","formats","linkFormatAtStart","start","find","linkFormatAtEnd","end","attributes"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,eADD,EAECC,eAFD,EAGCC,WAHD,QAIO,sBAJP;AAMA,eAAe,SAASC,UAAT,OAMX;AAAA,MANgC;AACnCC,IAAAA,WADmC;AAEnCC,IAAAA,QAFmC;AAGnCC,IAAAA,OAHmC;AAInCC,IAAAA,KAJmC;AAKnCC,IAAAA;AALmC,GAMhC;AACH,SAAOJ,WAAW,CAACK,GAAZ,CAAmBC,QAAF,IAAgB;AACvC,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,IAAI,EAAEC;AAAd,QAAuBH,QAA7B;;AAEA,QAAK,CAAEG,IAAP,EAAc;AACb,aAAO,IAAP;AACA;;AAED,UAAMC,YAAY,GAAGd,eAAe,CAAEO,KAAF,EAASI,IAAT,CAApC;AACA,QAAII,QAAQ,GAAGD,YAAY,KAAKE,SAAhC;AACA,UAAMC,YAAY,GAAGhB,eAAe,CAAEM,KAAF,CAApC;AACA,UAAMW,cAAc,GACnBD,YAAY,KAAKD,SAAjB,IAA8BC,YAAY,CAACE,IAAb,KAAsBR,IADrD,CAVuC,CAavC;AACA;AACA;AACA;AACA;AACA;;AACA,QAAKA,IAAI,KAAK,WAAT,IAAwB,CAAET,WAAW,CAAEK,KAAF,CAA1C,EAAsD;AAAA;;AACrD,YAAMa,OAAO,GAAGb,KAAK,CAACa,OAAtB;AAEA,YAAMC,iBAAiB,2BAAGD,OAAO,CAAEb,KAAK,CAACe,KAAR,CAAV,yDAAG,qBAAwBC,IAAxB,CACzB;AAAA,YAAE;AAAEJ,UAAAA;AAAF,SAAF;AAAA,eAAgBA,IAAI,KAAK,WAAzB;AAAA,OADyB,CAA1B;AAIA,YAAMK,eAAe,eAAGJ,OAAO,CAAEb,KAAK,CAACkB,GAAN,GAAY,CAAd,CAAV,6CAAG,SAA0BF,IAA1B,CACvB;AAAA,YAAE;AAAEJ,UAAAA;AAAF,SAAF;AAAA,eAAgBA,IAAI,KAAK,WAAzB;AAAA,OADuB,CAAxB;;AAIA,UACC,CAAEE,iBAAF,IACA,CAAEG,eADF,IAEAH,iBAAiB,KAAKG,eAHvB,EAIE;AACDT,QAAAA,QAAQ,GAAG,KAAX;AACA;AACD;;AAED,WACC,cAAC,IAAD;AACC,MAAA,GAAG,EAAGJ,IADP;AAEC,MAAA,QAAQ,EAAGI,QAFZ;AAGC,MAAA,gBAAgB,EACfA,QAAQ,GAAGD,YAAY,CAACY,UAAb,IAA2B,EAA9B,GAAmC,EAJ7C;AAMC,MAAA,cAAc,EAAGR,cANlB;AAOC,MAAA,sBAAsB,EACrBA,cAAc,GAAGD,YAAY,CAACS,UAAb,IAA2B,EAA9B,GAAmC,EARnD;AAUC,MAAA,KAAK,EAAGnB,KAVT;AAWC,MAAA,QAAQ,EAAGF,QAXZ;AAYC,MAAA,OAAO,EAAGC,OAZX;AAaC,MAAA,UAAU,EAAGE;AAbd,MADD;AAiBA,GAxDM,CAAP;AAyDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetActiveFormat,\n\tgetActiveObject,\n\tisCollapsed,\n} from '@wordpress/rich-text';\n\nexport default function FormatEdit( {\n\tformatTypes,\n\tonChange,\n\tonFocus,\n\tvalue,\n\tforwardedRef,\n} ) {\n\treturn formatTypes.map( ( settings ) => {\n\t\tconst { name, edit: Edit } = settings;\n\n\t\tif ( ! Edit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeFormat = getActiveFormat( value, name );\n\t\tlet isActive = activeFormat !== undefined;\n\t\tconst activeObject = getActiveObject( value );\n\t\tconst isObjectActive =\n\t\t\tactiveObject !== undefined && activeObject.type === name;\n\n\t\t// Edge case: un-collapsed link formats.\n\t\t// If there is a missing link format at either end of the selection\n\t\t// then we shouldn't show the Edit UI because the selection has exceeded\n\t\t// the bounds of the link format.\n\t\t// Also if the format objects don't match then we're dealing with two separate\n\t\t// links so we should not allow the link to be modified over the top.\n\t\tif ( name === 'core/link' && ! isCollapsed( value ) ) {\n\t\t\tconst formats = value.formats;\n\n\t\t\tconst linkFormatAtStart = formats[ value.start ]?.find(\n\t\t\t\t( { type } ) => type === 'core/link'\n\t\t\t);\n\n\t\t\tconst linkFormatAtEnd = formats[ value.end - 1 ]?.find(\n\t\t\t\t( { type } ) => type === 'core/link'\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\t! linkFormatAtStart ||\n\t\t\t\t! linkFormatAtEnd ||\n\t\t\t\tlinkFormatAtStart !== linkFormatAtEnd\n\t\t\t) {\n\t\t\t\tisActive = false;\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<Edit\n\t\t\t\tkey={ name }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tactiveAttributes={\n\t\t\t\t\tisActive ? activeFormat.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tisObjectActive={ isObjectActive }\n\t\t\t\tactiveObjectAttributes={\n\t\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tcontentRef={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"]}