@wordpress/block-editor 8.1.2 → 8.3.0-next.e230fbab09.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 (591) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +6 -26
  3. package/build/autocompleters/link.js +78 -0
  4. package/build/autocompleters/link.js.map +1 -0
  5. package/build/components/autocomplete/index.js +3 -1
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-actions/index.js +1 -1
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +4 -2
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-compare/index.js +2 -2
  12. package/build/components/block-compare/index.js.map +1 -1
  13. package/build/components/block-controls/index.js +1 -1
  14. package/build/components/block-controls/index.js.map +1 -1
  15. package/build/components/block-draggable/index.js +1 -1
  16. package/build/components/block-draggable/index.js.map +1 -1
  17. package/build/components/block-edit/edit.js +1 -1
  18. package/build/components/block-edit/edit.js.map +1 -1
  19. package/build/components/block-list/block-html.js +1 -1
  20. package/build/components/block-list/block-html.js.map +1 -1
  21. package/build/components/block-list/block-invalid-warning.js +1 -1
  22. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +4 -4
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-selection-button.native.js +4 -3
  26. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  27. package/build/components/block-list/block.js +17 -3
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +6 -6
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +5 -5
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -1
  34. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  35. package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -0
  36. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  37. package/build/components/block-list/use-block-props/use-multi-selection.js +25 -27
  38. package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  39. package/build/components/block-media-update-progress/index.native.js +4 -4
  40. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  44. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  45. package/build/components/block-mover/mover-description.js +4 -4
  46. package/build/components/block-mover/mover-description.js.map +1 -1
  47. package/build/components/block-mover/mover-description.native.js +5 -5
  48. package/build/components/block-mover/mover-description.native.js.map +1 -1
  49. package/build/components/block-settings/container.native.js +1 -5
  50. package/build/components/block-settings/container.native.js.map +1 -1
  51. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -12
  52. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  53. package/build/components/block-styles/preview.native.js +1 -1
  54. package/build/components/block-styles/preview.native.js.map +1 -1
  55. package/build/components/block-switcher/index.js +2 -1
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  58. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  59. package/build/components/block-title/index.js +7 -62
  60. package/build/components/block-title/index.js.map +1 -1
  61. package/build/components/block-title/use-block-display-title.js +94 -0
  62. package/build/components/block-title/use-block-display-title.js.map +1 -0
  63. package/build/components/block-toolbar/utils.js +9 -1
  64. package/build/components/block-toolbar/utils.js.map +1 -1
  65. package/build/components/block-tools/block-popover.js +1 -1
  66. package/build/components/block-tools/block-popover.js.map +1 -1
  67. package/build/components/block-tools/block-selection-button.js +2 -1
  68. package/build/components/block-tools/block-selection-button.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +1 -1
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/border-radius-control/index.js +2 -2
  72. package/build/components/border-radius-control/index.js.map +1 -1
  73. package/build/components/border-radius-control/utils.js +10 -6
  74. package/build/components/border-radius-control/utils.js.map +1 -1
  75. package/build/components/contrast-checker/index.js +3 -3
  76. package/build/components/contrast-checker/index.js.map +1 -1
  77. package/build/components/convert-to-group-buttons/index.js +1 -1
  78. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  79. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  80. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  81. package/build/components/copy-handler/index.js +3 -3
  82. package/build/components/copy-handler/index.js.map +1 -1
  83. package/build/components/font-sizes/with-font-sizes.js +3 -3
  84. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  85. package/build/components/index.js +9 -0
  86. package/build/components/index.js.map +1 -1
  87. package/build/components/index.native.js +38 -1
  88. package/build/components/index.native.js.map +1 -1
  89. package/build/components/inserter/block-patterns-tab.js +4 -4
  90. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  91. package/build/components/inserter/block-types-tab.js +1 -1
  92. package/build/components/inserter/block-types-tab.js.map +1 -1
  93. package/build/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  94. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  95. package/build/components/inserter/index.js +3 -3
  96. package/build/components/inserter/index.js.map +1 -1
  97. package/build/components/inserter/index.native.js +7 -7
  98. package/build/components/inserter/index.native.js.map +1 -1
  99. package/build/components/inserter/menu.js.map +1 -1
  100. package/build/components/inserter/menu.native.js +3 -3
  101. package/build/components/inserter/menu.native.js.map +1 -1
  102. package/build/components/inserter/quick-inserter.js +20 -8
  103. package/build/components/inserter/quick-inserter.js.map +1 -1
  104. package/build/components/inserter/search-items.js +1 -1
  105. package/build/components/inserter/search-items.js.map +1 -1
  106. package/build/components/inserter/search-results.js +28 -11
  107. package/build/components/inserter/search-results.js.map +1 -1
  108. package/build/components/keyboard-shortcuts/index.js +1 -1
  109. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  110. package/build/components/letter-spacing-control/index.js +3 -3
  111. package/build/components/letter-spacing-control/index.js.map +1 -1
  112. package/build/components/line-height-control/index.js +63 -45
  113. package/build/components/line-height-control/index.js.map +1 -1
  114. package/build/components/line-height-control/index.native.js +3 -1
  115. package/build/components/line-height-control/index.native.js.map +1 -1
  116. package/build/components/link-control/index.js +2 -2
  117. package/build/components/link-control/index.js.map +1 -1
  118. package/build/components/link-control/search-input.js +1 -1
  119. package/build/components/link-control/search-input.js.map +1 -1
  120. package/build/components/link-control/search-results.js +2 -2
  121. package/build/components/link-control/search-results.js.map +1 -1
  122. package/build/components/link-control/use-rich-url-data.js +1 -1
  123. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  124. package/build/components/link-control/use-search-handler.js +2 -2
  125. package/build/components/link-control/use-search-handler.js.map +1 -1
  126. package/build/components/list-view/block-contents.js +8 -4
  127. package/build/components/list-view/block-contents.js.map +1 -1
  128. package/build/components/list-view/block-select-button.js +2 -2
  129. package/build/components/list-view/block-select-button.js.map +1 -1
  130. package/build/components/list-view/block.js +20 -9
  131. package/build/components/list-view/block.js.map +1 -1
  132. package/build/components/list-view/branch.js +2 -1
  133. package/build/components/list-view/branch.js.map +1 -1
  134. package/build/components/list-view/index.js +49 -41
  135. package/build/components/list-view/index.js.map +1 -1
  136. package/build/components/list-view/use-block-selection.js +139 -0
  137. package/build/components/list-view/use-block-selection.js.map +1 -0
  138. package/build/components/list-view/use-list-view-expand-selected-item.js +60 -0
  139. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
  140. package/build/components/list-view/utils.js +29 -1
  141. package/build/components/list-view/utils.js.map +1 -1
  142. package/build/components/media-placeholder/index.native.js +7 -5
  143. package/build/components/media-placeholder/index.native.js.map +1 -1
  144. package/build/components/media-replace-flow/index.js +20 -24
  145. package/build/components/media-replace-flow/index.js.map +1 -1
  146. package/build/components/media-upload/index.native.js +4 -3
  147. package/build/components/media-upload/index.native.js.map +1 -1
  148. package/build/components/media-upload-progress/index.native.js +2 -2
  149. package/build/components/media-upload-progress/index.native.js.map +1 -1
  150. package/build/components/navigable-toolbar/index.js +3 -3
  151. package/build/components/navigable-toolbar/index.js.map +1 -1
  152. package/build/components/plain-text/index.native.js +3 -3
  153. package/build/components/plain-text/index.native.js.map +1 -1
  154. package/build/components/rich-text/format-toolbar-container.js +2 -2
  155. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  156. package/build/components/rich-text/format-toolbar-container.native.js +1 -1
  157. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  158. package/build/components/rich-text/index.js +7 -12
  159. package/build/components/rich-text/index.js.map +1 -1
  160. package/build/components/rich-text/index.native.js +3 -3
  161. package/build/components/rich-text/index.native.js.map +1 -1
  162. package/build/components/rich-text/use-paste-handler.js +7 -12
  163. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  164. package/build/components/url-input/index.js +11 -11
  165. package/build/components/url-input/index.js.map +1 -1
  166. package/build/components/use-moving-animation/index.js +1 -1
  167. package/build/components/use-moving-animation/index.js.map +1 -1
  168. package/build/components/use-on-block-drop/index.js +2 -2
  169. package/build/components/use-on-block-drop/index.js.map +1 -1
  170. package/build/components/writing-flow/index.js +1 -0
  171. package/build/components/writing-flow/index.js.map +1 -1
  172. package/build/components/writing-flow/use-multi-selection.js +22 -24
  173. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  174. package/build/components/writing-flow/use-select-all.js +3 -2
  175. package/build/components/writing-flow/use-select-all.js.map +1 -1
  176. package/build/components/writing-flow/use-tab-nav.js +4 -3
  177. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  178. package/build/hooks/align.js +1 -1
  179. package/build/hooks/align.js.map +1 -1
  180. package/build/hooks/anchor.js +1 -1
  181. package/build/hooks/anchor.js.map +1 -1
  182. package/build/hooks/border.js +2 -14
  183. package/build/hooks/border.js.map +1 -1
  184. package/build/hooks/color.js +2 -2
  185. package/build/hooks/color.js.map +1 -1
  186. package/build/hooks/custom-class-name.js +40 -0
  187. package/build/hooks/custom-class-name.js.map +1 -1
  188. package/build/hooks/duotone.js +22 -4
  189. package/build/hooks/duotone.js.map +1 -1
  190. package/build/hooks/generated-class-name.js +3 -3
  191. package/build/hooks/generated-class-name.js.map +1 -1
  192. package/build/hooks/line-height.js +2 -0
  193. package/build/hooks/line-height.js.map +1 -1
  194. package/build/hooks/lock.js +1 -1
  195. package/build/hooks/lock.js.map +1 -1
  196. package/build/hooks/style.js +32 -13
  197. package/build/hooks/style.js.map +1 -1
  198. package/build/layouts/flow.js +7 -5
  199. package/build/layouts/flow.js.map +1 -1
  200. package/build/store/actions.js +55 -48
  201. package/build/store/actions.js.map +1 -1
  202. package/build/store/defaults.js +2 -1
  203. package/build/store/defaults.js.map +1 -1
  204. package/build/store/index.js +1 -2
  205. package/build/store/index.js.map +1 -1
  206. package/build/store/reducer.js +13 -13
  207. package/build/store/reducer.js.map +1 -1
  208. package/build/store/selectors.js +6 -6
  209. package/build/store/selectors.js.map +1 -1
  210. package/build/utils/index.js +0 -14
  211. package/build/utils/index.js.map +1 -1
  212. package/build/utils/parse-css-unit-to-px.js +3 -3
  213. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  214. package/build/utils/pasting.js +91 -0
  215. package/build/utils/pasting.js.map +1 -0
  216. package/build/utils/transform-styles/ast/parse.js +5 -5
  217. package/build/utils/transform-styles/ast/parse.js.map +1 -1
  218. package/build/utils/transform-styles/transforms/url-rewrite.js +2 -2
  219. package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  220. package/build-module/autocompleters/link.js +64 -0
  221. package/build-module/autocompleters/link.js.map +1 -0
  222. package/build-module/components/autocomplete/index.js +2 -1
  223. package/build-module/components/autocomplete/index.js.map +1 -1
  224. package/build-module/components/block-actions/index.js +1 -1
  225. package/build-module/components/block-actions/index.js.map +1 -1
  226. package/build-module/components/block-breadcrumb/index.js +4 -2
  227. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  228. package/build-module/components/block-compare/index.js +2 -2
  229. package/build-module/components/block-compare/index.js.map +1 -1
  230. package/build-module/components/block-controls/index.js +1 -1
  231. package/build-module/components/block-controls/index.js.map +1 -1
  232. package/build-module/components/block-draggable/index.js +1 -1
  233. package/build-module/components/block-draggable/index.js.map +1 -1
  234. package/build-module/components/block-edit/edit.js +1 -1
  235. package/build-module/components/block-edit/edit.js.map +1 -1
  236. package/build-module/components/block-list/block-html.js +1 -1
  237. package/build-module/components/block-list/block-html.js.map +1 -1
  238. package/build-module/components/block-list/block-invalid-warning.js +1 -1
  239. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  240. package/build-module/components/block-list/block-list-item.native.js +4 -4
  241. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  242. package/build-module/components/block-list/block-selection-button.native.js +4 -3
  243. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  244. package/build-module/components/block-list/block.js +18 -4
  245. package/build-module/components/block-list/block.js.map +1 -1
  246. package/build-module/components/block-list/block.native.js +7 -7
  247. package/build-module/components/block-list/block.native.js.map +1 -1
  248. package/build-module/components/block-list/index.native.js +5 -5
  249. package/build-module/components/block-list/index.native.js.map +1 -1
  250. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -1
  251. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  252. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +2 -0
  253. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  254. package/build-module/components/block-list/use-block-props/use-multi-selection.js +23 -28
  255. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  256. package/build-module/components/block-media-update-progress/index.native.js +4 -4
  257. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  258. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  259. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  260. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  261. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  262. package/build-module/components/block-mover/mover-description.js +4 -4
  263. package/build-module/components/block-mover/mover-description.js.map +1 -1
  264. package/build-module/components/block-mover/mover-description.native.js +5 -5
  265. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  266. package/build-module/components/block-settings/container.native.js +2 -6
  267. package/build-module/components/block-settings/container.native.js.map +1 -1
  268. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -13
  269. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  270. package/build-module/components/block-styles/preview.native.js +1 -1
  271. package/build-module/components/block-styles/preview.native.js.map +1 -1
  272. package/build-module/components/block-switcher/index.js +2 -1
  273. package/build-module/components/block-switcher/index.js.map +1 -1
  274. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  275. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  276. package/build-module/components/block-title/index.js +7 -58
  277. package/build-module/components/block-title/index.js.map +1 -1
  278. package/build-module/components/block-title/use-block-display-title.js +80 -0
  279. package/build-module/components/block-title/use-block-display-title.js.map +1 -0
  280. package/build-module/components/block-toolbar/utils.js +9 -1
  281. package/build-module/components/block-toolbar/utils.js.map +1 -1
  282. package/build-module/components/block-tools/block-popover.js +1 -1
  283. package/build-module/components/block-tools/block-popover.js.map +1 -1
  284. package/build-module/components/block-tools/block-selection-button.js +2 -1
  285. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  286. package/build-module/components/block-types-list/index.native.js +1 -1
  287. package/build-module/components/block-types-list/index.native.js.map +1 -1
  288. package/build-module/components/border-radius-control/index.js +3 -3
  289. package/build-module/components/border-radius-control/index.js.map +1 -1
  290. package/build-module/components/border-radius-control/utils.js +11 -7
  291. package/build-module/components/border-radius-control/utils.js.map +1 -1
  292. package/build-module/components/contrast-checker/index.js +3 -3
  293. package/build-module/components/contrast-checker/index.js.map +1 -1
  294. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  295. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  296. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  297. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  298. package/build-module/components/copy-handler/index.js +2 -2
  299. package/build-module/components/copy-handler/index.js.map +1 -1
  300. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  301. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  302. package/build-module/components/index.js +1 -0
  303. package/build-module/components/index.js.map +1 -1
  304. package/build-module/components/index.native.js +5 -4
  305. package/build-module/components/index.native.js.map +1 -1
  306. package/build-module/components/inserter/block-patterns-tab.js +4 -4
  307. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  308. package/build-module/components/inserter/block-types-tab.js +1 -1
  309. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  310. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  311. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  312. package/build-module/components/inserter/index.js +3 -3
  313. package/build-module/components/inserter/index.js.map +1 -1
  314. package/build-module/components/inserter/index.native.js +7 -7
  315. package/build-module/components/inserter/index.native.js.map +1 -1
  316. package/build-module/components/inserter/menu.js.map +1 -1
  317. package/build-module/components/inserter/menu.native.js +3 -3
  318. package/build-module/components/inserter/menu.native.js.map +1 -1
  319. package/build-module/components/inserter/quick-inserter.js +20 -8
  320. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  321. package/build-module/components/inserter/search-items.js +1 -1
  322. package/build-module/components/inserter/search-items.js.map +1 -1
  323. package/build-module/components/inserter/search-results.js +28 -11
  324. package/build-module/components/inserter/search-results.js.map +1 -1
  325. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  326. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  327. package/build-module/components/letter-spacing-control/index.js +3 -3
  328. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  329. package/build-module/components/line-height-control/index.js +61 -45
  330. package/build-module/components/line-height-control/index.js.map +1 -1
  331. package/build-module/components/line-height-control/index.native.js +3 -1
  332. package/build-module/components/line-height-control/index.native.js.map +1 -1
  333. package/build-module/components/link-control/index.js +2 -2
  334. package/build-module/components/link-control/index.js.map +1 -1
  335. package/build-module/components/link-control/search-input.js +1 -1
  336. package/build-module/components/link-control/search-input.js.map +1 -1
  337. package/build-module/components/link-control/search-results.js +2 -2
  338. package/build-module/components/link-control/search-results.js.map +1 -1
  339. package/build-module/components/link-control/use-rich-url-data.js +1 -1
  340. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  341. package/build-module/components/link-control/use-search-handler.js +2 -2
  342. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  343. package/build-module/components/list-view/block-contents.js +8 -4
  344. package/build-module/components/list-view/block-contents.js.map +1 -1
  345. package/build-module/components/list-view/block-select-button.js +2 -2
  346. package/build-module/components/list-view/block-select-button.js.map +1 -1
  347. package/build-module/components/list-view/block.js +20 -9
  348. package/build-module/components/list-view/block.js.map +1 -1
  349. package/build-module/components/list-view/branch.js +2 -1
  350. package/build-module/components/list-view/branch.js.map +1 -1
  351. package/build-module/components/list-view/index.js +46 -42
  352. package/build-module/components/list-view/index.js.map +1 -1
  353. package/build-module/components/list-view/use-block-selection.js +123 -0
  354. package/build-module/components/list-view/use-block-selection.js.map +1 -0
  355. package/build-module/components/list-view/use-list-view-expand-selected-item.js +50 -0
  356. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
  357. package/build-module/components/list-view/utils.js +25 -0
  358. package/build-module/components/list-view/utils.js.map +1 -1
  359. package/build-module/components/media-placeholder/index.native.js +7 -5
  360. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  361. package/build-module/components/media-replace-flow/index.js +22 -27
  362. package/build-module/components/media-replace-flow/index.js.map +1 -1
  363. package/build-module/components/media-upload/index.native.js +4 -3
  364. package/build-module/components/media-upload/index.native.js.map +1 -1
  365. package/build-module/components/media-upload-progress/index.native.js +2 -2
  366. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  367. package/build-module/components/navigable-toolbar/index.js +3 -3
  368. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  369. package/build-module/components/plain-text/index.native.js +3 -3
  370. package/build-module/components/plain-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/format-toolbar-container.js +2 -2
  372. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  373. package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
  374. package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
  375. package/build-module/components/rich-text/index.js +7 -12
  376. package/build-module/components/rich-text/index.js.map +1 -1
  377. package/build-module/components/rich-text/index.native.js +3 -3
  378. package/build-module/components/rich-text/index.native.js.map +1 -1
  379. package/build-module/components/rich-text/use-paste-handler.js +6 -12
  380. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  381. package/build-module/components/url-input/index.js +11 -11
  382. package/build-module/components/url-input/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +1 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +2 -2
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/writing-flow/index.js +1 -0
  388. package/build-module/components/writing-flow/index.js.map +1 -1
  389. package/build-module/components/writing-flow/use-multi-selection.js +21 -21
  390. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  391. package/build-module/components/writing-flow/use-select-all.js +3 -2
  392. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  393. package/build-module/components/writing-flow/use-tab-nav.js +4 -3
  394. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  395. package/build-module/hooks/align.js +1 -1
  396. package/build-module/hooks/align.js.map +1 -1
  397. package/build-module/hooks/anchor.js +1 -1
  398. package/build-module/hooks/anchor.js.map +1 -1
  399. package/build-module/hooks/border.js +2 -14
  400. package/build-module/hooks/border.js.map +1 -1
  401. package/build-module/hooks/color.js +2 -2
  402. package/build-module/hooks/color.js.map +1 -1
  403. package/build-module/hooks/custom-class-name.js +38 -0
  404. package/build-module/hooks/custom-class-name.js.map +1 -1
  405. package/build-module/hooks/duotone.js +23 -5
  406. package/build-module/hooks/duotone.js.map +1 -1
  407. package/build-module/hooks/generated-class-name.js +3 -3
  408. package/build-module/hooks/generated-class-name.js.map +1 -1
  409. package/build-module/hooks/line-height.js +2 -0
  410. package/build-module/hooks/line-height.js.map +1 -1
  411. package/build-module/hooks/lock.js +1 -1
  412. package/build-module/hooks/lock.js.map +1 -1
  413. package/build-module/hooks/style.js +31 -13
  414. package/build-module/hooks/style.js.map +1 -1
  415. package/build-module/layouts/flow.js +7 -5
  416. package/build-module/layouts/flow.js.map +1 -1
  417. package/build-module/store/actions.js +52 -45
  418. package/build-module/store/actions.js.map +1 -1
  419. package/build-module/store/defaults.js +2 -1
  420. package/build-module/store/defaults.js.map +1 -1
  421. package/build-module/store/index.js +1 -2
  422. package/build-module/store/index.js.map +1 -1
  423. package/build-module/store/reducer.js +13 -13
  424. package/build-module/store/reducer.js.map +1 -1
  425. package/build-module/store/selectors.js +6 -6
  426. package/build-module/store/selectors.js.map +1 -1
  427. package/build-module/utils/index.js +0 -1
  428. package/build-module/utils/index.js.map +1 -1
  429. package/build-module/utils/parse-css-unit-to-px.js +3 -3
  430. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  431. package/build-module/utils/pasting.js +80 -0
  432. package/build-module/utils/pasting.js.map +1 -0
  433. package/build-module/utils/transform-styles/ast/parse.js +5 -5
  434. package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
  435. package/build-module/utils/transform-styles/transforms/url-rewrite.js +2 -2
  436. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  437. package/build-style/style-rtl.css +10 -12
  438. package/build-style/style.css +10 -12
  439. package/package.json +27 -26
  440. package/src/autocompleters/link.js +62 -0
  441. package/src/autocompleters/style.scss +8 -0
  442. package/src/components/alignment-control/test/index.js +2 -2
  443. package/src/components/autocomplete/index.js +2 -0
  444. package/src/components/block-actions/index.js +1 -1
  445. package/src/components/block-alignment-control/test/index.js +1 -1
  446. package/src/components/block-breadcrumb/index.js +5 -2
  447. package/src/components/block-compare/index.js +2 -2
  448. package/src/components/block-controls/index.js +1 -1
  449. package/src/components/block-draggable/index.js +1 -1
  450. package/src/components/block-draggable/stories/index.js +1 -1
  451. package/src/components/block-edit/edit.js +1 -1
  452. package/src/components/block-list/block-html.js +1 -1
  453. package/src/components/block-list/block-invalid-warning.js +1 -1
  454. package/src/components/block-list/block-list-item.native.js +4 -4
  455. package/src/components/block-list/block-selection-button.native.js +3 -3
  456. package/src/components/block-list/block.js +28 -4
  457. package/src/components/block-list/block.native.js +7 -6
  458. package/src/components/block-list/index.native.js +5 -5
  459. package/src/components/block-list/style.scss +3 -1
  460. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
  461. package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -0
  462. package/src/components/block-list/use-block-props/use-multi-selection.js +22 -30
  463. package/src/components/block-media-update-progress/index.native.js +4 -4
  464. package/src/components/block-media-update-progress/test/index.native.js +2 -2
  465. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  466. package/src/components/block-mobile-toolbar/index.native.js +2 -2
  467. package/src/components/block-mover/mover-description.js +4 -4
  468. package/src/components/block-mover/mover-description.native.js +5 -5
  469. package/src/components/block-settings/container.native.js +5 -6
  470. package/src/components/block-settings-menu/block-settings-dropdown.js +7 -8
  471. package/src/components/block-styles/preview.native.js +1 -1
  472. package/src/components/block-switcher/index.js +4 -1
  473. package/src/components/block-switcher/use-transformed-patterns.js +0 -1
  474. package/src/components/block-title/README.md +17 -1
  475. package/src/components/block-title/index.js +7 -62
  476. package/src/components/block-title/test/index.js +21 -3
  477. package/src/components/block-title/use-block-display-title.js +83 -0
  478. package/src/components/block-toolbar/utils.js +12 -2
  479. package/src/components/block-tools/block-popover.js +1 -1
  480. package/src/components/block-tools/block-selection-button.js +4 -1
  481. package/src/components/block-types-list/index.native.js +1 -1
  482. package/src/components/border-radius-control/index.js +5 -3
  483. package/src/components/border-radius-control/test/utils.js +10 -10
  484. package/src/components/border-radius-control/utils.js +10 -8
  485. package/src/components/contrast-checker/index.js +3 -3
  486. package/src/components/convert-to-group-buttons/index.js +1 -1
  487. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -6
  488. package/src/components/copy-handler/index.js +2 -2
  489. package/src/components/font-sizes/with-font-sizes.js +3 -3
  490. package/src/components/image-size-control/test/index.js +1 -1
  491. package/src/components/index.js +1 -0
  492. package/src/components/index.native.js +11 -4
  493. package/src/components/inserter/block-patterns-tab.js +13 -17
  494. package/src/components/inserter/block-types-tab.js +1 -1
  495. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  496. package/src/components/inserter/index.js +3 -3
  497. package/src/components/inserter/index.native.js +7 -7
  498. package/src/components/inserter/menu.js +1 -1
  499. package/src/components/inserter/menu.native.js +3 -3
  500. package/src/components/inserter/quick-inserter.js +32 -10
  501. package/src/components/inserter/search-items.js +1 -1
  502. package/src/components/inserter/search-results.js +55 -43
  503. package/src/components/inserter/test/fixtures/index.native.js +1 -1
  504. package/src/components/inserter/test/reusable-blocks-tab.js +2 -2
  505. package/src/components/justify-content-control/README.md +1 -1
  506. package/src/components/keyboard-shortcuts/index.js +1 -1
  507. package/src/components/letter-spacing-control/index.js +1 -1
  508. package/src/components/line-height-control/README.md +13 -2
  509. package/src/components/line-height-control/index.js +66 -43
  510. package/src/components/line-height-control/index.native.js +2 -0
  511. package/src/components/line-height-control/stories/index.js +33 -0
  512. package/src/components/line-height-control/test/index.js +61 -0
  513. package/src/components/link-control/index.js +2 -2
  514. package/src/components/link-control/search-input.js +1 -1
  515. package/src/components/link-control/search-results.js +2 -2
  516. package/src/components/link-control/test/index.js +142 -144
  517. package/src/components/link-control/use-rich-url-data.js +1 -1
  518. package/src/components/link-control/use-search-handler.js +2 -2
  519. package/src/components/list-view/README.md +2 -2
  520. package/src/components/list-view/block-contents.js +10 -3
  521. package/src/components/list-view/block-select-button.js +1 -2
  522. package/src/components/list-view/block.js +30 -10
  523. package/src/components/list-view/branch.js +1 -0
  524. package/src/components/list-view/index.js +56 -30
  525. package/src/components/list-view/test/utils.js +50 -0
  526. package/src/components/list-view/use-block-selection.js +163 -0
  527. package/src/components/list-view/use-list-view-expand-selected-item.js +58 -0
  528. package/src/components/list-view/utils.js +31 -0
  529. package/src/components/media-placeholder/index.native.js +11 -9
  530. package/src/components/media-replace-flow/README.md +7 -0
  531. package/src/components/media-replace-flow/index.js +20 -26
  532. package/src/components/media-replace-flow/test/index.js +100 -0
  533. package/src/components/media-upload/index.native.js +3 -2
  534. package/src/components/media-upload-progress/index.native.js +2 -2
  535. package/src/components/navigable-toolbar/index.js +3 -3
  536. package/src/components/plain-text/index.native.js +3 -3
  537. package/src/components/responsive-block-control/test/index.js +6 -6
  538. package/src/components/rich-text/format-toolbar-container.js +2 -2
  539. package/src/components/rich-text/format-toolbar-container.native.js +1 -1
  540. package/src/components/rich-text/index.js +7 -14
  541. package/src/components/rich-text/index.native.js +3 -3
  542. package/src/components/rich-text/use-paste-handler.js +7 -14
  543. package/src/components/url-input/index.js +11 -11
  544. package/src/components/use-block-drop-zone/test/index.js +1 -1
  545. package/src/components/use-moving-animation/index.js +1 -1
  546. package/src/components/use-on-block-drop/index.js +2 -2
  547. package/src/components/writing-flow/index.js +1 -0
  548. package/src/components/writing-flow/use-multi-selection.js +17 -20
  549. package/src/components/writing-flow/use-select-all.js +6 -2
  550. package/src/components/writing-flow/use-tab-nav.js +6 -3
  551. package/src/hooks/align.js +1 -1
  552. package/src/hooks/anchor.js +1 -1
  553. package/src/hooks/border.js +8 -19
  554. package/src/hooks/color.js +2 -2
  555. package/src/hooks/custom-class-name.js +45 -0
  556. package/src/hooks/duotone.js +27 -3
  557. package/src/hooks/generated-class-name.js +3 -3
  558. package/src/hooks/line-height.js +2 -0
  559. package/src/hooks/lock.js +1 -1
  560. package/src/hooks/style.js +31 -13
  561. package/src/hooks/test/align.js +1 -1
  562. package/src/hooks/typography.scss +0 -4
  563. package/src/layouts/flow.js +10 -5
  564. package/src/store/actions.js +24 -14
  565. package/src/store/defaults.js +2 -2
  566. package/src/store/index.js +0 -1
  567. package/src/store/reducer.js +13 -12
  568. package/src/store/selectors.js +6 -6
  569. package/src/store/test/actions.js +2 -2
  570. package/src/store/test/reducer.js +10 -1
  571. package/src/store/test/selectors.js +1 -1
  572. package/src/style.scss +0 -1
  573. package/src/utils/index.js +0 -1
  574. package/src/utils/parse-css-unit-to-px.js +3 -3
  575. package/src/utils/pasting.js +77 -0
  576. package/src/utils/test/parse-css-unit-to-px.js +5 -5
  577. package/src/utils/test/pasting.js +84 -0
  578. package/src/utils/transform-styles/ast/parse.js +5 -5
  579. package/src/utils/transform-styles/transforms/url-rewrite.js +2 -2
  580. package/build/utils/get-paste-event-data.js +0 -56
  581. package/build/utils/get-paste-event-data.js.map +0 -1
  582. package/build/utils/theme.js +0 -63
  583. package/build/utils/theme.js.map +0 -1
  584. package/build-module/utils/get-paste-event-data.js +0 -47
  585. package/build-module/utils/get-paste-event-data.js.map +0 -1
  586. package/build-module/utils/theme.js +0 -53
  587. package/build-module/utils/theme.js.map +0 -1
  588. package/src/components/line-height-control/style.scss +0 -8
  589. package/src/components/writing-flow/test/use-multi-selection.js +0 -36
  590. package/src/utils/get-paste-event-data.js +0 -42
  591. package/src/utils/theme.js +0 -48
@@ -21,9 +21,11 @@ var _data = require("@wordpress/data");
21
21
 
22
22
  var _keycodes = require("@wordpress/keycodes");
23
23
 
24
+ var _icons = require("@wordpress/icons");
25
+
24
26
  var _compose = require("@wordpress/compose");
25
27
 
26
- var _icons = require("@wordpress/icons");
28
+ var _dom = require("@wordpress/dom");
27
29
 
28
30
  var _notices = require("@wordpress/notices");
29
31
 
@@ -53,6 +55,7 @@ const MediaReplaceFlow = _ref => {
53
55
  mediaIds,
54
56
  allowedTypes,
55
57
  accept,
58
+ onError,
56
59
  onSelect,
57
60
  onSelectURL,
58
61
  onFilesUpload = _lodash.noop,
@@ -69,25 +72,25 @@ const MediaReplaceFlow = _ref => {
69
72
  const mediaUpload = (0, _data.useSelect)(select => {
70
73
  return select(_store.store).getSettings().mediaUpload;
71
74
  }, []);
72
- const editMediaButtonRef = (0, _element.createRef)();
75
+ const editMediaButtonRef = (0, _element.useRef)();
73
76
  const errorNoticeID = (0, _lodash.uniqueId)('block-editor/media-replace-flow/error-notice/');
74
77
 
75
- const onError = message => {
76
- const errorElement = document.createElement('div');
77
- errorElement.innerHTML = (0, _element.renderToString)(message); // The default error contains some HTML that,
78
- // for example, makes the filename bold.
79
- // The notice, by default, accepts strings only and so
80
- // we need to remove the html from the error.
78
+ const onUploadError = message => {
79
+ const safeMessage = (0, _dom.__unstableStripHTML)(message);
81
80
 
82
- const renderMsg = errorElement.textContent || errorElement.innerText || ''; // We need to set a timeout for showing the notice
81
+ if (onError) {
82
+ onError(safeMessage);
83
+ return;
84
+ } // We need to set a timeout for showing the notice
83
85
  // so that VoiceOver and possibly other screen readers
84
86
  // can announce the error afer the toolbar button
85
87
  // regains focus once the upload dialog closes.
86
88
  // Otherwise VO simply skips over the notice and announces
87
89
  // the focused element and the open menu.
88
90
 
91
+
89
92
  setTimeout(() => {
90
- createNotice('error', renderMsg, {
93
+ createNotice('error', safeMessage, {
91
94
  speak: true,
92
95
  id: errorNoticeID,
93
96
  isDismissible: true
@@ -97,17 +100,13 @@ const MediaReplaceFlow = _ref => {
97
100
 
98
101
  const selectMedia = (media, closeMenu) => {
99
102
  closeMenu();
100
- setMediaURLValue(media.url); // Calling `onSelect` after the state update since it might unmount the component.
103
+ setMediaURLValue(media === null || media === void 0 ? void 0 : media.url); // Calling `onSelect` after the state update since it might unmount the component.
101
104
 
102
105
  onSelect(media);
103
106
  (0, _a11y.speak)((0, _i18n.__)('The media file has been replaced'));
104
107
  removeNotice(errorNoticeID);
105
108
  };
106
109
 
107
- const selectURL = newURL => {
108
- onSelectURL(newURL);
109
- };
110
-
111
110
  const uploadFiles = (event, closeMenu) => {
112
111
  const files = event.target.files;
113
112
 
@@ -117,17 +116,14 @@ const MediaReplaceFlow = _ref => {
117
116
  }
118
117
 
119
118
  onFilesUpload(files);
120
-
121
- const setMedia = _ref2 => {
122
- let [media] = _ref2;
123
- selectMedia(media, closeMenu);
124
- };
125
-
126
119
  mediaUpload({
127
120
  allowedTypes,
128
121
  filesList: files,
129
- onFileChange: setMedia,
130
- onError
122
+ onFileChange: _ref2 => {
123
+ let [media] = _ref2;
124
+ selectMedia(media, closeMenu);
125
+ },
126
+ onError: onUploadError
131
127
  });
132
128
  };
133
129
 
@@ -222,7 +218,7 @@ const MediaReplaceFlow = _ref => {
222
218
  url
223
219
  } = _ref7;
224
220
  setMediaURLValue(url);
225
- selectURL(url);
221
+ onSelectURL(url);
226
222
  editMediaButtonRef.current.focus();
227
223
  }
228
224
  })));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onSelect","onSelectURL","onFilesUpload","noop","onCloseModal","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","blockEditorStore","getSettings","editMediaButtonRef","errorNoticeID","onError","message","errorElement","document","createElement","innerHTML","renderMsg","textContent","innerText","setTimeout","speak","id","isDismissible","selectMedia","media","closeMenu","url","selectURL","newURL","uploadFiles","event","files","target","setMedia","filesList","onFileChange","openOnArrowDown","keyCode","DOWN","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","mediaIcon","openFileDialog","upload","current","focus","dispatch","noticesStore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { uniqueId, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, createRef, renderToString } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { compose } from '@wordpress/compose';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tonCloseModal = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = createRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onError = ( message ) => {\n\t\tconst errorElement = document.createElement( 'div' );\n\t\terrorElement.innerHTML = renderToString( message );\n\t\t// The default error contains some HTML that,\n\t\t// for example, makes the filename bold.\n\t\t// The notice, by default, accepts strings only and so\n\t\t// we need to remove the html from the error.\n\t\tconst renderMsg =\n\t\t\terrorElement.textContent || errorElement.innerText || '';\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', renderMsg, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst selectURL = ( newURL ) => {\n\t\tonSelectURL( newURL );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tconst setMedia = ( [ media ] ) => {\n\t\t\tselectMedia( media, closeMenu );\n\t\t};\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\tonClose={ onCloseModal }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tselectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onFilesUpload","noop","onCloseModal","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","blockEditorStore","getSettings","editMediaButtonRef","errorNoticeID","onUploadError","message","safeMessage","setTimeout","speak","id","isDismissible","selectMedia","media","closeMenu","url","uploadFiles","event","files","target","filesList","onFileChange","openOnArrowDown","keyCode","DOWN","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","mediaIcon","openFileDialog","upload","current","focus","dispatch","noticesStore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { compose } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tonCloseModal = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = useRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onUploadError = ( message ) => {\n\t\tconst safeMessage = stripHTML( message );\n\t\tif ( onError ) {\n\t\t\tonError( safeMessage );\n\t\t\treturn;\n\t\t}\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', safeMessage, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media?.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tselectMedia( media, closeMenu );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\tonClose={ onCloseModal }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
@@ -92,7 +92,7 @@ class MediaUpload extends _element.Component {
92
92
  getAllSources() {
93
93
  const cameraImageSource = {
94
94
  id: _reactNativeBridge.mediaSources.deviceCamera,
95
- // ID is the value sent to native
95
+ // ID is the value sent to native.
96
96
  value: _reactNativeBridge.mediaSources.deviceCamera + '-IMAGE',
97
97
  // This is needed to diferenciate image-camera from video-camera sources.
98
98
  label: (0, _i18n.__)('Take a Photo'),
@@ -195,7 +195,7 @@ class MediaUpload extends _element.Component {
195
195
  }, {
196
196
  text: (0, _i18n.__)('Apply'),
197
197
  onPress: onSelectURL
198
- }], // buttons
198
+ }], // Buttons.
199
199
  'plain-text', // type
200
200
  undefined, // defaultValue
201
201
  'url' // keyboardType
@@ -265,7 +265,8 @@ class MediaUpload extends _element.Component {
265
265
  hideCancelButton: true,
266
266
  ref: instance => this.picker = instance,
267
267
  options: this.getMediaOptionsItems(),
268
- onChange: this.onPickerSelect
268
+ onChange: this.onPickerSelect,
269
+ testID: "media-options-picker"
269
270
  });
270
271
 
271
272
  return this.props.render({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"names":["MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","OPTION_TAKE_VIDEO","OPTION_TAKE_PHOTO","OPTION_TAKE_PHOTO_OR_VIDEO","OPTION_INSERT_FROM_URL","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","Component","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","cameraImageSource","mediaSources","deviceCamera","label","icon","capturePhoto","cameraVideoSource","captureVideo","deviceLibrarySource","deviceLibrary","image","siteLibrarySource","siteMediaLibrary","wordpress","mediaLibrary","urlSource","globe","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","mobile","isIOS","Platform","OS","picker","presentPicker","onSelect","onSelectURL","multiple","undefined","text","style","onPress","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","instance","open","select","blockEditorStore","getSettings"],"mappings":";;;;;;;;;AAYA;;AATA;;AAEA;;AAEA;;AAMA;;AACA;;AACA;;AAKA;;AAQA;;AACA;;AACA;;AA9BA;AACA;AACA;;AAOA;AACA;AACA;AAqBO,MAAMA,gBAAgB,GAAG,OAAzB;;AACA,MAAMC,gBAAgB,GAAG,OAAzB;;AACA,MAAMC,gBAAgB,GAAG,OAAzB;;AACA,MAAMC,cAAc,GAAG,KAAvB;;AAEA,MAAMC,iBAAiB,GAAG,cAAI,cAAJ,CAA1B;;AACA,MAAMC,iBAAiB,GAAG,cAAI,cAAJ,CAA1B;;AACA,MAAMC,0BAA0B,GAAG,cAAI,uBAAJ,CAAnC;;AACA,MAAMC,sBAAsB,GAAG,cAAI,iBAAJ,CAA/B;;AAEP,MAAMC,gBAAgB,GAAG,KAAzB;AAEA,MAAMC,oBAAoB,GAAG,GAA7B;;AAEO,MAAMC,WAAN,SAA0BC,kBAA1B,CAAoC;AAC1CC,EAAAA,WAAW,CAAEC,KAAF,EAAU;AACpB,UAAOA,KAAP;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBC,IAArB,CAA2B,IAA3B,CAAvB;AACA,SAAKC,cAAL,GAAsB,KAAKA,cAAL,CAAoBD,IAApB,CAA0B,IAA1B,CAAtB;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKG,KAAL,GAAa;AACZC,MAAAA,iBAAiB,EAAE;AADP,KAAb;AAGA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB,UAAM;AAAEC,MAAAA,YAAY,GAAG,EAAjB;AAAqBC,MAAAA;AAArB,QAAkC,KAAKT,KAA7C;AACA,iDAAsBQ,YAAtB,EAAsCF,iBAAF,IAAyB;AAC5D,YAAMI,0BAA0B,GAAGJ,iBAAiB,CAACK,GAAlB,CAChCC,MAAF,IAAc;AACb,eAAO,EACN,GAAGA,MADG;AAENC,UAAAA,aAAa,EAAE,IAFT;AAGNC,UAAAA,KAAK,EAAEN,YAHD;AAINO,UAAAA,EAAE,EAAEH,MAAM,CAACI;AAJL,SAAP;AAMA,OARiC,CAAnC;AAWA,WAAKC,QAAL,CAAe;AAAEX,QAAAA,iBAAiB,EAAEI;AAArB,OAAf;AACA,KAbD;;AAeA,QAAKD,QAAL,EAAgB;AACf,WAAKR,eAAL;AACA;AACD;;AAEDG,EAAAA,aAAa,GAAG;AACf,UAAMc,iBAAiB,GAAG;AACzBH,MAAAA,EAAE,EAAEI,gCAAaC,YADQ;AACM;AAC/BJ,MAAAA,KAAK,EAAEG,gCAAaC,YAAb,GAA4B,QAFV;AAEoB;AAC7CC,MAAAA,KAAK,EAAE,cAAI,cAAJ,CAHkB;AAIzBR,MAAAA,aAAa,EAAE,IAJU;AAKzBC,MAAAA,KAAK,EAAE,CAAE3B,gBAAF,CALkB;AAMzBmC,MAAAA,IAAI,EAAEC;AANmB,KAA1B;AASA,UAAMC,iBAAiB,GAAG;AACzBT,MAAAA,EAAE,EAAEI,gCAAaC,YADQ;AAEzBJ,MAAAA,KAAK,EAAEG,gCAAaC,YAFK;AAGzBC,MAAAA,KAAK,EAAE,cAAI,cAAJ,CAHkB;AAIzBR,MAAAA,aAAa,EAAE,IAJU;AAKzBC,MAAAA,KAAK,EAAE,CAAE1B,gBAAF,CALkB;AAMzBkC,MAAAA,IAAI,EAAEG;AANmB,KAA1B;AASA,UAAMC,mBAAmB,GAAG;AAC3BX,MAAAA,EAAE,EAAEI,gCAAaQ,aADU;AAE3BX,MAAAA,KAAK,EAAEG,gCAAaQ,aAFO;AAG3BN,MAAAA,KAAK,EAAE,cAAI,oBAAJ,CAHoB;AAI3BR,MAAAA,aAAa,EAAE,IAJY;AAK3BC,MAAAA,KAAK,EAAE,CAAE3B,gBAAF,EAAoBC,gBAApB,CALoB;AAM3BkC,MAAAA,IAAI,EAAEM;AANqB,KAA5B;AASA,UAAMC,iBAAiB,GAAG;AACzBd,MAAAA,EAAE,EAAEI,gCAAaW,gBADQ;AAEzBd,MAAAA,KAAK,EAAEG,gCAAaW,gBAFK;AAGzBT,MAAAA,KAAK,EAAE,cAAI,yBAAJ,CAHkB;AAIzBR,MAAAA,aAAa,EAAE,IAJU;AAKzBC,MAAAA,KAAK,EAAE,CACN3B,gBADM,EAENC,gBAFM,EAGNC,gBAHM,EAINC,cAJM,CALkB;AAWzBgC,MAAAA,IAAI,EAAES,gBAXmB;AAYzBC,MAAAA,YAAY,EAAE;AAZW,KAA1B;AAeA,UAAMC,SAAS,GAAG;AACjBlB,MAAAA,EAAE,EAAEpB,gBADa;AAEjBqB,MAAAA,KAAK,EAAErB,gBAFU;AAGjB0B,MAAAA,KAAK,EAAE,cAAI,iBAAJ,CAHU;AAIjBP,MAAAA,KAAK,EAAE,CAAEzB,gBAAF,CAJU;AAKjBiC,MAAAA,IAAI,EAAEY;AALW,KAAlB;AAQA,UAAMC,eAAe,GAAG,CACvBT,mBADuB,EAEvBR,iBAFuB,EAGvBM,iBAHuB,EAIvBK,iBAJuB,EAKvBI,SALuB,CAAxB;AAQA,WAAOE,eAAe,CAACC,MAAhB,CAAwB,KAAK/B,KAAL,CAAWC,iBAAnC,CAAP;AACA;;AAED+B,EAAAA,oBAAoB,GAAG;AACtB,UAAM;AACL7B,MAAAA,YAAY,GAAG,EADV;AAEL8B,MAAAA,8BAFK;AAGLC,MAAAA;AAHK,QAIF,KAAKvC,KAJT;AAMA,WAAO,KAAKI,aAAL,GACLoC,MADK,CACKC,MAAF,IAAc;AACtB,UAAKH,8BAAL,EAAsC;AACrC,eAAOG,MAAM,CAACT,YAAd;AACA,OAFD,MAEO,IACNxB,YAAY,CAACkC,KAAb,CACGC,WAAF,IACCA,WAAW,KAAKtD,gBAAhB,IACAoD,MAAM,CAAC3B,KAAP,CAAa8B,QAAb,CAAuBD,WAAvB,CAHF,KAKAF,MAAM,CAAC1B,EAAP,KAAcpB,gBANR,EAOL;AACD,eAAO4C,8BAA8B,KAAK,IAA1C;AACA;;AAED,aAAO/B,YAAY,CAACqC,IAAb,CAAqBF,WAAF,IACzBF,MAAM,CAAC3B,KAAP,CAAa8B,QAAb,CAAuBD,WAAvB,CADM,CAAP;AAGA,KAlBK,EAmBLhC,GAnBK,CAmBE8B,MAAF,IAAc;AACnB,aAAO,EACN,GAAGA,MADG;AAENnB,QAAAA,IAAI,EAAEmB,MAAM,CAACnB,IAAP,IAAe,KAAKwB,uBAAL;AAFf,OAAP;AAIA,KAxBK,CAAP;AAyBA;;AAEDA,EAAAA,uBAAuB,GAAG;AACzB,WAAOC,aAAP;AACA;;AAED9C,EAAAA,eAAe,GAAG;AACjB,UAAM;AAAEQ,MAAAA;AAAF,QAAe,KAAKT,KAA1B;AACA,UAAMgD,KAAK,GAAGC,sBAASC,EAAT,KAAgB,KAA9B;;AAEA,QAAK,KAAKC,MAAV,EAAmB;AAClB;AACA;AACA,UAAK1C,QAAQ,IAAIuC,KAAjB,EAAyB;AACxB,2BACC,MAAM,KAAKG,MAAL,CAAYC,aAAZ,EADP,EAECxD,oBAFD;AAIA,OALD,MAKO;AACN,aAAKuD,MAAL,CAAYC,aAAZ;AACA;AACD;AACD;;AAEDjD,EAAAA,cAAc,CAAEa,KAAF,EAAU;AACvB,UAAM;AACLR,MAAAA,YAAY,GAAG,EADV;AAEL6C,MAAAA,QAFK;AAGLC,MAAAA,WAHK;AAILC,MAAAA,QAAQ,GAAG;AAJN,QAKF,KAAKvD,KALT;;AAOA,QAAKgB,KAAK,KAAKrB,gBAAf,EAAkC;AACjC,6CACC,cAAI,YAAJ,CADD,EACqB;AACpB6D,MAAAA,SAFD,EAEY;AACX,OACC;AACCC,QAAAA,IAAI,EAAE,cAAI,QAAJ,CADP;AAECC,QAAAA,KAAK,EAAE;AAFR,OADD,EAKC;AACCD,QAAAA,IAAI,EAAE,cAAI,OAAJ,CADP;AAECE,QAAAA,OAAO,EAAEL;AAFV,OALD,CAHD,EAYI;AACH,kBAbD,EAae;AACdE,MAAAA,SAdD,EAcY;AACX,WAfD,CAeO;AAfP;AAiBA;AACA;;AAED,UAAMI,WAAW,GAAG,KAAKxD,aAAL,GAClBoC,MADkB,CACRC,MAAF,IAAcA,MAAM,CAACzB,KAAP,KAAiBA,KADrB,EAElB6C,KAFkB,EAApB;AAGA,UAAM/C,KAAK,GAAGN,YAAY,CAACgC,MAAb,CAAuBsB,IAAF,IAClCF,WAAW,CAAC9C,KAAZ,CAAkB8B,QAAlB,CAA4BkB,IAA5B,CADa,CAAd;AAIA,+CAAoBF,WAAW,CAAC7C,EAAhC,EAAoCD,KAApC,EAA2CyC,QAA3C,EAAuDQ,KAAF,IAAa;AACjE,UAAOR,QAAQ,IAAIQ,KAAd,IAA2BA,KAAK,IAAIA,KAAK,CAAChD,EAA/C,EAAsD;AACrDsC,QAAAA,QAAQ,CAAEU,KAAF,CAAR;AACA;AACD,KAJD;AAKA;;AAEDC,EAAAA,MAAM,GAAG;AACR,UAAM;AAAExD,MAAAA,YAAY,GAAG,EAAjB;AAAqByD,MAAAA,gBAArB;AAAuCV,MAAAA;AAAvC,QAAoD,KAAKvD,KAA/D;AACA,UAAMkE,SAAS,GAAG1D,YAAY,CAAC2D,MAAb,KAAwB,CAA1C;AACA,UAAMC,OAAO,GAAGF,SAAS,IAAI1D,YAAY,CAACoC,QAAb,CAAuBzD,gBAAvB,CAA7B;AACA,UAAMkF,OAAO,GAAGH,SAAS,IAAI1D,YAAY,CAACoC,QAAb,CAAuBxD,gBAAvB,CAA7B;AACA,UAAMkF,OAAO,GAAGJ,SAAS,IAAI1D,YAAY,CAACoC,QAAb,CAAuBvD,gBAAvB,CAA7B;AACA,UAAMkF,SAAS,GAAGL,SAAS,IAAI1D,YAAY,CAACoC,QAAb,CAAuBtD,cAAvB,CAA/B;AAEA,UAAMkF,cAAc,GACnBhE,YAAY,CAAC2D,MAAb,KAAwB,CAAxB,IACA3D,YAAY,CAACoC,QAAb,CAAuBzD,gBAAvB,CADA,IAEAqB,YAAY,CAACoC,QAAb,CAAuBxD,gBAAvB,CAHD;AAKA,QAAIqF,WAAJ;;AACA,QAAKL,OAAL,EAAe;AACd,UAAKH,gBAAL,EAAwB;AACvBQ,QAAAA,WAAW,GAAG,cAAI,eAAJ,CAAd;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,GAAGlB,QAAQ,GACnB,cAAI,eAAJ,CADmB,GAEnB,cAAI,cAAJ,CAFH;AAGA;AACD,KARD,MAQO,IAAKc,OAAL,EAAe;AACrB,UAAKJ,gBAAL,EAAwB;AACvBQ,QAAAA,WAAW,GAAG,cAAI,eAAJ,CAAd;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,GAAG,cAAI,cAAJ,CAAd;AACA;AACD,KANM,MAMA,IAAKD,cAAL,EAAsB;AAC5B,UAAKP,gBAAL,EAAwB;AACvBQ,QAAAA,WAAW,GAAG,cAAI,wBAAJ,CAAd;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,GAAG,cAAI,uBAAJ,CAAd;AACA;AACD,KANM,MAMA,IAAKH,OAAL,EAAe;AACrB,UAAKL,gBAAL,EAAwB;AACvBQ,QAAAA,WAAW,GAAG,cAAI,eAAJ,CAAd;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,GAAG,cAAI,cAAJ,CAAd;AACA;AACD,KANM,MAMA,IAAKF,SAAL,EAAiB;AACvBE,MAAAA,WAAW,GAAG,cAAI,aAAJ,CAAd;;AACA,UAAKR,gBAAL,EAAwB;AACvBQ,QAAAA,WAAW,GAAG,cAAI,cAAJ,CAAd;AACA,OAFD,MAEO;AACNA,QAAAA,WAAW,GAAG,cAAI,aAAJ,CAAd;AACA;AACD;;AAED,UAAMC,eAAe,GAAG,MACvB,4BAAC,kBAAD;AACC,MAAA,KAAK,EAAGD,WADT;AAEC,MAAA,gBAAgB,MAFjB;AAGC,MAAA,GAAG,EAAKE,QAAF,IAAkB,KAAKxB,MAAL,GAAcwB,QAHvC;AAIC,MAAA,OAAO,EAAG,KAAKtC,oBAAL,EAJX;AAKC,MAAA,QAAQ,EAAG,KAAKlC;AALjB,MADD;;AAUA,WAAO,KAAKH,KAAL,CAAWgE,MAAX,CAAmB;AACzBY,MAAAA,IAAI,EAAE,KAAK3E,eADc;AAEzByE,MAAAA;AAFyB,KAAnB,CAAP;AAIA;;AAjQyC;;;;eAoQ5B,sBAAS,CACvB,sBAAcG,MAAF,IAAc;AACzB,SAAO;AACNtC,IAAAA,8BAA8B,EAC7BsC,MAAM,CAAEC,kBAAF,CAAN,CAA2BC,WAA3B,CAAwC,cAAxC,EACExC,8BADF,KACqC;AAHhC,GAAP;AAKA,CAND,CADuB,CAAT,EAQV1C,WARU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\nimport { delay } from 'lodash';\n\nimport prompt from 'react-native-prompt-android';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Picker } from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nexport const MEDIA_TYPE_IMAGE = 'image';\nexport const MEDIA_TYPE_VIDEO = 'video';\nexport const MEDIA_TYPE_AUDIO = 'audio';\nexport const MEDIA_TYPE_ANY = 'any';\n\nexport const OPTION_TAKE_VIDEO = __( 'Take a Video' );\nexport const OPTION_TAKE_PHOTO = __( 'Take a Photo' );\nexport const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );\nexport const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tgetAllSources() {\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\turlSource,\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tdelay(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\tonSelect,\n\t\t\tonSelectURL,\n\t\t\tmultiple = false,\n\t\t} = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tprompt(\n\t\t\t\t__( 'Type a URL' ), // title\n\t\t\t\tundefined, // message\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Cancel' ),\n\t\t\t\t\t\tstyle: 'cancel',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Apply' ),\n\t\t\t\t\t\tonPress: onSelectURL,\n\t\t\t\t\t},\n\t\t\t\t], // buttons\n\t\t\t\t'plain-text', // type\n\t\t\t\tundefined, // defaultValue\n\t\t\t\t'url' // keyboardType\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t/>\n\t\t);\n\n\t\treturn this.props.render( {\n\t\t\topen: this.onPickerPresent,\n\t\t\tgetMediaOptions,\n\t\t} );\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tselect( blockEditorStore ).getSettings( 'capabilities' )\n\t\t\t\t\t.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"names":["MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","OPTION_TAKE_VIDEO","OPTION_TAKE_PHOTO","OPTION_TAKE_PHOTO_OR_VIDEO","OPTION_INSERT_FROM_URL","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","Component","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","cameraImageSource","mediaSources","deviceCamera","label","icon","capturePhoto","cameraVideoSource","captureVideo","deviceLibrarySource","deviceLibrary","image","siteLibrarySource","siteMediaLibrary","wordpress","mediaLibrary","urlSource","globe","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","mobile","isIOS","Platform","OS","picker","presentPicker","onSelect","onSelectURL","multiple","undefined","text","style","onPress","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","instance","open","select","blockEditorStore","getSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\nimport { delay } from 'lodash';\n\nimport prompt from 'react-native-prompt-android';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Picker } from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nexport const MEDIA_TYPE_IMAGE = 'image';\nexport const MEDIA_TYPE_VIDEO = 'video';\nexport const MEDIA_TYPE_AUDIO = 'audio';\nexport const MEDIA_TYPE_ANY = 'any';\n\nexport const OPTION_TAKE_VIDEO = __( 'Take a Video' );\nexport const OPTION_TAKE_PHOTO = __( 'Take a Photo' );\nexport const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );\nexport const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tgetAllSources() {\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native.\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\turlSource,\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tdelay(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\tonSelect,\n\t\t\tonSelectURL,\n\t\t\tmultiple = false,\n\t\t} = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tprompt(\n\t\t\t\t__( 'Type a URL' ), // title\n\t\t\t\tundefined, // message\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Cancel' ),\n\t\t\t\t\t\tstyle: 'cancel',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Apply' ),\n\t\t\t\t\t\tonPress: onSelectURL,\n\t\t\t\t\t},\n\t\t\t\t], // Buttons.\n\t\t\t\t'plain-text', // type\n\t\t\t\tundefined, // defaultValue\n\t\t\t\t'url' // keyboardType\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t\ttestID=\"media-options-picker\"\n\t\t\t/>\n\t\t);\n\n\t\treturn this.props.render( {\n\t\t\topen: this.onPickerPresent,\n\t\t\tgetMediaOptions,\n\t\t} );\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tselect( blockEditorStore ).getSettings( 'capabilities' )\n\t\t\t\t\t.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"]}
@@ -131,7 +131,7 @@ class MediaUploadProgress extends _element.Component {
131
131
  }
132
132
 
133
133
  addMediaUploadListener() {
134
- //if we already have a subscription not worth doing it again
134
+ // If we already have a subscription not worth doing it again.
135
135
  if (this.subscriptionParentMediaUpload) {
136
136
  return;
137
137
  }
@@ -158,7 +158,7 @@ class MediaUploadProgress extends _element.Component {
158
158
  const showSpinner = this.state.isUploadInProgress;
159
159
  const progress = this.state.progress * 100; // eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace
160
160
 
161
- const retryMessage = (0, _i18n.__)('Failed to insert media.\nPlease tap for options.');
161
+ const retryMessage = (0, _i18n.__)('Failed to insert media.\nTap for more info.');
162
162
  const progressBarStyle = [_styles.default.progressBar, showSpinner || _styles.default.progressBarHidden, this.props.progressBarStyle];
163
163
  return (0, _element.createElement)(_reactNative.View, {
164
164
  style: [_styles.default.mediaUploadProgress, this.props.containerStyle],
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MediaUploadProgress","Component","constructor","props","state","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","render","renderContent","showSpinner","retryMessage","progressBarStyle","styles","progressBar","progressBarHidden","mediaUploadProgress","containerStyle","spinnerStyle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { subscribeMediaUpload } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport class MediaUploadProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaId } = this.props;\n\n\t\tif ( payload.mediaId !== mediaId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaProgress ) {\n\t\t\tthis.props.onUpdateMediaProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t//if we already have a subscription not worth doing it again\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst { isUploadInProgress, isUploadFailed } = this.state;\n\t\tconst showSpinner = this.state.isUploadInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessage = __(\n\t\t\t'Failed to insert media.\\nPlease tap for options.'\n\t\t);\n\n\t\tconst progressBarStyle = [\n\t\t\tstyles.progressBar,\n\t\t\tshowSpinner || styles.progressBarHidden,\n\t\t\tthis.props.progressBarStyle,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.mediaUploadProgress,\n\t\t\t\t\tthis.props.containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t>\n\t\t\t\t<View style={ progressBarStyle }>\n\t\t\t\t\t{ showSpinner && (\n\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\tprogress={ progress }\n\t\t\t\t\t\t\tstyle={ this.props.spinnerStyle }\n\t\t\t\t\t\t\ttestID=\"spinner\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default MediaUploadProgress;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MediaUploadProgress","Component","constructor","props","state","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","render","renderContent","showSpinner","retryMessage","progressBarStyle","styles","progressBar","progressBarHidden","mediaUploadProgress","containerStyle","spinnerStyle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { subscribeMediaUpload } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport class MediaUploadProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaId } = this.props;\n\n\t\tif ( payload.mediaId !== mediaId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaProgress ) {\n\t\t\tthis.props.onUpdateMediaProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst { isUploadInProgress, isUploadFailed } = this.state;\n\t\tconst showSpinner = this.state.isUploadInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessage = __(\n\t\t\t'Failed to insert media.\\nTap for more info.'\n\t\t);\n\n\t\tconst progressBarStyle = [\n\t\t\tstyles.progressBar,\n\t\t\tshowSpinner || styles.progressBarHidden,\n\t\t\tthis.props.progressBarStyle,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.mediaUploadProgress,\n\t\t\t\t\tthis.props.containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t>\n\t\t\t\t<View style={ progressBarStyle }>\n\t\t\t\t\t{ showSpinner && (\n\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\tprogress={ progress }\n\t\t\t\t\t\t\tstyle={ this.props.spinnerStyle }\n\t\t\t\t\t\t\ttestID=\"spinner\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default MediaUploadProgress;\n"]}
@@ -79,7 +79,7 @@ function useIsAccessibleToolbar(ref) {
79
79
  }, []);
80
80
  (0, _element.useLayoutEffect)(() => {
81
81
  // Toolbar buttons may be rendered asynchronously, so we use
82
- // MutationObserver to check if the toolbar subtree has been modified
82
+ // MutationObserver to check if the toolbar subtree has been modified.
83
83
  const observer = new window.MutationObserver(determineIsAccessibleToolbar);
84
84
  observer.observe(ref.current, {
85
85
  childList: true,
@@ -91,12 +91,12 @@ function useIsAccessibleToolbar(ref) {
91
91
  }
92
92
 
93
93
  function useToolbarFocus(ref, focusOnMount, isAccessibleToolbar, defaultIndex, onIndexChange) {
94
- // Make sure we don't use modified versions of this prop
94
+ // Make sure we don't use modified versions of this prop.
95
95
  const [initialFocusOnMount] = (0, _element.useState)(focusOnMount);
96
96
  const [initialIndex] = (0, _element.useState)(defaultIndex);
97
97
  const focusToolbar = (0, _element.useCallback)(() => {
98
98
  focusFirstTabbableIn(ref.current);
99
- }, []); // Focus on toolbar when pressing alt+F10 when the toolbar is visible
99
+ }, []); // Focus on toolbar when pressing alt+F10 when the toolbar is visible.
100
100
 
101
101
  (0, _keyboardShortcuts.useShortcut)('core/block-editor/focus-toolbar', focusToolbar);
102
102
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"names":["hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","useIsAccessibleToolbar","ref","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","determineIsAccessibleToolbar","tabbables","current","onlyToolbarItem","since","alternative","link","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","initialFocusOnMount","initialIndex","focusToolbar","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllToolbarItemsIn( container ) {\n\treturn Array.from( container.querySelectorAll( '[data-toolbar-item]' ) );\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus();\n\t}\n}\n\nfunction useIsAccessibleToolbar( ref ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( ref.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink:\n\t\t\t\t\t'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( ref.current, { childList: true, subtree: true } );\n\t\treturn () => observer.disconnect();\n\t}, [ isAccessibleToolbar ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus(\n\tref,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange\n) {\n\t// Make sure we don't use modified versions of this prop\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( ref.current );\n\t}, [] );\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbar );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\t\tif ( initialIndex && ! initialFocusOnMount ) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( ref.current ) ) {\n\t\t\t\t\titems[ index ].focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! ref.current ) return;\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount ] );\n}\n\nfunction NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst ref = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( ref );\n\n\tuseToolbarFocus(\n\t\tref,\n\t\tfocusOnMount,\n\t\tisAccessibleToolbar,\n\t\tinitialIndex,\n\t\tonIndexChange\n\t);\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar label={ props[ 'aria-label' ] } ref={ ref } { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n\nexport default NavigableToolbar;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"names":["hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","useIsAccessibleToolbar","ref","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","determineIsAccessibleToolbar","tabbables","current","onlyToolbarItem","since","alternative","link","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","initialFocusOnMount","initialIndex","focusToolbar","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllToolbarItemsIn( container ) {\n\treturn Array.from( container.querySelectorAll( '[data-toolbar-item]' ) );\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus();\n\t}\n}\n\nfunction useIsAccessibleToolbar( ref ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( ref.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink:\n\t\t\t\t\t'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( ref.current, { childList: true, subtree: true } );\n\t\treturn () => observer.disconnect();\n\t}, [ isAccessibleToolbar ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus(\n\tref,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange\n) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( ref.current );\n\t}, [] );\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbar );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\t\tif ( initialIndex && ! initialFocusOnMount ) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( ref.current ) ) {\n\t\t\t\t\titems[ index ].focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! ref.current ) return;\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount ] );\n}\n\nfunction NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst ref = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( ref );\n\n\tuseToolbarFocus(\n\t\tref,\n\t\tfocusOnMount,\n\t\tisAccessibleToolbar,\n\t\tinitialIndex,\n\t\tonIndexChange\n\t);\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar label={ props[ 'aria-label' ] } ref={ ref } { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n\nexport default NavigableToolbar;\n"]}
@@ -35,7 +35,7 @@ class PlainText extends _element.Component {
35
35
  }
36
36
 
37
37
  componentDidMount() {
38
- // if isSelected is true, we should request the focus on this TextInput
38
+ // If isSelected is true, we should request the focus on this TextInput.
39
39
  if (this._input && this._input.isFocused() === false && this.props.isSelected) {
40
40
  if (this.isAndroid) {
41
41
  /*
@@ -105,9 +105,9 @@ class PlainText extends _element.Component {
105
105
  onChange: event => {
106
106
  this.props.onChange(event.nativeEvent.text);
107
107
  },
108
- onFocus: this.props.onFocus // always assign onFocus as a props
108
+ onFocus: this.props.onFocus // Always assign onFocus as a props.
109
109
  ,
110
- onBlur: this.props.onBlur // always assign onBlur as a props
110
+ onBlur: this.props.onBlur // Always assign onBlur as a props.
111
111
  ,
112
112
  fontFamily: this.props.style && this.props.style.fontFamily || _style.default['block-editor-plain-text'].fontFamily,
113
113
  style: textStyles,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/plain-text/index.native.js"],"names":["PlainText","Component","constructor","arguments","isAndroid","Platform","OS","componentDidMount","_input","isFocused","props","isSelected","timeoutID","setTimeout","focus","componentDidUpdate","prevProps","blur","componentWillUnmount","clearTimeout","getFontSize","style","fontSize","width","height","Dimensions","get","cssUnitOptions","parseFloat","render","textStyles","styles","x","event","onChange","nativeEvent","text","onFocus","onBlur","fontFamily"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,MAAMA,SAAN,SAAwBC,kBAAxB,CAAkC;AAChDC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,SAAL,GAAiBC,sBAASC,EAAT,KAAgB,SAAjC;AACA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB;AACA,QACC,KAAKC,MAAL,IACA,KAAKA,MAAL,CAAYC,SAAZ,OAA4B,KAD5B,IAEA,KAAKC,KAAL,CAAWC,UAHZ,EAIE;AACD,UAAK,KAAKP,SAAV,EAAsB;AACrB;AACJ;AACA;AACA;AACA;AACI,aAAKQ,SAAL,GAAiBC,UAAU,CAAE,MAAM;AAClC,eAAKL,MAAL,CAAYM,KAAZ;AACA,SAF0B,EAExB,GAFwB,CAA3B;AAGA,OATD,MASO;AACN,aAAKN,MAAL,CAAYM,KAAZ;AACA;AACD;AACD;;AAEDC,EAAAA,kBAAkB,CAAEC,SAAF,EAAc;AAC/B,QAAK,CAAE,KAAKN,KAAL,CAAWC,UAAb,IAA2BK,SAAS,CAACL,UAA1C,EAAuD;AACtD,WAAKH,MAAL,CAAYS,IAAZ;AACA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB,QAAK,KAAKd,SAAV,EAAsB;AACrBe,MAAAA,YAAY,CAAE,KAAKP,SAAP,CAAZ;AACA;AACD;;AAEDE,EAAAA,KAAK,GAAG;AACP,SAAKN,MAAL,CAAYM,KAAZ;AACA;;AAEDG,EAAAA,IAAI,GAAG;AACN,SAAKT,MAAL,CAAYS,IAAZ;AACA;;AAEDG,EAAAA,WAAW,GAAG;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKX,KAAvB;;AAEA,QAAK,EAAEW,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEC,QAAT,CAAL,EAAyB;AACxB;AACA;;AAED,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAoBC,wBAAWC,GAAX,CAAgB,QAAhB,CAA1B;;AACA,UAAMC,cAAc,GAAG;AAAEH,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAvB;AAEA,WAAO;AACND,MAAAA,QAAQ,EAAEM,UAAU,CACnB,mCAAkBP,KAAK,CAACC,QAAxB,EAAkCK,cAAlC,CADmB;AADd,KAAP;AAKA;;AAEDE,EAAAA,MAAM,GAAG;AACR,UAAM;AAAER,MAAAA;AAAF,QAAY,KAAKX,KAAvB;AACA,UAAMoB,UAAU,GAAG,CAClBT,KAAK,IAAIU,eAAQ,yBAAR,CADS,EAElB,KAAKX,WAAL,EAFkB,CAAnB;AAKA,WACC,4BAAC,sBAAD,6BACM,KAAKV,KADX;AAEC,MAAA,GAAG,EAAKsB,CAAF,IAAW,KAAKxB,MAAL,GAAcwB,CAFhC;AAGC,MAAA,QAAQ,EAAKC,KAAF,IAAa;AACvB,aAAKvB,KAAL,CAAWwB,QAAX,CAAqBD,KAAK,CAACE,WAAN,CAAkBC,IAAvC;AACA,OALF;AAMC,MAAA,OAAO,EAAG,KAAK1B,KAAL,CAAW2B,OANtB,CAMgC;AANhC;AAOC,MAAA,MAAM,EAAG,KAAK3B,KAAL,CAAW4B,MAPrB,CAO8B;AAP9B;AAQC,MAAA,UAAU,EACP,KAAK5B,KAAL,CAAWW,KAAX,IAAoB,KAAKX,KAAL,CAAWW,KAAX,CAAiBkB,UAAvC,IACAR,eAAQ,yBAAR,EAAoCQ,UAVtC;AAYC,MAAA,KAAK,EAAGT,UAZT;AAaC,MAAA,aAAa,EAAG;AAbjB,OADD;AAiBA;;AAzF+C","sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput, Platform, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { getPxFromCssUnit } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport default class PlainText extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.isAndroid = Platform.OS === 'android';\n\t}\n\n\tcomponentDidMount() {\n\t\t// if isSelected is true, we should request the focus on this TextInput\n\t\tif (\n\t\t\tthis._input &&\n\t\t\tthis._input.isFocused() === false &&\n\t\t\tthis.props.isSelected\n\t\t) {\n\t\t\tif ( this.isAndroid ) {\n\t\t\t\t/*\n\t\t\t\t * There seems to be an issue in React Native where the keyboard doesn't show if called shortly after rendering.\n\t\t\t\t * As a common work around this delay is used.\n\t\t\t\t * https://github.com/facebook/react-native/issues/19366#issuecomment-400603928\n\t\t\t\t */\n\t\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\t\tthis._input.focus();\n\t\t\t\t}, 100 );\n\t\t\t} else {\n\t\t\t\tthis._input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis._input.blur();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.isAndroid ) {\n\t\t\tclearTimeout( this.timeoutID );\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis._input.focus();\n\t}\n\n\tblur() {\n\t\tthis._input.blur();\n\t}\n\n\tgetFontSize() {\n\t\tconst { style } = this.props;\n\n\t\tif ( ! style?.fontSize ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { width, height } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width };\n\n\t\treturn {\n\t\t\tfontSize: parseFloat(\n\t\t\t\tgetPxFromCssUnit( style.fontSize, cssUnitOptions )\n\t\t\t),\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { style } = this.props;\n\t\tconst textStyles = [\n\t\t\tstyle || styles[ 'block-editor-plain-text' ],\n\t\t\tthis.getFontSize(),\n\t\t];\n\n\t\treturn (\n\t\t\t<TextInput\n\t\t\t\t{ ...this.props }\n\t\t\t\tref={ ( x ) => ( this._input = x ) }\n\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\tthis.props.onChange( event.nativeEvent.text );\n\t\t\t\t} }\n\t\t\t\tonFocus={ this.props.onFocus } // always assign onFocus as a props\n\t\t\t\tonBlur={ this.props.onBlur } // always assign onBlur as a props\n\t\t\t\tfontFamily={\n\t\t\t\t\t( this.props.style && this.props.style.fontFamily ) ||\n\t\t\t\t\tstyles[ 'block-editor-plain-text' ].fontFamily\n\t\t\t\t}\n\t\t\t\tstyle={ textStyles }\n\t\t\t\tscrollEnabled={ false }\n\t\t\t/>\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/plain-text/index.native.js"],"names":["PlainText","Component","constructor","arguments","isAndroid","Platform","OS","componentDidMount","_input","isFocused","props","isSelected","timeoutID","setTimeout","focus","componentDidUpdate","prevProps","blur","componentWillUnmount","clearTimeout","getFontSize","style","fontSize","width","height","Dimensions","get","cssUnitOptions","parseFloat","render","textStyles","styles","x","event","onChange","nativeEvent","text","onFocus","onBlur","fontFamily"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,MAAMA,SAAN,SAAwBC,kBAAxB,CAAkC;AAChDC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,SAAL,GAAiBC,sBAASC,EAAT,KAAgB,SAAjC;AACA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB;AACA,QACC,KAAKC,MAAL,IACA,KAAKA,MAAL,CAAYC,SAAZ,OAA4B,KAD5B,IAEA,KAAKC,KAAL,CAAWC,UAHZ,EAIE;AACD,UAAK,KAAKP,SAAV,EAAsB;AACrB;AACJ;AACA;AACA;AACA;AACI,aAAKQ,SAAL,GAAiBC,UAAU,CAAE,MAAM;AAClC,eAAKL,MAAL,CAAYM,KAAZ;AACA,SAF0B,EAExB,GAFwB,CAA3B;AAGA,OATD,MASO;AACN,aAAKN,MAAL,CAAYM,KAAZ;AACA;AACD;AACD;;AAEDC,EAAAA,kBAAkB,CAAEC,SAAF,EAAc;AAC/B,QAAK,CAAE,KAAKN,KAAL,CAAWC,UAAb,IAA2BK,SAAS,CAACL,UAA1C,EAAuD;AACtD,WAAKH,MAAL,CAAYS,IAAZ;AACA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB,QAAK,KAAKd,SAAV,EAAsB;AACrBe,MAAAA,YAAY,CAAE,KAAKP,SAAP,CAAZ;AACA;AACD;;AAEDE,EAAAA,KAAK,GAAG;AACP,SAAKN,MAAL,CAAYM,KAAZ;AACA;;AAEDG,EAAAA,IAAI,GAAG;AACN,SAAKT,MAAL,CAAYS,IAAZ;AACA;;AAEDG,EAAAA,WAAW,GAAG;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKX,KAAvB;;AAEA,QAAK,EAAEW,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEC,QAAT,CAAL,EAAyB;AACxB;AACA;;AAED,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAoBC,wBAAWC,GAAX,CAAgB,QAAhB,CAA1B;;AACA,UAAMC,cAAc,GAAG;AAAEH,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAvB;AAEA,WAAO;AACND,MAAAA,QAAQ,EAAEM,UAAU,CACnB,mCAAkBP,KAAK,CAACC,QAAxB,EAAkCK,cAAlC,CADmB;AADd,KAAP;AAKA;;AAEDE,EAAAA,MAAM,GAAG;AACR,UAAM;AAAER,MAAAA;AAAF,QAAY,KAAKX,KAAvB;AACA,UAAMoB,UAAU,GAAG,CAClBT,KAAK,IAAIU,eAAQ,yBAAR,CADS,EAElB,KAAKX,WAAL,EAFkB,CAAnB;AAKA,WACC,4BAAC,sBAAD,6BACM,KAAKV,KADX;AAEC,MAAA,GAAG,EAAKsB,CAAF,IAAW,KAAKxB,MAAL,GAAcwB,CAFhC;AAGC,MAAA,QAAQ,EAAKC,KAAF,IAAa;AACvB,aAAKvB,KAAL,CAAWwB,QAAX,CAAqBD,KAAK,CAACE,WAAN,CAAkBC,IAAvC;AACA,OALF;AAMC,MAAA,OAAO,EAAG,KAAK1B,KAAL,CAAW2B,OANtB,CAMgC;AANhC;AAOC,MAAA,MAAM,EAAG,KAAK3B,KAAL,CAAW4B,MAPrB,CAO8B;AAP9B;AAQC,MAAA,UAAU,EACP,KAAK5B,KAAL,CAAWW,KAAX,IAAoB,KAAKX,KAAL,CAAWW,KAAX,CAAiBkB,UAAvC,IACAR,eAAQ,yBAAR,EAAoCQ,UAVtC;AAYC,MAAA,KAAK,EAAGT,UAZT;AAaC,MAAA,aAAa,EAAG;AAbjB,OADD;AAiBA;;AAzF+C","sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput, Platform, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { getPxFromCssUnit } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport default class PlainText extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.isAndroid = Platform.OS === 'android';\n\t}\n\n\tcomponentDidMount() {\n\t\t// If isSelected is true, we should request the focus on this TextInput.\n\t\tif (\n\t\t\tthis._input &&\n\t\t\tthis._input.isFocused() === false &&\n\t\t\tthis.props.isSelected\n\t\t) {\n\t\t\tif ( this.isAndroid ) {\n\t\t\t\t/*\n\t\t\t\t * There seems to be an issue in React Native where the keyboard doesn't show if called shortly after rendering.\n\t\t\t\t * As a common work around this delay is used.\n\t\t\t\t * https://github.com/facebook/react-native/issues/19366#issuecomment-400603928\n\t\t\t\t */\n\t\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\t\tthis._input.focus();\n\t\t\t\t}, 100 );\n\t\t\t} else {\n\t\t\t\tthis._input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis._input.blur();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.isAndroid ) {\n\t\t\tclearTimeout( this.timeoutID );\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis._input.focus();\n\t}\n\n\tblur() {\n\t\tthis._input.blur();\n\t}\n\n\tgetFontSize() {\n\t\tconst { style } = this.props;\n\n\t\tif ( ! style?.fontSize ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { width, height } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width };\n\n\t\treturn {\n\t\t\tfontSize: parseFloat(\n\t\t\t\tgetPxFromCssUnit( style.fontSize, cssUnitOptions )\n\t\t\t),\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { style } = this.props;\n\t\tconst textStyles = [\n\t\t\tstyle || styles[ 'block-editor-plain-text' ],\n\t\t\tthis.getFontSize(),\n\t\t];\n\n\t\treturn (\n\t\t\t<TextInput\n\t\t\t\t{ ...this.props }\n\t\t\t\tref={ ( x ) => ( this._input = x ) }\n\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\tthis.props.onChange( event.nativeEvent.text );\n\t\t\t\t} }\n\t\t\t\tonFocus={ this.props.onFocus } // Always assign onFocus as a props.\n\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as a props.\n\t\t\t\tfontFamily={\n\t\t\t\t\t( this.props.style && this.props.style.fontFamily ) ||\n\t\t\t\t\tstyles[ 'block-editor-plain-text' ].fontFamily\n\t\t\t\t}\n\t\t\t\tstyle={ textStyles }\n\t\t\t\tscrollEnabled={ false }\n\t\t\t/>\n\t\t);\n\t}\n}\n"]}
@@ -29,7 +29,7 @@ const FormatToolbarContainer = _ref => {
29
29
  } = _ref;
30
30
 
31
31
  if (inline) {
32
- // Render in popover
32
+ // Render in popover.
33
33
  return (0, _element.createElement)(_components.Popover, {
34
34
  noArrow: true,
35
35
  position: "top center",
@@ -40,7 +40,7 @@ const FormatToolbarContainer = _ref => {
40
40
  }, (0, _element.createElement)("div", {
41
41
  className: "block-editor-rich-text__inline-format-toolbar-group"
42
42
  }, (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_formatToolbar.default, null))));
43
- } // Render regular toolbar
43
+ } // Render regular toolbar.
44
44
 
45
45
 
46
46
  return (0, _element.createElement)(_blockControls.default, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"names":["FormatToolbarContainer","inline","anchorRef"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,QAA6B;AAAA,MAA3B;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAA2B;;AAC3D,MAAKD,MAAL,EAAc;AACb;AACA,WACC,4BAAC,mBAAD;AACC,MAAA,OAAO,MADR;AAEC,MAAA,QAAQ,EAAC,YAFV;AAGC,MAAA,YAAY,EAAG,KAHhB;AAIC,MAAA,SAAS,EAAGC,SAJb;AAKC,MAAA,SAAS,EAAC,+CALX;AAMC,MAAA,kBAAkB,EAAC;AANpB,OAQC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,wBAAD,QACC,4BAAC,sBAAD,OADD,CADD,CARD,CADD;AAgBA,GAnB0D,CAoB3D;;;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CA1BD;;eA4BeF,sB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover, ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = ( { inline, anchorRef } ) => {\n\tif ( inline ) {\n\t\t// Render in popover\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tnoArrow\n\t\t\t\tposition=\"top center\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar\"\n\t\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-rich-text__inline-format-toolbar-group\">\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<FormatToolbar />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n\t// Render regular toolbar\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"names":["FormatToolbarContainer","inline","anchorRef"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,QAA6B;AAAA,MAA3B;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAA2B;;AAC3D,MAAKD,MAAL,EAAc;AACb;AACA,WACC,4BAAC,mBAAD;AACC,MAAA,OAAO,MADR;AAEC,MAAA,QAAQ,EAAC,YAFV;AAGC,MAAA,YAAY,EAAG,KAHhB;AAIC,MAAA,SAAS,EAAGC,SAJb;AAKC,MAAA,SAAS,EAAC,+CALX;AAMC,MAAA,kBAAkB,EAAC;AANpB,OAQC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,wBAAD,QACC,4BAAC,sBAAD,OADD,CADD,CARD,CADD;AAgBA,GAnB0D,CAoB3D;;;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CA1BD;;eA4BeF,sB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover, ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = ( { inline, anchorRef } ) => {\n\tif ( inline ) {\n\t\t// Render in popover.\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tnoArrow\n\t\t\t\tposition=\"top center\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar\"\n\t\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-rich-text__inline-format-toolbar-group\">\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<FormatToolbar />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
@@ -17,7 +17,7 @@ var _formatToolbar = _interopRequireDefault(require("./format-toolbar"));
17
17
  * Internal dependencies
18
18
  */
19
19
  const FormatToolbarContainer = () => {
20
- // Render regular toolbar
20
+ // Render regular toolbar.
21
21
  return (0, _element.createElement)(_blockControls.default, {
22
22
  group: "inline"
23
23
  }, (0, _element.createElement)(_formatToolbar.default, null));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.native.js"],"names":["FormatToolbarContainer"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,MAAM;AACpC;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CAPD;;eASeA,sB","sourcesContent":["/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = () => {\n\t// Render regular toolbar\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.native.js"],"names":["FormatToolbarContainer"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,MAAM;AACpC;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CAPD;;eASeA,sB","sourcesContent":["/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = () => {\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
@@ -156,9 +156,7 @@ function RichTextWrapper(_ref, forwardedRef) {
156
156
  const selector = select => {
157
157
  const {
158
158
  getSelectionStart,
159
- getSelectionEnd,
160
- isMultiSelecting,
161
- hasMultiSelection
159
+ getSelectionEnd
162
160
  } = select(_store.store);
163
161
  const selectionStart = getSelectionStart();
164
162
  const selectionEnd = getSelectionEnd();
@@ -173,8 +171,7 @@ function RichTextWrapper(_ref, forwardedRef) {
173
171
  return {
174
172
  selectionStart: isSelected ? selectionStart.offset : undefined,
175
173
  selectionEnd: isSelected ? selectionEnd.offset : undefined,
176
- isSelected,
177
- disabled: isMultiSelecting() || hasMultiSelection()
174
+ isSelected
178
175
  };
179
176
  }; // This selector must run on every render so the right selection state is
180
177
  // retreived from the store on merge.
@@ -184,8 +181,7 @@ function RichTextWrapper(_ref, forwardedRef) {
184
181
  const {
185
182
  selectionStart,
186
183
  selectionEnd,
187
- isSelected,
188
- disabled
184
+ isSelected
189
185
  } = (0, _data.useSelect)(selector);
190
186
  const {
191
187
  selectionChange
@@ -352,7 +348,7 @@ function RichTextWrapper(_ref, forwardedRef) {
352
348
  }), (0, _element.createElement)(TagName // Overridable props.
353
349
  , (0, _extends2.default)({
354
350
  role: "textbox",
355
- "aria-multiline": true,
351
+ "aria-multiline": !disableLineBreaks,
356
352
  "aria-label": placeholder
357
353
  }, props, autocompleteProps, {
358
354
  ref: (0, _compose.useMergeRefs)([autocompleteProps.ref, props.ref, richTextRef, (0, _useInputRules.useInputRules)({
@@ -385,10 +381,9 @@ function RichTextWrapper(_ref, forwardedRef) {
385
381
  onChange,
386
382
  disableLineBreaks,
387
383
  onSplitAtEnd
388
- }), anchorRef, forwardedRef]) // Do not set the attribute if disabled.
389
- ,
390
- contentEditable: disabled ? undefined : true,
391
- suppressContentEditableWarning: !disabled,
384
+ }), anchorRef, forwardedRef]),
385
+ contentEditable: true,
386
+ suppressContentEditableWarning: true,
392
387
  className: (0, _classnames.default)('block-editor-rich-text__editable', props.className, 'rich-text'),
393
388
  onFocus: unstableOnFocus,
394
389
  onKeyDown: onKeyDown